分布式映射化简网络的制作方法

文档序号:13215949阅读:142来源:国知局
技术领域本发明一般地涉及分布式网络,更具体地说,涉及分布式网络上的映射化简服务的管理。

背景技术:
大型数据处理作业需要同样大的计算、网络和存储资源的可用性。应用于相对大的数据集的数据处理技术的一个实例是映射化简范式。映射化简是一种编程模型,其用于针对计算机群集使用并行算法处理大型数据集。映射化简允许在并行处理数据的数百或数千个节点上实现可伸缩性。与包括很少的昂贵和专用资源的节点相反,包括相对廉价、低容量资源的大量节点可以用于此类大型数据处理作业的并行处理。并行执行可以采用同步或松散并行方式。节点可以极为靠近(例如,在同一网络上以及在同一建筑物中)并且使用几乎相同的硬件,在这种情况下节点可以被称为群集;或者,节点可以在地理上分散并且使用更异构的硬件,在这种情况下节点构成网格。映射化简框架包括两个不同阶段:映射功能和化简功能。映射功能获得被组织为(键,值)对的输入数据。对于一个域中具有某种类型的数据对,映射功能将该数据对转换为另一个域中的对列表。将映射功能并行应用于输入数据集中的每个数据对,从而针对每个调用产生对列表。在映射功能完成之后,整体框架从所有列表中收集具有相同键的所有对,并且将它们分组在一起,从而针对每个键创建一个组。然后将化简功能并行应用于每个组,这在同一域中产生值集合。收集化简功能结果作为所需结果列表。因此,映射化简框架将(键,值)对列表转换为值列表。典型映射化简作业的一个实例是获得包括系列传感器数据的输入数据集,这些传感器数据提供一组城市的一个月内的最大每日温度。为了跨月内所有数据文件查找每个城市的最大温度,按如下方式应用映射化简:分配与文件数量一样多的映射任务,并且每个映射任务针对一个月内在其输入文件中列出的每个城市查找最大温度。然后,化简步骤从映射任务输出中将每个城市(即,城市是化简功能的键)的所有数据收集到一个组中,并且从每个城市的数据组确定该城市在该月内的最大温度。在化简步骤完成之后的输出是城市列表,以及每个城市在一个月内的最大温度。可以在任何种类的计算或娱乐设备上执行数据处理,这些设备例如包括台式计算机、游戏机、平板计算机、智能电话、机顶盒以及网际协议(IP)流设备。典型家庭可能具有此类设备的任何数量的任何组合。设备可以在计算、存储器、存储和网络能力方面变化很大,并且可以具有相对低的利用率(即,大部分时间都闲置)。进一步,此类设备能够进行因特网连接,并且当未使用时未被关闭,所以设备大部分时间都连接到网络。

技术实现要素:
各实施例包括一种用于分布式映射化简网络的方法、系统和计算机程序产品。一个方面包括接收包括时间期限的映射化简作业的描述。另一个方面包括从所述分布式映射化简网络的多个节点中确定用于所述映射化简作业的一组作业节点,其中所述多个节点中的每一个具有关联的相应成本价值和地理位置。另一个方面包括从所述多个节点中选择一组候选节点,其中基于成本价值选择所述一组候选节点。另一个方面包括确定由所述一组候选节点执行所述映射化简作业所需的时间量。另一个方面包括将所确定的时间量与所述时间期限相比较。另一个方面包括基于所确定的时间量不满足所述时间期限:基于所述一组候选节点的特定节点的所述地理位置,选择所述特定节点以便替换;基于所述多个节点中的下一个节点的所述成本价值,选择所述下一个节点;以及使用所述下一个节点替换所述一组候选节点中的所述特定节点。附图说明在说明书结尾处的权利要求中具体指出并明确要求保护了被视为实施例的主题。从下面结合附图的详细描述,各实施例的上述和其它特性和优点将显而易见,这些附图是:图1示出根据一个实施例的分布式映射化简网络;图2示出根据一个实施例的用于在分布式映射化简网络中执行映射化简作业的方法;图3示出根据一个实施例的用于在分布式映射化简网络中的作业节点选择的方法;图4示出根据一个实施例的分布式映射化简网络中的作业节点选择的一个实例;图5示出根据一个实施例的用于在分布式映射化简网络中的节点管理的方法;图6示出根据一个实施例的分布式映射化简网络中的子群集的一个实例;图7示出根据一个实施例的可以与分布式映射化简网络结合使用的计算机系统的一个实例。具体实施方式提供了分布式映射化简网络的实施例,并且下面详细讨论了示例性实施例。分布式映射化简网络可以利用作为节点连接到因特网的相对大量的可用消费者计算和娱乐设备。分布式映射化简网络包括编排器(orchestrator),其接收映射化简作业,并且以这样的方式确定分布式映射化简网络中的一组节点:针对成本和时间两者优化作业的完成。编排器节点维护关于可用于分布式映射化简网络中的每个节点的相应节点简档以便确定作业分配。每个节点简档可以指定使用节点资源的特定价格,以及节点的能力和可用性。分布式映射化简网络可以针对任何适当类型的输入数据集处理映射化简作业。输入数据集例如可以是任何通常可用的公共数据,例如国内销售、法庭记录、县记录、国家航空航天局(NASA)图像以及选举结果。其它输入数据集实例包括诸如人口普查数据、大学数据、实验数据之类的政府数据,以及诸如大气状况传感器数据、降雨、积雪及降雪测量、地下水位测量和天气预报之类的天气相关数据。其它实例包括游戏数据,例如游戏模拟、游戏策略和游戏作弊代码;位置特定数据,例如交通状况、停车场占用和零售销售;匿名数据,例如临床数据和流行病学数据;以及公开可用的信源,例如股票交易数据。可以在分布式映射化简网络中指定主节点。在某些实施例中,主节点是由分布式映射化简网络的操作者拥有的设备。在某些实施例中,分布式映射化简网络中随着时间的推移被确定为相对可靠的节点可以被选择作为主节点。在某些实施例中,主节点最初可以是由网络操作者拥有的地理上分散的专用设备,并且随着时间的推移,例如在其节点简档中具有高选择得分的节点被选择作为附加或替换主节点。当将作业分配给一组作业节点时,可以针对每个作业节点确定分布式映射化简网络中的附加节点子群集。子群集中的节点彼此具有高亲和性;例如,子群集中的节点可以在地理上相对靠近,并且可以提供类似的服务水平和定价。可以将特定作业节点的输入数据分配给该特定作业节点子群集中的其它节点,以使得如果特定节点发生故障,则其它节点可以充当故障转移节点。可以选择子群集中的节点以使得它们在不同电力和/或网络网格上,以便避免子群集中的多节点故障。图1示出分布式映射化简网络100的一个实施例。分布式映射化简网络100包括编排器模块101,其与多个节点107A-N通信,这些节点构成分布式节点网络106。编排器模块101接收映射化简作业描述,并且基于作业描述和节点107A-N的特征,从分布式节点网络106中选择节点以便执行映射化简作业。编排器模块101包括节点网络管理模块102、作业建模模块103、成本/时间确定模块104和节点简档维护模块105。映射化简作业描述指定完成时间期限、期望输出数据和数据源(例如数据源108),该数据源可以相对于分布式节点网络106和编排器模块101位于任何适当的位置。作业描述可以还包括输入数据大小,以及用于执行作业的节点数量和节点类别。分布式节点网络106内的节点107A-N中的某些节点可以是由分布式映射化简网络100拥有的设备,而节点107A-N中的其它节点可以由其它实体拥有,这些实体已提交其节点以便由分布式映射化简网络100使用。由分布式映射化简网络100拥有的任何节点可以用于从客户机接受映射化简作业,充当作业的主节点,充当作业的编排器节点(例如编排器模块101),并且还可以由作业建模模块103使用以便估计作业资源要求。节点网络管理模块102跟踪执行作业,跟踪被认为在网络中的节点是在线还是离线,就使用提供者资源的单位时间成本而言查询提供者节点,并且基于各种准则建立节点的索引。作业建模模块103对执行输入作业所需的预计资源进行建模。作业建模模块103由成本/时间确定模块104调用,成本/时间确定模块104实现下面讨论的图3的方法300,以便从分布式节点网络106中选择节点以执行给定作业。节点简档维护模块105维护分布式节点网络106中的每个节点107A-N的简档。每个节点简档包括诸如以下项的节点信息:单位时间的使用成本(对于CPU和存储使用)、节点类别(基于发布和/或观察的存储、网络和CPU能力)、与其它节点的亲和性值(多个)(其可以基于成本、节点类别和/或地理相似性)、电网简档(其可以使用来自节点的本地公共事业的公开可用数据生成)、可用性、地理位置以及资源约束(基于发布和/或历史信息)。节点简档中的某些信息(例如,成本)可以由节点的所有者提供,而其它信息可以由节点简档维护模块105基于对节点的观察来确定。还可以针对节点确定整体选择得分,该得分组合了可用性和可靠性,即,节点在不发生故障或先占其资源的情况下成功完成分配给它的作业的可能性。可以基于由节点执行的作业的历史、这些作业是完成还是放弃、并且进一步基于节点的当前在线时间(即,自上次节点故障以来的时间)来确定选择得分。当编排器模块101接收映射化简作业时,节点网络管理模块102可以生成按成本进行排序的所有节点(这些节点是用于执行作业的候选节点)列表。基于由节点简档维护模块105维护的节点简档中的数据确定该列表,所述数据包括但不限于:在估计的作业持续时间内的可用性,其中使用先前历史和/或粗粒度作业分析估计作业持续时间;适于作业的节点类别中的成员;以及高于选择得分阈值的选择得分。然后由成本/时间确定模块104基于在满足作业的时间约束的同时最小化向客户收取的执行作业的成本,从该列表中选择一组节点。除了在最初接收作业时选择一组作业节点之外,在某些实施例中,在由所述一组作业节点完成映射功能之后,可以选择第二组作业节点以便执行化简功能。在此类实施例中,第二组节点中的节点数量可以等于映射功能的输出中的键(key)的数量。图1仅出于示例性目的示出;分布式节点网络(例如分布式节点网络106)中的节点可以以任何适当的方式互连,并且连接到编排器模块101和数据源108。进一步,分布式节点网络(例如分布式节点网络106)可以包括任何适当数量和类型的节点,并且节点可以在任何适当的物理位置中。进一步,分布式映射化简网络100可以包括任何适当数量的编排器模块,例如编排器模块101。图2示出用于在分布式映射化简网络中执行映射化简作业的方法200的一个实施例。针对图1讨论图2。首先,在方框201,由编排器模块101从请求者接收映射化简作业描述。作业描述包括以下信息:数据大小、数据位置(例如,数据源108)、期望节点数量(K)、期望节点服务类别以及完成期限。然后,在方框202,作业建模模块103针对来自数据源108的作业数据子集运行作业,以便对完成作业所需的运行时间和数据传输量进行建模。接下来,在方框203,基于由编排器模块101执行的作业描述,基于由节点简档维护模块105维护的节点简档中的信息,执行分布式节点网络106中的可用节点的初始过滤。初始过滤可以返回分布式节点网络106中的节点列表,这些节点在作业描述中指定的期望节点服务类别中。方框203的初始过滤还可以排除选择得分低于阈值的节点、断电区域中的节点,或者不可用于如基于方框202的建模确定的估计的作业持续时间的节点。然后,在方框204,基于成本例如从最廉价到最昂贵对在方框203生成的过滤后的节点列表进行排序。在节点简档中指定每个节点的成本。在方框205,从排序后的列表中选择如由作业描述指定的K个节点,这些节点能够以最低成本在期限之前执行作业。针对图3进一步详细讨论方框205。最后,在方框206,由K个选定节点执行作业,并且将作业结果提供给请求者。在执行作业之前,在方框206针对作业选择主节点。在某些实施例中,可以从作业节点中选择主节点。在某些实施例中,分布式映射化简网络针对每个节点类别拥有地理上分散的可信节点,并且从这些网络拥有的节点中选择主节点。在某些实施例中,可以选择未由网络拥有的相对可靠的提供者节点(例如,由相对高的选择得分标识)作为主节点。执行作业包括将输入数据块分配给每个作业节点,由每个选定作业节点针对其相应输入数据块执行映射处理,后跟映射数据基于由映射功能输出的键在节点之间的数据传输,并且然后由每个选定节点针对相应映射数据块进行化简处理。主节点可以监视原始输入数据和映射数据在节点之间的分配。在方框206的某些实施例中,执行映射处理的同一组作业节点还用于化简处理。在某些实施例中,在完成映射处理之后,使用图3的方法300确定另一组M个最廉价节点,其中M是由映射处理输出的键和键列表的数量,并且在方框206使用这M个最廉价节点执行化简处理。在完成化简处理之后,主节点具有处理作业的结果,这些结果被返回到提交作业描述的作业请求者。图3示出如在图2的方框205执行的节点选择的一个实施例。首先,在方框301,将当前节点组设置为等于在方框204生成的排序后的节点列表中的K个最廉价节点,K是在作业描述中指定的节点数量。接下来,在方框302,确定由当前节点组完成作业所需的时间量。基于在方框202生成的建模后的运行时间和数据传输量,并且还基于当前节点组中的每个节点的节点简档来进行该确定。然后,在方框303,将在方框302确定的时间量与在作业描述中指定的期限相比较。如果在方框303确定该时间量大于期限,即,在期限之前不能完成作业,则流程从方框303继续到方框304。在方框304,针对K个节点中的每一个,确定距其它K个节点的平均地理距离,并且然后确定K个节点中距其它节点最远的一个节点。然后,在方框305,由排序后的列表中的下一个最廉价节点替换在方框304确定的当前节点组中的最远节点,并且流程返回到方框302。重复方框302-305,直到在方框303,确定在方框302确定的时间量小于或等于期限,即,当前节点组能够在期限之前完成作业,此时流程在方框306继续。在方框306,将当前节点组分配给作业,并且方法300结束。图4示出图3的方法300的执行的一个实例400。在图4的实例400中,在作业描述中指定的节点数量K是3,并且期限是5个小时。节点401A-G是分布式网络(例如分布式节点网络106)中的节点子集。节点401A-G中的每一个在与作业描述相匹配的服务类别中。进一步,节点401A-G按照从最廉价节点401A到最昂贵节点401G的顺序进行排序。在方法300的第一次迭代中,选择节点401A-C作为方框301的当前节点组,并且在方框302确定的时间量是6。因为6大于期限5,所以流程从方框303继续到方框304,其中确定节点401B距其它节点最远。因此,在方法300的下一次迭代403中,由节点401D替换节点401B。在迭代403中,确定的时间量是5.3并且最远节点被确定为节点401C。在迭代404中,由节点401E替换节点401C,确定的时间量是5.8,并且最远节点被确定为节点401E。在迭代405中,由节点401F替换节点401E,时间量被确定为5.2,并且节点401A被确定为最远节点。在迭代406中,由节点401G替换节点401A,确定的时间量是4.7,这小于期限5,因此将作业分配给节点401D、401F和401G。图5示出用于管理分布式映射化简网络的方法500的一个实施例。方法500可以在图1的编排器模块101中实现。在方框501,编排器模块101从希望是分布式节点网络106的一部分的节点接收节点描述。节点描述包含地理位置信息、使用节点的单位时间成本,并且可以还包括关于节点的能力(即,CPU、存储和网络资源)和可用性的信息。节点简档维护模块105可以针对节点建立简档,其包括诸如以下各项的其它信息:节点类别(基于节点的CPU、存储和网络资源来确定);基于成本和地理位置相似性的与任何附近节点的亲和性值、电网简档(例如中断区块、网格网络),以及反映节点的整体可用性和可靠性的选择得分。在方框502,节点简档维护模块105在分布式节点网络106的操作期间监视节点的性能。在方框503,基于监视更新节点的节点简档。例如,可以基于观察的节点可用性和在线时间,更新节点简档中的可用性信息。接下来,在方框504,对于为其选择一组节点(如在图2的方框205执行)的作业,基于由节点简档维护模块105维护的节点简档,针对每个选定节点确定相应节点子群集。这些子群集在作业的执行期间用于故障转移。基于选择彼此具有高亲和性值的节点组来确定节点子群集。对于相同节点类别中的节点,这些亲和性值将相对高,在成本、可用性和位置方面情况类似。进一步,可以分配子群集以使得同一子群集中的节点在不同电力和网络网格上,从而影响子群集中的一个节点的中断将不会影响同一子群集中的另一个节点。在方框505,还将指派给特定作业节点的作业数据子集分配给该特定作业节点的子群集中的节点。在方框506,当作业节点在作业期间发生故障时,已经具有故障节点的作业数据的作业节点子群集中的其它节点之一接管该作业节点。在分布式节点网络106的操作期间,按需重复方法500的各个方框。图6示出具有子群集601A-N的分布式节点网络600的一个实施例。作业节点602A-N是指派给特定作业的作业节点;从分布式映射化简网络100中的多个节点中选择作业节点602A-N,如上面针对图2和图3描述的那样。对于作业节点602A-N中的每一个,在图5的方框504选择相应子群集601A-N。节点603A-E均与作业节点602A具有相对高的亲和性值;节点604A-E均与作业节点602B具有相对高的亲和性值,并且节点605A-E均与作业节点602N具有相对高的亲和性值。在子群集601A-N的每一个中,节点可以在不同电力或网络网格上,以便降低电力或网络故障将影响子群集中的多个节点的可能性。在针对作业选择一组作业节点602A-N之后,但在开始映射处理之前,分配子群集601A-N。在开始映射处理之前,在图5的方框505将分配给作业节点602A-N中的每个作业节点的输入数据复制到该节点的相应子群集中的所有其它节点。因此,如果该作业节点发生故障,则从故障作业节点的子群集中选择新的作业节点,并且在图5的方框506重新开始本地作业。例如,编排器模块101/606还将分配给作业节点602A的相应作业输入数据块分配给节点603A-E中的每一个。在映射处理完成之后,在作业节点602A-N之间移动已映射数据,并且针对已映射数据执行化简处理。在某些实施例中,执行映射处理的同一组作业节点602A-N用于化简处理。在某些实施例中,在完成映射处理之后,使用图3的方法300确定另一组M个最廉价节点,其中M是由映射处理输出的键的数量,并且使用这M个最廉价节点执行化简处理。在完成化简处理之后,主节点具有处理作业的结果,这些结果被返回到提交作业描述的作业请求者。表1是示出图3的方法300的伪代码的一个实例。表1:确定作业节点组的伪代码实例图7示出可以由分布式映射化简网络的示例性实施例使用的计算机700的一个实例。上面讨论的各种操作可以利用计算机700的能力。计算机700的一个或多个能力可以结合在此处讨论的任何元件、模块、应用和/或组件中。例如,计算机700的实施例可以包括如上讨论的分布式节点网络中的编排器模块、数据源或节点中的任何一个。计算机700包括但不限于PC、工作站、膝上型计算机、PDA、掌上设备、服务器、存储装置等。通常,在硬件架构方面,计算机700可以包括一个或多个处理器710、存储器720以及一个或多个I/O设备770,它们经由本地接口(未示出)在通信上耦合。本地接口例如可以是但不限于一个或多个总线或者其它有线或无线连接,如所属技术领域公知的那样。本地接口可以具有附加元件,例如控制器、缓冲器(高速缓存)、驱动器、中继器和接收器,以便实现通信。进一步,本地接口可以包括地址、控制和/或数据连接,以便在上述组件之间实现适当的通信。处理器710是用于执行可以存储在存储器720中的软件的硬件设备。处理器710可以是几乎任何定制或商用处理器、中央处理单元(CPU)、数字信号处理器(DSP),或者是与计算机700关联的数个处理器之间的辅助处理器,并且处理器710可以是基于半导体的微处理器(以微芯片形式)或宏处理器。存储器720可以包括以下各项的任何一个或组合:易失性存储元件(例如,随机存取存储器(RAM),例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)和非易失性存储元件(例如,ROM、可擦式可编程只读存储器(EPROM)、电可擦式可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带、压缩盘只读存储器(CD-ROM)、磁盘、软盘、盒带、卡带等)。此外,存储器720可以包括电、磁、光和/或其它类型的存储介质。注意,存储器720可以具有分布式架构,其中各种组件可以彼此远离,但可以由处理器710访问。存储器720中的软件可以包括一个或多个单独程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。根据示例性实施例,存储器720中的软件包括合适的操作系统(O/S)750、编译器740、源代码730和一个或多个应用760。如图所示,应用760包括多个用于实现示例性实施例的特性和操作的功能组件。根据示例性实施例,计算机700的应用760可以表示各种应用、计算单元、逻辑、功能单元、过程、操作、虚拟实体和/或模块,但应用760并不意味着限制。操作系统750控制其它计算机程序的执行,并且提供调度、输入输出控制、文件和数据管理、存储器管理以及通信控制和相关服务。发明者构想用于实现示例性实施例的应用760可以适用于所有商用操作系统。应用760可以是源程序、可执行程序(目标代码)、脚本,或者是包括一组要执行的指令的任何其它实体。如果是源程序,则程序通常经由编译器(例如编译器740)、汇编器、解释器等翻译,这些组件可以包括也可以不包括在存储器720中,以便结合O/S750正确运行。此外,应用760可以被编写为面向对象的编程语言,其具有数据类和方法类,或者过程式编程语言,其具有例程、子例程和/或函数,例如但不限于C、C++、C#、Pascal、BASIC、API调用、HTML、XHTML、XML、ASP脚本、FORTRAN、COBOL、Perl、Java、ADA、.NET等。I/O设备770可以包括输入设备,例如但不限于鼠标、键盘、扫描仪、麦克风、照相机等。此外,I/O设备770还可以包括输出设备,例如但不限于打印机、显示器等。最后,I/O设备770可以还包括传送输入和输出的设备,例如但不限于NIC或调制器/解调器(用于访问远程设备、其它文件、设备、系统或网络)、射频(RF)或其它收发器、电话接口、桥接器、路由器等。I/O设备770还包括用于通过各种网络(例如因特网或内联网)通信的组件。如果计算机700是PC、工作站、智能设备等,则存储器720中的软件可以还包括基本输入输出系统(BIOS)(为简单起见而被省略)。BIOS是一组必需软件例程,其在启动时初始化和测试硬件,启动O/S750,并且支持在硬件设备之间传输数据。BIOS被存储在某种类型的只读存储器(例如ROM、PROM、EPROM、EEPROM等)中,以便可以在启动计算机700时执行BIOS。当计算机700操作时,处理器710被配置为执行存储在存储器720中的软件,以便将数据传送到存储器720并从存储器720传送数据,并且总体上根据软件控制计算机700的操作。应用760和O/S750由处理器710全部或部分读取,可能在处理器710中被缓冲,并且然后被执行。当应用760以软件实现时,应该注意,应用760可以存储在几乎任何计算机可读存储介质上,以便由任何计算机相关系统或方法使用或者与其结合使用。在本文档的上下文中,计算机可读存储介质可以是电、磁、光或其它物理设备或装置,该设备或装置可以包含或存储计算机程序以便由计算机相关系统或方法使用或者与其结合使用。应用760可以包含在任何计算机可读存储介质中,以便由指令执行系统、装置或设备(例如基于计算机的系统、包含处理器的系统,或者其它能够从指令执行系统、装置或设备取回指令并执行指令的系统)使用或者与其结合使用。在本文档的上下文中,“计算机可读存储介质”可以是任何能够存储程序以便由指令执行系统、装置或设备使用或者与其结合使用的装置。计算机可读存储介质例如可以是但不限于电、磁、电磁光或半导体系统、装置或设备。计算机可读存储介质的更具体的实例(非穷举的列表)可以包括:具有一个或多个导线的电连接(电)、便携式计算机盘(磁或光)、随机存取存储器(RAM)(电)、只读存储器(ROM)(电)、可擦式可编程只读存储器(EPROM、EEPROM或闪存)(电)、光纤(电)和便携式压缩盘存储器(CDROM、CDR/W)(光)。注意,计算机可读存储介质甚至可以是程序被打印或穿孔在其上的纸张或其它合适的介质,因为程序可以通过例如光扫描纸张或其它介质被电子地捕获,然后被编译、解释或另外以合适的方式被处理(如果必要),并且然后被存储在计算机存储器中。在示例性实施例中,如果应用760以硬件实现,则应用760可以使用所属技术领域公知的以下技术的任何一种或组合实现:具有用于针对数字信号实现逻辑功能的逻辑门的离散逻辑电路(多个)、具有适当的组合逻辑门的专用集成电路(ASIC)、可编程门阵列(多个)(PGA)、现场可编程门阵列(FPGA)等。技术效果和益处包括基于时间和成本约束两者,在分布式映射化简网络中完成映射化简作业。本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是—但不限于—电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。用于执行本发明操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。出于示例目的给出了对本发明的不同实施例的描述,但所述描述并非旨在是穷举的或是限于所公开的实施例。在不偏离所述实施例的范围和精神的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都是显而易见的。本文中所用术语的选择,旨在最好地解释实施例的原理、实际应用或对市场中的技术的技术改进,或者使所属技术领域的其它普通技术人员能理解本文公开的实施例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1