用于分配计算闭包的方法和装置的制作方法

文档序号:6361178阅读:177来源:国知局
专利名称:用于分配计算闭包的方法和装置的制作方法
用于分配计算闭包的方法和装置
背景技术
目前,具有各种连接方法的移动设备对于许多人来说正成为去往因特网的主要网关,也是个人信息的主要存储点。这是对个人计算机还有传感器设备加上基于因特网的提供商的通常范围的补充。将这些设备组合在一起以及最近将应用和由这些应用存储的信息组合是互通性的主要挑战。这可通过无数单独的个人信息空间来实现,在个人信息空间中,个人、人群等可用他们自己本地约定的语义设置、共享、交互和操作信息网络,而无需遵照不可获得的全球的语义。这些信息空间通常被称为智能空间,是“巨型全球图(GiantGlobal Graph)”的扩展,其中人们可以在本地级别应用语义和推理。在一个实施例中,信息空间是内嵌有横跨计算机、信息设备和传感器的分布式基础架构的工作空间,其允许人们通过访问来自计算机或其它设备的信息来有效地工作。信息空间可由物理地表现为异构网络(有线和无线)的计算设备提供。然而,尽管事实上由信息空间呈现的信息可以不同的粒度来分配,但在诸如诺基亚的Mobile C丨异构环境内实现可扩展的高度上下文信息处理仍然存在挑战。一种这样的挑战是在设备与各种外部信息处理器交互时创建自适应的计算平台以增强该设备的信息处理能力。

发明内容
因此,需要一种用于使能和分配计算闭包处理(computation closureprocessing)以支持有效的分布式计算的方法。根据一个实施例,一种方法包括接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求。该方法还包括至少部分地使得将一个或多个过程序列化为一个或多个闭包原语(closure primitive), 一个或多个闭包原语代表一个或多个过程的计算闭包(computation closure)。该方法还包括至少部分地使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语。根据另一个实施例,一种装置包括至少一个处理器和至少一个包括计算机程序代码的存储器,至少一个存储器和计算机程序代码被配置为通过至少一个处理器至少部分地使得该装置接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求。该装置还被使得将一个或多个过程序列化为一个或多个闭包原语,一个或多个闭包原语代表一个或多个过程的计算闭包。该装置还使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语。根据另一个实施例,一种计算机可读存储媒体携带一个或多个指令的一个或多个序列,所述序列在由一个或多个处理器执行时至少部分地使得装置接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程。该装置还被使得将一个或多个过程序列化为一个或多个闭包原语,一个或多个闭包原语代表一个或多个过程的计算闭包。该装置还被使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语。根据另一个实施例,一种装置包括用于接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求的单元。该装置还包括用于至少部分地使得将一个或多个过程序列化为一个或多个闭包原语的单元,一个或多个闭包原语代表一个或多个过程的计算闭包。该装置还包括用于至少部分地使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语的单元。根据以下的详细描述,通过说明一些特定实施例和实现方式,包括被认为是实现本发明的最佳方式,本发明的其它方面、特征和优点是显而易见的。本发明还能够有其它和不同的实施例,而它们的细节可以在多个显而易见的方面进行修改,所有这些都在不脱离本发明的精神和范围的情况下进行。因此,附图和说明本质上被认为是说明性的,而非限制。


本发明的实施例作为例子而非限制地示出,在后面的附图中图1是根据一个实施例的能够使计算闭包处理能够被执行以用于在信息或计算空间内支持分布式计算的系统的图;图2是根据一个实施例的计算处理支持基础架构的组件的图;图3是根据一个实施例的用于使计算闭包处理能够被执行以用于在信息或计算空间内支持分布式计算的过程的流程图;图4是根据一个实施例的用于使计算闭包处理能够用传统设备执行以用于在信息或计算空间内支持分布式计算的过程的流程图;图5是根据一个实施例的用于考虑一个或多个过程的不同执行点以用于在信息或计算空间内支持分布式计算的过程的流程图;图6是根据一个实施例的用于生成与一个或多个过程相关联的元数据以用于在信息或计算空间内支持分布式计算的过程的流程图;图7是根据一个实施例的从一个设备迁移到另一个设备的过程的图;图8是可用于实现本发明的实施例的硬件图;图9是可用于实现本发明的实施例的芯片组的图;图10是可用于实现本发明的实施例的移动终端(例如手机)的图。
具体实施例方式提供一种用于使计算闭包处理能够被执行以用于在信息或计算空间内支持分布式计算的方法、装置和软件。在以下的描述中,为了说明的目的,描述了许多特定细节以便提供本发明的实施例的全面理解。然而,对于本领域的普通技术人员来说,显然,没有这些特定细节或者使用等同配置也可以实现本发明的实施例。在其它情况下,为了避免不必要地模糊本发明的实施例,公知的结构和设备以方框图的形式示出。如在此所使用的,术语“信息空间”或“智能空间”是指来自不同源的聚合信息集。这种多来源非常灵活,因为它考虑并依赖于相同的信息可来自不同的源的观察。例如,相同的信息(例如,特定联系人的联系信息)可以出现在来自多个源的同一个信息空间中(例如,本地存储的联系人数据库、公共目录、工作联系人数据库等)。在一个实施例中,在信息空间或智能空间内的信息使用语义网标准表示,诸如资源描述框架(RDF)、RDF模式(RDFS)、OffL(网络本体语言)、F0AF (朋友的朋友本体)、RuleML (规则标记语言)中的规则集等。另外,如在此所使用的,RDF是指最初被设计为元数据的数据模型的万维网联盟(W3C)规范的家族。它已经被用作用于在网络资源中实现的信息的概念描述和建模的通用方法;使用各种语法格式。尽管参照信息空间和RDF描述了各种实施例,但可以设想在此描述的方法可与用于创建信息模型的其它结构和概念描述方法一起使用。另外,如在此所使用的,术语“反射计算(ref lective computing)”是指系统基于本身来进行推理或行动的能力。反射系统提供它自己的行为的表示,其易于检查和改编。反射在运行时启动系统的检查和自适应。在检查允许系统的当前状态被观察时,自适应允许系统的行为在运行时被改变以更好地满足此时的处理需求。毫无疑问,反射计算是使自适应处理能够相对于此时系统内呈现的上下文、环境、功能或语义条件被执行的便利手段;对于在分布式环境内运行的系统来说特别有用。如在此所使用的,术语“粒度处理”是指特定计算过程被如何精细地细分(例如,可用于执行过程的任务或功能的最小代码单元)。作为例子,过程的粒度(例如,最小等级的粒度、不同等级的粒度等)可由过程的开发者定义或可由系统动态地确定。如在此所使用的,术语“计算闭包”标识特定计算过程以及多个过程之间的关系和通信,包括传递变量、共享过程结果、数据流和过程结果等。计算闭包(例如,指令、数据和/或相关执行上下文或状态的粒度反射集)提供切分过程的计算以及在设备、基础架构和信息空间之间传输计算片段的能力。如在此所使用的,术语“计算空间”是指来自不同源的计算闭包的聚合集。在一个实施例中,计算空间内的计算使用语义网标准表示,诸如资源描述框架(RDF)、RDF模式(RDFS), OffL (网络本体语言)、FOAF (朋友的朋友本体)、RuleML (规则标记语言)中的规则集等。在一个实施例中,包括聚合计算闭包的信息空间也被称为计算空间。如在此所使用的,术语“智能空间”是指一个或多个信息空间与一个或多个计算空间的组合,其中,计算空间包括在信息空间中的信息上运行的计算闭包。尽管参照信息空间、计算空间和RDF描述了各种实施例,但可以设想在此描述的方法可与用于创建信息和计算的模型的其它结构和概念描述方法一起使用。尽管参照反射计算或信息空间描述了各种实施例,但可以设想在此所描述的方法也可以与其它计算系统和体系结构一起使用。图1是根据一个实施例的用于使计算闭包处理能够被执行以用于在信息或计算空间内支持分布式计算的系统的图。如前面所述,信息空间包括若干经由一个或几个语义信息代理(SIB)交流信息(例如,RDF图)的分布式设备,其中语义信息代理包含用于支持在信息或计算空间内在分布式设备之间交换信息的逻辑。在信息空间环境内的设备可以在它自己的存储器本地存储信息或者将信息公布给语义信息代理。在第一种情况下,设备负责组合或提取信息所需要的任何过程,而在第二种情况下,过程可由语义信息代理执行。然而,在许多情况下,信息可以被组织成包括许多数据单元的信息列表或集合(例如,联系人列表、货物库存、企业目录等)。信息空间技术的基本概念向在信息空间的范围内的各种设备提供对分布式信息的访问,以信息的分布式特性对于用户隐藏并且对于用户看起来就好像所有被访问的信息都存储在同一个设备上的方式。信息空间还使得用户能够通过在用户可以访问的设备之间传递信息来控制信息分配。例如,用户可能想要在工作设备、家庭设备和便携式设备之间传递信息。当前的技术使得移动设备的用户能够通过他们的用户装置的用户接口的单元操作诸如数据和信息的上下文。然而,用户不能控制与信息空间内的数据和信息有关或对其进行动作的计算和处理的分配。换句话说,信息空间通常并不向用户(例如,在信息空间上分布的信息集合的所有者)提供控制例如对信息进行动作的应用的有关计算和处理的分配。例如,处理在一个或多个信息空间内分布的联系人信息的联系人管理应用通常在单个设备上执行(例如,应用的所有过程和计算也在同一设备上执行)以对分布式信息进行操作。在某些情况下(例如,当计算复杂时、当数据集庞大时等),除了信息空间外,提供装置以分配相关的计算是有利的。然而,该有利仅对于处理负载被有效地在计算将被执行的设备或基础架构上分配有益。为了达到这个目标,图1的系统100引入了部分地根据成本函数构建、聚合和分配计算及其相关的数据的能力。更具体地,成本函数是确定性过程,其用于至少部分地基于设备、计算空间、可访问计算空间的一个或多个其它设备或其组合的一个或多个资源,影响计算如何在参与设备之间在信息空间内进行分配。在执行分配的过程中,执行用于使每个计算能够被解构成其基本、基础或原语过程或计算闭包的装置。因此,如在此所使用的,“计算闭包”是指在各种计算之间的关系和通信,包括但不限于诸如传递变量、共享处理结果、数 据流处理等的活动。一旦计算被划分成它的原语计算闭包,则在每个闭包内或由每个闭包代表的过程可以分布式的方式执行,处理结果可被收集或聚合成初始总计算的执行结果。在一个实施例中,每个高度上下文计算集可以被表示为封闭过程集(例如,传递闭包),使得闭包可被分别执行(例如,通过分布式处理设备)。传递闭包可被遍历,以便呈现附着到每个特定执行上下文上的粒度反射过程。系统100的机制提供分布式演绎闭包作为预先计算的计算闭包的可循环集,其可在各种设备和基础架构之间分配或者通过存储在与信息空间有关的任何存储位置来在一个或多个信息空间的用户之间共享。另外,该机制向用户提供可视化编程作为计算的片段,其中在用户接口上的每个表示可被绑定到它所基于的计算闭包。作为例子,下面在表I中提供了通过C++语言实现的示例性λ表达式。λ表达式是匿名函数,其可包含表达式和语句,并可用于创建委托(delegate)或表达式树类型。具体地,该形式的表达式虽然不是唯一的方式,但对于表示基本功能性的闭包定义是有用的。λ表达式提供更简明、直接的用于实现根据各自对于计算处理请求而调用的各种方法和过程的功能语法。
权利要求
1.一种方法,包括 接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求; 至少部分地使得将所述一个或多个过程序列化为一个或多个闭包原语,所述一个或多个闭包原语代表所述一个或多个过程的计算闭包;以及 至少部分地使得至少部分地根据成本函数而在所述计算空间上分配所述一个或多个闭包原语。
2.如权利要求1所述的方法,其中,所述成本函数至少部分地基于所述设备、所述计算空间、访问所述计算空间的一个或多个其它设备或它们的组合的一个或多个资源。
3.如权利要求2所述的方法,其中,所述一个或多个资源包括功率预留、处理功率、存储器大小、带宽或它们的组合。
4.如权利要求2所述的方法,还包括 至少部分地使得在可扩展性、负载平衡或它们的组合方面优化所述成本函数。
5.如权利要求1所述的方法,还包括 确定所述设备是否是传统设备;以及 至少部分地使得至少部分地根据所述确定而用一个或多个传统库包裹所述一个或多个闭包原语中的至少一个。
6.如权利要求1所述的方法,还包括 确定所述一个或多个过程的执行时间;以及 至少部分地使得跟踪所述一个或多个过程和对所述一个或多个过程的当前状态拍快昭. 其中,所述一个或多个闭包原语的序列化还至少部分地基于所述跟踪、所述快照或它们的组合。
7.如权利要求1所述的方法,还包括 确定与所述一个或多个过程相关联的用户上下文、执行上下文或它们的组合; 至少部分地根据所述用户上下文、所述执行上下文或它们的组合生成元数据;以及 至少部分地使得用所述元数据注释所述一个或多个闭包原语。
8.如权利要求1所述的方法,其中,所述计算空间包括所述设备、一个或多个其它设备、一个或多个服务器或它们的组合,所述一个或多个闭包原语的全部或一部分被分配给所述设备、所述一个或多个其它设备、所述一个或多个服务器或它们的组合以用于重构。
9.如权利要求1所述的方法,还包括 获取与所述一个或多个过程对应的一个或多个λ表达式,所述一个或多个λ表达式定义与所述一个或多个过程对应的一个或多个匿名函数; 其中,所述一个或多个闭包原语至少部分地基于所述一个或多个λ表达式。
10.一种装置,包括 至少一个处理器;以及 至少一个存储器,其包括用于一个或多个程序的计算机程序代码; 所述至少一个存储器和所述计算机程序代码被配置为通过所述至少一个处理器使得所述装置至少执行接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求; 至少部分地使得将所述一个或多个过程序列化为一个或多个闭包原语,所述一个或多个闭包原语代表所述一个或多个过程的计算闭包;以及 至少部分地使得至少部分地根据成本函数而在所述计算空间上分配所述一个或多个闭包原语。
11.如权利要求10所述的装置,其中,所述成本函数至少部分地基于所述设备、所述计算空间、访问所述计算空间的一个或多个其它设备或它们的组合的一个或多个资源。
12.如权利要求11所述的装置,其中,所述一个或多个资源包括功率预留、处理功率、存储器大小、带宽或它们的组合。
13.如权利要求11所述的装置,其中,还使得所述装置 至少部分地使得在可扩展性、负载平衡或它们的组合方面优化所述成本函数。
14.如权利要求10所述的装置,其中,还使得所述装置 确定所述设备是否是传统设备;以及 至少部分地使得至少部分地根据所述确定而用一个或多个传统库包裹所述一个或多个闭包原语中的至少一个。
15.如权利要求10所述的装置,其中,还使得所述装置 确定所述一个或多个过程的执行时间;以及 至少部分地使得跟踪所述一个或多个过程和对所述一个或多个过程的当前状态拍快昭. 其中,所述一个或多个闭包原语的序列化还至少部分地基于所述跟踪、所述快照或它们的组合。
16.如权利要求10所述的装置,其中,还使得所述装置 确定与所述一个或多个过程相关联的用户上下文、执行上下文或它们的组合; 至少部分地根据所述用户上下文、所述执行上下文或它们的组合生成元数据;以及 至少部分的使得用所述元数据注释所述一个或多个闭包原语。
17.如权利要求10所述的装置,其中,所述计算空间包括所述设备、一个或多个其它设备、一个或多个服务器或它们的组合,所述一个或多个闭包原语的全部或一部分被分配给所述设备、所述一个或多个其它设备、所述一个或多个服务器或它们的组合以用于重构。
18.如权利要求10所述的装置,其中,还使得所述装置 获取与所述一个或多个过程对应的一个或多个λ表达式,所述一个或多个λ表达式定义与所述一个或多个过程对应的一个或多个匿名函数; 其中,所述一个或多个闭包原语至少部分地基于所述一个或多个λ表达式。
19.一种计算机可读存储媒体,其携带一个或多个指令的一个或多个序列,所述序列在由一个或多个处理器执行时使得装置至少执行以下步骤 接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求; 至少部分地使得将所述一个或多个过程序列化为一个或多个闭包原语,所述一个或多个闭包原语代表所述一个或多个过程的计算闭包;以及至少部分地使得至少部分地根据成本函数而在所述计算空间上分配所述一个或多个闭包原语。
20.如权利要求19所述的计算机可读存储媒体,其中,所述成本函数至少部分地基于所述设备、所述计算空间、访问所述计算空间的一个或多个其它设备或它们的组合的一个或多个资源。
21.—种方法,包括 接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求; 至少部分地使得将所述一个或多个过程序列化为一个或多个闭包原语,所述一个或多个闭包原语代表所述一个或多个过程的计算闭包;以及 至少部分地使得至少部分地根据成本函数而在所述计算空间上分配所述一个或多个闭包原语。
22.如权利要求1所述的方法,其中,所述成本函数至少部分地基于所述设备、所述计算空间、访问所述计算空间的一个或多个其它设备或它们的组合的一个或多个资源。
23.如权利要求22所述的方法,其中,所述一个或多个资源包括功率预留、处理功率、存储器大小、带宽或它们的组合。
24.如权利要求22或23所述的方法,还包括 至少部分地使得在可扩展性、负载平衡或它们的组合方面优化所述成本函数。
25.如权利要求21至24任意一项所述的方法,还包括 确定所述设备是否是传统设备;以及 至少部分地使得至少部分地根据所述确定而用一个或多个传统库包裹所述一个或多个闭包原语中的至少一个。
26.如权利要求21至25任意一项所述的方法,还包括 确定所述一个或多个过程的执行时间;以及 至少部分地使得跟踪所述一个或多个过程和对所述一个或多个过程的当前状态拍快昭. 其中,所述一个或多个闭包原语的序列化还至少部分地基于所述跟踪、所述快照或它们的组合。
27.如权利要求21至26任意一项所述的方法,还包括 确定与所述一个或多个过程相关联的用户上下文、执行上下文或它们的组合; 至少部分地根据所述用户上下文、所述执行上下文或它们的组合生成元数据;以及 至少部分的使得用所述元数据注释所述一个或多个闭包原语。
28.如权利要求21至27任意一项所述的方法,其中,所述计算空间包括所述设备、一个或多个其它设备、一个或多个服务器或它们的组合,所述一个或多个闭包原语的全部或一部分被分配给所述设备、所述一个或多个其它设备、所述一个或多个服务器或它们的组合以用于重构。
29.如权利要求21至28任意一项所述的方法,还包括 获取与所述一个或多个过程对应的一个或多个λ表达式,所述一个或多个λ表达式定义与所述一个或多个过程对应的一个或多个匿名函数;其中,所述一个或多个闭包原语至少部分地基于所述一个或多个λ表达式。
30.一种装置,包括 至少一个处理器;以及 至少一个存储器,其包括用于一个或多个程序的计算机程序代码; 所述至少一个存储器和所述计算机程序代码被配置为通过所述至少一个处理器使得所述装置至少执行 接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求; 至少部分地使得将所述一个或多个过程序列化为一个或多个闭包原语,所述一个或多个闭包原语代表所述一个或多个过程的计算闭包;以及 至少部分地使得至少部分地根据成本函数而在所述计算空间上分配所述一个或多个闭包原语。
31.如权利要求30所述的装置,其中,所述成本函数至少部分地基于所述设备、所述计算空间,访问所述计算空间的一个或多个其它设备或它们的组合的一个或多个资源。
32.如权利要求31所述的装置,其中,所述一个或多个资源包括功率预留、处理功率、存储器大小、带宽或它们的组合。
33.如权利要求31或32所述的装置,其中,还使得所述装置 至少部分地使得在可扩展性、负载平衡或它们的组合方面优化所述成本函数。
34.如权利要求30至33任意一项所述的装置,其中,还使得所述装置 确定所述设备是否是传统设备;以及 至少部分地使得至少部分地根据所述确定而用一个或多个传统库包裹所述一个或多个闭包原语中的至少一个。
35.如权利要求30至34任意一项所述的装置,其中,还使得所述装置 确定所述一个或多个过程的执行时间;以及 至少部分地使得跟踪所述一个或多个过程和对所述一个或多个过程的当前状态拍快昭. 其中,所述一个或多个闭包原语的序列化还至少部分地基于所述跟踪、所述快照或它们的组合。
36.如权利要求30至35任意一项所述的装置,其中,还使得所述装置 确定与所述一个或多个过程相关联的用户上下文、执行上下文或它们的组合; 至少部分地根据所述用户上下文、所述执行上下文或它们的组合生成元数据;以及 至少部分的使得用所述元数据注释所述一个或多个闭包原语。
37.如权利要求30至36任意一项所述的装置,其中,所述计算空间包括所述设备、一个或多个其它设备、一个或多个服务器或它们的组合,所述一个或多个闭包原语的全部或一部分被分配给所述设备、所述一个或多个其它设备、所述一个或多个服务器或它们的组合以用于重构。
38.如权利要求30至37任意一项所述的装置,其中,还使得所述装置 获取与所述一个或多个过程对应的一个或多个λ表达式,所述一个或多个λ表达式定义与所述一个或多个过程对应的一个或多个匿名函数;其中,所述一个或多个闭包原语至少部分地基于所述一个或多个λ表达式。
39.一种计算机可读存储媒体,其携带一个或多个指令的一个或多个序列,所述序列在由一个或多个处理器执行时使得装置至少执行权利要求21至29任意一项的方法。
40.一种装置,包括用于执行权利要求21至29任意一项的方法的装置。
41.一种计算机程序产品,包括一个或多个指令的一个或多个序列,所述序列在由一个或多个处理器执行时使得装置至少执行权利要求21至29任意一项的方法。
42.一种方法,包括方便访问至少一个接口,所述接口被配置为允许访问至少一个服务,所述至少一个服务被配置为执行权利要求21至29任意一项的方法。
全文摘要
提供用于基于后端的面向计算闭包的分布式计算的方法。计算处理支持基础架构接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求。计算处理支持基础架构还至少部分地使得将一个或多个过程序列化为一个或多个闭包原语,该一个或多个闭包原语代表一个或多个过程的计算闭包。计算处理支持基础架构还至少部分地使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语。
文档编号G06F9/50GK103003797SQ201180034992
公开日2013年3月27日 申请日期2011年6月13日 优先权日2010年7月16日
发明者S·博尔迪莱夫, S·J·皮海拉米, M·J·曼纳马, I·J·奥利弗, O·拉西拉, C·迪夫-勒克吕 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1