掌桥专利:专业的专利平台
掌桥专利
首页

用于管理存储系统的方法、设备和计算机程序产品

文献发布时间:2023-06-19 16:20:42



技术领域

本公开的实施例总体涉及数据存储领域,具体涉及用于管理备份存储系统的方法、设备和计算机程序产品。

背景技术

随着数据存储技术的发展与进步,存储系统不断经历着更新换代。当用户选择使用新的存储系统来替换旧的存储系统时,通常需要将旧的存储系统中已存储的备份数据迁移存储到新的存储系统中。以此方式,用户能够将他们原有的已存储的备份数据保留在新的存储系统中。随着越来越多的用户选择使用新的存储系统来进行数据备份,如何更有效地将旧的存储系统的备份数据迁移到新的存储系统是值得关注的问题。

发明内容

本公开的实施例提供了管理存储系统的方法、设备和计算机程序产品。

在本公开的第一方面,提供了一种管理存储系统的方法。该方法包括响应于源存储系统的数据向目标存储系统的迁移,如果确定使用源存储系统备份数据的目标客户端生成待备份数据,确定该目标存储系统中存储的针对该目标客户端的数据量是否超过阈值;以及如果确定数据量超过阈值,将待备份数据存储到该目标存储系统。

在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得电子设备执行动作,该动作包括响应于源存储系统的数据向目标存储系统的迁移,如果确定使用源存储系统备份数据的目标客户端生成待备份数据,确定该目标存储系统中存储的针对该目标客户端的数据量是否超过阈值;以及如果确定数据量超过阈值,将待备份数据存储到该目标存储系统。

在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令。该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。

提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。

附图说明

通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。

图1示出了本公开的实施例能够在其中被实施的示例环境的框图;

图2示出了将备份数据从旧存储系统向新存储系统迁移的常规方案的示意图;

图3示出了根据本公开的一些实施例的在备份数据迁移过程中将待备份的数据进行存储的示例方法的流程图;

图4示出了根据本公开的一些实施例的对客户端的已备份数据进行迁移的示例方法的流程图;

图5示出了根据本公开的一些实施例的对旧存储系统的多个客户端进行排序的示例方法的流程图;

图6示出了根据本公开的一些实施例的对旧存储系统的多个客户端进行排序的另一示例方法的示意图;

图7示出了根据本公开的一些实施例的在备份数据迁移过程中将待备份的数据进行存储的示例方法的流程图;以及

图8示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。

在各个附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

图1示出了本公开的实施例可以在其中被实现的存储环境100的示意图。存储环境100包括源存储系统110(即,旧存储系统)、目标存储系统120(即,新存储系统)和目标客户端130。应当理解,尽管在图1中仅示出了一个目标客户端130,但这仅仅是示意性的,存储环境100中可以包括多个目标客户端130。源存储系统110是用户原先使用的旧存储系统,其中存储有目标客户端130的已备份数据。目标存储系统120是用户将要使用的新存储系统。

源存储系统110与目标客户端130之间、目标存储系统120与目标客户端130之间可以通过各种通信协议彼此进行通信。源存储系统110可以通过各种通信协议将数据传输到目标存储系统120。在一些实施例中,存储环境100中还包括与目标存储系统120彼此通信的客户端140。客户端140可以不与源存储系统110进行通信。

源存储系统110和目标存储系统120可以利用多种存储技术来提供数据存储能力。在一些实施例中,源存储系统110和目标存储系统120的示例存储形式可以包括但不限于数字通用盘(DVD)、蓝光盘(BD)、光盘(CD)、软盘、硬盘设备、磁带驱动、光学驱动、硬盘设备驱动(HDD)、固态存储器设备(SSD)、独立磁盘冗余阵列(RAID)或其他硬盘设备。

当用户想要使用目标存储系统120来替换源存储系统110时,用户需要将源存储系统110中存储的目标客户端130的已备份数据迁移存储到目标存储系统120中,以使用户的数据能够在目标存储系统120中得以保留。

在常规方案中,由于旧存储系统中存储有大量的数据,想要将旧存储系统中存储的已备份数据迁移存储到新存储系统中,需要花费大量的时间。特别地,对于旧存储系统和新存储系统使用不同的数据结构和不同的除重算法的情景,需要对旧存储系统中的经除重的数据进行还原。此外,还需要使用新存储系统的算法和数据结构来创建新的备份数据以供新存储系统使用。在这种情形下,迁移过程将会花费更长的时间。

图2示出了将备份数据从旧存储系统向新存储系统迁移的常规方案200的示意图。如图2所示,在将备份数据从源存储系统210向目标存储系统220迁移的过程中,使用源存储系统210备份数据的客户端230仍在生成待备份的新数据244。在常规方案的迁移过程中,将源存储系统210中存储的已备份的旧数据248从源存储系统210存储到目标存储系统220中。此外,客户端230生成的待备份的新数据244也需要被存储。

在实际使用中,不会将客户端230生成的待备份的新数据244直接地存储在目标存储系统220中。这是由于目标存储系统220中没有存储已有的备份数据,将新数据244在目标存储系统220中存储的过程将会非常缓慢。因此,在常规方案中,会将待备份的新数据244首先存储在源存储系统210中,随后再将新数据244从源存储系统210存储到目标存储系统220中。

在实际使用中,上述描述的这种常规方案先将客户端230生成的待备份的新数据244存储到源存储系统210中,再将其从源存储系统210存储到目标存储系统220。这种方案需要花费额外的大量的时间来对新数据244进行迁移,因此影响了整个系统的性能。此外,由于需要花费大量的时间,常常会造成用户的等待时间过长,进而容易引起用户的不满,对用户造成困扰。

本公开的实施例提出了一种管理存储系统的方案,以解决上述问题和其他潜在问题中的一个或多个。在该方案中,在源存储系统存储的已备份数据向目标存储系统的迁移过程中,确定使用源存储系统来备份数据的目标客户端是否生成新的待备份数据。如果确定该目标客户端生成待备份数据,确定该目标存储系统中针对该目标客户端是否存储了超过阈值的数据量。如果确定该目标存储系统中存储了超过阈值的数据量,将待备份数据存储到该目标存储系统,而无需将带备份数据存储到源存储系统。

以此方式,能够避免在备份数据的迁移过程中,将目标客户端生成的待备份的新数据全部先存储在源存储系统中,随后再由源存储系统移动到目标存储系统。通过这种方式,能够减少备份数据迁移过程的总时间。以此方式,能够提高存储系统的性能表现,更有效地对数据进行备份。

以下将参考附图来详细描述本公开的实施例。图3示出了根据本公开的一些实施例的用于管理存储环境100的示例方法300的流程图。方法300例如可以由如图1所示的存储环境100来执行。应当理解,方法300还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。以下结合图1来详细描述方法300。

如图3所示,在310处,确定目标客户端130是否生成待备份数据,目标客户端130是使用源存储系统110来进行数据备份的客户端。例如,确定目标客户端130是否输出了新的待备份数据。如果在310处确定目标客户端130生成待备份数据,那么方法300进行到320。

在320处,确定目标存储系统120中存储的针对目标客户端130的数据量是否超过阈值。例如,在一些实施例中,可以确定目标存储系统120中已经存储的备份数据中针对目标客户端130的数据量是否已经超过阈值(例如,目标客户端130在源存储系统110中存储的已备份数据的80%)。应当理解,在一些实施例中,阈值可以是目标客户端130在源存储系统110中存储的已备份数据的任意百分比值。

如果在320处确定目标存储系统120中存储的针对目标客户端130的数据量超过阈值,那么方法300进行到330。在330处,将待备份数据存储到目标存储系统120。例如,可以将由目标客户端130生成的待备份数据直接存储到目标存储系统120,而无需将待备份数据存储到源存储系统110。

备选地或附加地,如果在320处确定目标存储系统120中存储的针对目标客户端130的数据量低于阈值,那么方法300可以进行到340。在340处,可以将由目标客户端130生成的待备份数据存储到源存储系统110,而不是直接存储到目标存储系统120。

从以上描述可以看出,利用在此提出的管理存储系统的方案,能够避免将目标客户端130生成的全部的待备份数据存储到源存储系统110,再由源存储系统110存储到目标存储系统120。通过上述方案,能够在目标客户端130的超过阈值的数据已经被存储到目标存储系统120之后,将目标客户端130生成的待备份数据直接存储到目标存储系统120,而无需将其存储到源存储系统110。通过这种方式,能够大量节省源存储系统110与目标存储系统120之间的数据迁移的时间,能够更快速的完成整个备份数据迁移的过程。通过这样,能够提高存储系统的性能表现,更有效地对数据进行备份。

以上参考图3描述了根据本公开的一些实施例的对目标客户端130生成的待备份数据进行存储的示例方法300。在一些实施例中,还可以使用参考图4的流程图所描述的示例方法400来对目标客户端130的已备份数据进行迁移。方法400例如可以由如图1所示的存储环境100来执行。应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。以下结合图1来详细描述方法400。

如图4所示,在410处,可以基于源存储系统110中与目标客户端130有关的目标历史备份信息,来确定源存储系统110中存储的目标客户端130的已备份数据中的多个备份数据(在本文中也被称为“多个数据块”)各自的优先级。应当理解,虽然在本文中“数据块”用于指代“备份数据”,但这仅仅是示意性的,不以任何方式限制本发明。例如,在一些实施例中,多个数据块的优先级可以基于多个数据块在源存储系统110中各自的重复率由高至低而被确定。重复率由源存储系统110中存储的与目标客户端130有关的目标历史备份信息指示。将具有最高的重复率的数据块确定为具有最高的优先级,将具有最低的重复率的数据块确定为具有最低的优先级。

备选地或附加地,在一些实施例中,多个数据块的优先级还可以基于多个数据块在源存储系统110中各自的重复率由高至低以及各自被重复性存储的时间周期由短至长而被确定。重复率和时间周期由源存储系统110中存储的与目标客户端130有关的目标历史备份信息指示。首先,基于多个数据块在源存储系统110中各自的重复率由高至低来确定各自的优先级,将具有最高的重复率的数据块确定为具有最高优先级。其次,对于某些具有类似的重复率的数据块,基于它们各自的时间周期来确定它们的优先级,具有较短的时间周期的数据块具有较高的优先级,具有较长时间周期的数据块具有较低的优先级。

在420处,可以确定是否多个数据块中的第一数据块的第一优先级高于预定级别,并且第二数据块的第二优先级低于预定级别。应当理解,预定级别可以是任意的优先级的级别。在一些实施例中,预定级别可以与方法300中的阈值相关联。当方法300中的阈值被设置为较高的值,例如80%时,预定级别是一个较低的级别,有较多的数据块高于该预定级别。当方法300中的阈值被设置为较低的值,例如50%时,预定级别是较高的级别,有较少的数据块高于该预定级别。应当理解,在此描述的数值仅仅是示例性的,无意限制本公开的范围。可以根据具体的应用场景设置不同的阈值数值。

如果在420处确定第一数据块的第一优先级高于预定级别,并且第二数据块的第二优先级低于预定级别,那么方法400进行到430。在430处,可以将第一数据块优先于第二数据块存储到目标存储系统120中。例如,可以在当前时间将第一数据块存储到目标存储系统120中,而不在当前时间将第二数据块存储到目标存储系统120。

在440处,可以在空闲时间将第二数据块存储到目标存储系统120。例如,可以在目标客户端130的优先级高于预定级别的数据块均被移动到目标存储系统120之后的空闲时间,将第二数据块存储到目标存储系统120。

通过这样的方式,能够将重复率高且被重复性存储的频率高的备份数据优先存储到目标存储系统120,进而确保目标存储系统120中能以较少的时间存储满足阈值的数据量。目标存储系统120以较少的时间存储满足阈值的数据量,能够使目标客户端130生成的待备份数据较早的被直接存储到目标存储系统120。以此方式,减少了备份数据迁移所花费的时间,提高了存储系统的性能表现。

虽然以上参考图3-图4所描述的根据一些实施例的备份数据的迁移过程中仅仅示出了一个目标客户端130,但在一些实施例中,源存储系统110可以具有多个客户端,需要将多个客户端的备份数据从源存储系统110存储到目标存储系统120。下文将参考图5-6来详细描述这种实施例。

如图5所示,源存储系统110中可以存储针对多个客户端530-1、530-2、……、530-K(统称为或单独称为“客户端530”)的备份数据。当用户使用目标存储系统120来替换源存储系统110时,需要将源存储系统110中存储的针对多个客户端530中的每个客户端530的备份数据存储到目标存储系统120,以确保备份数据的完整性。

在一些实施例中,可以基于源存储系统110中的多个客户端530各自的数据重复率,来对多个客户端530进行排序。在一些实施例中,还可以基于排序依次将源存储系统110中针对多个客户端530的已备份数据存储到目标存储系统120。

如图5所示,在一些实施例中,基于源存储系统110中的多个客户端530各自的数据重复率来对多个客户端530进行排序。例如,可以基于源存储系统110中存储的针对多个客户端530各自的历史备份信息来确定多个客户端530各自的数据重复率510-1、510-2、……、510-K(统称为或单独称为“数据重复率510”)。图5中示出了K个客户端530,K可以是任意自然数。例如,K可以是6,但这仅仅是示意性的,不以任何方式限制本发明。基于多个客户端530各自的数据重复率510由高至低来对多个客户端530进行排序。例如,如图5所示,数据重复率510由高至低的顺序520为R1>R2>……>RK。基于此顺序,可以对多个客户端530进行排序,得到排序结果550。

按照排序结果550,首先将具有最高数据重复率510-1的客户端530-1的已备份数据从源存储系统110存储到目标存储系统120。其次将具有第二高数据重复率510-2的客户端530-2的已备份数据从源存储系统110存储到目标存储系统120。最后将具有最低数据重复率510-K的客户端530-K的已备份数据存储到目标存储系统120。

应当理解,上述所描述的将客户端530的已备份数据存储到目标存储系统120的过程可以使用方法400所描述的过程。备选地或附加地,上述所描述的将客户端530的已备份数据存储到目标存储系统120的过程也可以使用其他方法所描述的过程。

在一些实施例中,可以先将源存储系统110中存储的客户端530-1的最近存储的预定数量的数据块存储到目标存储系统120,而暂时不将源存储系统110中存储的客户端530-1的剩余的数据块存储到目标存储系统120。随后,将源存储系统110中的客户端530-2的预定数量的最近存储的数据块存储到目标存储系统120。最后,将源存储系统110中的客户端530-K的预定数量的最近存储的数据块存储到目标存储系统120。在将源存储系统110的客户端530的各自的预定数目的最近存储的数据块存储到目标存储系统120之后,可以在空闲时间将客户端530各自的剩余的数据块存储到目标存储系统120。

通过这样的方式,可以确保将数据重复率较高的客户端530的备份数据优先存储到目标存储系统120。进而能够确保以较短的时间将满足阈值的数据量存储到目标存储系统120中,进而使客户端530新生成的待备份数据能够在较短时间内被直接存储到目标存储系统120。

在一些实施例中,如图6所示,源存储系统110中的某些客户端630-1、630-2、……、630-J(统称为或单独称为“客户端630”,J可以是任意自然数)具有基本上相同的数据重复率。例如,彼此数据重复率相差不超过5%。再一次,该数值仅仅是示例性的。对于这些具有基本上相同的数据重复率的客户端630,可以基于各自的时间窗口对其进行进一步的排序。多个客户端630各自的时间窗口指示多个客户端630各自在源存储系统110中备份数据的频率。时间窗口越短,表示备份数据的频率越快。各自的时间窗口可以由源存储系统110中存储的各自的历史备份信息来指示。

例如,对于具有基本上相同的数据重复率的多个客户端630-1、630-2、……、630-J,首先将它们预先排序在相同的次序。随后,可以基于源存储系统110中存储的针对多个客户端630各自的历史备份信息来确定多个客户端630各自的时间窗口610-1、610-2、……、610-J(统称为或单独称为“时间窗口610”)。基于多个客户端630各自的时间窗口610由小至大来对多个客户端630进行排序。例如,如图6所示,时间窗口610由高至低的顺序620为T1

按照排序结果650,首先将具有最小时间窗口610-1的客户端630-1的已备份数据从源存储系统110存储到目标存储系统120。其次将具有第二小的时间窗口610-2的客户端630-2的已备份数据从源存储系统110存储到目标存储系统120。最后将具有最大时间窗口610-J的客户端630-J的已备份数据存储到目标存储系统120。

应当理解,上述所描述的将客户端630的已备份数据存储到目标存储系统120的过程可以使用方法400所描述的过程。备选地或附加地,上述所描述的将客户端630的已备份数据存储到目标存储系统120的过程也可以使用其他方法所描述的过程,例如上述参考图5所描述的过程。

在一些实施例中,可以先将源存储系统110中存储的客户端630-1的最近存储的预定数量的数据块存储到目标存储系统120,而暂时不将源存储系统110中存储的客户端630-1的剩余数据块存储到目标存储系统120。随后,将源存储系统110中的客户端630-2的预定数量的最近存储的数据块存储到目标存储系统120。最后,将源存储系统110中的客户端630-J的预定数量的最近存储的数据块存储到目标存储系统120。在将源存储系统110的客户端630的各自的预定数目的最近存储的数据块存储到目标存储系统120之后,可以在空闲时间将客户端630各自的剩余的数据块存储到目标存储系统120。

以此方式,可以对具有类似的数据重复率的客户端630根据其进行数据备份的频率来进一步排序,以确保备份频率较高的备份数据优先存储到目标存储系统120。进而能够确保客户端630新生成的待备份数据能够在较短时间内被直接存储到目标存储系统120,进一步减少了源存储系统110向目标存储系统120迁移所花费的时间。通过以上的方式,加快了源存储系统110向目标存储系统120迁移的过程。这样,用户可以尽早的开始使用目标存储系统120,使得用户不会因为漫长的数据迁移过程而降低体验。

以上参考图3示出了根据本公开的一些实施例的对使用源存储系统110备份数据的目标客户端130的待备份数据进行存储的示例方法300。而在使用过程中,可能会有一些新的客户端140加入到存储环境100,并且客户端140生成的待备份数据也需要被存储。针对这种情形,图7示出了根据本公开的一些实施例的在备份数据迁移过程中将待备份的数据进行存储的示例方法700的流程图。以下结合图1来描述方法700。

在710处,可以获取生成新的待备份数据的客户端的标识信息,例如客户端的客户端标号等标识信息。生成待备份数据的客户端,可以是使用源存储系统110备份数据的目标客户端130,也可以是没有使用源存储系统110备份数据的客户端140。客户端140可以仅与目标存储系统120通信,而不与源存储系统110通信。

在720处,基于标识信息来确定该客户端是否是新的客户端140。例如,可以通过确定源存储系统110中是否存储了该客户端的标识信息(诸如客户端标号)来确定该客户端是否是客户端140。如果源存储系统110中没有存储该客户端的标识信息,则该客户端是新的客户端140。反之,如果源存储系统110中存储了该客户端的标识信息,则该客户端是使用源存储系统110备份数据的目标客户端130,而不是新的客户端140。

如果在720处确定是新的客户端140,那么方法700进行到730。在730处,可以将客户端140生成的待备份数据存储到目标存储系统120,而无需将客户端140生成的待备份数据存储到源存储系统110。通过这样,可以将新的客户端140的待备份数据直接使用目标存储系统120来进行存储。以此方式,无需先将客户端140的待备份数据存储到源存储系统110,之后再从源存储系统110存储到目标存储系统120。这样能够减少源存储系统110向目标存储系统120迁移所花费的时间。

如果在720处确定该客户端不是新的客户端(即,是存储环境100中使用源存储系统110的目标客户端130),那么方法700进行到740。在740处,与方法300的320处类似,确定目标存储系统120中存储的针对目标客户端130的数据量是否超过阈值。例如,在一些实施例中,阈值可以是目标客户端130在源存储系统110中存储的已备份数据的80%。

如果在740处确定目标存储系统120中存储的针对目标客户端130的数据量超过阈值,那么方法700进行到730。在730处,将待备份数据存储到目标存储系统120。例如,可以将由目标客户端130生成的待备份数据直接存储到目标存储系统120,而无需将待备份数据存储到源存储系统110。

如果在740处确定目标存储系统120中存储的针对目标客户端130的数据量低于阈值,那么方法700可以进行到750。在750处,可以将由目标客户端130生成的待备份数据存储到源存储系统110。

从以上描述可以看出,利用在此提出的管理存储系统的方案,可以将新的客户端140的待备份数据直接使用目标存储系统120来进行存储。此外,还能够避免将客户端140所生成的全部的待备份数据存储到源存储系统110,再由源存储系统110移动到目标存储系统120。

通过上述方案,还能够在针对目标客户端130的超过阈值的数据已经被存储到目标存储系统120后,将目标客户端130生成的待备份数据直接存储到目标存储系统120,而无需将其存储到源存储系统110。以此方式,能够大量节省存储系统间的数据迁移的时间,使存储系统的性能表现满足服务级别协议(SLA)的要求。

此外,由于大量节省存储系统间的数据迁移的时间,用户能够尽早地开始使用目标存储系统120。以此方式,避免了使用户等待较长的系统迁移的时间,并提高了用户体验。

图8示出了可以用来实施本公开内容的实施例的示例设备800的示意性框图。例如,如图1所示的存储环境100可以由设备800实施。如图8所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的各个过程和处理,例如方法300、400和/或700,可由处理单元801执行。例如,在一些实施例中,方法300、400和/或700可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法300、400和/或700的一个或多个动作。

本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

技术分类

06120114791818