一种基于HDFS系统的数据的存储、读取方法及其装置与流程

文档序号:11234103阅读:541来源:国知局
一种基于HDFS系统的数据的存储、读取方法及其装置与流程

本发明涉及大数据处理领域,尤其涉及一种基于hdfs系统的数据的存储、读取方法及其装置。



背景技术:

在hdfs(hadoop分布式文件系统)中,一般会采用n-wayreplication方式来做数据冗余。文件系统以数据块(block)为单位管理文件内容,一个文件被分割保存在若干个block上。当应用程序写文件时,每写完一个block,hdfs会将该block的数据自动复制到其他备份服务器上,保证每一个block有多个副本(默认值为3),即使有两台服务器宕机,数据依然可以访问,备份方法如图1所示。

如图2所示,一个典型的hdfs集群由一个namenode(名字服务节点)、一个secondarynamenode(备用名字服务节点)和若干个datanode(数据存储节点)组成。namenode提供元数据服务,管理block的分配,维护整个文件系统的目录树结构,secondarynamenode在namenode发生故障时备用,作用与之相同。datanode则部署在hdfs集群中的其他服务器上,提供真正的数据存储服务。hdfs将datanode上的磁盘空间分成n个block(数据块)供应用程序使用,block的大小默认为64mb。

传统hdfs系统采用上述方案读写文件缺点是,一旦数据量达到pb以上级别,就需要非常多的备份服务器来做备份,给大数据用户带来极大的成本开销。这些成本不但包括磁盘容量、磁盘扩展柜的成本,机房空间、机房电力消耗、以及空调和维护等都需要付出相应的成本。除此之外,还需要额外的计算资源和网络资源来负载i/o计算和数据网络传输。这种成本开销会对冲大数据分析给 用户带来的价值和利益。所以亟需一种解决方案来大大减少hdfs系统的使用成本。



技术实现要素:

本发明实施例提供一种基于hdfs系统的数据的存储、读取方法及其装置,用以解决传统hdfs系统在数据量较大时占用的存储容量大、成本高的问题。

本发明方法包括:一种基于hdfs系统的数据存储方法,该方法包括:接收待存储文件的数据流并封装为数据包;若所述待存储文件为大文件,针对每个数据包,确定名字服务节点为所述数据包分配的数据存储节点的数据块并存储所述数据包,并将所述数据包缓存至编码器的数据块中;为每n个缓存了数据包的数据块建立相同的索引,其中,针对同一数据包,存储了所述数据包的所述数据存储节点的数据块和所述编码器的数据块的索引相同;将编码器的n个具有相同索引的数据块进行编码,得到与所述索引对应的m个校验编码块,n、m为正整数,m<n;确定数据存储节点上的存储所述校验编码块的数据块并存储。

对应地,本发明实施例还提供一种基于hdfs系统的数据读取方法,该方法包括:接收文件的读取请求,并根据所述读取请求确定数据存储节点上存储所述文件的数据块;若所述文件的数据块中存在无法读取的数据块,则获取与所述无法读取的数据块的索引相同的数据块及对应的校验编码块;对与所述无法读取的数据块的索引相同的数据块及对应的校验编码块进行解码,恢复出所述无法读取的数据块。

基于同样的发明构思,本发明实施例进一步还提供一种基于hdfs系统的数据存储装置,该装置包括:接收单元,用于接收待存储文件的数据流并封装为数据包;数据包存储单元,用于若所述待存储文件为大文件,针对每个数据包,确定名字服务节点为所述数据包分配的数据存储节点的数据块并存储所述数据包,并将所述数据包缓存至编码器的数据块中;建立索引单元,用于为每n 个缓存了数据包的数据块建立相同的索引,其中,针对同一数据包,存储了所述数据包的所述数据存储节点的数据块和所述编码器的数据块的索引相同;编码单元,用于将编码器的n个具有相同索引的数据块进行编码,得到与所述索引对应的m个校验编码块,n、m为正整数,m<n;校验编码块存储单元,用于确定数据存储节点上的存储所述校验编码块的数据块并存储。

对应地,本发明实施例进一步提供一种基于hdfs系统的数据读取装置,该装置包括:接收请求单元,用于接收文件的读取请求,读取单元,用于根据所述读取请求确定数据存储节点上存储所述文件的数据块;解码单元,用于若所述文件的数据块中存在无法读取的数据块,则获取与所述无法读取的数据块的索引相同的数据块及对应的校验编码块;对与所述无法读取的数据块的索引相同的数据块及对应的校验编码块进行解码,恢复出所述无法读取的数据块。

本发明实施例一方面实时接收待存储文件的数据流并封装成若干数据包,若所述存储文件为大文件,针对每个数据包,将该数据包存储在名字服务节点为所述数据包分配的数据存储节点的数据块中,同时将所述若干数据包缓存至编码器的数据块中,并为每n个缓存了数据包的数据块建立相同的索引,而且针对同一数据包,存储了所述数据包的所述数据存储节点的数据块和所述编码器的数据块的索引相同。将编码器的n个具有相同索引的数据块进行编码,得到与所述索引对应的m个校验编码块,并将所述m个校验编码块写入至所述名字服务节点分配的数据存储节点的数据块中,校验编码块的作用是便于客户端在读取文件时,若数据库发生丢失,则在同一索引中的数据块丢失个数小于m个时,进行编码恢复。这样,客户端对于大数据的读写过程,并不需要占用非常庞大的数据存储节点,数据存储量小,进而降低了数据处理的成本。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的 一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术提供地一种hdfs系统的备份方法;

图2为现有技术提供地一种hdfs集群组网;

图3为本发明实施例提供一种基于hdfs系统的数据存储方法流程示意图;

图4~图7为现有技术的rs编码原理示意图;

图8为本发明实施例提供一种rs算法编码器补齐编码的原理示意图;

图9为本发明实施例提供一种文件写入hdfs系统的步骤图;

图10为本发明实施例提供一种基于hdfs系统的数据读取方法流程示意图;

图11为本发明实施例提供一种rs算法编码器补齐解码的原理示意图;

图12为本发明实施例地提供一种从hdfs系统读取文件的步骤图;

图13为本发明实施例还提供一种基于hdfs系统的数据存储装置的示意图;

图14为本发明实施例进一步地提供一种基于hdfs系统的数据读取装置。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例通过rs编码以降低存储成本,改进之后的hdfs系统主要是为处理大容量文件的流式数据而设计的,现有技术中也有利于rs编码方案进行hdfs系统改进的方案,但是现有技术的方案不能实时的对数据块进行rs编码,为了保证数据的安全性,现有技术的方案必须先以传统的副本方式进行存储,之后再利于rs编码简化datanode上存储的备份数据块。利用传统的副本方式 进行存储,原因是基于大容量文件占用的block数目较多,在存储过程中无法确定占用的block的确切数目,所以本发明实施例通过编码器为每个block建立索引,然后分批生成校验编码块,通过校验编码块可以恢复出丢失的数据块,就不必再为每个block建立备份,这样就可以真正地降低存储成本。

参见图3所示,本发明实施例提供一种基于hdfs系统的数据存储方法流程示意图,具体地实现方法包括:

步骤s101,接收待存储文件的数据流并封装为数据包。

步骤s102,若所述待存储文件为大文件,针对每个数据包,将所述数据包存储至名字服务节点为所述数据包分配的数据存储节点的数据块中,并将所述数据包缓存至编码器的数据块中。

步骤s103,为每n个缓存了数据包的数据块建立相同的索引,其中,针对同一数据包,存储了所述数据包的所述数据存储节点的数据块和所述编码器的数据块的索引相同。

步骤s104,将编码器的n个具有相同索引的数据块进行编码,得到与所述索引对应的m个校验编码块,n、m为正整数,m<n。

步骤s105,确定数据存储节点上的存储所述校验编码块的数据块并存储。

需要说明的是,若所述待存储文件为大文件,将所述数据包缓存至编码器的数据块和生成校验编码块并存储之间并没有严格的先后顺序,二者可以先后执行,也可以并行执行。

在步骤s104中,所述编码器的编码算法可选择多种方式,比如rs编码(reed-solomon,里所编码),lt码,raptor码等,但本发明优选实施例中选择使用的rs编码,虽然其需要建立比较长的rs编码,但其总体效能要优于其他编码方式。优选的,rs编码生成的校验编码块是通过范德门矩阵计算得到的。

其中rs编码算法是由irvings.reed和gustavesolomon在1960年提出的,它是一类纠错能力很强的多进制bch码,它不但可以纠正随机错误、突发错误以及二者的组合,而且可以用来构造其他码类,因此rs码在卫星通信、数字电 视传输以及磁记录系统等许多领域得到广泛应用。rs编码算法原理是:rs码可以将原始数据分成n份,根据算法生成m份校验数据,并能用这n+m份中的任意n份数据还原出原始数据。即将原始的n份数据通过编码变为n+m份,之后可将n+m份数据可存放在不同的分布式节点上,如果有任意小于等于m份的数据失效,任然能够通过剩下的数据解码出原始数据。具体编解码原理如下:

(1)使用vandermonde(范德蒙德)矩阵作为编码矩阵,其中简单的范德蒙德矩阵形式如下:

.............................公式[1]

假设原始数据d为d1~dn,生成的校验数据为c1~cm,单位矩阵和范德蒙德矩阵进行组合得到生成矩阵a,将原始数据d和生成矩阵a相乘则可得到编码之后的存储数据,完成编码。具体表现形式如图4所示,其中b11~b35为范德蒙德矩阵的方子阵列。

(1)当存储的数据d1~dn,c1~cm中有些数据无法读取时,数据恢复过程如下:假设3个数据块d1、d4、c2丢失,则可以将这3个数据块对应的生成矩阵a和存储数据e中的行删掉,得到新的n*n阶生成矩阵a2和n*1阶存储数据e2,如图5所示。

由于生成矩阵是有范德蒙矩阵和单元矩阵的组合,所以,矩阵a的任意n行子集都可以保证线性无关。需要恢复的数据可以通过a2的逆矩阵a2-1和矩阵e2的乘积得到,如图6所示。由于任一矩阵与其逆矩阵相乘都会得到单位矩阵,那么d=a2-1*e2,如图7所示。

我们现在常用的raid5和raid6算法只是范德蒙矩阵算法的一个子集而已。当冗余数据只有一个的时候,就退化成了raid5算法,在实数域只需要将输入数据累加就可以得到校验码了。由上述rs编码算法的编解码原理可知, 若hdfs分布式存储系统采用该算法,假设n=10,m=4,则原来需要备份3份数据,现在根据rs(10,4)只需要1.4倍的数据容量就可以保证任何时候,只要能够在服务器上读到10份数据(即损失数据的份数小于等于4份),则能读取出原来的数据,大大降低了对存储容量的占用,相应其他的各种成本开销也可以等比例降低。

进一步地,在编码器进行rs编码时,若n份数据的大小并不完全相等,也就是说编码器中每个数据块的数据大小不相等,则还需要进行补齐处理,以使生成的校验编码块更加准确。具体地,将编码器的每个数据块的数据大小与第一阈值做比较,得到小于所述第一阈值的数据块;将所述小于所述第一阈值的数据块进行数据补零以满足所述第一阈值;将编码器的数据大小均满足所述第一阈值的n个数据块进行编码,得到对应的m个校验编码块。

考虑到hdfs是为支持大容量的流式数据操作而设计的,所以即使是一般的数据读写操作,涉及到的数据量都是比较大的,单个文件包含的块数量很大。为此,将hdfs上的文件划分为block大小的多个分块,文件的每个分块默认为64mb(一个map处理的数据大小)。与其他文件系统不同的是,hdfs中小于一个block大小的文件不会占据整个block的空间。本发明实施例中首先将文件划分为segment(段),该segment相当于segment_length个block的索引。每个segment由固定个数的连续的块组成。对于特定的文件,除了最后一个segment,其余每个segment包含的块个数是相同的,称为segment_length(段长度)。然后以segment为单位应用rs算法,有效的降低了计算强度。

其中,采用segment方式对hdfs系统处理的文件进行分段编码的具体方式为:初始化一个[n+m]*[64mb]的二维数组用于rs算法编码器。其中,n=segment_length,m为需要的校验编码块份数。m=1时,rs算法等同于raid5;m=2时则等同于raid6。rs算法编码器结构如图8所示。

因为在实际的存储过程中,单个的block的数据大小可能小于64mb,所以在进行rs算法编码时,通过补零将各block补齐至64mb,得到的校验编码块 的大小都是64mb。由于每个block的大小信息都保存在namenode上,解码时根据block的实际大小进行解码计算即可,补齐操作不影响解码。另外,对于block数小于segment_length的segment,编码时编码器中未被赋值的数据块保持初始值(全零),解码时的情况与之类似。rs算法编码器通过如上方式以字节为单位并行计算校验值,结果合并组成校验编码块,使得计算强度变小、效率提高。

较佳地,针对所述数据包,确定所述名字服务节点为每个数据包分配的一个数据存储节点的数据块信息;将每个数据包存储在所述分配的一个数据存储节点的数据块中。

与传统的hdfs相比,应用rs算法编码的hdfs文件写入过程的主要区别在于引入了rs算法编码器,编码器主要是以segment为单位对block计算并存储校验编码块。在本发明实施例中定义一个设定的数据结构,该数据结构将segment与block和校验编码块的对应关系,以及在segment中的相对位置等信息存储在namenode上。其中,编码器实现的rs算法编解码对客户端而言是透明的,客户端无需对校验编码块进行任何处理。具体地,本发明实施例进一步地通过提供图9所示的文件写入hdfs系统的过程进行阐述,包括:

步骤一:client(客户端)调用hdfs系统的distributedfilesystem对象的create方法,创建一个文件输出流fsdataoutputstream对象。

步骤二:通过distributedfilesystem对象对namenode进行rpc(远程调用),数据流被写入fsdataoutputstream对象的内部存储器中,数据流被封装成一个个packet(数据包),最大的packet为65557字节。

步骤三:根据缓存的packet的大小判断该数据流属于大文件的数据流,因此选择rs编码存储方案,启动编码器。

步骤四:client远程调用namenode的addblock方法分配第一个block,包含blockid、datanode和租约(lease)等信息,其中,datanode的个数为1。

步骤五:初始化rs算法编码器,数据流以packet(数据包)为单位缓存至 编码器的第一个block,同时基于socket(连接套)连接发送到namenode指定的datanode。

步骤六:接收到packet后,datanode发送ack(回应消息)。

步骤七:datanode成功接收到一个block后,对namenode进行rpc(远程调用),分配下一个block及datanode等信息。

步骤八:数据流继续以packet为单位缓存至编码器的下一个block,同时基于socket连接发送到namenode指定的datanode。

步骤九:rs算法编码器成功缓存了segment_length个block,开始进行rs算法编码,生成m个校验编码块。将segment、block、校验编码块的相关信息存储在namenode上。

步骤十:对namenode进行远程调用,分配block并指定datanode。

步骤十一:校验编码块以packet为单位发送到namenode指定的datanode。

步骤十二:文件的每个packet写完以后,client调用fsdataoutputstream对象的关闭方法关闭数据流,然后通知namenode文件写入完成。

进一步地,若所述待存储文件为小文件,则为所述小文件数据流封装得到的每个数据包分配至少三个数据存储节点的数据块;将所述每个数据包写入到所述分配的至少三个数据存储节点的数据块中。

也就是说,对于小于等于64mb的文件,不再使用编码器为该文件计算校验编码块,而是仍然使用原来的副本机制(默认值为3),第一个datanode接收完数据后,会通过同步方式把数据发送给其他datanode。这样做是因为对于较小的文件,本发明实施例提供的rs算法编码方案并不能起到节省存储空间的作用,反而降低了文件并行服务的能力,增加了block丢失时的恢复开销。

与上述文件的写入方法相对应,本发明实施例提供一种基于hdfs系统的数据读取方法流程示意图,参见图10所示,具体地实现方法包括:

步骤s201,接收文件的读取请求,并根据所述读取请求确定数据存储节点上存储所述文件的数据块。

步骤s202,若所述文件的数据块中存在无法读取的数据块,则获取与所述无法读取的数据块的索引相同的数据块及对应的校验编码块。

步骤s203,对与所述无法读取的数据块的索引相同的数据块及对应的校验编码块进行解码,恢复出所述无法读取的数据块。

具体地,所谓的索引可以指的是每个block所属的segment,也就是说对于某个segment的一组block及其校验编码块,如果只是校验编码块发生丢失,编码器重新进行编码计算即可恢复出该校验编码块;如果datanode上有block发生丢失,只要丢失的block和校验编码块的总数不超过校验编码块的总数,根据rs编码算法,可以用该组segment剩余的block和校验编码块进行恢复,即解码得到丢失的block和校验编码块。

例如,如图11所示的解码过程,当索引segmenx其中一个block丢失和一个校验编码块丢失的情况下,恢复过程与编码器一样,预先初始一个[n+m-l]*[64mb]的二维数组用于rs算法解码器。其中,n=segment_length,m为需要的校验编码块份数,l为丢失的block和校验编码块的份数,l<=m。同样地,在进行rs算法解码时,首先通过补零将存活的block补齐至64mb,然后根据丢失的block在其segment中的位置和namenode中记录的block大小计算丢失的数据块。解码的过程实际是求解一元一次方程组,与上述使用范德蒙逆矩阵的计算方法是等价的。恢复丢失的block后,如果有丢失的校验编码块,则再进行编码计算出丢失的校验编码块。

考虑到rs算法编码或者解码都需要进行大量的数学运算,但普通的数学乘法会导致校验编码块容量的累加。为此需要在gf(2^8)有限域,即迦罗瓦域(galoisfield)上进行四则运算。任意两个0~255之间的数字进行四则运算,结果仍在0~255之间且结果唯一,四则运算满足交换律和结合律。关于gf(2^8)有限域内的计算方法不再赘述。在本发明实施例中,使用查表法进行gf(2^8)域的乘除法运算,以降低算法的计算强度。

与传统的hdfs相比,应用rs算法解码的hdfs文件读取过程的主要区别 在于引入了rs算法编码器。当某block无法读取时,先不返回读写异常至client,而是初始化rs算法编码器,根据该block所在segment的block和校验编码块信息,读取存活的block和校验编码块,通过计算将block恢复。进一步地,本发明实施例通过提供图12所示的客户端从hdfs系统读取文件的过程进行阐述,包括:

步骤一:client调用distributedfilesystem对象的创建方法,创建一个文件输入流fsdatainputstream对象。

步骤二:client远程调用namenode,获取关于文件输入流对象的每个block的位置信息,包括:datanode列表、block大小等,并根据所述文件的大小,确定待读取的文件为大文件。

步骤三:namenode返回要读取的block所在的datanode信息。

步骤四:client从datanode读取block数据。

步骤五:如果block读写失败,初始化rs算法编码器,从namenode上获取该block所在segment的block和校验编码块相关信息。

步骤六:远程调用namenode的openinfo方法,获取存活的block和校验编码块的位置信息。

步骤七:namenode返回要读取的存活数据块所在的datanode信息。

步骤八:rs解码器装载存活的block或校验编码块。

步骤九:rs解码器装载所有存活的block和校验编码块后,如果满足条件,根据rs算法恢复丢失的block,返回给client。

步骤十:远程调用namenode的addblock方法分配新的block,用于存放恢复出来的block,同时更新该block的位置信息。

步骤十一:以packet为单位将恢复出来的block发送到namenode指定的datanode。继续读取下一个block,直至全部读取完成。

考虑到读取文件的时候,如果发现文件的完整性遭到破坏,再检查现有的数据情况,获取足够的数据块和校验编码块进行数据的恢复操作,对作业任务 的读取过程会产生一定的影响。所以本发明实施例进一步地在接收到文件读取请求之前,对文件存储在datanode上的数据块进行预检查。具体地:设定进行预检查的触发条件,包括:(1)对datablockscanner类检查到有数据块不可用;(2)检测到datanode挂掉或者磁盘不可用等事件;(3)client端发起数据完整性检查。根据触发条件,检查文件segment的完整性,及时修复丢失的数据块,保证文件的整体完整,减少对作业运行时的影响。

另外,对于没有做rs编码处理的小文件,检查副本数是否满足条件,如果副本数够,那么调用invalidateblock(函数接口),使该数据块无效;如果副本数不够,加block到corruptreplicasmap(函数接口)中,然后准备对好数据块进行复制。

基于相同的技术构思,本发明实施例还提供一种基于hdfs系统的数据存储装置,该装置可执行上述方法实施例。本发明实施例提供的装置如图13所示,包括:接收单元301、数据包存储单元302、建立索引单元303、编码单元304、校验编码块存储单元305,其中:

接收单元301,用于接收待存储文件的数据流并封装为数据包;

数据包存储单元302,用于若所述待存储文件为大文件,针对每个数据包,将所述数据包存储至名字服务节点为所述数据包分配的数据存储节点的数据块中,并将所述数据包缓存至编码器的数据块中;

建立索引单元303,用于为每n个缓存了数据包的数据块建立相同的索引,其中,针对同一数据包,存储了所述数据包的所述数据存储节点的数据块和所述编码器的数据块的索引相同;

编码单元304,用于将编码器的n个具有相同索引的数据块进行编码,得到与所述索引对应的m个校验编码块,n、m为正整数,m<n;

校验编码块存储单元305,用于确定数据存储节点上的存储所述校验编码块的数据块并存储。

较佳地,所述数据包存储单元302具体用于:针对所述数据包,确定所述 名字服务节点为每个数据包分配的一个数据存储节点的数据块信息;将每个数据包存储在所述分配的一个数据存储节点的数据块中。

进一步地,所述编码单元304具体用于:将编码器的每个数据块的数据大小与第一阈值做比较,得到小于所述第一阈值的数据块;将所述小于所述第一阈值的数据块进行数据补零以满足所述第一阈值;将编码器的数据大小均满足所述第一阈值的n个数据块进行编码,得到对应的m个校验编码块。

进一步地,若所述待存储文件为小文件,所述数据包存储单元302还用于:为所述小文件数据流封装得到的每个数据包分配至少三个数据存储节点的数据块;将所述每个数据包写入到所述分配的至少三个数据存储节点的数据块中。

与存储装置相对应,本发明实施例进一步地提供一种基于hdfs系统的数据读取装置,该装置可执行上述方法实施例。本发明实施例提供的装置如图14所示,包括:接收请求单元401、读取单元402、解码单元403、其中:

接收请求单元401,用于接收文件的读取请求,

读取单元402,用于根据所述读取请求确定数据存储节点上存储所述文件的数据块;

解码单元403,用于若所述文件的数据块中存在无法读取的数据块,则获取与所述无法读取的数据块的索引相同的数据块及对应的校验编码块;对与所述无法读取的数据块的索引相同的数据块及对应的校验编码块进行解码,恢复出所述无法读取的数据块。

进一步地,还包括判断单元404,用于根据所述文件的大小,确定待读取的文件为大文件。

综上所述,本发明实施例一方面实时接收待存储文件的数据流并封装成若干数据包,若所述存储文件为大文件,针对每个数据包,将该数据包存储在名字服务节点为所述数据包分配的数据存储节点的数据块中,同时将所述若干数据包缓存至编码器的数据块中,并为每n个缓存了数据包的数据块建立相同的索引,而且针对同一数据包,存储了所述数据包的所述数据存储节点的数据块 和所述编码器的数据块的索引相同。将编码器的n个具有相同索引的数据块进行编码,得到与所述索引对应的m个校验编码块,并将所述m个校验编码块写入至所述名字服务节点分配的数据存储节点的数据块中,校验编码块的作用是便于客户端在读取文件时,若数据库发生丢失,则在同一索引中的数据块丢失个数小于m个时,进行编码恢复。这样,客户端对于大数据的读写过程,并不需要占用非常庞大的数据存储节点,数据存储量小,进而降低了数据处理的成本。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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