流式数据的处理方法和装置转让专利

申请号 : CN201810929064.8

文献号 : CN109033439B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 江树浩鄢贵海

申请人 : 中科驭数(北京)科技有限公司

摘要 :

本发明涉及一种流式数据处理方法和装置,该方法包括以下步骤:按照时间维度将接收到的流式数据执行分片操作,得到多个数据片;根据时间窗口长度信息对各数据片执行添加头部数据集的操作,得到具有头部的分布式数据集;对所述具有头部的分布式数据集执行批处理操作;将批处理操作之后的具有头部的分布式数据集数据执行去头部数据操作,得到去除了头部的数据片。本发明实施例既能保证关联数据的完整性从而不会造成部分计算结果的缺失,而且去除了冗余数据而使得数据计算性能提高。

权利要求 :

1.一种流式数据处理方法,其特征在于,该方法包括以下步骤:按照时间维度将接收到的流式数据执行分片操作,得到多个数据片;

根据时间窗口长度信息对各数据片执行添加头部数据集的操作,得到具有头部的分布式数据集,所述头部数据集为时间维度长度为时间窗口长度的数据;

对所述具有头部的分布式数据集执行计算处理;

将计算处理之后的具有头部的分布式数据集数据执行去头部数据操作,得到去除了头部的数据片;

其中,所述多个数据片中第一数据片的头部数据集为空,所述第一数据片之外的其他数据片的头部数据为其前一数据片尾部的、时间维度为时间窗口长度的数据。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将去除了头部的数据片根据时间先后关系进行合成操作,形成输出数据流。

3.根据权利要求1所述的方法,其特征在于,执行所述分片操作后得到的多个数据片为固定时间长度的数据片。

4.根据权利要求3所述的方法,其特征在于,所述固定时间长度的数据片为不同时段的一维或多维数据,或者所述固定时间长度的数据片为RDD数据片。

5.一种流式数据处理装置,其特征在于,该装置包括:分片单元,其按照时间维度将接收到的流式数据执行分片操作,得到多个数据片;

加头部单元,其根据时间窗口长度信息对分片单元得到的各数据片执行添加头部数据集的操作,得到具有头部的分布式数据集,所述头部数据集为时间维度长度为时间窗口长度的数据;

执行单元,其对所述具有头部的分布式数据集执行计算处理;

去头部单元,其将计算处理之后的具有头部的分布式数据集数据执行去头部数据操作,得到去除了头部的有效数据片;

其中,所述多个数据片中第一数据片的头部数据集为空,所述第一数据片之外的其他数据片的头部数据为其前一数据片尾部的、时间维度为时间窗口长度的数据。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:合成单元,其用于将经去头部单元处理的去除了头部的有效数据片根据时间先后关系形成输出数据流。

7.根据权利要求6所述的装置,其特征在于:

所述分片单元和所述合成单元在第一处理器中实现,所述执行单元在第二处理器中实现,所述加头部单元和所述去头部单元在第一处理器或第二处理器中实现。

8.一种存储介质,其上存储有计算机程序代码,该程序代码被执行时实现如权利要求

1-4中任意一项所述的流式数据处理方法。

说明书 :

流式数据的处理方法和装置

技术领域

[0001] 本发明涉及数据处理技术领域,尤其涉及一种流式数据的处理方法和装置。

背景技术

[0002] 随着互联网、物联网等技术的发展,各行各业越来越离不开大数据,大数据的广泛应用使其成为引领众多行业技术进步、促进效益增长的关键支撑技术。根据数据处理的时效性,大数据处理可分为批式(batch)数据处理和流式(streaming)数据处理两类。其中,批式大数据又被称为历史大数据,流式大数据又被称为实时大数据。流式数据处理是对无边界数据集进行连续不断的聚合、处理和分析的过程。流式数据一般均带有时间戳,可以来自于股票市场的时序分析、企业交易、web流量和传感器数据等。与传统的批处理模式(如MapReduce)不同,针对流式数据的处理往往具有滑动时间窗口特性,即处理过程往往基于过去一段时间的数据而非所有数据,同时流式数据处理对实时性要求较高。图1示出了具有数据关联性的流式处理过程,即一个带有滑动窗口的流式数据处理过程。如图1所示,xn为输入数据流,yn为输出数据流。在该例中,时间窗口的长度为3,步长为1。以y3的计算过程为例,y3的计算依赖于x1~x3的输入数据,通过核函数f(x)得到输出数据流,同理,y4是由x2~x4这一窗口的输入数据计算得到。
[0003] 常用的流式数据处理框架包括Storm和Spark Streaming框架。Storm是原生的流式数据处理系统,其原生结构的封装程度较低,仅提供低层级的应用程序编程接口(API),并不支持基于时间窗口的处理操作。Spark框架是将流式数据计算分解成一系列短小的批处理作业的流式数据处理系统,其使用弹性分布式数据集(Resilient Distributed Datasets,RDD)作为基本的数据处理单元,因此需要将数据转化成RDD的转换操作而带来额外的性能开销,而且存在基于RDD的批处理不能保证批处理间数据关联的问题。要解决数据关联问题,窗口函数需要调用之前的数据,这就需要存储大量的中间数据(冗余数据),从而需要大量的存储空间。
[0004] 也就是说,现有技术并没有考虑到流式数据处理中数据的关联性,即某一时间点的处理结果需要根据之前一段时间的数据得到,如带有滑动窗口特点的计算,因此现有技术在执行这类计算时,会因为不能保证关联数据的完整性从而造成部分计算结果的缺失,或者因保留了大量冗余的数据而造成计算性能的下降。

发明内容

[0005] 有鉴于现有技术的上述问题提出,本发明的目的在于提供一种流式数据处理方法和装置,旨在解决现有技术中存在的一种或更多种的缺点,至少提供一种有益的选择。
[0006] 为了实现本发明的目的,本发明的实施方式提供了以下的方面。
[0007] 根据本发明的一方面,提供了一种流式数据处理方法,该方法包括以下步骤:
[0008] 按照时间维度将接收到的流式数据执行分片操作,得到多个数据片;
[0009] 根据时间窗口长度信息对各数据片执行添加头部数据集的操作,得到具有头部的分布式数据集,所述头部数据集为时间维度长度为时间窗口长度的数据;
[0010] 对所述具有头部的分布式数据集执行计算处理;
[0011] 将计算处理之后的具有头部的分布式数据集数据执行去头部数据操作,得到去除了头部的数据片;
[0012] 其中,所述多个数据片中第一数据片的头部数据集为空,所述第一数据片之外的其他数据片的头部数据为其前一数据片尾部的、时间维度为时间窗口长度的数据。
[0013] 优选地,所述方法还包括,将去除了头部的数据片根据时间先后关系进行合成操作,形成输出数据流。
[0014] 优选地,执行所述分片操作后得到的多个数据片为固定时间长度的数据片。
[0015] 优选地,所述固定时间长度的数据片为不同时段的一维或多维数据,或者所述固定时间长度的数据片为RDD数据片。
[0016] 根据本发明的另一方面,还提供一种流式数据处理装置,该装置包括:分片单元,其按照时间维度将接收到的流式数据执行分片操作,得到多个数据片;加头部单元,其根据时间窗口长度信息对分片单元得到的各数据片执行添加头部数据集的操作,得到具有头部的分布式数据集;执行单元,其对所述具有头部的分布式数据集执行计算处理;去头部单元,其将计算处理之后的具有头部的分布式数据集数据执行去头部数据操作,得到去除了头部的数据片。
[0017] 优选地,所述装置还包括:合成单元,其用于将经去头部单元处理的去除了头部的有效数据片根据时间先后关系进行合成造作,形成输出数据流。
[0018] 优选地,所述分片单元和所述合成单元在第一设备中实现,所述执行单元在第二设备中实现,所述加头部单元和所述去头部单元在第一设备或第二设备中实现。
[0019] 优选地,所述第一设备为CPU、GPU或FPGA;所述第二设备为CPU、GPU或FPGA。
[0020] 优选地,所述第一设备与所述第二设备为相同或不同的硬件设备。
[0021] 根据本发明的另一方面,本发明还提供一种存储介质,其上存储有计算机程序代码,该程序代码被执行时实现如前所述的流式数据处理方法。
[0022] 基于本发明的流式数据处理方法和装置,通过在对数据片进行计算处理之前对数据片添加头部信息(关联信息),保证了数据计算过程中数据的完整性,从而保证了数据处理的准确性。并且,通过在数据计算处理之后去除头部数据,去除了数据片中的冗余数据,可以防止占用大量的存储空间,可以提高系统的计算性能。
[0023] 本领域技术人员应当理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
[0024] 并且,应当理解,前述大体的描述和后续详尽的描述均为示例性说明和解释,并不应当用作对本发明所要求保护内容的限制。

附图说明

[0025] 参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。
[0026] 图1示出了具有数据关联性的流式数据处理过程。
[0027] 图2示出了本发明一实施例中流式数据处理方法的流程示意图。
[0028] 图3示出了本发明一示例中流式数据处理方法的流程示意图。
[0029] 图4示出了本发明一实施例中流式数据处理装置的结构框图。
[0030] 图5示出了本发明另一实施例中流式数据处理装置的系统架构示意图。
[0031] 图6示出了本发明另一实施例中流式数据处理装置的示例性结构示意图。

具体实施方式

[0032] 下面参照附图来说明本发明的实施方式。在所述的说明和附图中,详细公开了本发明的特定实施方式,指明了本发明的原理可以被采用的方式。应该理解,本发明在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本发明包括许多改变、修改和等同。
[0033] 应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
[0034] 针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
[0035] 应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
[0036] 发明人在进行流式数据处理研究时,发现现有技术中该项缺陷是由没有合理地对流式数据进行处理导致的,发明人经过研究发现,解决该项缺陷可以通过合理划分流式数据并分片执行处理的方法来实现。通过对流式数据分片,在头部添加必要的关联信息,分片执行处理任务,去除结果冗余信息等一系列操作,本申请可以增加流式数据的处理并行度,缓解传输带宽对数据传输效率的限制,提高计算效率。
[0037] 图2所示为本发明一实施例中流式数据处理方法的流程示意图。该方法可在一个或多个硬件设备上来实现,如一部分步骤可在控制节点上实现,另一部分步骤可在执行节点上实现,但本发明并不限于此。如图2所示,该方法包括以下步骤:
[0038] 步骤S210,按照时间维度对流式数据进行分片操作。
[0039] 本步骤是在接收到待处理的流式数据之后,对数据进行的操作。接收到的流式数据可以是一维数据,也可以是多维数据,此处,一维数据是指在时间维度上涉及一种数据内容,多维数据是指同一时间维度上涉及多种不同数据内容,例如,按照同一时间维度既包含股票发行价内容又包含股票成交价内容等。
[0040] 对流式数据进行分片操作可包括:按照时间维度将流式数据切分为有穷个固定大小的数据片,各固定大小的数据片可称之为切片分布式数据(Slicing Distributed Datasets,SDD)。在此,固定大小是按照时间维度来衡量的,即表示具有固定的时间长度。在本发明实施例中,固定的时间长度可以根据数据传输带宽或后续进行数据处理的执行单元的资源等因素来合理地确定。
[0041] 分片操作后,每个数据片是不同时间段的一维或多维数据,也可以是具有某种格式的数据,如spark中的RDD格式的数据。如果分片后的数据是RDD数据格式,意味着分片操作是按照时间维度将流式数据分解并转换为RDD数据格式。
[0042] 本发明实施例中,将分片操作后得到的各数据片称为输入SDD。
[0043] 步骤S220,根据时间窗口信息对各数据片执行添加头部的操作(Heading)。
[0044] 时间窗口信息可包括时间窗口长度等信息,该时间窗口长度可以指要得到某时间点的数据处理结果需要的输入流式数据的时间维度上的长度。时间窗口信息可以根据数据处理需要,如数据处理任务的滑动窗口特性等,预先确定。
[0045] 在一示例中,添加头部数据的操作可包括以下步骤:首先,构建要添加的头部数据(或称头部数据集),所谓头部数据集是指其时间维度长度为时间窗口长度,其他维度长度和单个数据片一致的数据。本发明实施例中,头部数据集的数值由数据片的位置n所决定,对于第一数据片(即n=1),其头部数据数值为0,即头部数据集为空;对于非第一数据片(即n≠1),其头部数据数值为其前一数据片(第n-1数据片)尾部的时间维度为时间窗口长度的数据。如果前一数据片为一维数据,当前数据片的头部数据值为一维数据,如果前一数据片为多维数据,则当前数据片的头部数据值为多维数据。
[0046] 然后,将头部数据集放置于原数据片的头部,增加了头部数据片的数据片我们称之为HDD(Headed Distributed Datasets,含头部分布式数据集)。加头部操作能够保证后续计算所需的流式数据的完整性,从而保证具有数据关联性的流式数据处理的正确性。
[0047] 每个HDD的数据量是有穷的且是固定的,通过合理设置每个HDD的数据量,可以使执行节点的计算性能达到最优,或在数据传输带宽受限的情况下,减少数据传输阻塞的情况,从而提高处理速度。
[0048] 在分片的数据加了头部之后,得到输入HDD,输入HDD可被传送到执行单元中,由批处理算子执行具体计算,如步骤S230所示。
[0049] 步骤S230,对加头部后的HDD数据进行处理。
[0050] 可利用批处理算子对加头部后得到的输入HDD数据进行计算处理。如果本步骤和前面的步骤不是在同一个节点上实现,如步骤S110-S120在控制节点中实现,本步骤要在执行节点中实现,则本步骤中,可使用预先定义的传输算子,依次将各个输入HDD从控制节点传递给执行节点上的批处理算子,由批处理算子执行具体的计算。
[0051] 其中,传输算子是维持控制节点和执行节点之间数据通信的算法,如在cuda语言中的cudaMemcpy函数及相关的方法。
[0052] 批处理算子是执行节点上对流式数据执行的具体计算,它可以由控制节点通过传输算子传递给执行节点,也可以在执行节点上预先定义。在本发明实施例中,添加了头部数据的输入HDD相当于为每个数据片添加了具有关联性的数据,保证的计算所需的流式数据的完整性。批处理算子对输入HDD的计算处理可以同现有技术中有滑动窗口的流式数据处理过程相同,如图1所示,在此不再赘述。
[0053] 批处理算子以固定流式数据大小对输入HDD执行具体计算后,批处理算子的计算结果我们称之为输出HDD。
[0054] 在对分片之后的数据片添加头部数据之后,数据片就可以如图1那样与其前一数据片建立关联,基于该关联关系,通过核函数可得到输出数据流。但在本发明实施例中,无需冗余地存储滑动时间窗口长度的在先数据片,而仅需对数据片添加头部即可,并且该头部可以在后续步骤中予以去除。
[0055] 可选地,批处理算子计算结束后,可通过预定义的传输算子向控制节点返回输出HDD(如果后续步骤S240仍在执行节点进行,则无需向控制节点返回输出HDD)。这一操作保证了数据的有效传输。
[0056] 步骤S240,对处理后的数据进行去头部操作。
[0057] 具体地,本步骤中,对步骤S230处理后得到的输出HDD进行去头部操作(De-heading),得到输出SDD。
[0058] 该去头部操作可包括:将每个输出HDD的数据片头部数据集去除,剩余的数据部分信息即为真正有效的数据集,即输出数据片,可称为输出SDD。其中,去除的头部数据集的时间长度可以由时间窗口决定,即去除的头部数据的时间维度可为时间窗口长度。这一操作将输出结果中无效数据去除,保证了数据的有效性和准确性。
[0059] 在进行去头部操作后,可以得到按照时间顺序排列的有效数据片序列。
[0060] 本发明实施例中的对输出HDD去除头部的步骤可以去掉冗余数据,从而提高计算性能。
[0061] 步骤S250,进一步地,可将执行步骤S240的去头部操作后输出的有效数据片按照时间顺序进行合成,合成为流式数据。
[0062] 该合成操作可包括:将各个有效数据片根据时间先后关系结合在一起形成输出SDD。这一操作可将输出结果重新整合成流式数据。
[0063] 本发明实施例中,每个SDD是不同时间段的一维或多维数据,也可以是具有某种格式的数据,如spark中的弹性分布式数据集RDD(Resilient Distributed Dataset)。SDD的数据大小是固定的,需要预先设定,其数值可以是随机的,也可以根据具体应用决定,例如,可以根据执行节点上最优执行效率对应的输入数据大小作为设定的HDD大小,然后用HDD数据大小减去时间窗口大小,得到SDD的时间维度的长度,SDD的其他维度大小与原数据流保持一致;当然,SDD的数据大小也可以由用户设定。
[0064] 基于如上所述的流式数据处理方法,通过对流式数据分片,添加必要的头部信息(关联信息),分片执行处理任务,去除结果冗余信息等一系列操作,可以增加流式数据的处理并行度,缓解传输带宽对数据传输效率的限制,提高计算效率。也就是说,本发明实施例既能保证关联数据的完整性从而不会造成部分计算结果的缺失,而且去除了冗余数据而使得数据计算性能提高。
[0065] 本发明实施例中,将流式数据分为固定大小的数据片的优势在于:(1)可以使得后续流式数据处理任务能够在执行单元资源或者数据传输带宽有限的情况下仍能够被完成;(2)可以根据具体应用和执行单元的资源特点选择最优化执行性能的数据大小;(3)可选择地,可以将流式数据处理任务并行化。
[0066] 此外,本发明实施例中,通过在对数据片进行计算处理之前对数据片添加头部信息(关联信息),保证了数据计算过程中数据的完整性,从而保证了数据处理的准确性。并且,通过在数据计算处理之后去除头部数据,去除了数据片中的冗余数据,可以防止占用大量的存储空间,可以提高系统的计算性能。
[0067] 图3所示为流式数据处理方法的具体示例的流程示意图。该流程针对金融领域中股市股票的价格波动率,数据处理的目的是要执行排名(rank)操作,以判断当天波动率处于最近一周的排名值。在本示例中个,时间窗口设定为2天,步长设定为1天,原始流式数据的时间长度为12天,SDD数据集的时间长度由用户设定为4天,则本申请的执行流式数据处理方法的具体实施例包含以下步骤:
[0068] 步骤S310,对接收到的12天的流式数据执行分片操作,将流式数据切分为3个SDD数据片,每个SDD包含4天的数据流。
[0069] 所接收到的12天的流式数据为12天的股票的价格波动率数据,其为一维数据。另选地,该12天的流式数据还可以是多维数据,如为12天的股票的价格波动率+12天的收益率和或价格(如成交价、最高价、最低价等)数据等。
[0070] 步骤S320,对各SDD数据片执行添加头部数据集操作(Heading),头部数据集时间长度为2天。
[0071] 对于第1个SDD数据片,其头部数据数值为0,即头部数据集为空;对于非第1数据片,其头部数据数值为其前一数据片(第n-1数据片)尾部2天的流式数据。得到的输入HDD共3个,每个包含6天的数据流。
[0072] 步骤S330,依次将各个输入HDD传递给定义在固定流式数据大小的批处理算子以执行具体计算,得到输出HDD,共3个,每个包含6天的数据流。
[0073] 例如,使用预先定义的传输算子,依次将各个输入HDD传递给固定流式数据大小的批处理算子以执行具体计算,即排名(rank)操作,得到当天波动率处于最近一周的排名值。批处理算子计算得到输出HDD,共3个,每个包含6天的数据流。
[0074] 步骤S340,对输出HDD执行去头部数据操作(De-heading),每个输出HDD所去除的头部数据时间长度为2天。得到输出SDD数据片,共3个,每个包含4天的数据流。
[0075] 去处头部操作后得到的3个SDD数据片为按照时间排序的数据片。
[0076] 步骤S350,对去除头部之后得到的有效数据片执行合成操作,合成结果数据流,共12天的流式数据。
[0077] 如上示例中,基于在数据片头部添加的关联数据既可以进行准确的任务处理,又可以通过及时去掉头部数据保证系统的计算性能。
[0078] 与本发明提供的流式数据处理方法相对应地,提供了一种流式数据处理装置,如图4所示,该装置包括:分片单元410、加头部(Heading)单元420、执行单元430、去头部(De-heading)单元440和合成单元450。
[0079] 分片单元410用于对接收到的流式数据执行分片操作。该分片操作包括:将流式数据切分为有穷个固定大小的数据片SDD。该分片单元410可实现前述的步骤S210和S310。
[0080] 加头部单元420用于根据时间窗口长度信息对各数据片执行添加头部数据集操作。该添加头部数据集操作包括:根据时间窗口长度构建要添加的头部数据集,然后将头部数据集放置于原数据片的头部,得到输入HDD。该加头部单元420可实现前述的步骤S220和S320。
[0081] 执行单元430用于对具有头部的分布式数据集执行计算处理,得到输出HDD。具体地,执行单元430可依次将各个输入HDD传递给定义在固定流式数据大小的批处理算子,以执行具体计算并通过传输算子返回输出HDD。执行部单元430可实现前述的步骤S230和S330。
[0082] 去头部单元440用于对输出HDD执行去头部数据操作,得到去处了头部的数据片。该去头部操作可包括:将每个输出HDD数据片头部数据集去除得到有效的输出SDD数据片。
去头部单元440可实现前述的步骤S240和S340。
[0083] 合成单元450用于将输出SDD数据片按照时间顺序合成为输出数据流。合成单元450可实现前述的步骤S250和S350。
[0084] 如上描述的各个单元既可以通过软件的方式实现,也可以通过硬件的方式实现,所描述的单元也可以设置在处理器中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,Heading单元还可以称为“为数据片增加头部数据的单元”,本发明并不限于具体的称谓。
[0085] 图4中示出的各个单元可以在在一个硬件设备上实现,也可以在多个硬件设备上实现。图5示出了本发明实施例中流式数据处理装置的硬件系统架构示意图。如图5所示,该系统架构可以包括控制节点和至少一个执行节点(图5中示出了多个执行节点)。控制节点和执行节点之间可以通过数据接口或者网络通信,数据接口可以包括PCIE、USB等,网络接口可以包括各种连接类型,例如有线、无线通信链路或光纤电缆等。
[0086] 控制节点可以是具备支持接收、分片、合成数据流的任意计算机硬件系统,包括但不限于中央处理器(CPU)、图形处理器(GPU)或现场可编程门阵列(FPGA)等。
[0087] 执行节点可以是具备计算能力的任意计算机硬件系统,包括但不限于CPU、GPU、FPGA等可执行硬件或云计算中的服务节点等。
[0088] 控制节点可以将对数据的处理任务分发给执行节点执行,各执行节点负责具体执行处理任务。
[0089] 在本发明一实施例中,上述分片单元410和合成单元450可在控制节点上完成。加头部单元420和去头部单元440可以在控制节点上完成,也可以在执行节点上完成,执行单元430的操作在优选地执行节点上完成。
[0090] 上述控制节点和执行节点可以在同一计算机设备上实现,也可以在多个计算机设备上实现。或者说,上述各个单元可以在同一计算设备中实现,如所有单元均在CPU处理器上实现;也可由主从设备结构实现,如控制节点在CPU等实现,而执行节点由GPU、FPGA或ASIC加速器等实现。另选地,上述各单元也可由如Spark等分布式系统结构实现。
[0091] 图6示出了本发明一实施例中流式输出处理装置的示例性结构示意图。如图6所示,流式输出处理装置具有处理器(如CPU)和存储器(存储部分),存储器中存储有计算机程序,在计算机程序被CPU运行是可实现控制节点的操作。因此,在图6所示的示例中,控制节点由CPU处理器通过软件实现,执行节点由硬件FPGA编程实现。控制节点和执行节点之间的传输算子由专用的驱动和PCIE接口对接。
[0092] 本公开还涉及存储介质,其上可以存储有计算机程序代码,当程序代码被执行时可以实现本发明的流式数据处理方法的各种实施例,该存储介质可以是有形存储介质,诸如光盘、U盘、软盘、硬盘等。
[0093] 本领域普通技术人员可以意识到,结合本文中所公开的实施方式描述的各示例性的单元及方法步骤,能够以硬件、软件或者二者的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0094] 结合本文中所公开的实施方式描述的方法或算法的步骤可以用硬件(计算机等逻辑装置)执行的软件来实现。所述软件在被执行时,可以使所述硬件(计算机等逻辑装置)实现上述的方法或其组成步骤,或使所述硬件(计算机等逻辑装置)充当上面所述的本发明的装置部件。
[0095] 软件可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0096] 以上描述的实施例都是示例性的,不是对本发明的限制,本领域技术人员根据本发明的精神,可以想到各种变型和修改,这些变型和修改也在本发明的范围内。