存储管理方法和系统与流程

文档序号:16626927发布日期:2019-01-16 06:11阅读:201来源:国知局
存储管理方法和系统与流程

本公开涉及存储管理与优化。更具体地,本公开涉及存储管理的方法、系统、计算机可读存储介质及计算机程序产品。



背景技术:

传统的计算机系统为了更好地管理和优化存储通常将若干个盘分区池化为一个存储池,然后在存储池上建立独立磁盘冗余阵列(raid),并通过raid映射表(rmt)在raid区段(raidextents)和逻辑单元(lun)之间进行线性逻辑块地址(lba)映射,进而实现将用户i/o数据映射到至盘上。

上述线性映射的方式虽然具有算法简单等优势,但是由于经线性映射后的用户i/o通常仅集中在部分raid区段,而不能平均分布在整个盘空间,进而使得存储设备的发热不均衡,并且也显著地降低了整个存储系统的i/o性能,特别是显著降低i/o每秒(iops)的性能。



技术实现要素:

本公开提供一种存储管理方法和系统,能够优化存储系统的i/o性能。

根据本公开的第一方面,提供了一种存储管理方法。该方法包括:响应于接收到写请求,将需写入的数据划分为预定大小的多个数据块,该多个数据块具有各自的逻辑块地址;基于该逻辑块地址将该多个数据块均匀地映射至独立磁盘冗余阵列(raid)的多个raid区段中;将该多个raid区段中的该多个数据块映射至盘中,使得该多个数据块在该盘中按照该逻辑块地址的大小顺序分布。

根据本发明的第二方面,还提供一种存储管理方法。该方法包括:响应于接收到针对多个数据块的i/o请求,基于该多个数据块各自的逻辑块地址确定该多个数据块被均匀地映射到raid的多个raid区段的位置信息;基于该映射到raid区段的位置信息,确定该多个数据块映射至盘中的位置信息,使得该多个数据块在该盘中按照该逻辑块地址的大小顺序分布;基于该数据块在盘中的位置信息读写该多个数据块。

根据本公开的第三方面,提供了一种存储管理系统。该系统包括:存储器,被配置为存储一个或多个程序;处理单元,耦合至该存储器并且被配置为执行该一个或多个程序使该系统执行多个动作,该动作包括:响应于接收到写请求,将需写入的数据划分为预定大小的多个数据块,该多个数据块具有各自的逻辑块地址;基于该逻辑块地址将该多个数据块均匀地映射至独立磁盘冗余阵列(raid)的多个raid区段中;将该多个raid区段中的该多个数据块映射至盘中,使得该多个数据块在该盘中按照该逻辑块地址的大小顺序分布。

根据本公开的第四方面,提供了一种存储管理系统。该系统包括:存储器,被配置为存储一个或多个程序;处理单元,耦合至该存储器并且被配置为执行该一个或多个程序使该系统执行多个动作,该动作包括:响应于接收到针对多个数据块的i/o请求,基于该多个数据块各自的逻辑块地址确定该多个数据块被均匀地映射到raid的多个raid区段的位置信息;基于该映射到raid区段的位置信息,确定该多个数据块映射至盘中的位置信息,使得该多个数据块在该盘中按照该逻辑块地址的大小顺序分布;基于该数据块在盘中的位置信息读写该多个数据块。

根据本公开的第五方面,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序指令,当该计算机程序指令被处理单元调用时执行第一方面或第二方面该的方法

根据本公开的第六方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行根据第一方面或第二方面该的方法的步骤。

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

附图说明

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

图1示出了传统的存储管理系统100的架构图;

图2示出了根据本公开的实施例的存储管理系统200的架构图;

图3示出了根据本公开的实施例的存储管理方法300流程图;

图4示出了根据本公开的另一实施例的存储管理方法400的流程图;

图5示出了适于用来实现本公开实施例的电子设备500的框图;

图6示出了根据本公开的另一实施例块映射的示意图;以及

图7示出了采用本公开的实施例的存储管理方法前后的盘上i/o分布效果对比图。

具体实施方式

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

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

如上文所描述的,传统的用于控制计算机系统的存储设备的方法通过在raid区段和lun之间创建一个线性lba映射,进而实现将用户i/o数据映射至盘上。经研究发现上述线性映射的方法存在以下两方面的不足:一方面,经线性映射后的用户i/o不会在整个盘存储空间中平均分配,而是集中在一些raid区段上,使得用户i/o集中分布的局部盘过热,而且随着用户i/o集中区域的变化而导致盘过热区域的随之变化,进而导致整个存储设备的发热不均衡,不利于存储设备的使用寿命的和散热措施的针对性。另一方面,lun上的高速缓存层将随机用户i/o转换为顺序i/o,并将顺序i/o映射至raid区段。鉴于经线性映射后的用户i/o仅会集中在部分raid区段上,而系统所配置的其他raid区段处于空闲状态,没有被充分利用,因而使得系统整体i/o性能下降,尤其是使得iops的性能明显降低。

例如,图1示出了传统的、基于线性映射的存储设备100的架构图。如图所示,存储设备100包括6个盘110、112、114、116、118和120,每个盘包含3个盘盘区,例如,盘120包括3个盘区122、124和126。基于6个盘110-120池化为一个存储池,在存储池上构建逻raid,raid分为多个raid区段。如图1所示,盘110-120上的b0~b47显示了数据块经线性映射140后在盘上的真实位置。如果用户访问数据块b0~b3,则系统仅仅使用第一raid区段130所涉及的盘110-114这3个盘的虚线箭头所指的部分盘区。由于数据仅集中在盘110-114的部分盘区,因此造成系统这部分盘区过度发热。另外,由于其他大部分盘区完全空闲,因此使得系统原本配置的6个盘的io能力,尤其是整体iops的能力没有充分地被利用,进而降低了整个系统的i/o性能,尤其大大降低iops性能。

可见,尽管线性映射140的优势是算法简单。然而,通过使用不同的i/o模式进行研究与测试之后发现:基于线性映射的存储管理方法无法解决上述的整个存储系统的发热不均衡和系统整体i/o性能下降的两个问题。

为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种存储管理方法。通过在逻辑单元(lun)与raid区段之间的逻辑单元映射,即将在逻辑单元中具有各自逻辑块地址的多个数据块均匀地映射至raid的多个raid区段中,优选是映射至所有raid区段中;以及在raid区段与盘区之间的块映射,即将多个raid区段中的多个数据块映射至多个盘区中,使得多个数据块在盘中按照该逻辑块地址的大小顺序分布。由于该方案通过逻辑单元映射将逻辑单元(lun)中的数据块平均地映射至所有的raid区段中,因此避免了i/o请求所针对的数据块仅仅集中在个别raid区段而导致的局部盘区过热而整个存储系统发热不均衡的问题,同时也因将数据块映射至多个盘进而调动了多个盘,甚至是所有盘的i/o能力,因而提高了整个存储系统的i/o性能。另外,通过在raid区段与盘区之间进行块映射,使得盘上的数据块按照其在逻辑单元lun中的lba的大小顺序分布,进而使得盘上的i/o连续,因此避免了因i/o数据在盘上分布跨度比较大而导致的磁头不停换道的不利方面,因而提高存储系统数据读写效率。

图2示出了根据本公开的实施例的存储管理系统200的示意图。如图2所示,存储管理系统200包括多个盘,例如是6个盘210-220,每个盘包含多个盘区,例如,盘220包括3个盘区222-226。基于多个盘,例如基于6个盘110-120池化为一个存储池248,在存储池上构建raid,raid分为多个raid区段,例如是6个raid区段,即raid区段0-5。b0~b47(47仅仅是示意性的数字)代表逻辑单元lun202中的数据块。通过逻辑单元映射242,使得lun上连续的多个数据块被均匀地映射至到多个的raid区段上,然后通过块映射244,将raid区段上数据块映射至盘区中(图2中未具体示出),使得数据块在每个盘中按照逻辑块大小的顺序分布,例如盘1中分布的数据块b0、b4、b8、b12、b16……b44,这些数据块其在lun中的逻辑块地址小的,在盘1中的实际分布的地址也小。如图2所示,盘210-220上的b0~b47显示了数据块经逻辑单元映射242和块映射244后在盘上的真实位置。如果用户在lun102中顺序访问数据块b0~b47,i/o将顺序访问盘上的b0~b47。在图2中没有具体示出奇偶校验盘中的映射。它们应该具有与数据盘1、2、4和5相同的映射。图2仅仅是示意性的,例如,在图2中每个盘区只有4个数据块,而在实际的盘硬件中,每个盘区可具有超过1000个数据块。例如,如果盘区的大小是10gb,而每个数据块的大小为4mb,则每个盘区将包括2500个数据块。

图3示出了根据本公开的实施例的存储管理方法300的示意图。在图3中,各个动作例如由控制器执行。方法300还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。

在框302,响应于接收到写请求,将需写入的数据划分为预定大小的多个数据块,该多个数据块具有各自的逻辑块地址。在一些实施例中,响应于接收到用户的写请求,经由文件系统将需写入的数据映射到关联的逻辑单元lun上,多个数据块在关联的lun中的逻辑块地址或数据块索引是连续的。关于数据块的预定大小,可以在创建映射raid时进行配置。在一些实施例中,数据块的大小需要足够小,以确保可以将需写入的数据划分足够多的数据块以便分配给多个盘,优选分配给所有盘。在一些实施例中,数据块的大小为1m~64mb,可以实现较佳的性能。

在框304,基于该逻辑块地址将该多个数据块均匀地映射至raid的多个raid区段中。将该多个数据块均匀地映射至raid的多个raid区段中的映射方式,即逻辑单元映射方式,可以基于多种算法构建。这里的所说的均匀地映射并非仅限于绝对的均匀,大致均匀映射即可,因为在很多时候,数据块的个数并非raid区段数的整数倍。在一些实施例中,可以基于多个数据块中的每一个数据块在相关逻辑单元lun中的索引和raid区段的个数确定该数据块被映射至该raid区段的位置信息。

在一些实施例中,例如,基于该数据块在相关逻辑单元lun中的索引除以raid区段的个数的余数确定数据块被映射至raid区段的序号;基于索引除以raid区段的个数的商确定该数据块映射至raid区段中的内部偏移。即可以采用以下算法进行逻辑单元映射,即确定数据块被映射到raid区段的位置信息:

rindex=bindex/n

roffset=bindex%n

其中,bindex表示逻辑单元中的数据块的索引,n表示raid区段的个数,rindex表示数据块被分发至raid区段的序号,roffset表示数据块被分发至raid区段的内部偏移。上述公式的含义是:基于数据块在逻辑单元中的索引bindex除以该raid区段的个数n的余数来确定数据块被映射至raid区段的序号rindex;基于逻辑单元中的数据块的索引bindex除以raid区段的个数n的商来确定该数据块在该被映射至raid区段中的内部偏移roffset。例如,数据块b11在逻辑单元中的索引bindex为11,raid区段的个数n例如是6,则数据块b11基于逻辑单元映射被映射至raid区段5的raid区段的第2个数据块。

在一些实施例中,逻辑单元映射也可基于以下公式构建,即通过以下公式确定多个数据块被均匀映射到多个raid区段的位置信息。

rindex=bindex×(n-1)/n

roffset=bindex×(n-1)%n

也可以通过其他算法将该多个数据块均匀地映射至raid的多个raid区段中。

在框306,将多个raid区段中的多个数据块映射至盘中,使得多个数据块在盘中按照该逻辑块地址的大小顺序分布。关于将多个raid区段中的多个数据块映射至盘中的映射方式,即块映射方式,可以基于多种算法构建。在一些实施例中,可以基于盘包括的盘区个数、盘区包括的数据块个数和数据块在相关逻辑单元中的索引确定该数据块被映射至该盘中的内部偏移。在一些实施例中可以采用以下算法进行逻辑单元映射,即确定数据块被映射到raid区段的位置信息:

bt=(bs%m)×p+(bs/m)%p

其中,p表示每个盘包括的盘区的个数、m表示每个盘区包括的数据块的个数,bs表示映射前数据块在逻辑单元中的索引,bt表示数据块被分发至盘中的内部偏移。图6示出了根据本公开的实施例的块映射600的示意图。例如,如6图所示,每个盘包括3个盘区,例如610表示的盘1,其3个盘区,每个盘区包括4个数据块,即m为4,p为3。另外,620表示raid区段0、622表示raid区段2、624表raid区段4。基于上述公式构建的块映射600,将多个raid区段中的多个数据块映射至盘中,使得多个数据块在盘中按照该逻辑块地址的大小顺序分布。例如,raid区段2中的数据块b8通过块映射,获得其在盘1中的内部偏移值位置为3。

在一些实施例中,块映射也可以基于以下公式构建,即通过以下公式确定该多个数据块映射至盘的中的位置信息。

bt=((bs+k)%m)×p+((bs+k)/m)%p

在上述公式中,p表示每个盘包括的盘区的个数、m表示每个盘区包括的数据块的个数,bs表示数据块在逻辑单元中的索引,bt表示数据块被分发至盘中的内部偏移。k表示一个自然数,例如但不限于,取自1-10.

通过图3所示存储管理方法,该多个数据块在该盘中按照该逻辑块地址的大小顺序分布,使得针对上述数据块的写操作也相对连续。众所周知,iops是衡量存储系统性能的重要指标。通常一个i/o所用的时间等于寻道时间与数据传输时间之和。由于寻道时间相对传输时间通常大几个数量级,所以影响iops的关键因素是寻道时间,而在连续i/o的情况下,寻道时间通常很短。因此本公开的存储管理方法300通过该多个数据块在该盘中按照该逻辑块地址的大小顺序分布,使得针对上述数据块的写操作也相对连续,因此有利于于降低寻道时间,进而提高iops性能。

图4示出了根据本公开的另一实施例的存储管理方法400的示意图。在图4中,各个动作例如由控制器执行。方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。

在框402,响应于接收到针对多个数据块的i/o请求,基于多个数据块各自的逻辑块地址确定该多个数据块被均匀地映射到raid的多个raid区段的位置信息。在一些实施例中,i/o请求所针对的数据块的个数至少大于或等于raid区段的个数,使得逻辑单元中的多个连续数据块能够均匀地映射至所有raid区段中,进而使得i/o请求所针对的多个数据均匀分布在所有盘上,因而使得存储系统获得最佳的i/o每秒性能和发热均衡性。例如,对于企业大型集群系统的存储管理,存储管理系统会同时收到成百上千个i/o请求,或者收到涉及访问数据量比较大的i/o请求,并且这些i/o请求通常会涉及连续的多个数据块的访问。这些连续的多个数据块在关联的lun中的逻辑块地址或数据块索引也是连续的。例如图2中的lun202中的b0-b16。

关于确定多个数据块被均匀映射到多个raid区段的位置信息的确定方式,即逻辑单元映射方式,可以基于多种算法构建。在一些实施例中,可以基于多个数据块中的每一个数据块在相关逻辑单元lun中的索引和raid区段的个数确定该数据块被映射至该raid区段的位置信息。在一些实施例中,例如,基于该数据块在相关逻辑单元lun中的索引除以raid区段的个数的余数确定数据块被映射至raid区段的序号;基于索引除以raid区段的个数的商确定该数据块在该被分发至raid区段中的内部偏移。即可以采用以下算法进行逻辑单元映射,即确定数据块被映射到raid区段的位置信息。

rindex=bindex/n

roffset=bindex%n

其中,bindex表示逻辑单元中的数据块的索引,n是raid区段的个数,rindex表示数据块被分发至raid区段的序号,roffset表示数据块被分发至raid区段的内部偏移。在一些实施例中,逻辑单元映射基于以下公式构建,即通过以下公式确定多个数据块被均匀映射到多个raid区段的位置信息。

rindex=bindex×(n-1)/n

roffset=bindex×(n-1)%n

在一些实施例中,逻辑单元映射基于以下公式构建,即通过以下公式确定多个数据块被均匀映射到多个raid区段的位置信息。

rindex=(bindex+m)/n

roffset=(bindex+m)%n

在上述两个公式中,bindex表示逻辑单元中的数据块的索引,n表示raid区段的个数,rindex表示数据块被分发至raid区段的序号,roffset表示数据块被分发至raid区段的内部偏移,m表示一自然数,例如但不限于,取自1-10。可以通过多种算法确定多个数据块被映射到多个raid区段的位置信息,只要其能实现将逻辑单元中的多个数据块均匀地地映射至raid的多个raid区段即可。

在框404,基于映射到raid区段的位置信息,确定该多个数据块映射至盘的中的位置信息,使得该多个数据块在该盘中按照该逻辑块地址的大小顺序分布。关于确定raid区段多个数据块映射至盘的中的位置信息的确定方式,即块映射方式,可以基于多种算法构建。在一些实施例中,可以基于盘包括的盘区个数、盘区包括的数据块个数和数据块在相关逻辑单元中的索引确定该数据块被映射至该盘中的内部偏移。在一些实施例中可以采用以下算法进行逻辑单元映射,即确定数据块被映射到raid区段的位置信息。

bt=(bs%m)×p+(bs/m)%p

其中,p表示每个盘包括的盘区的个数、m表示每个盘区包括的数据块的个数,bs表示数据块在逻辑单元中的索引,bt表示数据块被分发至盘中的内部偏移。

在一些实施例中,块映射还可以基于以下公式构建,即通过以下公式确定该多个数据块映射至盘的中的位置信息。

bt=(bsm-1%m)×p+(bsm-1+k)/m)%p

在上述公式中,p表示每个盘包括的盘区的个数、m表示每个盘区包括的数据块的个数,bs表示数据块在逻辑单元中的索引,bt表示数据块被分发至盘中的内部偏移。k表示一自然数。本公开的两级映射都可以通过公式进行计算,不需要更多的内存存储。

在框406,基于多个数据块在盘中的位置信息读写多个数据块。由于经过框402和404所涉及的两级映射,i/o请求所针对的多个数据块不仅被均匀地分配到多个盘上,而且在每一个盘上的数据块也是顺序分布,这使得存储系统不存在空闲的盘,发热均衡;而且针对上述数据块的i/o操作也相对连续的,因此有利于于降低寻道时间,进而提高iops性能。

图5示意性示出了适于用来实现本公开实施例的电子设备500的框图。设备500可以用于实现图2的的存储管理系统200。如图5所示,设备500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序指令,来执行各种适当的动作和处理。在ram503中,还可存储设备500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

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

处理单元501执行上文所描述的各个方法和处理,例如执行用于存储管理方法300和400。例如,在一些实施例中,方法300和400可被实现为计算机软件程序,其被存储于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到ram503并由cpu501执行时,可以执行上文描述的方法300和400的一个或多个操作。备选地,在其他实施例中,cpu501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法300和400的一个或多个动作。

图7示出了采用本公开的实施例的存储管理方法前后的磁盘上的i/o效果对比图。图7中的左侧是传统的基于线性映射的存储管理方法的盘上的i/o效果图,图7中的右侧是采用本公开的实施例的存储管理方法的盘上的i/o效果图。图的纵坐标是逻辑块地址,图的横坐标是时间(单位为秒)。左侧i/o效果图中的盘上的i/o被划分到几个区域,并且盘在一段时间内没有提供i/o。右侧表示使用逻辑单元映射和块映射的存储管理方法的盘上的i/o效果,其中,盘上的i/o在所有时间段的顺序提供。因此与基于简单的线性映射的传统的存储管理方法相比,本公开通过在逻辑单元和raid区段之间的逻辑单元映射以及raid区段和盘区之间的块映射解决了i/o位置集中在局部盘区的问题和i/o非顺序的问题。

为了进一步测试存储管理方法的的效果。在vnxe阵列上设置了一个环境。该环境具体为:盘为日立12gbsas,550gb。54个盘。raid配置为5+1,盘的盘区大小为:10gb,数据块大小为:4mb;用户i/o为:192个线程,8k随机写入。使用传统的线性映射存储管理方法,相应的iops测得约为7500。使用本公开的实施例的、基于逻辑单元映射和块映射的存储管理方法,相应的iops测得约为8800。因此,对于8k随机i/o而言,本公开的实施例的存储管理方法的性能可以提高15%左右。

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

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

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

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

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

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

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

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

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

以上该仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

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