CN103003797B - 用于分配计算闭包的方法和装置 - Google Patents
用于分配计算闭包的方法和装置 Download PDFInfo
- Publication number
- CN103003797B CN103003797B CN201180034992.4A CN201180034992A CN103003797B CN 103003797 B CN103003797 B CN 103003797B CN 201180034992 A CN201180034992 A CN 201180034992A CN 103003797 B CN103003797 B CN 103003797B
- Authority
- CN
- China
- Prior art keywords
- closure
- calculating
- primitive
- equipment
- processes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供用于基于后端的面向计算闭包的分布式计算的方法。计算处理支持基础架构接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求。计算处理支持基础架构还至少部分地使得将一个或多个过程序列化为一个或多个闭包原语,该一个或多个闭包原语代表一个或多个过程的计算闭包。计算处理支持基础架构还至少部分地使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语。
Description
背景技术
目前,具有各种连接方法的移动设备对于许多人来说正成为去往因特网的主要网关,也是个人信息的主要存储点。这是对个人计算机还有传感器设备加上基于因特网的提供商的通常范围的补充。将这些设备组合在一起以及最近将应用和由这些应用存储的信息组合是互通性的主要挑战。这可通过无数单独的个人信息空间来实现,在个人信息空间中,个人、人群等可用他们自己本地约定的语义设置、共享、交互和操作信息网络,而无需遵照不可获得的全球的语义。这些信息空间通常被称为智能空间,是“巨型全球图(GiantGlobal Graph)”的扩展,其中人们可以在本地级别应用语义和推理。
在一个实施例中,信息空间是内嵌有横跨计算机、信息设备和传感器的分布式基础架构的工作空间,其允许人们通过访问来自计算机或其它设备的信息来有效地工作。信息空间可由物理地表现为异构网络(有线和无线)的计算设备提供。然而,尽管事实上由信息空间呈现的信息可以不同的粒度来分配,但在诸如诺基亚的Mobile 的异构环境内实现可扩展的高度上下文信息处理仍然存在挑战。一种这样的挑战是在设备与各种外部信息处理器交互时创建自适应的计算平台以增强该设备的信息处理能力。
发明内容
因此,需要一种用于使能和分配计算闭包处理(computation closureprocessing)以支持有效的分布式计算的方法。
根据一个实施例,一种方法包括接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求。该方法还包括至少部分地使得将一个或多个过程序列化为一个或多个闭包原语(closure primitive),一个或多个闭包原语代表一个或多个过程的计算闭包(computation closure)。该方法还包括至少部分地使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语。
根据另一个实施例,一种装置包括至少一个处理器和至少一个包括计算机程序代码的存储器,至少一个存储器和计算机程序代码被配置为通过至少一个处理器至少部分地使得该装置接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求。该装置还被使得将一个或多个过程序列化为一个或多个闭包原语,一个或多个闭包原语代表一个或多个过程的计算闭包。该装置还使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语。
根据另一个实施例,一种计算机可读存储媒体携带一个或多个指令的一个或多个序列,所述序列在由一个或多个处理器执行时至少部分地使得装置接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程。该装置还被使得将一个或多个过程序列化为一个或多个闭包原语,一个或多个闭包原语代表一个或多个过程的计算闭包。该装置还被使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语。
根据另一个实施例,一种装置包括用于接收用于指定在设备上执行的用于在计算空间上进行分配的一个或多个过程的请求的单元。该装置还包括用于至少部分地使得将一个或多个过程序列化为一个或多个闭包原语的单元,一个或多个闭包原语代表一个或多个过程的计算闭包。该装置还包括用于至少部分地使得至少部分地根据成本函数而在计算空间上分配一个或多个闭包原语的单元。
根据以下的详细描述,通过说明一些特定实施例和实现方式,包括被认为是实现本发明的最佳方式,本发明的其它方面、特征和优点是显而易见的。本发明还能够有其它和不同的实施例,而它们的细节可以在多个显而易见的方面进行修改,所有这些都在不脱离本发明的精神和范围的情况下进行。因此,附图和说明本质上被认为是说明性的,而非限制。
附图说明
本发明的实施例作为例子而非限制地示出,在后面的附图中:
图1是根据一个实施例的能够使计算闭包处理能够被执行以用于在信息或计算空间内支持分布式计算的***的图;
图2是根据一个实施例的计算处理支持基础架构的组件的图;
图3是根据一个实施例的用于使计算闭包处理能够被执行以用于在信息或计算空间内支持分布式计算的过程的流程图;
图4是根据一个实施例的用于使计算闭包处理能够用传统设备执行以用于在信息或计算空间内支持分布式计算的过程的流程图;
图5是根据一个实施例的用于考虑一个或多个过程的不同执行点以用于在信息或计算空间内支持分布式计算的过程的流程图;
图6是根据一个实施例的用于生成与一个或多个过程相关联的元数据以用于在信息或计算空间内支持分布式计算的过程的流程图;
图7是根据一个实施例的从一个设备迁移到另一个设备的过程的图;
图8是可用于实现本发明的实施例的硬件图;
图9是可用于实现本发明的实施例的芯片组的图;
图10是可用于实现本发明的实施例的移动终端(例如手机)的图。
具体实施方式
提供一种用于使计算闭包处理能够被执行以用于在信息或计算空间内支持分布式计算的方法、装置和软件。在以下的描述中,为了说明的目的,描述了许多特定细节以便提供本发明的实施例的全面理解。然而,对于本领域的普通技术人员来说,显然,没有这些特定细节或者使用等同配置也可以实现本发明的实施例。在其它情况下,为了避免不必要地模糊本发明的实施例,公知的结构和设备以方框图的形式示出。
如在此所使用的,术语“信息空间”或“智能空间”是指来自不同源的聚合信息集。这种多来源非常灵活,因为它考虑并依赖于相同的信息可来自不同的源的观察。例如,相同的信息(例如,特定联系人的联系信息)可以出现在来自多个源的同一个信息空间中(例如,本地存储的联系人数据库、公共目录、工作联系人数据库等)。在一个实施例中,在信息空间或智能空间内的信息使用语义网标准表示,诸如资源描述框架(RDF)、RDF模式(RDFS)、OWL(网络本体语言)、FOAF(朋友的朋友本体)、RuleML(规则标记语言)中的规则集等。另外,如在此所使用的,RDF是指最初被设计为元数据的数据模型的万维网联盟(W3C)规范的家族。它已经被用作用于在网络资源中实现的信息的概念描述和建模的通用方法;使用各种语法格式。尽管参照信息空间和RDF描述了各种实施例,但可以设想在此描述的方法可与用于创建信息模型的其它结构和概念描述方法一起使用。
另外,如在此所使用的,术语“反射计算(reflective computing)”是指***基于本身来进行推理或行动的能力。反射***提供它自己的行为的表示,其易于检查和改编。反射在运行时启动***的检查和自适应。在检查允许***的当前状态被观察时,自适应允许***的行为在运行时被改变以更好地满足此时的处理需求。毫无疑问,反射计算是使自适应处理能够相对于此时***内呈现的上下文、环境、功能或语义条件被执行的便利手段;对于在分布式环境内运行的***来说特别有用。
如在此所使用的,术语“粒度处理”是指特定计算过程被如何精细地细分(例如,可用于执行过程的任务或功能的最小代码单元)。作为例子,过程的粒度(例如,最小等级的粒度、不同等级的粒度等)可由过程的开发者定义或可由***动态地确定。
如在此所使用的,术语“计算闭包”标识特定计算过程以及多个过程之间的关系和通信,包括传递变量、共享过程结果、数据流和过程结果等。计算闭包(例如,指令、数据和/或相关执行上下文或状态的粒度反射集)提供切分过程的计算以及在设备、基础架构和信息空间之间传输计算片段的能力。
如在此所使用的,术语“计算空间”是指来自不同源的计算闭包的聚合集。在一个实施例中,计算空间内的计算使用语义网标准表示,诸如资源描述框架(RDF)、RDF模式(RDFS)、OWL(网络本体语言)、FOAF(朋友的朋友本体)、RuleML(规则标记语言)中的规则集等。在一个实施例中,包括聚合计算闭包的信息空间也被称为计算空间。
如在此所使用的,术语“智能空间”是指一个或多个信息空间与一个或多个计算空间的组合,其中,计算空间包括在信息空间中的信息上运行的计算闭包。尽管参照信息空间、计算空间和RDF描述了各种实施例,但可以设想在此描述的方法可与用于创建信息和计算的模型的其它结构和概念描述方法一起使用。
尽管参照反射计算或信息空间描述了各种实施例,但可以设想在此所描述的方法也可以与其它计算***和体系结构一起使用。
图1是根据一个实施例的用于使计算闭包处理能够被执行以用于在信息或计算空间内支持分布式计算的***的图。如前面所述,信息空间包括若干经由一个或几个语义信息代理(SIB)交流信息(例如,RDF图)的分布式设备,其中语义信息代理包含用于支持在信息或计算空间内在分布式设备之间交换信息的逻辑。在信息空间环境内的设备可以在它自己的存储器本地存储信息或者将信息公布给语义信息代理。在第一种情况下,设备负责组合或提取信息所需要的任何过程,而在第二种情况下,过程可由语义信息代理执行。然而,在许多情况下,信息可以被组织成包括许多数据单元的信息列表或集合(例如,联系人列表、货物库存、企业目录等)。
信息空间技术的基本概念向在信息空间的范围内的各种设备提供对分布式信息的访问,以信息的分布式特性对于用户隐藏并且对于用户看起来就好像所有被访问的信息都存储在同一个设备上的方式。信息空间还使得用户能够通过在用户可以访问的设备之间传递信息来控制信息分配。例如,用户可能想要在工作设备、家庭设备和便携式设备之间传递信息。当前的技术使得移动设备的用户能够通过他们的用户装置的用户接口的单元操作诸如数据和信息的上下文。然而,用户不能控制与信息空间内的数据和信息有关或对其进行动作的计算和处理的分配。换句话说,信息空间通常并不向用户(例如,在信息空间上分布的信息集合的所有者)提供控制例如对信息进行动作的应用的有关计算和处理的分配。例如,处理在一个或多个信息空间内分布的联系人信息的联系人管理应用通常在单个设备上执行(例如,应用的所有过程和计算也在同一设备上执行)以对分布式信息进行操作。在某些情况下(例如,当计算复杂时、当数据集庞大时等),除了信息空间外,提供装置以分配相关的计算是有利的。然而,该有利仅对于处理负载被有效地在计算将被执行的设备或基础架构上分配有益。
为了达到这个目标,图1的***100引入了部分地根据成本函数构建、聚合和分配计算及其相关的数据的能力。更具体地,成本函数是确定性过程,其用于至少部分地基于设备、计算空间、可访问计算空间的一个或多个其它设备或其组合的一个或多个资源,影响计算如何在参与设备之间在信息空间内进行分配。在执行分配的过程中,执行用于使每个计算能够被解构成其基本、基础或原语过程或计算闭包的装置。因此,如在此所使用的,“计算闭包”是指在各种计算之间的关系和通信,包括但不限于诸如传递变量、共享处理结果、数据流处理等的活动。一旦计算被划分成它的原语计算闭包,则在每个闭包内或由每个闭包代表的过程可以分布式的方式执行,处理结果可被收集或聚合成初始总计算的执行结果。
在一个实施例中,每个高度上下文计算集可以被表示为封闭过程集(例如,传递闭包),使得闭包可被分别执行(例如,通过分布式处理设备)。传递闭包可被遍历,以便呈现附着到每个特定执行上下文上的粒度反射过程。***100的机制提供分布式演绎闭包作为预先计算的计算闭包的可循环集,其可在各种设备和基础架构之间分配或者通过存储在与信息空间有关的任何存储位置来在一个或多个信息空间的用户之间共享。另外,该机制向用户提供可视化编程作为计算的片段,其中在用户接口上的每个表示可被绑定到它所基于的计算闭包。作为例子,下面在表1中提供了通过C++语言实现的示例性λ表达式。λ表达式是匿名函数,其可包含表达式和语句,并可用于创建委托(delegate)或表达式树类型。具体地,该形式的表达式虽然不是唯一的方式,但对于表示基本功能性的闭包定义是有用的。λ表达式提供更简明、直接的用于实现根据各自对于计算处理请求而调用的各种方法和过程的功能语法。
表1:表示为λ函数的示例性闭包
如图1所示,***100包括一个或多个包括用户设备UE107a-107i的用户设备组101a-101n,每一个用户设备组具有经由通信网络105连接到计算处理支持基础架构103的连接性。作为例子,***100的通信网络105包括一个或多个网络,诸如数据网络(未示出)、无线网络(未示出)、电话网络(未示出)或其任意组合。可以设想数据网络可以是任何局域网(LAN)、城域网(MAM)、广域网(WAN)、公共数据网络(例如因特网)、短距无线网络或任何其它合适的分组交换网络,诸如商业性专有分组交换网络,例如专有电缆或光纤网络等或其任意组合。此外,无线网络可以是例如蜂窝网络,并可使用各种技术,包括增强型数据速率全球演进(EDGE)、通用分组无线服务(GPRS)、全球移动通信***(GSM)、因特网协议多媒体子***(IMS)、通用移动电信***(UMTS)等以及任何其它合适的无线媒体,例如全球微波互联接入(WiMAX)、长期演进(LTE)网络、码分多址接入(CDMA)、宽带码分多址接入(WCDMA)、无线保真(WiFi)、无线局域网(WLAN)、蓝牙因特网协议(IP)数据广播、卫星、移动自组织(ad-hoc)网络(MANET)等或其任意组合。
UE107a-107i是任何类型的移动终端、固定终端或便携式终端,包括移动手持设备、工作站、单元、设备、多媒体计算机、多媒体平板电脑、因特网节点、通信器、桌上型计算机、膝上型计算机、笔记本电脑、上网本电脑、平板电脑、个人数字助理(PDA)、音频/视频播放器、数码照相机/摄像机、定位设备、电视接收机、无线电广播接收机、电子书设备、游戏设备或其任意组合,包括这些设备的附件和***设备或其任意组合。还可以设想UE107a-107i可以支持任何类型的用户接口(诸如“可佩带”电路等)。
在一个实施例中,UE107a-107i分别配备有一个或多个用户接口(UI)109a-109i。根据正被使用的服务,每个UI109a-109i在任何时候可包括若干UI单元(未示出)。UI单元可以是代表用户上下文的图标,诸如信息(例如,音乐信息、联系人信息、视频信息等)、功能(例如,建立、搜索等)和/或过程(例如,下载、播放、编辑、保存等)。此外,每个UI单元可通过粒度迁移而与上下文/过程绑定。在一个实施例中,粒度迁移使得过程能够在设备、信息空间和其它基础架构之间明显或隐含地迁移。过程迁移可例如通过单播(例如,只到另一个UE107)或组播(例如,到多个其它UE107)的方式发起。此外,过程迁移可以通过手势识别触发,其中,用户预先选择特定的一组UI单元,并做出手势以模拟将所选择的UE单元从一个设备“注入”另一个设备。
如图1所示,UE107a-107i的用户可以拥有、使用或访问在信息空间115a-115j的集合113a上分布的各种信息。在此处所描述的方法中,当信息空间115a-115j中的一个或多个包括一个或多个计算闭包时,信息空间115a-115j也可称为“计算空间”。用户可以通过包含UE107a-107i的用户设备组101a访问信息,其中,每个UE107a-107i配备有一个或多个用户接口(UI)109a-109i。另外,每个UE107a-107i可以访问包含过程119a-119k的计算集117a,这些过程可用于操作在信息空间115a-115j中存储的信息并产生UE107的用户所请求的结果。
在一个实施例中,计算处理支持基础架构103包含有关每个UE107a-107i的计算117a和过程119a-119k的信息。该信息可包括诸如输入参数、输入类型和格式、输出类型和格式、过程结构、数据流、通信方式和在过程119a-119k之间传递的参数等的信息。计算信息使得UE107a-107i能够将计算划分成它们主要的计算闭包,其中每个计算闭包可与属于同一计算的其它计算闭包分开地执行。例如,与音乐下载有关的计算可被划分成用于查找最合适的下载站点的搜索过程、确定用户是否有资格从站点下载的验证过程、用于验证足够的资源(例如,存储空间)用于将被下载的文件的初始化过程、用于验证音乐文件的类型和相关的播放环境的过程、用于确定播放器在UE107上是否可用的过程、用于在下载完成后启动播放器的过程等。在一个实施例中,这些过程或者从过程中得到的计算闭包可以独立于彼此地执行,即,通过信息空间基础架构的不同设备、后端服务器等执行。执行成本函数,以确定过程将如何基于例如与计算需求有关的网络、资源或计算设备处理能力来分配。在执行了独立的过程后,从执行中得到的数据和参数可被交换以能够聚合结果并使音乐应用的操作在信息空间环境中可用。另外,将与音乐有关的计算划分成独立的过程可根据诸如UE的特性、下载站点的限制、音乐文件类型、播放器类型和要求等因素而变化。在一个实施例中,将计算划分成其主要过程或计算闭包由计算处理支持基础架构103管理。此外,当计算闭包例如被序列化成诸如RDF三元组的信息语法并通过信息空间存储时,合并有被序列化的计算闭包的信息空间也可称为计算空间。
作为例子,用户设备组101a-101n的UE107a-107i、计算处理支持基础架构103和信息空间113a-113n使用已知的、新的或仍在开发的协议彼此通信以及与通信网络105的其它组件通信。在该上下文中,协议包括定义通信网络105内的网络节点如何基于在通信链路上发送的信息而彼此交互的一组规则。协议在每个节点内的不同操作层级中有效,从生成和接收各种类型的物理信号到选择用于传送这些信号的链路、到由这些信号表示的信息的格式、到识别在计算机***上执行的哪个软件应用发送或接收信息。用于在网络上交换信息的概念不同的协议层级在开放***互连(OSI)参考模型中描述。
网络节点之间的通信通常受到交换离散数据分组的影响。每个分组通常包括:(1)与特定协议相关联的报头信息;(2)在报头信息之后的有效载荷信息,其包含可独立于该特定协议而被处理的信息。在某些协议中,分组包括(3)在有效载荷之后的尾部信息,其表明有效载荷信息的结束。报头包括诸如分组的源、分组的目的地、有效载荷的长度和由协议使用的其它属性的信息。通常,用于特定协议的有效载荷中的数据包括用于与OSI参考模型的不同的更高层相关联的不同协议的报头和有效载荷。用于特定协议的报头通常表明用于在其有效载荷中包含的下一个协议的类型。更高层协议被假定为封装在更低层协议中。在横跨多个诸如因特网的异构网络的分组中包括的报头通常包括物理层(层1)报头、数据链路层(层2)报头、因特网络层(层3)报头、传输层(层4)报头以及各种应用层报头(层5、层6、层7),如OSI参考模型所定义的。
图2是根据一个实施例的分布式计算处理支持基础架构的组件的图。作为例子,计算处理支持基础架构103包括用于构建和聚合分布式计算的一个或多个组件。另外,计算处理支持基础架构103被配置为根据成本函数考虑来中继基于计算的过程,还使得传统设备能够在信息空间内被适当地考虑。可以设想,这些组件的功能可被结合在一个或多个组件中或者由其它等同功能的组件执行。在该实施例中,计算处理支持基础架构包括执行上下文确定模块201、执行上下文分解模块203、闭包定义模块205、闭包序列化模块207、闭包一致性确定模块209、闭包聚合模块211、反射处理模块215、一元(monadic)处理模块217、成本函数处理模块219和传统处理模块221。
计算处理支持基础架构103接收用于计算分配的请求。在一个实施例中,请求可能已经由UE107根据用户手势而生成,诸如例如将UI109的图标推向另一个UE107,其可表明用户希望与该图标相关联的处理在另一个UE107中执行。在另一个实施例中,用于计算分配的请求可由链接到UE107的信息空间的组件、或者具有经由通信网络105连接到UE107和信息空间的连接性的独立组件或其组合生成。
用于计算分配的请求可包括有关将要被分配的计算的信息,包括输入、输出、处理要求等。请求还可包括有关计算的源和目标的信息。例如,用户可能希望分配与将视频文件从一种格式编码成另一种格式的计算(通常高处理器和资源密集型的任务)。在这个例子中,视频文件被存储在用户的信息空间115中或者通过通信网络105可用(例如,通过因特网从源下载),并因此可从UE107访问。因此,用户可做出向一个或多个其它设备、后端服务器、云计算组件和/或任何其它能够至少执行一部分编码功能的组件分配与视频编码相关联的计算的手动请求。作为例子,该手动请求可经由图形用户接口通过将计算的图标或其它描述拖拽到在该用户接口中描绘的命令区域而做出。这些命令区域例如可以代表可支持或执行分布式计算的其它UE107或设备的物理或虚拟位置。在其它情况下,分配可由***100根据一个或多个标准经由请求生成器(未示出)并结合计算处理支持基础架构103自动发起。
在一个实施例中,在接收到计算分配请求后,执行上下文确定模块201获取并分析关于计算的信息,并确定该计算所涉及的执行组件。对于上面的例子(将视频文件从一种格式编码成另一种格式),执行上下文可包括视频播放、音频播放、编解码格式等以及有关的设置、参数、存储器状态等。所识别的执行上下文可被存储在本地存储器213中、或与信息空间113a-113n相关联的存储空间中、或直接发送到执行上下文分解模块203或其组合。
在另一个实施例中,执行上下文分解模块203将每个执行上下文分成其原语或基本构造块(例如,原语计算闭包)或者整个执行上下文的子过程。例如,视频播放执行可以被分解成支持诸如搜索可用播放器、检查视频文件与所发现的播放器的兼容性、选择播放器、激活所选择的播放器等的任务的计算或过程。每个被分解的子过程可具有某些规定和要求以实现过程在信息空间115或计算空间中的执行,诸如输入和输出媒体和类型、参数或结果如何被传递到其它过程、运行时环境等。为了过程以独立的方式执行而无需作为更大过程的一部分,可对该过程生成计算闭包。计算闭包包括过程和与该过程相关联的规定和要求,其可以被独立地执行以用于随后的聚合。
在一个实施例中,闭包定义模块205生成用于由执行上下文分解模块203提取的子过程的计算闭包,并将闭包存储在数据库213中。使用可在分布式信息空间115a-115j上存储的数据,所存储的闭包可被用于将计算分成更小的独立过程以由各种可用的UE107a-107i执行。与闭包定义模块205一起操作,闭包序列化模块207利用模块205所定义的闭包,产生被序列化的粒度计算单元。由模块207执行的闭包序列化过程还可执行数据编组,因为需要确保分布式环境内的数据格式一致性。根据序列化过程,每个闭包的处理状态也被编码并存储在计算空间中。
在一个实施例中,闭包序列化可以使用资源描述框架(RDF)格式生成和存储。RDF是最初设计为元数据的数据模型的万维网论坛(W3C)规范的家族。它已被用作通用的用于在网络资源中实现的信息的概念描述或建模的方法;使用各种语法格式。在RDF中任何表达式的底层结构是三元组的集合,每一个包含三个不相交的节点集,包括主体、谓词和客体。主体是RDF URI参考(U)或空白节点(B),谓词是RDF URI参考(U),客体是RDF URI参考(U)、文字(L)或空白节点(B)。这种三元组的集合被称为RDF图。表1示出示例性的RDF图结构。
主体 | 谓词 | 客体 |
uri://……/rule#CD-introduction, | rdf:type, | uri://……/Rule |
uri://……/rule#CD-introduction, | uri://…../rule#assumption, | “c” |
粒度可通过特定计算环境内的基本操作格式(例如RDF)实现。另外,过程的反射性(即,过程提供其自己的行为的表示以用于检查和/或自适应的能力)可通过以RDF格式编码计算的行为实现。此外,上下文可被假定为在信息空间中被部分地预先确定并存储为RDF,并且部分地从执行环境中提取。应当指出,RDF结构可被看成在信息空间的语义信息代理(SIB)中的子图、RDF分子(即,RDF图的建立块)或命名图。
在某些实施例中,对与某个执行上下文相关联的闭包进行序列化使得闭包能够经由通信网络105由一个或多个用户信息空间113a-113n在多个UE107和/或设备之间自由地分配,包括与UE107相关联的远程处理器。闭包分配和迁移到运行时环境的过程可以基于如由成本函数处理模块219执行的成本函数来执行,其接受从多个UE、与其相关联的远程处理器、信息空间容量等角度影响最佳处理能力的那些环境或程序上的因素作为用于成本确定算法的输入变量。这些因素可包括但不限于每个过程所需要的处理功率、***负载、可用的运行时环境的能力、被要求执行的处理、负载平衡考虑、安全考虑等。这样,成本函数至少部分地是用于评估、加权或确定作为使闭包分配和迁移可能性不同的结果而达到的必要操作增益和/或所花费的成本的算法或程序执行。客观上,分配和迁移过程将按照哪个相对于当前的环境或功能条件提供最低成本来执行(例如,通过成本函数处理模块219或分配模块(例如未示出))。
在每个计算闭包迁移到所指定的运行时环境后,当接收到闭包时,运行时环境可通过被称为代理的组件与计算处理支持基础架构103通信关于闭包的接收。在从代理接收到通信后,闭包一致性确定模块209验证闭包的一致性,如前面所说明的,闭包是RDF图格式。一致性验证确保用于每个闭包的计算闭包内容是正确的,并包含用于执行的所有必要信息;根据原始的计算,数据流和指令是正确的,并且在序列化和迁移过程期间没有被损坏。如果闭包通过一致性检查或者被批准,则闭包聚合模块211基于计算闭包的内容而重构执行上下文的每个组件。一旦执行上下文被重构,运行时环境的代理可以恢复执行上下文组件的执行,该组件最初被接收为RDF格式的计算闭包。在一个实施例中,执行的恢复可以与执行上下文的至少一部分的其它执行的一个或多个其它结果相结合。
在一个实施例中,反射处理模块215的执行允许如由模块211聚合的执行上下文可以如由运行时环境所做的那样动态地修改。实际上,反射处理模块215监控然后修改运行时的执行结构和/或行为,诸如响应于如在计算结构内被编码、聚合的感知元数据或其它预先确定的响应数据(框架数据、关系映射、用于利用通用代码执行的对象相关数据等)。因此,反射处理模块215剪裁执行以满足特定处理目标。例如,意在以一种格式提供的视频数据执行可在运行时被改编成满足新的格式要求。根据一个实施例,与闭包定义模块205一起操作,一元处理模块217根据允许计算闭包被连接在一起的处理规则使得计算闭包能够用特定功能数据类型编码,以例如对计算处理排序或调整计算处理的控制流。
在一个实施例中,响应于在分布式计算环境内存在传统设备,传统处理模块221使用与传统应用或设备规范对应的数据类型编码或包裹计算闭包。传统处理模块221维持一个或多个传统库定义数据集,诸如在存储器213中维持,然后,响应于确定计算处理请求是源于传统设备或应用,访问所要求的定义。在各种抽象级别,包裹其闭包被构建的闭包原语,或者在某些执行中,至少部分地根据该确定用适当的传统定义和数据类型替换。
图3是根据一个实施例的用于使计算闭包处理能够被执行以用于在信息空间内支持分布式计算的过程300的流程图。在第一步骤301中,计算处理支持基础架构103接收诸如由用户设备发起的请求,其指定在所述设备上执行的用于在计算空间上分配的一个或多个过程。一旦过程被计算处理支持基础架构103的模块201-205进行上下文处理和定义,则在下一步骤303,过程被闭包序列化模块207序列化成一个或多个代表性闭包原语。这样,各种过程被准备好以用于以尽可能离散的计算形式进行分配。作为另一个步骤305,已被序列化的一个或多个闭包原语至少部分地根据如由成本函数处理模块219执行的成本函数而被分配给信息空间的一个或多个其它设备、处理器等。
图4是根据各实施例的用于使计算闭包处理能够用传统设备执行以用于在信息或计算空间内支持分布式计算的过程的流程图。如在此所使用的,传统设备(即,包括应用或者自包含可执行的)属于其行为或实施虽然在指定操作环境内仍有用但对当前技术标准已经过时的任何***。通常,传统设备包括应用程序(API)、操作***(OS)术语或其它不易被接受或与信息和/或计算空间基础架构有关的功能形态。图4的过程400克服了该挑战,以确保在包括一个或多个传统设备的信息空间内计算处理的生存能力。
作为第一步骤401,发布用于计算处理(例如,计算闭包或其一个或多个过程的处理)的请求的设备被确定为是传统设备。该确定可基于对数据代码、错误代码、过程标记、元数据值或某些如作为请求而提供给计算处理支持基础架构103的其它变量的分析403。作为下一个步骤407,当设备被确定为是最新模型时,执行诸如参照图3提供的传统计算处理。可选择地,当分析403的结果是设备是传统设备时,传统处理模块221访问与所识别的传统设备对应的一个或多个传统库。因此,例如,如果与传统设备对应的操作***(OS)被确定是明显原始或较早的OS,则虽然是功能性OS,但获取与该OS对应的库定义和规范。作为另一个步骤409,与传统设备对应的一个或多个闭包原语用一个或多个用于使能在传统设备与计算空间基础架构之间的有效交互的代码结构或数据格式包裹。
图5是根据一个实施例的用于考虑一个或多个过程的不同执行点以用于在信息空间内支持分布式计算的过程的流程图。具体地,根据与请求相关联的一个或多个过程的当前或原始执行状态,闭包原语的最佳分配得以最好地维持。处理资源——即设备、后端***、服务器——可分别用于(例如,分配和迁移)由成本函数处理模块219相对执行状态所应用的机制。
在第一步骤501,确定所请求的用于在设备上执行的一个或多个过程的执行时间。根据将被执行的计算操作的上下文属性,过程及其子过程将以变化的顺序执行,并因此表示不同的执行时间。该信息可被标记(例如,作为元数据)在处理结果上。作为下一步骤503,当执行时间被确定为已在进行中或者已经经过特定阈值——即,主要的计算闭包操作已经被序列化——时,取得一个或多个过程的当前状态的快照。如步骤505所执行的,快照对应于当前数据结构形式、程序单元、当前状态数据、执行序列信息和其它有关在拍摄时可用的变换处理数据的捕获。在捕获后,该信息被保存在计算处理支持基础架构103的临时数据存储器213中。
具体地,该数据现在至少可用于成本函数处理模块219,其中,由该模块应用的用于评估改变闭包原语分配和迁移模式的好处和/或成本的机制也可考虑已知的执行状态。应当注意,至少部分地基于成本函数的分配步骤511可以还基于已知的执行状态进行优化。因此,例如,一个或多个已经参与的过程的当前执行状态可用于优化将可被新引入的后端服务器更好处理的大规模的计算处理任务分配给信息空间,而并非是当前的小规模膝上型计算机处理它。或者,作为另一个例子,执行状态信息可连同成本函数用于驱动闭包原语从正要关闭电源的设备分配给活动的设备。实际上,任何环境、功能或基础架构的条件可进一步地根据已知的处理状态条件而被改编和考虑。
仍然参照图5,当确定还没有执行发生或没有活动(新)的执行状态在进行中时,在步骤507,跟踪一个或多个过程到与最初的分配请求(图3的步骤301)相关联的设备。在下一步骤509和511中,一个或多个被跟踪的过程被序列化,并因此被分配。步骤507-511主要对应于前面如参照各种实施例描述的执行,其中请求的起始源必须被考虑,以在聚合各个闭包原语后正确地返回计算结果。
图6是根据一个实施例的用于生成与一个或多个过程相关联的元数据以用于在信息或计算空间内支持分布式计算的过程的流程图。如上所述,元数据用于提供与请求执行的一个或多个过程有关的上下文详情。对于计算处理支持基础架构103,所提出的过程600与执行上下文确定模块201和执行上下文分解模块203中的一个或组合的执行有关。
在第一步骤601,确定与所请求的用于分配的一个或多个过程相关联的用户上下文、执行上下文或其组合。在某些情况下,也根据需要确定环境上下文、基础架构上下文、网络上下文或者甚至设备上下文,以致使能由计算处理支持基础架构103进行的其它计算处理。在下一个步骤603,根据所确定的上下文数据生成元数据。在另一个步骤605,一个或多个闭包原语用元数据进行注明/标记/封装。应当注意,除此之外,上下文数据可以适当地支持传递闭包处理、反射处理执行、一元处理执行和传统设备处理执行。
图7是根据一个实施例的过程从一个设备到另一个设备的迁移的图。在一个实施例中,后端设备701可以是在用户的信息空间113a-113n内或在与用户相关联的一个UE107上的一个或多个虚拟运行时环境。后端设备701可包括用于连接到后端设备701的每个用户设备107a-107i的用户上下文703。用户上下文703可以是用于每个设备107a的正在各设备间迁移的用户上下文821的副本。代理1和代理2是在用户上下文703内计算和处理计算闭包的处理器。代理的数量可根据其设计、功能、处理功率等而在不同设备中不同。块705代表作为计算闭包closure_1、closure_2、……、closure_n的集合的对象Object,其中每个闭包是例如与通过用户设备107a向用户提供的服务有关的更大的过程的组件。闭包可由计算处理支持基础架构103的闭包定义模块205生成,每个闭包是独立的过程,其可独立于其它闭包来执行。在图7的例子中,过滤过程707通过由执行上下文分解模块203过滤该集合(在块709中示出)来从闭包集合Object中提取closure_1。所提取的closure_1使用示例性的Put命令811被添加到计算闭包存储器713中。
在该例子中,假定所提取的计算闭包closure_1被假设在用户设备107a上执行,则用户设备107a使用Get命令715从计算闭包存储器713中提取计算闭包closure_1。在一个实施例中,至少部分地由成本函数处理模块219确定其上的计算闭包将被迁移以用于计算的设备的决定。所迁移的闭包closure_1被注入(project)到具有用户设备上下文(过程状态)的闭包中,产生对象717。块719表示通过闭包聚合模块211将闭包重构成最初的上下文。然后,聚合的上下文可通过代理3在UE107b的运行时环境721中执行。如果需要,则其余的运行时执行可由反射处理模块215调用,以响应特定的处理目的或环境或基础架构的改变。
在另一个实施例中,块703可以是用户设备,块721是后端设备,或者块701和721都可以是UE。在该实施例中,分解和聚合过程与上面的例子相似,不同之处在于closure_1从UE801上的过程中提取。另外,一个或多个块701和721可以代表传统UE,其中传统处理模块221被有效地应用以使能其在信息或计算空间上的操作。
应当指出,在由闭包序列化模块207序列化计算闭包之前,计算处理支持基础架构103支持信息空间所需要的那些功能。然而,在计算闭包的序列化(即,作为一个或多个闭包原语)后,计算处理支持基础架构103支持计算空间所需要的那些功能。因此,信息空间和计算空间处理都可以提供,而用于计算目的的分配至少基于成本函数考虑而便利。
在此描述的用于使计算闭包处理能够被执行以用于在信息空间内支持分布式计算的过程可以有利地通过软件、硬件、固件或软件和/或固件和/或硬件的组合实现。例如,在此描述的过程,包括用于提供与服务的可用性相关联的用户接口导航信息,可以有利地通过处理器、数字信号处理(DSP)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等实现。用于执行所描述的功能的示例性硬件在下面详细地说明。
图8示出其上可实现本发明的实施例的计算机***800。尽管参照特定设备或装置描述了计算机***800,但可以设想,图8中的其它设备或装置(例如网络单元,服务器等)可以配置所示出的***800的硬件和组件。计算机***800被编程(例如通过计算机程序代码或指令)以使得计算闭包处理能够被执行以用于如在此所述的在信息空间内支持分布式计算,其包括诸如总线的通信机制,用于在计算机***800的内部组件和外部组件之间传递信息。信息(也称为数据)被表示为可测量现象的物理表示,通常是电压,但在其它实施例中包括诸如磁、电磁、压力、化学、生物、分子、原子、亚原子和量子交互的现象。例如,北极和南极磁场或零和非零电压代表二进制数(位)的两个状态(0,1)。其它现象可表示更高进制的数字。在测量前多个同时量子状态的叠加表示量子位(量子比特)。一个或多个数字的序列组成数字数据,其用于表示字符的数字或代码。在某些实施例中,称为模拟数据的信息用特定范围内的接近连续的可测量值表示。计算机***800或其一部分组成用于执行使得计算闭包处理能够被执行以用于在信息空间内支持分布式计算的一个或多个步骤的装置。
总线810包括一个或多个并行的信息导体,使得信息在连接到总线810的设备之间快速地传递。用于处理信息的一个或多个处理器802与总线连接。
处理器(或多个处理器)802对信息执行如由与使计算闭包处理能够执行以用于在信息空间内支持分布式计算的计算机程序代码所规定的一组操作。计算机程序代码是一组指令或语句,其提供用于处理器和/或计算机***执行指定功能的操作的指令。例如,代码可用计算机编程语言编写,其被编译成处理器的原生指令集。代码还可以直接使用原生指令集(例如机器语言)编写。这组操作包括从总线810取得信息和将信息放在总线810上。这组指令通常还包括比较两个或多个信息单元、偏移信息单元的位置和将两个或多个信息单元组合,诸如通过加法或乘法或诸如OR、异或(XOR)和AND的逻辑操作。这组操作中可由处理器执行的每个操作通过诸如一个或多个数字的操作代码的信息调用指令被提供给处理器。由处理器802执行的操作序列,诸如操作代码的序列,组成处理器指令,也称为计算机***指令或简称为计算机指令。处理器可实现为机械、电子、磁、光、化学或量子组件,可以单独或相组合。
计算机***800还包括连接到总线810的存储器804。存储器804,诸如随机存取存储器(RAM)或其它动态存储设备,存储包括用于使计算闭包处理能够被执行以用于在信息空间内支持分布式计算的处理器指令的信息。动态存储器允许存储在其中的信息被计算机***800改变。RAM允许在称为存储器地址的位置处存储的信息单元独立于相邻地址处的信息地被存储和获取。,存储器804还被处理器802用于在处理器指令的执行期间存储临时值。计算机***800还包括连接到总线800的只读存储器(ROM)或其它静态存储设备,用于存储不被计算机***800改变的静态信息,包括指令。某些存储器由易失性存储器组成,其在掉电时失去在其上存储的信息。另一个连接到总线810的是非易失性(永久)存储设备808,诸如磁盘、光盘或闪存卡,用于存储包括指令的信息,其即使在计算机***800关闭或掉电的情况下也能存留。
信息包括用于使计算闭包处理能够被执行以用于在信息空间内支持分布式计算的指令,其从诸如包含由用户操作的字母数字键的键盘或传感器的外部输入设备812提供给总线810以由处理器使用。传感器检测它附近的情况,并将这些检测转换成与用于在计算机***800中表示信息的可测量现象兼容的物理表示。连接到总线800的其它外部设备(主要用于和人进行交互)包括诸如阴极射线管(CRT)或液晶显示器(LCD)或用于呈现文本或图像的等离子显示屏或打印机的显示设备814和用于控制在显示器814上显示的小光标图像的位置并发布与在显示器814上呈现的图形单元相关联的命令的指示设备816,诸如鼠标或轨迹球或光标方向键或运动传感器。在某些实施例中,例如,在计算机***800自动执行所有功能而无需人类输入的实施例中,可省略外部输入设备812、显示设备814和指示设备816中的一个或多个。
在所描述的实施例中,诸如专用集成电路(ASIC)820的专用硬件被连接到总线800。专用硬件被配置为执行对于特殊目的,处理器802不能足够快地执行的操作。专用IC的例子包括用于生成显示器814的图像的图形加速卡、用于加密和解密通过网络发送的消息、语音识别的加密板、以及特殊外部设备的接口,其重复执行用硬件更有效实现的某些复杂的操作序列,诸如机器人臂和医疗扫描装置。
计算机***800还包括连接到总线810的通信接口870的一个或多个实例。通信接口870提供单向或双向通信,其连接到通过自己的处理器运行的各种外部设备,诸如打印机、扫描仪和外部磁盘。通常,连接采用连接到本地网络880的网络链路878,多个具有自己的处理器的外部设备连接到本地网络880。例如,通信接口870可以是个人计算机上的并行端口、串行端口或通用串行总线(USB)端口。在某些实施例中,通信接口870是集成服务数字网络(ISDN)卡或数字用户线(DSL)卡或电话调制解调器,其向对应类型的电话线提供信息通信连接。在某些实施例中,通信接口870是电缆调制解调器,其将总线810上的信号转换为用于同轴电缆上的通信连接的信号或用于在光缆上的通信连接的光信号。作为另一个例子,通信接口870可以是局域网(LAN)卡,以向兼容的LAN(诸如以太网)提供数据通信连接。也可以实现无线链路。对于无线链路,通信接口870发送或接收或发送和接收载有诸如数字数据的信息流的电信号、声音信号或电磁信号,包括红外信号和光信号。例如,在诸如类似蜂窝电话的移动电话的无线手持设备中,通信接口870包括称为无线电收发机的无线电带宽电磁发射机和接收机。在某些实施例中,通信接口870使能与通信网络105的连接以用于使计算闭包处理能够被执行以用于在信息空间内支持分布式计算。
如在此所使用的术语“计算机可读媒体”是指任何参与向处理器802提供信息的媒体,包括用于执行的指令。这种媒体可采用任何形式,包括但不限于计算机可读存储媒体(例如,非易失性媒体、易失性媒体)和传输媒体。非瞬态媒体,诸如非易失性媒体,包括例如光盘或磁盘,诸如存储器808。易失性媒体包括例如动态存储器804。传输媒体包括例如同轴电缆、铜线、光缆和无需线路或电缆而通过空间传播的载波,诸如声波和电磁波,包括无线电波、光波和红外波。信号包括通过传输媒体传输的在幅度、频率、相位、极性或其它物理属性方面的人造瞬态变化。计算机可读媒体的通用形式包括例如软盘、软磁盘、硬盘、磁带、任何其它磁媒体、CD-ROM、CDRW、DVD、任何其它光学媒体、穿孔卡、纸制磁带、光学标记纸、任何其它具有孔状或其它光学可识别的标记的物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或盒、载波、或任何其它计算机可从中读取的媒体。在此所使用的术语计算机可读存储媒体是指除了传输媒体之外的任何计算机可读媒体。
在一个或多个有形媒体中编码的逻辑包括在计算机可读存储媒体和诸如ASIC820的专用硬件上的处理器指令中的一个或两个。
网络链路878通常使用传输媒体通过一个或多个网络向使用或处理信息的其它设备提供信息通信。例如,网络链路878可提供通过本地网络880到达主机计算机882或由因特网服务提供商(ISP)操作的设备884的连接。ISP设备884再通过现在通常称为因特网890的公共的遍及全球的分组交换通信网络提供数据通信服务。
称为服务器主机892的连接到因特网的计算机托管响应于通过因特网接收的信息而提供服务的过程。例如,服务器主机892托管提供表示视频数据的信息以在显示器814上呈现的过程。可以设想***800的组件可以各种配置方式部署在其它计算机***内,例如主机882和服务器892。
本发明的至少某些实施例与计算机***800用于实现这在此描述的某些或所有技术有关。根据本发明的一个实施例,这些技术由计算机***800执行,以响应处理器802执行在存储器804中包含的一个或多个处理器指令的一个或多个序列。这种指令也称为计算机指令、软件或程序代码,可以从诸如存储设备808或网络链路878的另一个计算机可读存储媒体中读入存储器804。在存储器804中包含的指令序列的执行使得处理器802执行在此描述的一个或多个方法步骤。在可选的实施例中,诸如ASIC820的硬件可用于替换软件或与软件相结合以实现本发明。因此,本发明的实施例并不限于硬件和软件的任何特定组合,除非在此明确说明的。
通过通信接口870在网络链路878和其它网络上传输的信号将信息运送到计算机***800或从计算机***800获得。计算机***800可通过网络链路878和通信接口870并通过网络880、890发送和接收信息,包括程序代码。在使用因特网890的例子中,服务器主机892通过因特网890、ISP设备884、本地网络880和通信接口870传输由从计算机800发送的消息所请求的用于特定应用的程序代码。所接收的代码可在被接收时由处理器802执行、或者可存储在存储器804中或存储在存储设备808或其它非易失性存储器中用于以后执行、或者这两者。这样,计算机***800可在载波上获取采用信号的形式的应用程序代码。
各种形式的计算机可读媒体可参与携带一个或多个指令序列或数据或两者到处理器802以用于执行。例如,指令和数据最初在诸如主机882的远程计算机的磁盘上携带。远程计算机将指令和数据加载到它的动态存储器中,并使用调制解调器通过电话线发送指令和数据。在计算机***800本地的调制解调器在电话线上接收指令和数据,并使用红外发射器将指令和数据转换成在用作网络链路878的红外载波上的信号。用作通信接口870的红外检测器接收在红外信号中携带的指令和数据,并将表示指令和数据的信息放置在总线810上。总线810携带信息到达存储器804,处理器802从存储器804中获取指令并使用与指令一起发送的某些数据执行指令。在存储器804中接收的指令和数据可选地在由处理器802执行之前或之后存储在存储设备808上。
图9表示本发明的实施例可在其上实现的芯片组或芯片900。芯片组900被编程为如在此所描述的使计算闭包处理能够被执行以用于在信息空间内支持分布式计算,并包括例如参照图8描述的合并在一个或多个物理包装(例如芯片)中的处理器和存储器组件。作为例子,物理包装包括一个或多个材料、组件和/或线路在结构组合件(例如基板)上的设置,以提供一个或多个特征,诸如物理强度、尺寸保护和/或电交互的限制。可以设想在某些实施例中,芯片组900可以被实现为单个芯片。还可以设想在某些实施例中,芯片组或芯片900可以被实现为单个“片上***”。还可以设想在某些实施例中,单独的ASIC不会被使用,而是例如在此所描述的所有相关功能由处理器或处理器组执行。芯片组或芯片900或其中的一部分组成用于执行提供与服务的可用性相关联的用户接口导航信息的一个或多个步骤的装置。芯片组或芯片900或其中一部分组成用于执行使计算闭包处理能够被执行以用于在信息空间内支持分布式计算的一个或多个步骤的装置。
在一个实施例中,芯片组或芯片900包括通信机制,诸如用于在芯片组900的组件之间传递信息的总线901。处理器903连接到总线901以执行例如存储在存储器905中的指令和过程信息。处理器903可包括一个或多个处理核,每个核被配置为独立地执行。多核处理器能够实现单个物理包装内的多处理。多核处理器的例子包括两个、四个、八个或更多数量的处理器核。可选择地或另外地,处理器903可包括一个或多个微处理器,其被配置为通过总线901串联以能够独立执行指令、流水线和多线程。处理器903还可附带有一个或多个专用组件以执行某些处理功能和任务,诸如一个或多个数字信号处理器(DSP)907、或一个或多个专用集成电路(ASIC)909。DSP907通常被配置为独立于处理器903地实时处理真实信号(例如,声音)。类似地,ASIC909可被配置为执行更通用的处理器不容易执行的专用功能。其它有助于执行在此所描述的创新性功能的专用组件可包括一个或多个现场可编程门阵列(FPGA)(未示出)、一个或多个控制器(未示出)或一个或多个其它专用计算机芯片。
在一个实施例中,芯片组或芯片900仅包括一个或多个处理器以及支持和/或有关和/或用于一个或多个处理器的某些软件和/或固件。
处理器903和附带组件通过总线901连接到存储器905。存储器905包括动态存储器(例如RAM、磁盘、可写入光盘等)和静态存储器(例如ROM、CD-ROM等),用于存储可执行指令,这些指令在被执行时执行在此描述的用于使计算闭包处理能够被执行以用于在信息空间内支持分布式计算的创新性步骤。存储器905还存储与创新性步骤的执行相关的或者由创新性步骤的执行生成的数据。
图10是根据一个实施例的用于通信的移动终端(例如手机)的示例性组件的图,该移动终端能够运行在图1的***中。在某些实施例中,移动终端100或其一部分构成用于执行使计算闭包处理能够被执行以用于在信息空间内支持分布式计算的一个或多个步骤的装置。通常,无线接收机经常根据前端和后端特性定义。接收机的前端包括所有的射频(RF)电路,而后端包括所有的基带处理电路。如在本申请中所使用的,术语“电路”是指:(1)仅硬件实现(诸如仅用模拟和/或数字电路实现)和(2)电路和软件(和/或固件)的组合(诸如,如果应用于特定上下文,则是处理器的组合,包括数字信号处理器、软件和存储器,它们一起工作以使诸如移动电话或服务器的装置执行各种功能)两者。“电路”的该定义适用于本申请中所有使用该术语的情形,包括在任一权利要求中。作为另一个例子,如在本申请中使用的并且如果适用于特定上下文,术语“电路”还将覆盖仅用处理器(或多个处理器)和其附带软件和/或固件的实现。如果适用于特定上下文,则术语“电路”还将覆盖移动电话中的基带集成电路或应用处理器集成电路或者蜂窝网络设备或其它网络设备中的类似集成电路。
相关的电话的内部组件包括主控制单元(MCU)1003、数字信号处理器(DSP)1005、和接收机/发射机单元,其包括麦克风增益控制单元和扬声器增益控制单元。主显示单元1007向用户提供显示以支持各种应用和移动终端功能,其执行或支持使计算闭包处理能够被执行以用于在信息空间内支持分布式计算的步骤。显示器1007包括显示电路,其被配置为显示移动终端(例如移动电话)的用户接口的至少一部分。另外,显示器1007和显示电路被配置为方便用户控制移动终端的至少某些功能。音频功能电路1009包括麦克风1011和放大从麦克风1011输出的语音信号的麦克风放大器。从麦克风1011输出的放大的语音信号被馈入编码/解码器(CODEC)1013。
无线部分1015放大功率并转换频率,以便经由天线1017与包括在移动通信***中的基站进行通信。功率放大器(PA)1019和发射机/调制电路可操作地响应于MCU1003,来自PA1019的输出连接到双工器1021或循环器或天线开关,如在本领域已知的。PA1019还连接到电池接口和功率控制单元1020。
在使用时,移动终端1001的用户对着麦克风1011说话,他或她的声音与任何所检测到的背景噪音一起被转换成模拟电压。然后,模拟电压通过模数转换器(ADC)1023转换成数字信号。控制单元1003将数字信号路由到DSP1005中以在这里处理,诸如语音编码、信道编码、加密和交织。在一个实施例中,所处理的语音信号被未单独示出的单元使用蜂窝传输协议进行编码,协议是诸如全球演进(EDGE)、通用分组无线服务(GPRS)、全球移动通信***(GSM)、因特网协议多媒体子***(IMS)、通用移动电信***(UMTS)等以及任何其它合适的无线媒体,例如,微波接入(WiMAX)、长期演进(LTE)网络、码分多址接入(CDMA)、宽带码分多址接入(WCDMA)、无线保真(WiFi)、卫星等。
然后,编码后的信号被路由到均衡器1025,以用于补偿任何在无线传输期间出现的频率相关损失,诸如相位和幅度失真。在对比特流进行均衡后,调制器1027将信号与在RF接口1029中生成的RF信号相结合。调制器1027通过频率或相位调制生成正弦波。为了准备用于传输的信号,上转换器1031将来自调制器1027的正弦波输出与由合成器1033生成的另一个正弦波相结合,以获得所期望的传输频率。然后,信号通过PA1010发送以将信号提高到适当的功率水平。在实际***中,PA1019充当可变增益放大器,其增益由DSP105根据从网络基站接收的信息来控制。然后,信号在双工器1021内进行滤波,并可选地发送到天线连接器1035,以匹配电阻以提供最强功率传输。最后,信号经由天线1017被发送到本地基站。可提供自动增益控制(AGC)以控制接收机的最后阶段的增益。信号可从那里被转发到远程电话,其可以是另一个蜂窝电话、其它移动电话或连接到公共交换电话网络(PSTN)或其他电话网络的陆基线路。
传输到移动终端1001的语音信号经由天线1017接收,并立即被低噪音放大器(LNA)放大。下转换器1039降低载波频率,而解调器1041剥离RF,仅剩下数字比特流。然后,信号经过均衡器1025,并由DSP1005进行处理。数模转换器(DAC)1043转换信号,所产生的输出通过扬声器1045被传输给用户,所有这些都在主控制单元(MCU)1003的控制下进行,其可以被实现为中央处理单元(CPU)(未示出)。
MCU1003接收各种信号,包括来自键盘1047的输入信号。键盘1047和/或MCU1003结合其它用户输入组件(例如,麦克风1011)包括用于管理用户输入的用户接口电路。MCU1003运行用户接口软件,以方便用户控制移动终端1001的至少某些功能以使计算闭包处理能够被执行以用于在信息空间内支持分布式计算。MCU1003还分别向显示器1007和语音输出切换控制器传递显示命令和切换命令。另外,MCU1003与DSP1005交换信息,并可访问可选地合并的SIM卡1049和存储器1051。此外,MCU1003执行终端所需的各种控制功能。DSP1005可根据具体实现而对语音信号执行各种传统的数字处理功能。另外,DSP1005根据由麦克风1011检测的信号确定本地环境的背景噪音水平,并将麦克风1011的增益设置到被选择以补偿移动终端1001的用户的自然倾向的水平。
CODEC1013包括ADC1023和DAC1043。存储器1051存储各种数据,包括呼入声音数据,并能够存储包括经由例如全球因特网接收的音乐数据的其它数据。软件模块可驻留在RAM存储器、闪存、寄存器或本领域已知的任何其它形式的可写入存储媒体中。存储器设备1051可以是但不限于单个存储器、CD、DVD、ROM、RAM、EEPROM、光盘存储器或任何其它能够存储数字数据的非易失性存储媒体。
可选地合并的SIM卡1049例如携带重要的信息,诸如蜂窝电话号码、载波提供服务、订阅详情和安全信息。SIM卡1049主要用于识别无线网络上的移动终端1001。卡1049还包含用于存储个人电话号码表、文本消息和用户特定移动终端设置的存储器。
尽管本发明已经结合许多实施例和实现方式进行了描述,但本发明并不限于此,而是覆盖了各种显然的变形和等同配置,其落入后附的权利要求的范围内。尽管本发明的特征在权利要求中采用某些结合进行了描述,但可以设想这些特征也可以按任何结合或顺序设置。
Claims (20)
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.一种用于分配计算闭包的方法,包括方便访问至少一个接口,所述接口被配置为允许访问至少一个服务,所述至少一个服务被配置为执行权利要求1至9的至少一个的用于分配计算闭包的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US36509310P | 2010-07-16 | 2010-07-16 | |
US61/365,093 | 2010-07-16 | ||
US13/108,571 | 2011-05-16 | ||
US13/108,571 US9201701B2 (en) | 2010-07-16 | 2011-05-16 | Method and apparatus for distributing computation closures |
PCT/FI2011/050553 WO2012007636A1 (en) | 2010-07-16 | 2011-06-13 | Method and apparatus for distributing computation closures |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103003797A CN103003797A (zh) | 2013-03-27 |
CN103003797B true CN103003797B (zh) | 2017-08-04 |
Family
ID=45468975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180034992.4A Expired - Fee Related CN103003797B (zh) | 2010-07-16 | 2011-06-13 | 用于分配计算闭包的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9201701B2 (zh) |
EP (1) | EP2593866B1 (zh) |
CN (1) | CN103003797B (zh) |
PL (1) | PL2593866T3 (zh) |
WO (1) | WO2012007636A1 (zh) |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9396040B2 (en) * | 2010-12-27 | 2016-07-19 | Nokia Technologies Oy | Method and apparatus for providing multi-level distributed computations |
US9736065B2 (en) | 2011-06-24 | 2017-08-15 | Cisco Technology, Inc. | Level of hierarchy in MST for traffic localization and load balancing |
US8908698B2 (en) | 2012-01-13 | 2014-12-09 | Cisco Technology, Inc. | System and method for managing site-to-site VPNs of a cloud managed network |
US9324033B2 (en) | 2012-09-13 | 2016-04-26 | Nokia Technologies Oy | Method and apparatus for providing standard data processing model through machine learning |
US9852381B2 (en) * | 2012-12-20 | 2017-12-26 | Nokia Technologies Oy | Method and apparatus for providing behavioral pattern generation for mixed reality objects |
US9992306B2 (en) * | 2012-12-21 | 2018-06-05 | E*Trade Financial Corporation | Dynamic execution |
US10097989B2 (en) | 2012-12-21 | 2018-10-09 | E*Trade Financial Corporation | Dynamic communication |
US9043439B2 (en) | 2013-03-14 | 2015-05-26 | Cisco Technology, Inc. | Method for streaming packet captures from network access devices to a cloud server over HTTP |
US9330372B2 (en) * | 2013-06-28 | 2016-05-03 | Sap Ag | Generating an improved development infrastructure |
US10015720B2 (en) | 2014-03-14 | 2018-07-03 | GoTenna, Inc. | System and method for digital communication between computing devices |
US10122605B2 (en) | 2014-07-09 | 2018-11-06 | Cisco Technology, Inc | Annotation of network activity through different phases of execution |
US10095508B2 (en) * | 2014-09-25 | 2018-10-09 | Oracle International Corporation | System and method for supporting dynamic deployment of executable code in a distributed computing environment |
US9825878B2 (en) | 2014-09-26 | 2017-11-21 | Cisco Technology, Inc. | Distributed application framework for prioritizing network traffic using application priority awareness |
US10050862B2 (en) | 2015-02-09 | 2018-08-14 | Cisco Technology, Inc. | Distributed application framework that uses network and application awareness for placing data |
US10708342B2 (en) | 2015-02-27 | 2020-07-07 | Cisco Technology, Inc. | Dynamic troubleshooting workspaces for cloud and network management systems |
US10476982B2 (en) | 2015-05-15 | 2019-11-12 | Cisco Technology, Inc. | Multi-datacenter message queue |
US10129361B2 (en) | 2015-07-01 | 2018-11-13 | Oracle International Corporation | System and method for multi-version remote function execution control in a distributed computing environment |
US10034201B2 (en) | 2015-07-09 | 2018-07-24 | Cisco Technology, Inc. | Stateless load-balancing across multiple tunnels |
US11005682B2 (en) | 2015-10-06 | 2021-05-11 | Cisco Technology, Inc. | Policy-driven switch overlay bypass in a hybrid cloud network environment |
US10462136B2 (en) | 2015-10-13 | 2019-10-29 | Cisco Technology, Inc. | Hybrid cloud security groups |
US11169978B2 (en) | 2015-10-14 | 2021-11-09 | Dr Holdco 2, Inc. | Distributed pipeline optimization for data preparation |
US10523657B2 (en) | 2015-11-16 | 2019-12-31 | Cisco Technology, Inc. | Endpoint privacy preservation with cloud conferencing |
US10205677B2 (en) | 2015-11-24 | 2019-02-12 | Cisco Technology, Inc. | Cloud resource placement optimization and migration execution in federated clouds |
US10084703B2 (en) | 2015-12-04 | 2018-09-25 | Cisco Technology, Inc. | Infrastructure-exclusive service forwarding |
US10367914B2 (en) | 2016-01-12 | 2019-07-30 | Cisco Technology, Inc. | Attaching service level agreements to application containers and enabling service assurance |
US10129177B2 (en) | 2016-05-23 | 2018-11-13 | Cisco Technology, Inc. | Inter-cloud broker for hybrid cloud networks |
US10659283B2 (en) | 2016-07-08 | 2020-05-19 | Cisco Technology, Inc. | Reducing ARP/ND flooding in cloud environment |
US10432532B2 (en) | 2016-07-12 | 2019-10-01 | Cisco Technology, Inc. | Dynamically pinning micro-service to uplink port |
US10263898B2 (en) | 2016-07-20 | 2019-04-16 | Cisco Technology, Inc. | System and method for implementing universal cloud classification (UCC) as a service (UCCaaS) |
US10382597B2 (en) | 2016-07-20 | 2019-08-13 | Cisco Technology, Inc. | System and method for transport-layer level identification and isolation of container traffic |
US10567344B2 (en) | 2016-08-23 | 2020-02-18 | Cisco Technology, Inc. | Automatic firewall configuration based on aggregated cloud managed information |
US10523592B2 (en) | 2016-10-10 | 2019-12-31 | Cisco Technology, Inc. | Orchestration system for migrating user data and services based on user information |
US11044162B2 (en) | 2016-12-06 | 2021-06-22 | Cisco Technology, Inc. | Orchestration of cloud and fog interactions |
US10326817B2 (en) | 2016-12-20 | 2019-06-18 | Cisco Technology, Inc. | System and method for quality-aware recording in large scale collaborate clouds |
US10334029B2 (en) | 2017-01-10 | 2019-06-25 | Cisco Technology, Inc. | Forming neighborhood groups from disperse cloud providers |
US10552191B2 (en) | 2017-01-26 | 2020-02-04 | Cisco Technology, Inc. | Distributed hybrid cloud orchestration model |
US10320683B2 (en) | 2017-01-30 | 2019-06-11 | Cisco Technology, Inc. | Reliable load-balancer using segment routing and real-time application monitoring |
US10671571B2 (en) | 2017-01-31 | 2020-06-02 | Cisco Technology, Inc. | Fast network performance in containerized environments for network function virtualization |
US10817587B2 (en) | 2017-02-28 | 2020-10-27 | Texas Instruments Incorporated | Reconfigurable matrix multiplier system and method |
US10735023B2 (en) | 2017-02-24 | 2020-08-04 | Texas Instruments Incorporated | Matrix compression accelerator system and method |
US10810281B2 (en) | 2017-02-24 | 2020-10-20 | Texas Instruments Incorporated | Outer product multipler system and method |
US11086967B2 (en) * | 2017-03-01 | 2021-08-10 | Texas Instruments Incorporated | Implementing fundamental computational primitives using a matrix multiplication accelerator (MMA) |
US11005731B2 (en) | 2017-04-05 | 2021-05-11 | Cisco Technology, Inc. | Estimating model parameters for automatic deployment of scalable micro services |
US10275721B2 (en) | 2017-04-19 | 2019-04-30 | Accenture Global Solutions Limited | Quantum computing machine learning module |
US10382274B2 (en) | 2017-06-26 | 2019-08-13 | Cisco Technology, Inc. | System and method for wide area zero-configuration network auto configuration |
US10439877B2 (en) | 2017-06-26 | 2019-10-08 | Cisco Technology, Inc. | Systems and methods for enabling wide area multicast domain name system |
US10425288B2 (en) | 2017-07-21 | 2019-09-24 | Cisco Technology, Inc. | Container telemetry in data center environments with blade servers and switches |
US10892940B2 (en) | 2017-07-21 | 2021-01-12 | Cisco Technology, Inc. | Scalable statistics and analytics mechanisms in cloud networking |
US10601693B2 (en) | 2017-07-24 | 2020-03-24 | Cisco Technology, Inc. | System and method for providing scalable flow monitoring in a data center fabric |
US10541866B2 (en) | 2017-07-25 | 2020-01-21 | Cisco Technology, Inc. | Detecting and resolving multicast traffic performance issues |
US11481362B2 (en) | 2017-11-13 | 2022-10-25 | Cisco Technology, Inc. | Using persistent memory to enable restartability of bulk load transactions in cloud databases |
US10705882B2 (en) | 2017-12-21 | 2020-07-07 | Cisco Technology, Inc. | System and method for resource placement across clouds for data intensive workloads |
US11595474B2 (en) | 2017-12-28 | 2023-02-28 | Cisco Technology, Inc. | Accelerating data replication using multicast and non-volatile memory enabled nodes |
US10813169B2 (en) | 2018-03-22 | 2020-10-20 | GoTenna, Inc. | Mesh network deployment kit |
US10511534B2 (en) | 2018-04-06 | 2019-12-17 | Cisco Technology, Inc. | Stateless distributed load-balancing |
US10728361B2 (en) | 2018-05-29 | 2020-07-28 | Cisco Technology, Inc. | System for association of customer information across subscribers |
US10904322B2 (en) | 2018-06-15 | 2021-01-26 | Cisco Technology, Inc. | Systems and methods for scaling down cloud-based servers handling secure connections |
US10764266B2 (en) | 2018-06-19 | 2020-09-01 | Cisco Technology, Inc. | Distributed authentication and authorization for rapid scaling of containerized services |
US11019083B2 (en) | 2018-06-20 | 2021-05-25 | Cisco Technology, Inc. | System for coordinating distributed website analysis |
US10819571B2 (en) | 2018-06-29 | 2020-10-27 | Cisco Technology, Inc. | Network traffic optimization using in-situ notification system |
US10904342B2 (en) | 2018-07-30 | 2021-01-26 | Cisco Technology, Inc. | Container networking using communication tunnels |
CN114205365B (zh) | 2020-08-31 | 2023-06-20 | 华为技术有限公司 | 应用界面迁移***、方法及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350752A (zh) * | 2007-07-20 | 2009-01-21 | 美国博通公司 | 在通讯网络中管理信息的处理的方法和*** |
US8495636B2 (en) * | 2007-12-19 | 2013-07-23 | International Business Machines Corporation | Parallelizing single threaded programs by performing look ahead operation on the single threaded program to identify plurality of instruction threads prior to execution |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086656A1 (en) * | 2003-10-20 | 2005-04-21 | Gemstone Systems, Inc. | Methods and systems for inter-process copy sharing of data objects |
US7587721B2 (en) * | 2004-05-20 | 2009-09-08 | Sap Ag | Sharing objects in runtime systems |
US7877748B2 (en) * | 2004-11-19 | 2011-01-25 | The United States Of America As Represented By The Secretary Of The Air Force | Method and apparatus for timing information flow in a distributed system |
US7543302B2 (en) * | 2004-12-28 | 2009-06-02 | Sap Ag | System and method for serializing java objects over shared closures |
US7823150B2 (en) * | 2005-01-25 | 2010-10-26 | International Business Machines Corporation | Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object |
US7793255B1 (en) * | 2005-03-01 | 2010-09-07 | Oracle America, Inc. | System and method for maintaining alternate object views |
US20060248199A1 (en) * | 2005-04-29 | 2006-11-02 | Georgi Stanev | Shared closure persistence of session state information |
US20070094214A1 (en) | 2005-07-15 | 2007-04-26 | Li Eric Q | Parallelization of bayesian network structure learning |
US20070294692A1 (en) | 2006-06-16 | 2007-12-20 | Microsoft Corporation | Task Assignment Among Multiple Devices |
US8281299B2 (en) * | 2006-11-10 | 2012-10-02 | Purdue Research Foundation | Map-closure: a general purpose mechanism for nonstandard interpretation |
US8301673B2 (en) * | 2006-12-29 | 2012-10-30 | Netapp, Inc. | System and method for performing distributed consistency verification of a clustered file system |
EP2023675A3 (en) | 2007-07-20 | 2012-12-26 | Broadcom Corporation | Method and system for an atomizing function of a mobile device |
US7516365B2 (en) * | 2007-07-27 | 2009-04-07 | Sun Microsystems, Inc. | System and method for split hardware transactions |
US8284205B2 (en) * | 2007-10-24 | 2012-10-09 | Apple Inc. | Methods and apparatuses for load balancing between multiple processing units |
GB2454497B (en) | 2007-11-08 | 2012-01-11 | Fujitsu Ltd | Task scheduling method apparatus and computer program |
US8103656B2 (en) | 2008-02-20 | 2012-01-24 | Infosys Technologies Limited | Integrated distributed query processor for data grids |
US8291052B2 (en) | 2008-06-24 | 2012-10-16 | Nokia Corporation | Method, apparatus, and computer program product for determining a path update via distributed information management |
JP2010033555A (ja) * | 2008-06-30 | 2010-02-12 | Olympus Corp | コントロール・ユニット、分散処理システム及び分散処理方法 |
US8813091B2 (en) | 2008-08-04 | 2014-08-19 | Oracle America, Inc. | Distribution data structures for locality-guided work stealing |
US8209664B2 (en) | 2009-03-18 | 2012-06-26 | Microsoft Corporation | High level programming extensions for distributed data parallel processing |
US8266192B2 (en) * | 2010-03-19 | 2012-09-11 | Hitachi, Ltd. | File-sharing system and method for processing files, and program |
US8401934B2 (en) | 2010-07-02 | 2013-03-19 | Nokia Corporation | Method and apparatus for information and computation closures account management |
-
2011
- 2011-05-16 US US13/108,571 patent/US9201701B2/en not_active Expired - Fee Related
- 2011-06-13 PL PL11806352T patent/PL2593866T3/pl unknown
- 2011-06-13 WO PCT/FI2011/050553 patent/WO2012007636A1/en active Application Filing
- 2011-06-13 CN CN201180034992.4A patent/CN103003797B/zh not_active Expired - Fee Related
- 2011-06-13 EP EP11806352.8A patent/EP2593866B1/en not_active Not-in-force
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350752A (zh) * | 2007-07-20 | 2009-01-21 | 美国博通公司 | 在通讯网络中管理信息的处理的方法和*** |
US8495636B2 (en) * | 2007-12-19 | 2013-07-23 | International Business Machines Corporation | Parallelizing single threaded programs by performing look ahead operation on the single threaded program to identify plurality of instruction threads prior to execution |
Non-Patent Citations (1)
Title |
---|
Concurrency Oriented Programming in Termite Scheme;Guillaume Germain等;《Scheme and Functional Programming 2006》;20060917;第1页右栏第6段-第3页右栏第1段 * |
Also Published As
Publication number | Publication date |
---|---|
EP2593866A1 (en) | 2013-05-22 |
US9201701B2 (en) | 2015-12-01 |
WO2012007636A1 (en) | 2012-01-19 |
EP2593866B1 (en) | 2016-10-19 |
PL2593866T3 (pl) | 2017-05-31 |
US20120072917A1 (en) | 2012-03-22 |
EP2593866A4 (en) | 2015-08-12 |
CN103003797A (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103003797B (zh) | 用于分配计算闭包的方法和装置 | |
CN103688244B (zh) | 用于为分布式计算提供端到端隐私的方法和装置 | |
CN102667765B (zh) | 用于有选择地共享语义信息集合的方法和装置 | |
CN102939604B (zh) | 用于上下文索引的网络资源的方法和装置 | |
US9008693B2 (en) | Method and apparatus for information aggregation around locations | |
CN103636273B (zh) | 用于改进多订户身份模块设备上的接收可用性的方法和装置 | |
CN102939579A (zh) | 绑定用户接口元素和粒度反映处理的方法和装置 | |
CN104798082A (zh) | 用于提供用于数据流的隐私策略的方法和装置 | |
US9477787B2 (en) | Method and apparatus for information clustering based on predictive social graphs | |
US20130007063A1 (en) | Method and apparatus for real-time processing of data items | |
US9246914B2 (en) | Method and apparatus for processing biometric information using distributed computation | |
CN103069421B (zh) | 用于处理针对分区式索引的搜索请求的方法和装置 | |
US20140082178A1 (en) | Method and apparatus for providing dynamic stream processing of data based on static analytics | |
CN103907113A (zh) | 用于分布式脚本处理的方法和装置 | |
WO2012038600A1 (en) | Method and apparatus for ontology matching | |
US20130007088A1 (en) | Method and apparatus for computational flow execution | |
US9396040B2 (en) | Method and apparatus for providing multi-level distributed computations | |
US9355144B2 (en) | Method and apparatus for recycling information fragments in information spaces | |
CN102985922A (zh) | 在计算空间中管理分布计算的方法和装置 | |
CN103907329A (zh) | 用于实现离线web应用执行的方法和装置 | |
CN103299300A (zh) | 提供输入建议的方法和装置 | |
US8745121B2 (en) | Method and apparatus for construction and aggregation of distributed computations | |
US10068108B2 (en) | Method and apparatus for secure signing and utilization of distributed computations | |
US9043323B2 (en) | Method and apparatus for providing search with contextual processing | |
CN103080931A (zh) | 用于分页更新协议的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20151224 Address after: Espoo, Finland Applicant after: NOKIA TECHNOLOGIES OY Address before: Espoo, Finland Applicant before: NOKIA Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170804 |
|
CF01 | Termination of patent right due to non-payment of annual fee |