远程进程执行管理的制作方法

文档序号:6496560阅读:163来源:国知局
远程进程执行管理的制作方法
【专利摘要】本发明公开了一种远程执行管理进程,其涉及网络计算供应商处的软件进程实例的各个方面的执行和管理。客户端计算装置可以例证软件进程实例。客户端计算装置确定软件进程实例的远程进程配置,包括识别在网络计算供应商处执行的软件进程实例的至少一个子进程。客户端计算装置可以将远程会话配置信息提供给网络计算供应商。基于远程会话配置信息,网络计算供应商可以例证对应于所述至少一个子进程的远程会话。网络计算供应商可以由远程会话将处理结果传输返回到与所述至少一个子进程的执行相关联的客户端计算装置。
【专利说明】远程进程执行管理
[0001]发明背景
[0002]一般描述计算装置执行由多个计算机可读指令组成的进程,从而使计算装置执行多种功能或动作。通常,操作系统管理与计算装置相关联的许多基本功能或功能性,通常被称作“低级操作”。一方面,基本功能性的管理可包括与计算装置(诸如装置存储器、数据存储装置和输入/输出)相关联的资源的管理。另一方面,基本功能性的管理可包括与计算装置上被例证并请求执行指令(通常被称作进程或线程)的一个或多个软件应用程序相关联的指令的管理。例如,操作系统可以确定装置资源的分配和装置上例证的各个应用程序、月艮务和其它进程之间的执行次序。
[0003]在一些情况下,对计算装置执行的进程的资源需求可能超过可用计算装置资源的容量。在这些情况下,用户可能经历响应延迟或缺失。参考说明性实例,可以命令计算装置经由对计算装置执行的图形编辑应用程序加载并显示大的图像文件。如果计算装置不具有可用于处理请求的足够多的装置存储器,那么操作系统可将装置存储器和图像文件的一个或多个段加载到诸如硬碟或快闪存储器的较长延时存储装置中。此后,操作系统可更换存储在装置存储器和较长延时存储装置中的信息(通常被称作更换)。在许多情况下,更换存储器可能是缓慢又耗时的过程。继续说明性实例,用户还可以请求图形编辑应用程序对图像文件执行图形操控操作。因此,图形编辑应用程序可能使执行由对应于图像操控操作的可执行指令系列组成的子进程。如果图像文件大,如果计算装置的可用计算资源有限,或如果变换在计算上较为复杂,那么完成子进程可能要消耗大量时间,且可能影响其它程序(诸如同时对装置执行的应用程序和操作系统)的执行。
[0004]从用户使用客户端计算装置的观点来看,可就与对计算装置执行各个软件进程相关联的性能和延时来定义用户经历。上述进程中的任何一个的延时和性能限制可以减少用户经历。此外,计算装置(诸如笔记本、平板电脑、智能手机等)由于资源有限(诸如处理能力、存储器或网络连接性)而尤其可能出现延时和低效。
[0005]附图简述
[0006]前文方面和本发明的许多随附优势在通过结合附图参考下列详细描述加以更好地理解之后将会让人更加容易明白,其中:
[0007]图1是示出了包括客户端计算装置和网络计算供应商的联网计算环境的方框图;
[0008]图2是图1的联网计算环境的方框图,其示出了新的软件进程和客户端计算装置与网络计算供应商之间的远程会话的例证;
[0009]图3是图1的联网计算环境的方框图,其示出了网络计算供应商与客户端计算装置之间的应用程序数据的处理;
[0010]图4是图1的联网计算环境的方框图,其示出了客户端计算装置与网络计算供应商之间的新远程会话的例证;
[0011]图5是图1的联网计算环境的方框图,其示出了远程会话配置信息的确定和网络计算供应商处的新远程会话的例证;
[0012]图6是示出了由客户端计算装置实施的客户端新远程会话常式的流程图;[0013]图7是示出了由网络计算供应商实施的新远程会话常式的流程图;且
[0014]图8是示出了由客户端计算装置实施的远程会话用户交互常式的流程图。
[0015]详述
[0016]一般描述,本公开涉及客户端计算装置与一个或多个远程网络计算供应商之间的软件进程远程会话的生成和管理。具体来说,将关于软件进程根据远程会话配置信息生成客户端计算装置与网络计算供应商之间的进程数据和处理结果的处理来描述本公开的各个方面。虽然本公开中描述的实施方案的各个方面可以为了说明目的而描述对应于软件应用程序的一个或多个远程会话的管理,但是本领域一般技术人员应明白,本文中公开的技术可以应用于任何数量的软件进程,包括(但不限于)操作系统进程和服务。此外,虽然将关于说明性实例和实施方案描述本公开的各个方面,但是本领域一般技术人员应明白,所公开的实施方案和实例不应被解释为有所限制。
[0017]参考特定说明性实例,用户可以请求客户端计算装置加载软件进程实例,诸如软件应用程序(下文中称作“应用程序”)。在一个实施方案中,在加载之后,应用程序可以对应于被设计在客户端计算装置处执行的多个计算机可执行指令。通过说明可知,计算机可执行指令集可以称作“子进程”且可以与特定功能性或动作的实施方式相关联。
[0018]为了特定实例的目的,假设图形编辑应用程序可以将图像加载到存储器中以供处理。用户可以请求将图像过滤器应用于存储器中的图像。根据这个实例,图像过滤器可以对应于根据过滤器的配置操控存储器中的图像的子进程(例如,调整颜色值或移除视觉假像)。
[0019]在接收到请求之后,客户端计算装置获取与选定子进程的执行相关联的软件进程配置信息。在一个实施方案中,软件进程配置信息可以包括识别与应用程序相关联的一个或多个子进程的信息和规定子进程资源使用量或处理需求的信息。客户端计算装置还可以获取与装置状态有关的各种信息,包括(但不限于)装置资源的当前或未来可用性(例如,处理能力、存储器、存储装置、网络使用量等)。
[0020]使用软件进程配置信息和与装置状态或资源可用性相关联的信息,客户端计算装置可以识别于在网络计算供应商处执行的一个或多个远程会话中远程执行的应用程序的一个或多个子进程,其可被具体实施为远程会话配置信息。远程会话配置信息可以识别用于封装并传送网络计算供应商处的远程会话与客户端计算装置处的应用程序实例之间的进程数据和处理结果的一个或多个通信协议。
[0021 ] 在由客户端计算装置确定远程会话配置信息之后,客户端计算装置可以对应用程序的一个或多个组件进行本地例证。客户端计算装置还可以将远程会话配置信息提供给网络计算供应商。基于远程会话配置信息,网络计算供应商可以例证或已例证一个或多个远程会话,诸如与将执行应用程序的子常式的至少某个部分的网络计算供应商相关联的计算组件。例如,网络计算供应商可以例证计算组件以托管对应于在客户端计算装置处例证的应用程序的子进程的一个或多个软件进程。在另一实例中,在一个实施方案中,网络计算供应商可例证或已例证包括客户机计算装置处例证的应用程序的并行副本的虚拟机的实例。
[0022]网络计算供应商可以从客户端计算装置获取初始进程数据以供在所述一个或多个远程会话下处理。所述一个或多个远程会话可以处理初始进程数据,且可以将处理结果传输返回到客户端计算装置。所例证网络计算组件上的远程会话与客户端计算装置上的应用程序之间交换的信息(包括(但不限于)进程数据和处理结果)一般可称作“远程会话信息”。当接收到处理结果时,客户端计算装置可以将处理结果提供给应用程序以供用户处理和/或呈现给用户。在一个实施方案中,网络计算供应商处的进程数据的传输和处理对于在客户端计算装置处执行的应用程序来说可能是透明的。然而,从客户端的用户的观点来看,处理结果似乎可能已由在客户端计算装置处本地执行的子进程而生成。
[0023]图1是示出了包括客户端计算装置102和网络计算供应商106的联网计算环境100的方框图。如图1中示出,联网计算环境100包括用于运行诸如软件应用程序122和操作系统108的软件进程的客户端计算装置102。在说明性实施方案中,客户端计算装置102可对应于多种计算装置,包括个人计算装置、膝上型计算装置、手持计算装置、终端计算装置、移动装置(例如,移动电话、平板计算装置等)、无线装置、各种电子装置和电器等。在说明性实施方案中,客户端计算装置102包括用于通过通信网络104 (诸如广域网或局域网)建立通信的必要硬件和软件组件。例如,客户端计算装置102可以装备联网设备和促进经由互联网或以太网进行的通信的浏览器软件应用程序。客户端计算装置102可以具有不同的本地计算资源,诸如中央处理单元和架构、存储器、大容量存储装置、图形处理单元、通信网络可用性和带宽等。
[0024]在一个实施方案中,客户端计算装置102可以运行由一个或多个操作系统程序(诸如图形管理器110、输入/输出管理器(“I/O管理器”)112、进程管理器114、存储器管理器116和文件系统管理器)组成的操作系统108。通过说明可知,图形管理器110可以处置图形处理和显示在输出装置上的数据和内容的输出。I/O管理器112可以处置输入和输出功能性并管理客户端计算装置102与跨通信网络104的其它联网装置之间的网络协议和网络使用和访问。存储器管理器116可以管理软件进程之间的存储器的分配,且可以处置虚拟存储器和客户端计算装置上缓存的存储器。文件系统管理器118可以管理存储组件120(包括(但不限于)硬碟、快闪存储器、网络驱动器或其它本地或远程存储组件)上的文件和数据的存储和检索。在各个其它实施方案中,操作系统108可以包括如这里描绘用于说明目的的操作系统程序的更少、更多或任何组合。
[0025]进程管理器114可以管理可对客户端计算装置102执行的一个或多个软件应用程序进程122的执行、加载和调度。通过说明可知,每个软件应用程序进程122可以包括由多个逻辑相关装置可执行指令组成的任何数量的子进程。
[0026]进一步继续参考图1,联网计算环境100还可包括经由通信网络104与客户端计算装置102通信的网络计算供应商106。图1中示出的网络计算供应商106还对应于与网络计算供应商相关联的一个或多个计算装置的逻辑相关。具体来说,网络计算供应商106可包括对应于通信网络104上的节点的多个接入点(“POP”)位置138、144。每个P0P138、144包括用于经由虚拟机的多个实例(一般被称作网络计算组件(NCC)的实例)托管诸如软件应用程序进程122或其子进程的应用程序的NCC140、146。本领域一般技术人员应明白,NCC140、146将包括物理计算装置资源和软件以提供虚拟机的多个实例或动态地使创建虚拟机的实例。这样的创建可基于诸如来自客户端计算装置的特定请求,或NCC可自身起始虚拟机的实例的动态创建。每个NCC POP138、144还包括由多个存储装置构成的存储组件142、148,其用于存储用于传递并处理网络或计算资源的任何类型的数据,包括(但不限于)来自内容供应商且将由NCC140U46的实例处理并被传输到各个客户端计算机的用户数据、状态信息、处理需求、历史使用数据和资源等。在一些实施方案中,网络计算供应商107可以被视为网络计算和存储装置供应商。NCC140、146和存储组件142、148还可以包括促进通信的额外软件和/或硬件组件,包括(但不限于)用于选择支持所请求应用程序的虚拟机的实例和/或将信息提供给DNS域名服务器以促进请求路由的负载平衡或负载共享软件/硬件组件。
[0027]在说明性实施方案中,无论NCC138、146和存储组件142、148或组件的部分是否物理分离,其均被视为逻辑分组。例如,网络计算供应商106可以维持用于提供NCC和存储组件的单独POP。此外,虽然NCC P0P136U44在图1中被示为在逻辑上与网络计算供应商106相关联,但是NCC POP在地理位置上将会以最佳地供应客户端计算装置102的各种人口统计的方式分布在通信网络104中。此外,本领域一般技术人员应明白,网络计算供应商106可与各种额外计算资源、用于管理内容和资源的额外计算装置等相关联。
[0028]现参考图2-5,将示出图1的联网计算环境100的各个组件之间的交互。具体来说,图2-5示出了用于远程处理客户端计算装置102与网络计算供应商106之间的进程数据的联网计算环境100的各个组件之间的交互。然而,为了实例目的,已简化说明使得没有示出用以促进通信的许多组件。本领域一般技术人员应明白,可使用这些组件且因此在不违背本发明的精神和范围的情况下发生额外交互。
[0029]参考图2,程序可开始于新软件进程和客户端计算装置102与网络计算供应商106之间的远程会话的例证。通过说明可知,客户端计算装置102可以响应于事件或用户请求而开始加载软件应用程序进程122。在一个实施方案中,加载软件应用程序122可以包括将可执行代码从存储装置120复制到装置存储器中。由于加载软件应用程序进程122,客户端计算装置102可以识别应用程序122的一个或多个子进程。通过说明可知,每个子进程可以由执行应用程序122功能性的某个方面的多个逻辑相关可执行指令组成。在各个实施方案中,客户端计算装置可以基于与应用程序122相关联的所存储软件进程配置信息、应用程序122执行的先前或当前监控、一个或多个相关应用程序(例如,应用程序122的不同但类似版本)的执行的监控或基于任何其它因素或信息片段来识别一个或多个子进程。在识别应用程序122的子进程之后,客户端计算装置102可以确定定义将远程执行的子进程集和用于在客户端计算装置102与网络计算供应商之间进行数据传输的通信协议的远程会话配置信息。然后客户端计算装置可以例证客户端计算装置处的应用程序122的任何本地组件。在一个实施方案中,客户端计算装置102可以阻止执行或加载识别为本地应用程序122内的远程类似应用程序的候选的一个或多个子进程的一个或多个方面,因为这些子进程的功能是或将由网络计算供应商106处的远程会话来执行。
[0030]在确定远程会话配置信息之后,客户端计算装置102可以将要处理的远程会话配置信息和/或初始进程数据传输到网络计算供应商106。在一个实施方案中,从被加载到客户端计算装置上的应用程序122的观点来说,例证远程会话以处置子进程的执行可能呈现为正如对本地装置例证并执行子进程一样。
[0031]在接收远程会话配置信息之后,网络计算供应商106可以选择一个或多个相关网络计算组件(在下文中“NCC”)接入点(在下文中“POP”)(诸如NCC P0P138)以为任何所请求的新远程会话服务。NCC POP的选择可以确定可用于所例证虚拟机的处理和网络资源。可以至少部分选择处理和网络资源和在NCC POP实例提供软件以最佳化处理资源和与客户端计算装置102进行的通信。选定NCC P0P138可以生成对应于如远程会话配置信息中识别的应用程序122的一个或多个子进程的远程会话。通过说明可知,例证新远程会话可以包括在NCC POP138处加载新虚拟机实例、可执行指令集和/或应用程序实例、预留或分配装置存储器、存储装置或缓存空间、处理器时间、网络带宽或新远程会话的其它计算或网络资源。
[0032]参考图3,将描述用于处理网络计算供应商106与客户端计算装置102之间的应用程序数据的说明性交互。如图3中示出,选定NCC P0P138可能已基于远程会话配置信息(诸如上文图2中描绘的远程会话配置信息)例证对应于应用程序122的一个或多个远程会话。
[0033]在初始化新远程会话实例之后,NCC POP138可以由客户端计算装置102对网络计算供应商106处理具有远程会话配置信息的任何初始进程数据,诸如上文图2中描绘的初始进程数据。在于NCC POP138处处理初始进程数据的同时、之前或之后,客户端计算装置102可以执行对应于在客户端计算装置122处本地执行的应用程序122的任何子进程的本地处理。由于NCC POP138完成其对初始进程数据的处理,其可以通过网络104将处理结果传输返回到在客户端计算装置102上运行的应用程序122。在一个实施方案中,可以根据远程会话配置信息中识别的通信协议传输这些处理结果。从应用程序122的观点来看,由NCCP0P138提供的处理结果可能呈现为已由在客户端计算装置处本地执行的线程或其它子进程生成。
[0034]由于应用程序122本地处理数据并从客户端装置102处的用户接收到交互,应用程序122可以将与对应于远程会话的一个或多个子进程相关联的额外进程数据传输到网络计算供应商106。在一个实施方案中,网络计算供应商106可以如上所述般处理这个进程数据并将额外处理结果传输返回到客户端计算装置102处的应用程序122。可以正常执行在客户端计算装置102处执行的应用程序122的任何子进程。
[0035]参考图4,公开了图1的联网计算环境的方框图,其示出了客户端计算装置102与网络计算供应商106之间的新远程会话的例证。如图2和图3中示出,可以在对应于对客户端计算装置102执行的应用程序122的网络计算供应商106处例证第一远程会话。
[0036]新远程会话的例证可以开始于应用程序122开始在客户端计算装置102处加载或执行新子进程。通过说明可知,由于应用程序122开始对应用程序内容进行新处理操作而可能发生加载或执行新子进程。例如,图形编辑应用程序可以开始对大图像文件执行由图像操控操作组成的新子进程。在另一实施方案中,加载或执行新子进程可以对应于加载应用程序内容的新片段的请求。例如,新的视频编辑应用子进程可以对应于用于编辑的新视频剪辑的加载。通过说明可知,可以响应于用户交互或请求、系统或应用程序事件或任何其它触发事件或原因而发生新子进程的加载或执行。
[0037]在客户端计算装置102识别新子进程之后,客户端计算装置102可以如上文参考图2论述确定新子进程的远程会话配置信息。如上文所述,远程会话配置信息可以规定所识别子进程的远程会话执行和/或交换远程会话与在客户端计算装置102处执行的应用程序122之间的数据的通信协议。客户端计算装置102可以将远程会话配置信息和/或用于处理的初始进程数据传输到网络计算供应商106。如上文参考图2论述,网络计算供应商106可以确定NCC POP138处置新远程会话请求,且可以使在NCC POP138处例证对应于新子进程的新远程会话。
[0038]如上文参考图2论述,网络计算供应商106可以基于任何数量的因素(包括(但不限于)可用NCC POP资源(例如,可用存储器、处理器负载、网络负载等)、将远程会话托管在NCC POP处的经济成本、客户端计算装置102、内容供应商各自的NCC POP位置、⑶N或NCCPOP缓存状态(例如,无论NCC POP缓存中是否已存储所请求资源)等)选择NCC POP以例证新远程会话。通过说明可知,虽然网络计算供应商106由于说明目的而在这里被描绘为选择NCC P0P138,但是网络计算供应商106可以选择任何现有NCC POP以例证新远程会话。例如,单个客户端计算装置102可以将远程会话配置信息同时或循序提供给对应于用于远程会话的三个不同请求的网络计算供应商106。网络计算供应商106可以选择不同NCC POP以例证每个远程会话、所有三个远程会话的相同NCC POP或其任何组合。如上文所述,可以基于可用系统资源随机地或根据如上文且关于图2论述的任何其它因素来决定是否选择不同于用于先前或同时远程会话的NCC POP。在一个实施方案中,因为新子进程的功能是或将由NCC POP138处的新远程会话而执行,客户端计算装置102可以在本地应用程序122内阻止执行或加载子进程的一个或多个方面。
[0039]参考图5,公开了图1的联网计算环境的方框图,其示出了远程会话配置信息的确定和网络计算供应商106处的新远程会话的例证。如图2-4中示出,可以在对应于对客户端计算装置102执行的应用程序122的网络计算供应商106处例证一个或多个远程会话。
[0040]在一个实施方案中,客户端计算装置102可以监控一个或多个应用程序122或在客户端计算装置102处执行的其它进程的操作。例如,客户端计算装置可以监控存储器使用量、网络量、处理器使用量等。客户端计算装置102此外可以监控任何数量的进程的总体性能和计算需求以确定总体资源可用性、优先化执行进程、维持操作系统108的响应等。基于监控,客户端计算装置102可以识别用于远程执行的应用程序122的子进程。作为特定实例,客户端计算装置102可以识别消耗大量系统资源且可以容易移动到远程会话的本地子进程,诸如子进程2。
[0041]在识别可以移动到远程会话的子进程之后,客户端计算装置102可以更新应用程序的远程会话配置信息。如参考图2-4描述,远程会话配置信息可以包括关于所识别子进程的信息和对对应于所识别子进程的新远程会话的请求和用于封装并传输客户端计算装置102与网络计算供应商106之间的信息的通信协议。客户端计算装置102可以将所更新远程会话配置信息和/或由新远程会话处理的任何初始进程数据传输到网络计算供应商106。
[0042]网络计算供应商可以选择NCC POP144且使在NCC POP144处例证对应于应用程序122的子进程的新远程会话。如上文参考图3论述,由于网络计算供应商托管与客户端计算装置102或应用程序122相关联的任何其它远程会话,网络计算供应商可以选择相同或不同NCC P0P144中的任何一个。在一个实施方案中,由于来自存储器的先前本地子进程是在NCC P0P144处由远程会话执行,客户端计算装置102可以执行或卸载所述子进程的一个或多个方面。
[0043]图6是示出了由图1的客户端计算装置102实施的客户端新远程进程常式的流程图。客户端新远程会话常式600开始于方框602处。在方框604处,客户端计算装置102获取例证新软件应用程序122或其它软件进程的请求。在一个实施方案中,获取例证新软件应用程序122的请求可以是由客户端计算装置102处的用户作出的请求或交互的结果。例如,用户可以开放客户端计算装置102上的应用程序122。在另一实施方案中,获取例证新软件进程的请求可以是在客户端计算装置102处执行的自动进程或事件的结果。虽然新软件进程由于说明目的而在本文中被称作应用程序122,但是本领域一般技术人员应明白,任何软件进程包括(但不限于)操作系统进程、服务、后台程序或可对客户端计算装置102执行的任何其它类型的软件进程。虽然客户端计算装置102在这里由于说明目的而被描述为确定软件进程配置信息、远程会话配置信息和与远程进程有关的其它方面的信息,但是应了解,可以由网络计算供应商106和/或任何其它第三方服务、装置或实体执行这些确定中的一个或多个。
[0044]在获取例证新软件进程的请求之后,在方框606处客户端计算装置102可以获取与应用程序122或其它软件进程相关联的软件进程配置信息。通过说明可知,软件进程配置信息可以包括关于应用程序122的任何种类的信息,包括(但不限于)关于处理、存储器或带宽需求的信息、关于线程和执行调度的信息、关于数据、应用程序或子进程安全的信息、关于应用程序执行历史和/或用户交互历史或行为的信息或关于应用程序的任何其它信息。在一个实施方案中,软件进程配置信息的一个或多个方面可以由应用程序开发者预定义且包括在与应用程序的存储位置处的应用程序122相关联且可获自与应用程序相关联的网络存储位置的数据中、由用户、操作系统或其它第三方实体预定义或获自任何其它源。在另一实施方案中,可以基于与资源占用、执行行为或程序和/或一个或多个子进程的任何其它执行特征相关联的程序执行数据来确定软件进程配置信息的一个或多个方面。通过说明可知,可以基于应用程序的执行的监控和/或当前或之前观察或基于用户与应用程序122的交互来生成程序执行数据。在一个实施方案中,来自运行应用程序122的任何数量的装置的数据可以聚集在网络组件处以获取或确定进程执行数据。通过说明可知,组合来自应用程序的多个实例的数据可以帮助提供应用程序122的充分定义或总体特征化。进程执行数据可以基于应用程序122的一个或多个实例的监控和/或可以基于相关应用程序(例如,应用程序122的相同、不同或类似版本)的一个或多个实例的监控。在另一实施方案中,可以由应用程序开发者或第三方应用进程数据供应商基于所观察到或期望的资源占用、执行行为或其它特征来提供进程执行数据。
[0045]在方框608处,客户端计算装置102识别与应用程序122相关联的一个或多个子进程。在一个实施方案中,客户端计算装置102可以基于包括在软件进程配置信息中的信息识别子进程。通过说明可知,子进程可以由多个逻辑相关可执行指令组成。例如,应用程序122可以包括在客户端计算装置102处执行的任何数量的装置指令。子进程可以由一起执行应用程序功能性的某个方面的这些装置指令的逻辑相关组而组成。在一个实施方案中,一个或多个子进程可以形成用于处理数据的离散功能,且因此在更大或更小程度上可以与软件应用程序进程122分离。为了特定实例的目的,图形编辑应用程序可以将图像加载到存储器中以供处理。用户可以请求应用图像过滤器于存储器中的图像。在一个实施方案中,图像过滤器可以由诸如操控存储器中的图像数据的一系列可执行指令的子进程组成。在一个实施方案中,图像过滤器子进程在逻辑上可以与一起构成图形编辑应用程序的一个或多个子进程(例如,界面组件管理、文件管理、其它图像或数据处理进程等)分离。
[0046]在方框608处识别一个或多个子进程之后,在方框610处客户端计算装置可以确定远程会话配置信息。通过说明可知,远程会话配置信息可以对应于远程会话配置,其说明地包括识别方框608处识别以在网络计算供应商106处的远程会话中执行的子进程中的一个或多个的信息。在一个实施方案中,远程会话配置信息可以定义将在远程会话中执行的一个或多个子进程的多个方面和客户端计算装置102或网络计算供应商106处所需的任何数据转换界面。例如,由客户端计算装置102接收且对应于由远程会话处理的数据的处理结果可能必须被进一步处理、转换和/或置于存储器、处理器寄存器、缓存或数据存储位置中的适当位置以能够为应用程序122所用。如下文论述,处理动作的划分可以与用于交换网络计算供应商106与客户端计算装置102之间的进程数据和处理结果的通信协议相关联或联系。远程会话配置信息还可以包括关于每个预期远程会话的期望计算需求(诸如处理需求、存储器需求、网络需求等)的信息。通过说明可知,这个信息可以允许网络计算供应商106选择适当的NCC POP以托管每个远程会话。
[0047]远程会话配置信息仍然还可以包括关于定义客户端计算装置102与网络计算供应商106之间的数据封装和传输的通信协议(包括(但不限于)网络协议、信令模型、传输机制或用于交换网络计算供应商106与客户端计算装置102之间的状态数据、用户交互和其它数据和内容的封装格式)的信息。用于交换数据的通信协议可以包括本领域中已知的任何通信协议,包括(但不限于)HTTP、FTP、远程桌面协议(RDP)、X-Windows协议、虚拟网络计算(VNC)协议、X-Windows协议、远程帧缓冲协议或任何其它专用或公共通信协议。例如,RDP说明性地规定用于将客户端输入(例如,鼠标移动、键盘输入等)编码到协议数据单元中以提供给远程计算装置的多种处理机制和用于将位图更新和低级界面信息发送返回到客户端装置的对应机制。作为另一实例,HTML协议说明性地提供用于将定义界面信息且包括资源参考的文件从服务器提供到客户端的机制和用于使客户端计算装置将对额外文件和资源的请求提供给服务器的对应机制。
[0048]通过说明可知,远程会话配置信息此外可以规定在客户端计算装置102与网络计算供应商106或其它装置之间传送的进程数据、处理结果和其它信息的一个或多个编码或数据格式。在各个实施方案 中,数据可以任何数量种格式(包括(但不限于)一个或多个编码或压缩格式、文本格式、代码格式、标记格式(例如,可扩展标记语言、超文本标记语言等)、数据互换格式(例如,可扩展标记语言、Javascript对象表示法、数据互换格式)、可执行二进制格式、图像格式(例如,jpeg、gif、tiff、bitmap等)、视频格式(例如,11^168、3¥;[、1]10¥等)、音频格式(例如,aiff、mp3等)或本领域中已知的任何其它二进制、文献或其它数据格式)传送。例如,在一个实施方案中,远程会话配置信息可以规定以本文格式存储的软件代码被作为进程数据提供给网络计算供应商106,且网络计算供应商106将包括对应于编译软件代码的可执行二进制的处理结果传送返回到客户端计算装置102。
[0049]如上文所述,远程会话配置信息可以规定上文方框608中识别的子进程中的一个或多个的远程配置。通过说明可知,远程会话配置信息可以规定本地执行、全部远程执行或以本地和远程处理(例如,发生在网络计算供应商106处的大部分处理,但是客户端计算装置102执行本地转换组件以转换并显示所接收到的处理结果)的某个组合执行子进程。在一个实施方案中,可以在客户端计算装置102处由应用程序122本身或操作系统进程或服务或在客户端计算装置处执行的任何其它程序来对所述应用程序的一个或多个子进程的远程配置执行确定。在其它实施方案中,网络计算供应商106可以执行或辅助执行所述确定。如本文中描述,为了说明目的,客户端计算装置将被论述成对应用程序的所识别子进程的远程配置执行确定;然而,这可以根据替代实施方案而改变。[0050]客户端计算装置102可以使其对方框608中识别的子进程中的一个或多个的远程配置的确定基于任何数量种因素,包括(但不限于)应用进程数据的一个或多个特征、子进程的计算配置文件(例如,存储器使用量、处理器使用量、存储器使用量、网络使用量)、客户端计算装置102的一个或多个特征或配置、客户端计算装置处的当前资源使用量、网络计算供应商106或NCC P0P138的特征、资源使用量或配置、网络或网络连接的一个或多个特征、与用户相关联的配置或优先级、预定义配置或优先级等。应用进程数据的特征可以包括(但不限于)数据格式、内容类型、大小、处理需求、资源延时需求、交互元件的数量或类型、安全风险、相关用户优先级、存储位置或远程存储网络地址、相关网络域名、相关内容供应商等。客户端计算装置102、网络计算供应商106、NCC POP138和其它相关服务或装置的特征可以包括(但不限于)处理能力、存储器、存储装置、网络连接性(例如,可用带宽、延时或一致性)、物理或逻辑位置、预测稳定性或失败风险、软件或硬件配置文件、当前、之前或预测未来可用资源(例如,可用存储器或处理或多个同时打开的软件应用程序)等。应用程序122的特征可以包括(但不限于)预定义远程配置(例如,由应用程序开发者、用户、操作系统、远程服务等定义的远程配置)、应用程序的交互性、应用程序122的之前、当前或预测资源使用量、应用程序122的大小和/或复杂度、关于与应用程序122相关联的代码分配的授权或版权问题。
[0051]客户端计算装置102还可以考虑与内容或定义域片段相关联的安全威胁或风险、客户端计算装置102或网络计算供应商106的优先级、计算成本(例如,处理或带宽的经济成本、资源使用量等)、预定优先级或选择信息、特定远程会话所需要的任何额外处理开销、缓存状态(例如,是否在NCC NOP138处、客户端计算装置102处或与网络计算供应商106相关联的其它网络存储组件处缓存特定资源)、检索应用程序代码或进程数据所需的预测延迟或时间、优选网络计算供应商或与特定计算供应商对特定远程会话或服务水平达成的协议(无论与应用程序、用户、客户端计算装置或网络计算供应商相关联的远程会话当前是否作用)或任何其它因素。
[0052]在一些实施方案中,客户端计算装置102可以基于之前的行为或实践来确定特定子进程的远程会话。例如,当由相同(或可能不同)用户加载应用程序时,之前已确定特定子进程的远程配置的客户端计算装置102可以自动选择相同远程配置。作为另一实例,具有以需要扩展处理的方式使用应用程序的历史的用户可能使确定规定执行远程会话中的大多数子进程的远程进程配置信息。在其它实施方案中,客户端计算装置102可以基于未来行为的预测来确定远程进程配置信息。例如,客户端计算装置102可以基于分析对特定应用程序作出的之前确定来确定远程进程配置信息。可以在网络计算供应商106处在远程会话中部分或完全执行应用程序中以往需要大量计算资源的子进程。通过说明可知,之前历史分析和未来预测可以被视为作为远程进程配置信息的基础的多种因素中的一个或多个或可以在决定作出程序中具有决定性。通过说明可知,如上文参考图5描述,客户端计算装置可以在运行应用程序时监控应用程序处理和资源的使用,且可以在任何时刻再确定所更新的远程进程配置信息。通过说明可知,这种所更新的远程进程配置信息可以将子进程或子进程的各个方面从本地执行移动到远程会话,从远程会话移动到本地执行或其任何组
口 ο
[0053]在其它实施方案中,应用程序内容、应用程序或与应用程序相关联的信息的片段可以规定或请求远程处理特定子进程或以资源标签、元数据或其它形式使用特定远程进程配置信息。客户端计算装置102可以将所述请求当作决定或可以将所述请求视为决定作出程序中要考虑的多种因素之一。
[0054]通过说明可知,客户端计算装置102可以基于任何因素或因素组合来确定远程会话配置信息。例如,客户端计算装置102可以基于单个因素来确定远程会话配置信息,或可以在作出确定时将比重指派给一种或多种因素。在一些实施方案中,客户端计算装置102的确定进程可以基于上述一种或多种因素而改变。例如,通过未被使用带宽有所剩余的网络与网络计算供应商106通信的客户端计算装置102可以给诸如远程会话的网络需求的因素赋予低比重,且可以给与应用程序进行的用户交互的延时的因素赋予较高比重。在另一实施方案中,通过有限带宽网络或间歇性网络连接性与网络计算供应商106通信的客户端计算装置102可以给处置通过网络与远程会话通信的效率的因素赋予较高比重。通过说明可知,可以由客户端计算装置102、网络计算供应商106、替代计算装置和/或任何其它装置、组件或实体来确定远程会话配置信息的任何一个或多个方面或部分。远程会话配置信息的确定可以完全或部分基于从客户端计算装置102、网络计算供应商106、替代计算装置和/或任何其它装置、组件或实体的任何组合接收、获取或收集的数据。
[0055]在方框612处,客户端计算装置102可以由远程会话配置信息例证识别为本地组件的任何组件或子进程。客户端计算装置102还可以例证任何本地组件,诸如处理、转换和/或显示由远程会话返回的处理结果所需要的数据转换或显示界面。作为特定实例,远程会话配置可能已将应用程序的用户界面和有关的处理识别为本地子进程,且可能已将应用程序的内容面板中的图像的显示和处理识别为远程子进程。根据这个实例,客户端计算装置102可以将与应用程序相关联的界面组件对象和有关代码加载到客户端计算装置处的存储器中。为了继续这个实例,客户端计算装置102还可以加载链接到所加载的本地对象和代码的数据转换界面或组件。数据转换界面或组件可以处置接收自网络计算供应商106的处理结果(诸如对应于图像表示的RDP显示数据)的处理和显示。
[0056]在方框614处,客户端计算装置102可以将远程会话配置信息提供给网络计算供应商106。客户端计算装置102还可以将初始进程数据提供给网络计算供应商106。在说明性实施方案中,网络计算供应商106使用注册API以从客户端计算装置102接收远程会话配置信息。
[0057]如上文参考方框610和612论述,远程会话配置信息可以将程序的一个或多个应用程序子进程识别为远程会话。在一个实施方案中,远程会话配置信息可以包括对应于用于在网络计算供应商106处执行的所识别子进程的一个或多个方面的可执行代码。在另一实施方案中,远程会话配置信息可以包括对与用于执行为远程进程的所识别子进程相关联的可执行代码的一个或多个参考。例如,网络计算供应商106可以在本地或联网存储组件中的客户端计算装置102处运行应用程序的副本。在这个实例中,远程会话配置信息可以在应用程序内提供与远程会话相关联的子进程(例如,指令集和/或对象)的参考或识别。在另一实施方案中,远程会话配置信息可以包括对应于用于例证网络计算供应商106处的远程会话的子进程的可执行代码、对象和/或数据的实际副本。
[0058]在一个特定实施方案中,网络计算供应商106可以在NCC POP138处例证应用程序的完整实例。例如,网络计算供应商106可以例证与在客户端计算装置102处执行的应用程序并行运行的应用程序。在另一实施方案中,网络计算供应商106可以例证并执行一个或多个远程会话,每个对应于在客户端计算装置处执行的应用程序的子进程。
[0059]提供给网络计算供应商106的远程会话配置信息可以伴随或跟随有用于在网络计算供应商106处例证的所述一个或多个远程会话处进行处理的初始进程数据。通过说明可知,初始进程数据可以包括数据集、对数据的一个或多个参考或其任何组合。例如,可以响应于用户对编辑特定图像的请求而加载客户端计算装置102处的应用程序。为了特定实例的目的,我们将假设与应用程序相关联的远程会话配置信息规定在网络计算供应商106处的远程会话中执行应用程序的图像操控子进程。通过说明可知,远程会话可能需要基于特定图像的副本来进行操作。在一个实施方案中,如果图像本地存储在客户端计算装置102处,那么客户端计算装置102可以将包括图像的副本的数据集作为初始进程数据传输到客户端计算供应商和存储器供应商。通过说明可知,在各个实施方案中,客户端计算装置可以根据网络计算供应商106处的API或根据如远程会话配置信息中规定的一个或多个通信协议传输图像。
[0060]为了继续上述特定实例,在另一实施方案中,我们可假设图像存储在远程存储位置(例如与网络计算供应商106相关联或可访问网络计算供应商106的存储组件)处、客户端计算装置102可以给网络计算供应商106提供包括网络地址和/或其它信息的初始进程数据,从而允许网络计算供应商106获取和/或加载图像。在一个实施方案中,图像可以本地存储在客户端计算装置102处,且可以缓存或反射在一个或多个网络存储组件处。通过说明可知,关于这个实施方案,客户端计算装置102可发送存储在缓存中的图像的参考和/或检验和或散列值以确定所缓存的图像是否是最新或正确的副本。通过说明可知,如果所缓存的图像不是图像的最新版本,那么网络计算供应商106可从客户端计算装置102请求新图像而不是从缓存获取过时图像。
[0061]在各个实施方案中,可以由客户端计算装置102、网络计算供应商106或任何其它装置或组件来确定是否将来自客户端计算装置102的数据或实际数据的参考提供给网络计算供应商106。通过说明可知,可以单独或组合地基于多种因素来确定是否提供数据或实际数据的参考。这些因素包括(但不限于)连接性或装置与存储数据的数据存储装置或网络组件之间的连接性的一个或多个特征、数据特征、计算装置102、网络计算供应商106或其它装置之间的连接特征、计算装置102、网络计算供应商106或其它装置处的资源使用等。例如,假设客户端计算装置102只具有间歇性通信网络连接性。网络计算供应商106可以希望在连接性可用或预期连接性丢失时接收实际数据的副本。数据可以存储在任何共享或本地存储装置、网络组件或与网络计算供应商106、客户端计算装置102或任何其它装置、实体或组件相关联的其它数据存储装置处。
[0062]在提供远程会话配置信息和初始进程数据之后,网络计算供应商106可以例证对应于应用程序的子进程的一个或多个远程会话。下文参考图7更详细地论述说明性服务器端新远程会话常式。
[0063]在方框616处,客户端计算装置102可以和网络计算供应商106处的远程会话交换进程数据和处理结果。通过说明可知,网络计算供应商106可以将对应于已由远程会话处理的进程数据的结果的处理结果提供给客户端计算装置102。通过说明可知,处理结果可以以本领域中已知的任何形式或格式被提供给客户端计算装置102。在一个实施方案中,可以由被确定用于远程会话配置信息中的远程会话的通信协议来确定处理结果的形式。
[0064]例如,与图形处理应用程序相关联的远程会话配置信息可以规定:对应于处置包括用于显示的大图像的数据集的处理的子进程的远程会话使用RDP协议以将处理结果传送到客户端计算装置102。通过说明可知,处理结果可能只对应于将在客户端计算装置处显示的图像的段或分辨率,且因此传送的速度可能更加快于需要整个图像文件时的传送速度。在另一实施方案中,与数据库查看器应用程序相关联的远程会话配置信息可以规定:对应于处置返回大量数据库表的搜索的执行的子进程的远程会话可以规定通过FTP协议传送由压缩的逗号分离值(CSV)格式组成的处理结果。如上所述,处理结果可能只对应于将在客户端计算装置处显示的数据集的段,且因此可能只包括所返回的所有结果的少量子段。通过说明可知,客户端计算装置102处的用户向下滚屏并看见更多结果的请求将使对应于将显示的额外结果的所更新的处理结果被发送到客户端计算装置102。通过说明可知,只返回对应于已处理的数据集的子集的处理结果可以允许客户端计算装置102通过无需管理完整的数据集来节省存储器或其它计算资源。
[0065]在一个实施方案中,网络计算供应商106可以提供与包括安全或专用数据的数据集相关联的处理结果。通过说明可知,安全或专用数据可以存储在网络计算供应商106处以防止在不安全客户端计算装置102处进行未经授权传播或存储。通过说明可知,处理结果可以只对应于所请求数据的非敏感方面的表示,且网络计算供应商106可以不发送安全或专用数据的表示,或可以发送安全或专用数据的有限表示。
[0066]作为特定实例,在一个实施方案中,处理结果可以包括对应于与应用程序122相关联的界面或应用程序内容的显示数据。例如,NCCP0P138可以处理在远程会话中运行的应用程序的并行实例中的进程数据,且可以生成包括将经由诸如远程桌面协议(RDP)的通信协议发送到客户端计算装置102的应用程序的并行实例的显示内容或界面的处理结果。在一个实施方案中,NCC P0P138可以发送对应于应用程序中的界面和内容的布局和显示的RDP处理结果。在另一实施方案中,NCC POP138可以只发送包括任何显示应用程序和内容的RDP处理结果,而不会发送包括与应用程序相关联的界面元件中的任何一个的RDP处理结果。通过说明可知,只包括对应于显示应用程序内容的RDP处理结果可以允许客户端计算实例102处的应用程序通过将RDP处理结果聚集在应用程序的内容显示区域中来显示所述内容且无需任何进一步处理。
[0067]客户端计算装置102可以获取由所述一个或多个远程会话提供的处理结果且可以通过数据转换服务或组件或其它手段将处理结果提供给应用程序122。在一个实施方案中,在客户端计算装置102处执行的应用程序122可以被具体写入或配置用于远程会话处理,且可以具有一个或多个组件以处置与进程数据相关联的处理结果的处理、转换和显示。例如,被写入用于远程会话处理的图形应用程序可以具有从网络计算供应商106接受对应于图像文件的表示的RDP处理结果的组件,且可以使用图像的所述表示更新应用程序122中的内容显示面板。在另一实施方案中,可以不对远程会话处理写入在客户端计算装置102处执行的应用程序122,且客户端计算装置102可以获取应用程序122的处理结果、处理所述处理结果以提取信息,且将所提取的信息置于与应用程序122相关联的适当存储器位置、缓存位置、寄存器或存储位置中。从应用程序122的观点来看,处理结果因此看起来可能已由在客户端计算装置处本地执行的线程或其它子进程而生成。[0068]客户端计算装置102还可以将额外进程数据提供给网络计算供应商106处的远程会话。在一个实施方案中,将数据提供给网络计算供应商106可以包括提供如上文参考方框614论述的数据、参考等。例如,在各个实施方案中,客户端计算装置102可以提供数据或对数据的参考(包括文件、用户交互数据、操作系统或逻辑对象结构、可变数据、二进制或结构化应用进程数据或用于在远程会话下处理的任何其它种类或格式的数据)。通过说明可知,一个或多个远程会话可以处理这个数据并如上所述般返回处理结果。
[0069]可以继续交换数据和处理结果直到网络计算供应商106处的远程会话结束、应用程序122结束或网络计算供应商106与客户端计算装置102之间的连接中断为止。常式600结束于方框618。
[0070]图7是示出了由图1的网络计算供应商106实施的新远程会话常式700的流程图。新远程会话常式700开始于方框702。在方框704处,网络计算供应商106从客户端计算装置102获取远程会话配置信息。如上文参考图6描述,在一个实施方案中,远程会话配置信息可以识别和/或描述在应例证远程会话的客户端计算装置102处执行的应用程序的一个或多个子进程。通过说明可知,远程会话配置信息可以伴随有初始进程数据以供远程会话进行处理。
[0071]在方框706处,网络计算供应商106可以基于远程会话配置信息选择相关NCC POP以例证新远程会话。如上文参考图1论述,网络计算供应商106可以包括跨任何数量的物理或逻辑位置分布的任何数量的NCC POP。网络计算供应商106可以基于任何数量的因素(包括(但不限于)可用NCC POP资源(例如,可用存储器、处理器负载、网络负载等)、将远程会话托管在NCC POP处的经济成本、客户端计算装置102各自的NCC POP位置、NCC POP缓存状态(例如,应用程序实例、应用进程数据或另一资源是否已存储在NCC POP缓存中)等)选择NCC POP以托管远程会话。
[0072]在一个实施方案中,网络计算供应商106可以选择多个NCC POP以托管远程会话。例如,网络计算供应商106可以在网络中选择具有不同逻辑位置的两个NCC POP。每个NCCPOP可以独立例证代表客户端计算装置102的远程会话,且客户端计算装置102可以从第一NCC POP接受数据以返回处理结果。在由网络计算供应商106选择之后,NCCP0P138可以获取与将托管的远程会话相关联的远程会话配置信息和任何相关初始进程数据的一个或多个方面。在一个实施方案中,NCCP0P138可以由网络计算供应商106的组件将远程会话配置信息转发到NCC POP138ο在另一实施方案中,NCC POP138或客户端计算装置102可以接收连接信息,从而允许在NCC POP138与客户端计算装置102之间建立直接通信。通过说明可知,NCC POP138可以具有远程会话配置信息和/或最初提供给网络计算供应商106的初始进程数据,可以具有信息子集(例如,只具有描述对应于远程会话请求的应用程序的特定子进程的信息)或可以被提供原始远程会话配置信息中没有包括的额外信息。
[0073]在方框708处,在选择NCC POP138之后,网络计算供应商106可以使NCC POP138例证新远程会话。通过说明可知,例证新远程会话可以包括在NCC POP138加载新虚拟机实例和/或应用程序实例、预留或分配装置存储器、存储装置或缓存空间、进程或时间、网络带宽或新远程会话的其它计算或网络资源。通过说明可知,新远程会话的一个或多个特征可以基于包括在远程会话配置信息中的信息。例如,远程会话配置信息可以包括可执行代码和/或可执行代码的参考、用于由可执行代码处理的一个或多个对象或对象模型、框架或用于数据转换和/或处理的框架的识别、客户端计算装置类型或应用程序类型、装置操作系统、装置屏幕分辨率或显示面积、应用程序配置信息或设置和/或定义应用程序122、应用程序子进程或客户端计算装置102的处理、优先级或能力的任何其它信息。
[0074]在一个实施方案中,NCC POP138可以使用与应用程序122相同或类似的能力例证应用程序实例。通过说明可知,使用与应用程序122相同或类似的能力维持并行应用程序可以允许NCC POP138在运行于特定客户端计算装置102上的特定应用程序122的整个背景下处理进程数据。在另一实施方案中,NCCP0P138可以使用与计算装置102相同或类似的能力例证虚拟机实例。通过说明可知,使用与客户端计算装置102相同或类似的能力维持虚拟机实例可以允许NCCP0P138根据显示在特定客户端计算装置102上的适当维度和布局来处理进程数据。
[0075]在一些实施方案中,除了发布新远程会话以外或作为发布新远程会话的替代,NCCPOP138可以使用现有虚拟机实例和/或应用程序或远程会话实例。例如,在选择NCC POP138之后,网络计算供应商106可以造成NCC P0P138使远程会话的实例(例如,对应于应用程序122的子进程的现有远程会话或应用程序122的现有并行实例)和/或虚拟机实例(诸如之前在NCC POP138处例证的一个或多个实例)与远程会话配置信息内的远程会话请求相关联。通过说明可知,现有远程会话和/或虚拟机实例可以对应于与应用程序和客户端计算装置102或用户相关联的另一远程会话(诸如并行应用程序或其它远程子常式),或可以是与不同客户端计算装置、用户或应用程序实例相关联的之前例证远程会话。在其它实施方案中,NCC P0P138可以例证新远程会话或现有虚拟机实例中的其它应用程序进程,或可以以任何数量的其它方式组合之前例证软件进程和最近例证软件进程的使用。在其它实施方案中,网络计算供应商或NCC P0P138可以基于远程会话配置信息中定义的单个子常式来例证任何数量的新虚拟机实例和/或远程会话(或充分使用现有例证实例)。
[0076]在方框710处,网络计算供应商106可以处理上文方框704中或之后提供的任何初始进程数据。本领域一般技术人员应明白,在各个实施方案中,进程数据(例如,文件数据、应用程序或操作系统对象、变量值等)可以对应于由客户端计算装置102提供的原始二进制数据、压缩或加密数据、存储在数字文件柜或其它网络存储位置中或与网络计算供应商106或客户端计算装置102相关联的缓存组件处的数据等。通过说明可知,网络计算供应商106可以将基于包括在进程数据中的任何参考的资源请求提供给一个或多个内容源(诸如内容供应商、内容传递网络(CDN)服务供应商和缓存)。
[0077]继续方框710,网络计算供应商106可以处理初始进程数据以生成将提供给客户端计算装置102的处理结果。如上所述,在一个实施方案中,NCC P0P138处的远程会话可以包括与应用程序的子进程相关联的可执行代码。通过说明可知,如果对应于远程会话的可执行代码是由少于应用程序的所有代码组成,那么NCC P0P138可以例证执行代码的执行环境或测试用具。通过说明可知,例证执行环境可以包括将一个或多个对象或变量加载到虚拟机实例的存储器或与远程实例相关联的装置存储器中。例如,NCC POP138例证对应于用于处理图像的子进程的代码段可以加载将由子进程使用的任何变量和将图像文件加载到存储器中,且此外可以初始化特殊存储器或存储位置以采集代码执行的结果。从远程会话内执行的子进程的观点来看,似乎看起来所述代码在客户端计算装置102处的应用程序内正常执行。[0078]在一个实施方案中,网络计算供应商106还可以循序或同时例证包括并行应用程序进程的远程会话和在客户端计算装置102处运行的应用程序实例。通过说明可知,除了在客户端计算装置处执行的应用程序以外,还可以在任何数量的NCC POP处的远程会话中加载并行应用程序。每个远程会话可以例证相同或不同于任何其它远程会话的应用程序代码的方面或范围,且每个远程会话可以使用相同或不同于任何其它远程会话的通信协议。提供给NCC P0P138的进程数据可以包括来自用户与客户端计算装置的应用程序的实例进行的交互的用户交互数据和使应用程序维持并行操作所必需的任何其它系统、应用程序或装置事件。通过说明可知,维持并行应用程序可以允许在执行代码的碎片不需要特殊执行环境或测试用具的情况下在NCC P0P138处执行并处理应用程序功能性。
[0079]在一个实施方案中,可以在客户端计算装置102处执行且同时在NCC POP138处正常执行的并行应用程序实例处暂停或卸载识别用于由远程进程配置信息进行远程执行的子进程。在NCC P0P138处的并行应用程序完成子进程处理的某个方面之后,可以将处理结果提供给客户端计算装置处的并行应用程序,且并行实例可以进行并行执行。在一些实施方案中,在客户端计算装置102处暂停或卸载子进程和等待来自NCC P0P138的处理结果可以允许客户端计算装置102避免提交计算资源于客户端计算装置102处的处理。在另一实施方案中,客户端计算装置102处的并行应用程序实例可以对NCC P0P138执行相关于与远程会话处的子进程的执行并行的子进程执行的处理。通过说明可知,客户端计算装置102可以产生子进程的结果集,且从NCC P0P138接收对应于子进程的结果的处理结果。在各个实施方案中,客户端可以使用这个结果复制品来核对处理结果的精确度,或可以(例如,从本地子进程或并行执行远程会话的任何数量的NCC POP之一)接受将返回的第一结果,且取消较慢程序的进一步执行。通过说明可知,并行运行程序和接受将返回的第一结果可以确保客户端计算装置102尽快将结果提供给用户。
[0080]如上文参考图3论述,NCC P0P138处执行的远程会话可以直接从客户端计算装置102获取进程数据。在其它实施方案中,可以响应于远程会话配置信息而由NCC POP138从内容供应商CDN或缓存检索进程数据。由客户端计算装置102提供的进程数据可以包括与远程会话相关联的所有数据或内容,或可以补充存在于NCC P0P138中的缓存中、检索自内容供应商或CDN或获取自某个其它源的内容。在一个实施方案中,NCC POP138可以从本地缓存获取所有请求内容,且可以不从客户端计算装置102获取任何未处理资源或内容。通过说明可知,每当需要处理时NCC P0P138可以从客户端计算装置102获取进程数据,或可以维持应用进程数据和/或内容的并行集以供处理。
[0081]继续参考图7,在方框702处,网络计算供应商106可以将初始处理结果提供给客户端计算装置102以供进一步处理和显示。在方框714处,网络计算供应商可以继续与客户端交换数据和处理结果。为了另一实例的目的,下文参考图8描述由客户端计算装置102实施的说明性远程会话用户交互常式800。在方框716处,新远程会话常式700结束。
[0082]通过说明可知,在一个实施方案中,可以由任何其它计算装置或计算装置集执行这里被描述为由网络计算供应商106执行的功能性的一个或多个方面。例如,在一个实施方案中,可以由与客户端计算装置102的用户或任何其它用户或实体相关联的一个或多个计算装置(诸如个人计算机、平板电脑、智能手机等)执行这里被描述为由网络计算供应商106执行的功能性。在一个实施方案中,所述一个或多个计算装置可以物理或逻辑近距客户端计算装置102。所述一个或多个计算装置可以由广域网或局域网通过有线或无线连接而链接,或可以由任何数量的传输机构或通信协议(包括蓝牙、红外线等)链接。例如,在一个实施方案中,诸如智能手机的客户端计算装置102可以通过蓝牙将远程会话配置信息提供给第二计算装置(诸如附近个人计算机)。基于远程配置信息,第二计算装置可以例证对应于在客户端计算装置102上运行的应用程序的各个子进程的一个或多个远程会话,且可以以与上文论述的网络计算供应商106相同的方式将处理结果返回到客户端计算装置102。通过说明可知,在本地机器上例证远程会话可以允许当只使用本地装置的处理能力时网络计算供应商106上的远程处理的许多优势。在一个实施方案中,客户端计算装置102可以将第一远程会话配置信息提供给替代计算装置以使替代计算装置例证对应于应用程序122的第一子进程的第一远程会话,且还可以将第二远程会话配置信息提供给网络计算供应商106以使网络计算供应商106例证对应于应用程序122的第二子进程的第二远程会话。通过说明可知,任何数量的替代计算装置或网络计算供应商106均可以例证与在客户端计算装置102处运行的应用程序122的一个或多个子进程相关联的远程会话。
[0083]在另一实施方案中,客户端计算装置102可以在远程会话配置信息中规定:如果某些条件是真,那么诸如个人计算机的本地装置只例证应用程序的特定子进程的远程会话。如果不满足条件,那么本地装置无法例证远程会话和/或可以将远程会话配置信息递交给网络计算供应商106以反而或此外请求网络计算供应商106例证远程会话。通过说明可知,远程会话例证存在可以存在任何数量的转向级别。例如,远程会话配置信息可以规定,如果满足某些第一条件,那么第一本地装置例证远程会话,且如果不满足,那么如果满足某些第二条件,那么第二本地装置例证远程会话,且如果不满足,那么网络计算供应商106例证远程会话。在另一实施方案中,远程会话配置信息可以规定,第一网络计算供应商106例证远程会话,且如果否,那么第二网络计算供应商例证远程会话等。在其它实施方案中,一个或多个装置或一个或多个网络计算供应商106可以并行例证远程会话。例如,客户端计算装置102可以将远程会话配置信息提供给替代计算装置和网络计算供应商106。通过说明可知,远程会话配置信息可以使替代计算装置和网络计算供应商106均例证与应用程序122的相同子进程相关联的远程会话。在一个实施方案中,替代计算装置102和网络计算供应商106均可以处理与子进程相关联的指令,且均可以将处理结果提供给客户端计算装置。客户端计算装置可以接受将提供的第一处理结果,或可以基于预定义或动态确定的优先级接受特定处理结果。
[0084]虽然这里将落在另一装置或网络计算计算供应商以外的指令(S卩,递交关于应用程序的子进程的远程会话的例证的请求或信息)描述为包括在由客户端计算装置102生成的远程会话配置数据中,但是应了解可以由如上所述的任何数量的装置或网络计算供应商106动态确定落在替代装置或网络计算供应商之外的决定,且指令可以包括或附属在远程会话配置信息中或被编码和/或由任何其它手段递交给其它装置或网络计算供应商。
[0085]图8是示出了由客户端计算装置102实施的远程会话用户交互常式800的流程图。远程会话用户交互常式800开始于方框802。通过说明可知,远程会话用户交互常式800可以开始于例证NCC POP138处的新远程会话之后。例如,程序用户交互常式800可以对应于上文图7的方框714。
[0086]通过说明可知,客户端计算装置102处的应用程序可以具有一个或多个交互元件,诸如表单、按钮、动画等。与这些交互元件进行的用户交互可能需要由一个或多个子进程处理并显示数据。例如,选择应用程序中的下拉菜单中的元件可能需要处理且可以改变应用程序的配置或视觉外观。在其它实施方案中,任何其它系统或应用程序事件或其它触发程序均可能需要处理。例如,完成应用程序中的数据处理子进程可以触发执行数据格式化并显示子进程。通过说明可知且如上文参考图6和图7论述,取决于远程会话配置信息,可以在客户端计算装置102处本地处置处理或可以将处理处置为在NCC POP138处执行的远程会话。例如,如果远程会话配置信息规定进行大量本地处理,那么可以在客户端计算装置102处本地处置各种用户交互和其它处理。通过说明可知,在一些情况下,在客户端计算装置102处本地处置用户交互可以允许得到更好的响应和更少的延迟。例如,因为对应于简单的用户交互(例如,选择收音机按钮或将文字打印到某个栏中)的进程数据无需被发送到NCC P0P138以供处理,所以所述交互可以更快执行。
[0087]作为另一实例,如果远程会话配置信息规定内容的大量远程处理,那么可以将与显示内容进行的所有用户交互处置为在各个NCC POP上例证的一个或多个远程会话处的远程用户交互。例如,在一个实施方案中,如上文参考图7所述,NCC POP138可以运行包括在客户端计算装置102处执行的应用程序122的并行实例的远程会话。通过说明可知,用户输入(例如,键盘输入和光标位置)可以被封装在RDP协议数据单元中且跨网络104传输到NCC POP138处的远程会话中的并行应用程序。通过说明可知,NCCP0P138可以将用户交互应用于并行应用程序并将由对应于应用程序和应用程序内容的更新表示的更新位图和界面数据组成的处理结果传输返回到客户端计算装置102。通过说明可知,因为必须通过网络递交数据且数据受限于网络延时,在NCC P0P138处远程处置与应用程序的用户交互可以对界面响应产生负面影响;然而,因为NCC POP138的处理延时可能基本上低于客户端计算装置102的处理延时,需要进行大量处理的程序在被处置为远程用户交互时可以更好地执行。
[0088]在方框804处,客户端计算装置102获取子进程事件。通过说明可知,子进程事件可以包括任何系统或用户交互、应用程序或系统事件或触发程序或执行应用程序122的子进程的一个或多个方面的其它类型的数据。这个事件可以包括与如上所述的本地界面组件或内容进行的交互,或可以是由应用程序的另一子进程或操作系统生成的事件。取决于如图6和图7和上文描述的组件或元件的本质和由远程会话配置信息规定的处理划分,由子进程处理这个事件可能需要进行本地和/或远程处理。在方框806处,客户端计算装置102(例如,基于远程会话配置信息)确定子进程的交互处理需求。
[0089]在决定方框808处,如果完全本地处理子进程或子进程具有本地处理的任何方面(例如,简单界面反馈、将提供给远程会话的进程数据的准备等),那么常式800移动到方框810以在客户端计算装置102处处理子进程的本地方面。通过说明可知且如上所述,处理诸如本地更新界面组件和其它元件的方面可以允许应用程序提供各自用户界面和内容。在处理子进程的任何本地方面之后或如果子进程不具有任何本地元件(例如,使用RDP通信协议以接收并显示处理结果的位图的应用程序),那么常式800移动到决定方框812。如果完全远程处理子进程或子进程具有需要处理的远程方面,那么常式800移动到方框814并将进程数据提供给网络计算供应商106。在一个实施方案中,在大量服务器端远程会话配置信息的情况下,进程数据可以包括用户交互数据,诸如输入数据、光标位置或键盘输入(例如,封装在RDP或类似协议中)。在一些实施方案中,包括诸如光标位置的远程用户交互数据的进程数据可以不断提供给网络计算供应商106,而在其它实施方案中,包括远程用户交互数据的进程数据在与特定事件或子进程执行相关联时只可以被提供给网络计算供应商106。
[0090]在方框816处,客户端计算装置102从网络计算供应商106获取更新处理结果,网络计算供应商106已处理任何提供的进程数据。在方框818处,客户端计算装置102对处理结果执行所需的任何额外处理和/或在方框810中执行的本地处理(例如,基于远程会话配置信息)。在一个实施方案中,这可以包括转换或准备处理结果以整合返回到应用程序122的流程中。在方框820处,程序用户交互常式800结束。通过说明可知,可以响应于其它事件触发应用程序122的一个或多个子进程的执行而再次将常式执行任何次数。
[0091]通过说明可知,由网络计算供应商106例证的远程会话可以终止于应用程序或应用程序的某个方面结束或终止时或可以终止于远程会话由在客户端计算装置102处执行的子进程取代时(例如,如果更新远程进程配置信息规定应本地执行之前远程进程)或可以根据计时器或其它事件而终止。通过说明可知,可以由客户端计算装置102、网络计算供应商106、NCC P0P138或其任何组合来决定终止远程会话。在一个实施方案中,如果远程会话由于超时而自动终止但是应用程序实例仍保存在客户端计算装置102处(例如,如果用户已停止与应用程序交互且没有更多进程数据被发送到远程会话),那么随后用户与内容交互的尝试可以使网络计算供应商106根据终止会话的最后状态来例证新远程会话。通过说明可知,在超时之后终止远程会话可以允许网络计算供应商106节省NCC POP处的计算资源。在一个实施方案中,即使在干预周期期间已终止远程会话,这个进程对于应用程序122和/或客户端计算装置102处的用户来说仍是透明的。
[0092]在另一实施方案中,即使在丢失客户端计算装置102与网络计算供应商106之间的连接(例如,应用程序122已终止于客户端计算装置102或客户端计算装置102丢失网络连接性)之后,网络计算供应商106仍可以维持与应用程序122相关联的应用程序和/或系统状态。通过说明可知,在客户端计算装置102处开始进行应用程序122的第二实例或再建立网络连接性可以使应用程序连接到网络计算供应商106、获取与应用程序的最后状态(本文中其可以称作“应用程序背景”)相关联的状态数据和/或处理结果,且从应用程序停止之处恢复本地/远程执行。通过说明可知,从网络计算供应商检索状态数据和/或处理结果可以给用户提供他的早期应用程序会话的无缝连续性的经历。
[0093]在另一实施方案中,即使在客户端计算装置102和网络计算供应商106执行的应用程序122之间的连接丢失之后,网络计算供应商106仍可以继续处理数据或执行与应用程序122相关联的指令。例如,可以在网络计算供应商106处由客户端计算装置102处的用户开始应用程序122的复杂或资源密集型子进程。为了这个实例的目的,在网络计算供应商106处开始子进程之后,用户可以切断客户端计算装置102的电源、终止在客户端计算装置102处运行的应用程序122的实例或丢失网络计算供应商106的网络连接性。即使客户端计算装置102和网络计算供应商106处的应用程序122之间的连接不再作用,网络计算供应商106仍可以继续执行与子进程相关联的处理。在这个实例中,当用户在随后时刻恢复使用应用程序122时,客户端计算装置102可以连接到网络计算供应商106且获取当应用程序122没有与网络计算供应商106通信时处理的任何处理结果。应用程序122可以执行任何进一步处理并向客户端计算装置102处的用户显示这些结果。通过说明可知,当网络计算供应商106没有与客户端计算装置102通信时网络计算供应商106处的处理结果可以允许客户端计算装置102处的用户开始计算复杂或密集型程序并在随后时刻恢复检索结果,且不要求客户端计算装置102持续处理或运行应用程序122或维持与网络计算供应商106持续通信。
[0094]在各个其它实施方案中,多个应用程序背景可以维持在对应于与应用程序的用户交互的之前状态或条件的网络计算供应商106处。因此,特定应用程序背景可以在加载所述应用程序的实例之后由用户或客户端计算装置102选择以继续在之前应用程序背景下工作。例如,可以向用户呈现促进一个或多个之前状态的选择的图形界面。此外,在另一实施方案中,用户可由之前应用程序背景创建允许进行并行(或基本上并行)分支的交互。
[0095]可由下列条款尤其描述所述公开的各个实施方案:
[0096]条款1.一种用于远程执行管理的计算机实施方法,其包括:
[0097]初始化软件进程实例;
[0098]获取与所述软件进程实例相关联的软件进程配置信息,所述软件进程配置信息识别所述软件进程实例的一个或多个子进程,其中所述软件进程实例的所述一个或多个子进程中的每个包括多个可执行指令;
[0099]至少部分基于所述软件进程配置信息确定所述软件进程实例的远程进程配置,其中所述远程进程配置识别在网络计算供应商处进行远程操作的所述软件进程实例的所述一个或多个子进程中的子进程,且其中所述远程进程配置识别用于交换数据的通信协议;
[0100]根据所述通信协议将进程数据提供给所述网络计算供应商以供处理,其中所述进程数据包括与所述软件进程实例相关联的数据集和与将在所述网络计算供应商处执行的所述子进程相关联的一个或多个可执行指令;
[0101]根据所述通信协议从所述网络计算供应商获取一个或多个处理结果,其中所述一个或多个处理结果对应于所述网络计算组件和存储组件处的所述进程数据的处理结果,包括所述一个或多个可执行指令的执行;和
[0102]处理所获取的一个或多个处理结果以供所述软件进程实例使用。
[0103]条款2.根据条款I所述的计算机实施方法,其中所述通信协议包括超文本传输协议(HTTP )、文本传输协议(FTP )、远程桌面协议(RDP )、虚拟网络计算(VNC)协议、X-Windows协议、远程帧缓冲协议中的至少一个。
[0104]条款3.根据条款I所述的计算机实施方法,其中确定所述软件进程实例的远程进程配置包括基于以下各项确定远程进程配置:与所述软件进程实例相关联的数据特征、所述软件进程实例的计算配置文件、所述软件进程实例的子进程的计算配置文件、软件进程实例存储器使用量、软件进程实例处理器使用量、软件进程实例数据存储装置使用量、软件进程实例网络使用量、所述客户端计算装置的特征、所述网络计算供应商的特征、所述客户端计算装置的配置、所述客户端计算装置处的当前资源使用量、所述网络计算供应商处的当前资源使用量、网络连接的特征、与用户相关联的优先级或预定义配置。
[0105]条款4.一种用于远程进程执行的系统,其包括:
[0106]一个或多个计算机处理器;
[0107]至少一个计算机存储器,其可由所述至少一个或多个计算机处理器中的至少一个访问;和[0108]远程执行管理组件,其包括由所述一个或多个计算机处理器执行的可执行软件模块,其中所述远程执行管理组件可被操作来:
[0109]确定用于软件进程实例的远程进程配置,其中所述远程进程配置识别所述软件进程实例的至少一个子进程以进行远程操作;
[0110]将与所述软件进程实例的所述至少一个子进程相关联的进程数据提供给网络计算供应商,其中所述进程数据至少识别与所述软件进程实例的所述至少一个子进程相关联的数据中的至少一个和与所述软件进程实例的所述至少一个子进程相关联的多个指令;
[0111]从所述网络计算供应商获取一个或多个处理结果,所述一个或多个处理结果与所述网络计算供应商处的所述多个指令中的一个或多个的执行相关联;且
[0112]根据所述软件进程实例处理所获取的一个或多个处理结果。
[0113]条款5.根据条款4所述的系统,其中所述远程进程配置识别用于与所述网络计算和存储组件交换数据的通信协议。
[0114]条款6.根据条款5所述的系统,其中所述进程数据和所述一个或多个处理结果中的至少一个是以包括以下至少一个的格式来编码:文本、可扩展标记语言(XML)、超文本标记语言(HTML)、JavaScript对象表示法(JSON)、可执行二进制、压缩格式、加密格式、软件代码格式、图像格式、视频格式和音频格式。
[0115]条款7.根据条款4所述的系统,其中所述客户端计算装置将进程数据提供给所述网络计算供应商并通过网络连接从所述网络计算供应商获取一个或多个处理结果。
[0116]条款8.根据条款7所述的系统,其中所述网络连接是间歇性网络连接。
[0117]条款9.根据条款4所述的系统,其中所述至少一个子进程包括第一子进程和第二子进程。
[0118]条款10.根据条款9所述的系统,其中所述第一子进程与第一通信协议相关联且所述第二子进程与第二通信协议相关联。
[0119]条款11.根据条款4所述的系统,其中所述进程数据包括与所述软件进程实例相关联的数据集。
[0120]条款12.根据条款11所述的系统,其中所述一个或多个处理结果至少对应于与所述软件进程实例相关联的所述数据集的表示。
[0121]条款13.根据条款12所述的系统,其中所述远程执行管理组件还可被操作来显示所述数据集的表示。
[0122]条款14.根据条款13所述的系统,其中所述数据集的所述表示包括少于所有所述数据集。
[0123]条款15.根据条款4所述的系统,其中所述远程执行管理组件还可被操作来至少部分基于软件进程执行数据确定软件进程实例的远程进程配置。
[0124]条款16.根据条款15所述的系统,其中所述软件进程执行数据是基于所述软件进程实例的执行的监控。
[0125]条款17.根据条款16所述的系统,其中所述软件进程执行数据是基于与一个或多个第三方计算装置处的所述软件进程实例有关的一个或多个软件进程的执行的监控。
[0126]条款18.根据条款15所述的系统,其中所述远程执行管理组件还可被操作来基于所述软件进程执行数据识别在所述网络计算供应商处进行远程执行的所述软件进程实例的子进程。
[0127]条款19.根据条款15所述的系统,其中所述远程执行管理组件还可被操作来基于所述软件进程执行数据使通信协议与所述软件进程实例的子进程相关联。
[0128]条款20.根据条款4所述的系统,其中所述远程进程配置是基于获取自所述网络计算供应商的信息。
[0129]条款21.—种用于远程进程执行的计算机实施方法,其包括:
[0130]初始化软件进程实例;
[0131]确定所述软件进程实例的远程进程配置,其中所述远程进程配置识别所述软件进程实例的至少一个子进程;
[0132]将进程数据提供给网络计算供应商,其中所述进程数据识别与所述至少一个子进程相关联的数据中的至少一个和与所述至少一个子进程相关联的多个可执行装置指令;
[0133]从所述网络计算供应商获取一个或多个处理结果,其中所述一个或多个处理结果相关联于与所述至少一个子进程相关联的所述多个可执行装置指令中的一个或多个的执行;和
[0134]根据所述软件进程实例处理所获取的一个或多个处理结果。
[0135]条款22.根据条款21所述的计算机实施方法,其中所述客户端计算装置将进程数据提供给所述网络计算供应商并通过网络连接从所述网络计算供应商获取一个或多个处
理结果。
[0136]条款23.根据条款21所述的计算机实施方法,其中所述进程数据包括与所述软件进程实例相关联的数据集。
[0137]条款24.根据条款23所述的计算机实施方法,其中所述一个或多个处理结果至少对应于与所述软件进程实例相关联的所述数据集的表示。
[0138]条款25.根据条款24所述的计算机实施方法,其中根据所述软件进程实例处理所获取的一个或多个处理结果包括造成所述数据集的所述表示的显示。
[0139]条款26.根据条款25所述的计算机实施方法,其中所述数据集的所述表示包括少于所有所述数据集。
[0140]条款27.根据条款21所述的计算机实施方法,其还包括:
[0141]在所述客户端计算装置处终止所述软件进程实例;
[0142]在述客户端计算装置处初始化第二软件进程实例;和
[0143]从所述网络计算供应商获取一个或多个处理结果,其中所述一个或多个处理结果与终止于所述客户端计算装置处之前的所述软件进程实例的最后状态相关联。
[0144]条款28.根据条款27所述的计算机实施方法,其中从所述网络计算供应商获取一个或多个处理结果是基于所述客户端计算装置与网络计算供应商之间的有限网络连接性。
[0145]条款29.根据条款27所述的计算机实施方法,其还包括在所述客户端计算装置处终止所述软件进程实例,其中从所述网络计算供应商获取一个或多个处理结果包括在所述软件进程实例终止之前获取一个或多个处理结果。
[0146]条款30.根据条款21所述的计算机实施方法,其还包括将第二进程数据提供给第一计算装置以供处理,其中所述第二进程数据识别与将在所述第一计算装置处执行的所述至少一个子进程相关联的第二多个可执行指令。[0147]条款31.根据条款30所述的计算机实施方法,其还包括基于与所述计算装置相关联的计算资源利用量确定是否将处理数据提供给所述第一计算装置或所述网络计算供应商。
[0148]条款32.—种用于远程执行管理的计算机实施方法,其包括:
[0149]由客户端计算装置初始化软件进程实例;
[0150]由所述客户端计算装置获取与所述软件进程实例相关联的软件进程配置信息,所述软件进程配置信息识别所述软件进程实例的一个或多个子进程,其中所述软件进程实例的所述一个或多个子进程中的每个包括多个可执行指令;
[0151]由所述客户端计算装置至少部分基于所述软件进程配置信息确定所述软件进程实例的远程进程配置,其中所述远程进程配置识别在网络计算供应商处进行远程操作的所述软件进程实例的所述一个或多个子进程中的子进程,且其中所述远程进程配置识别用于交换数据的通信协议;
[0152]由所述客户端计算装置根据所述通信协议将进程数据提供给所述网络计算供应商以供处理,其中所述进程数据包括与所述软件进程实例相关联的数据集和与将在所述网络计算供应商处执行的所述子进程相关联的一个或多个可执行指令;
[0153]在所述客户端计算装置处根据所述通信协议从所述网络计算供应商获取一个或多个处理结果,其中所述一个或多个处理结果对应于所述网络计算组件和存储组件处的所述进程数据的处理结果,包括所述一个或多个可执行指令的执行;和
[0154]由所述客户端计算装置处理所获取的一个或多个处理结果以供所述软件进程实例使用。
[0155]条款33.根据条款32所述的计算机实施方法,其中所述通信协议包括超文本传输协议(HTTP )、文本传输协议(FTP )、远程桌面协议(RDP )、Χ-ffindows协议、虚拟网络计算(VNC)协议、X-Windows协议、远程巾贞缓冲协议中的至少一个。
[0156]条款34.根据条款32所述的计算机实施方法,其中确定所述软件进程实例的远程进程配置包括基于以下至少一个确定远程进程配置:与所述软件进程实例相关联的数据特征、所述软件进程实例的计算配置文件、所述软件进程实例的子进程的计算配置文件、软件进程实例网络使用量需求、所述客户端计算装置的特征、所述替代计算装置的特征、所述客户端计算装置的配置、所述客户端计算装置处的资源可用性、所述替代计算装置处的资源可用性、网络连接的特征、与用户相关联的优先级或预定义配置。
[0157]条款35.根据条款32所述的计算机实施方法,其中所述替代计算装置包括个人计算机、膝上型计算机、平板电脑、个人数字助手(PDA)、智能手机、游戏机和主服务器中的至少一个。
[0158]条款36.根据条款32所述的计算机实施方法,其中将进程数据提供给所述替代计算装置以供处理包括通过蓝牙连接、红外线连接、无线网络连接和有线网络连接中的至少一个提供进程数据。
[0159]条款37.—种用于远程进程执行的系统,其包括:
[0160]一个或多个计算机处理器;
[0161]至少一个计算机存储器,其可由所述至少一个或多个计算机处理器中的至少一个访问;和[0162]远程执行管理组件,其包括由所述一个或多个计算机处理器执行的可执行软件模块,其中所述远程执行管理组件可被操作来:
[0163]确定用于软件进程实例的远程进程配置,其中所述远程进程配置识别所述软件进程实例的至少一个子进程;
[0164]将与所述软件进程实例的所述至少一个子进程相关联的进程数据提供给第一计算装置,其中所述进程数据识别与所述软件进程实例的所述至少一个子进程相关联的数据中的至少一个和与所述软件进程实例的所述至少一个子进程相关联的多个指令;
[0165]从第二计算装置获取一个或多个处理结果,所述一个或多个处理结果与所述第二计算装置处的所述多个指令中的一个或多个的执行相关联;且
[0166]根据所述软件进程实例处理所获取的一个或多个处理结果。
[0167]条款38.根据条款37所述的系统,其中确定所述软件进程实例的远程进程配置包括基于以下至少一个确定远程进程配置:与所述软件进程实例相关联的数据特征、所述软件进程实例的计算配置文件、所述软件进程实例的子进程的计算配置文件、软件进程实例网络使用量需求、所述客户端计算装置的特征、所述第一计算装置的特征、所述第二计算装置的特征、所述客户端计算装置的配置、所述客户端计算装置处的资源可用性、所述第一计算装置处的资源可用性、网络连接的特征、与用户相关联的优先级或预定义配置。
[0168]条款39.根据条款37所述的系统,其中所述第一计算装置和所述第二计算装置是相同计算装置。
[0169]条款40.根据条款37所述的系统,其中将与所述软件进程实例的所述至少一个子进程相关联的进程数据提供给所述第一计算装置包括将与所述软件进程实例的所述至少一个子进程相关联的数据中的至少一个和与所述软件进程实例的所述至少一个子进程相关联的多个指令提供给所述第一计算装置。
[0170]条款41.根据条款37所述的系统,其中所述第二计算装置包括个人计算机、膝上型计算机、平板电脑、个人数字助手(PDA)、智能手机、游戏机和主服务器中的至少一个。
[0171]条款42.根据条款37所述的系统,其中所述执行管理组件还可被操作来将进程数据提供给所述第一计算装置并通过至少一个网络连接从所述第二计算装置获取一个或多个处理结果。
[0172]条款43.根据条款42所述的系统,其中所述至少一个网络连接有限且其中所述执行管理组件还可被操作来基于所述有限网络连接性确定提供给所述第一计算装置的数据量。
[0173]条款44.根据条款37所述的系统,其中所述软件进程实例的所述至少一个子进程包括第一子进程且所述远程进程配置信息识别在网络计算供应商处远程操作的所述软件进程实例的第二子进程。
[0174]条款45.根据条款44所述的系统,其中所述执行管理组件还可被操作来确定与所述第一子进程相关联的第一通信协议和与所述第二子进程相关联的第二通信协议。
[0175]条款46.根据条款37所述的系统,其中所述执行管理组件还可被操作来通过蓝牙连接、红外线连接、无线网络连接和有线网络连接中的至少一个将进程数据提供给所述第一计算装置以供处理。
[0176]条款47.根据条款37所述的系统,其中所述进程数据是由所述第一计算装置提供给所述第二计算装置。
[0177]条款48.根据条款47所述的系统,其中所述第一计算装置被配置来确定是否在所述第一计算装置处处理所述进程数据或是否将所述程序提供给所述第二计算装置以供处理。
[0178]条款49.根据条款48所述的系统,其中由所述第一计算装置作出是否在所述第一计算装置处处理所述进程数据或是否将所述程序提供给所述第二计算装置以供处理的确定是基于以下至少一个:与所述子进程相关联的处理需求、所述第一计算装置处的资源可用性、所述第二计算装置处的资源可用性和所述进程数据的特征。
[0179]条款50.根据条款38所述的系统,其中所述执行管理组件还被操作来确定是否在所述第一处理装置处处理所述进程数据或是否将所述进程数据提供给所述第二计算装置以供处理。
[0180]款51.—种用于远程进程执行的计算机实施方法,其包括:
[0181]在客户端计算装置处初始化软件进程实例;
[0182]确定所述软件进程实例的远程进程配置,其中所述远程进程配置识别所述软件进程实例的至少一个子进程;
[0183]将进程数据提供给第一计算装置,其中所述进程数据识别与所述至少一个子进程相关联的数据中的至少一个和与所述至少一个子进程相关联的多个可执行装置指令;
[0184]从第二计算装置获取一个或多个处理结果,其中所述一个或多个处理结果关联于与所述至少一个子进程相关联的所述多个可执行装置指令中的一个或多个的执行;和
[0185]根据所述软件进程实例处理所获取的一个或多个处理结果。
[0186]条款52.根据条款51所述的计算机实施方法,其中所述进程数据和所述一个或多个处理结果中的至少一个是以包括以下至少一个的格式来编码:文本、可扩展标记语言(XML)、超文本标记语言(HTML)、JavaScript对象表示法(JS0N)、可执行二进制、压缩格式、加密格式、软件代码格式、图像格式、视频格式和音频格式。
[0187]条款53.根据条款52所述的计算机实施方法,其中所述第一计算装置和所述第二计算装置是相同计算装置。
[0188]条款54.根据条款51所述的计算机实施方法,其中将进程数据提供给所述第一计算装置包括将与所述至少一个子进程相关联的数据中的至少一个和所述至少一个子进程相关联的多个指令提供给所述第一计算装置。
[0189]条款55.根据条款51所述的计算机实施方法,其中所述客户端计算装置将进程数据提供给所述第一计算装置并通过至少一个网络连接从所述第二计算装置获取一个或多个处理结果。
[0190]条款56.根据条款55所述的计算机实施方法,其中所述至少一个网络连接有限且其中所述执行管理组件还可被操作来基于所述有限网络连接性确定提供给所述第一计算装置的数据量。
[0191]条款57.根据条款52所述的计算机实施方法,其中所述软件进程实例的所述至少一个子进程包括第一子进程且所述远程进程配置信息识别在网络计算供应商处远程操作的所述软件进程实例的第二子进程。
[0192]条款58.根据条款52所述的计算机实施方法,其中所述进程数据是由所述第一计算装置提供给所述第二计算装置。
[0193]条款59.根据条款58所述的计算机实施方法,其中所述第一计算装置被配置来确定是否在所述第一计算装置处处理所述进程数据或是否将所述程序提供给所述第二计算装置以供处理。
[0194]条款60.根据条款59所述的计算机实施方法,其中由所述第一计算装置作出是否在所述第一计算装置处处理所述进程数据或是否将所述程序提供给所述第二计算装置以供处理的确定是基于以下至少一个:与所述子进程相关联的处理需求、所述第一计算装置处的资源可用性、所述第二计算装置处的资源可用性和所述进程数据的特征。
[0195]条款61.根据条款52所述的计算机实施方法,其还包括确定是否在所述第一处理装置处处理所述进程数据或是否将所述进程数据提供给所述第二计算装置以供处理。
[0196]虽然已公开并论述说明性实施方案,但是本领域一般技术人员应明白,可以在本发明的精神和范围内实施额外或替代性实施方案。例如,可以在不违背本发明的范围的情况下使用本文中描述的技术以允许在任何数量的其它软件应用程序和程序(包括(但不限于)图像或视频编辑软件、数据库软件、办公软件、3d设计软件、音频和声音处理应用程序等)中进行远程处理管理。此外,虽然已将许多实施方案指示为说明性,但是本领域一般技术人员应明白,无需组合或一起实施说明性实施方案。因此,无需根据本发明的变化范围来使用或实施一些说明性实施方案。
[0197]除非另有具体说明或在所使用背景下理解,否则条件语言(尤其诸如“可(can)”、“可(could)”、“可能(might)”或“可以(may)”)一般旨在表达某些实施方案包括某些特征、元件和/或步骤,而其它实施方案不包括某些特征、元件和/或步骤。因此,这种条件语言一般不旨在暗示一个或多个实施方案以任何方式需要某些特征、元件和/或步骤或一个或多个实施方案必须包括用于在用户输入或提示的情况下或没有用户输入或提示的情况下决定任何特定实施方案中是否包括或执行这些特征、元件和/或步骤的逻辑。
[0198]本文中描述和/或附图中描绘的流程图中的任何进程描述、元件或方框应被视为可能表示包括用于实施所述程序中的特定逻辑功能或步骤的模块、分段或部分。如将由本领域一般技术人员了解,本文中描述的实施方案的范围内包括替代实施方案,其中可以取决于所涉及的功能性从示出或论述的元件或功能中无序地(包括基本上同时或相反次序)删除、执行元件或功能。还应明白,上述数据和/或组件可以存储在计算机可读媒介上且使用与计算机可读媒介相关联的驱动机构加载到计算装置的存储器中、可以存储在任何数量的计算机可执行组件(诸如CD-ROM、DVD-ROM)中或经由网络接口提供或获取;此外,组件和/或数据可包括在单个装置中或以任何其它方式分布。因此,通用计算装置可以被配置来在处理和/或执行上述各个数据和/或组件的情况下实施本公开的程序、算法和方法论。
[0199]应强调可以对上述实施方案(其中的元件尤其被视为可接受实例)作出许多改变和修改。本文所有这些修改和改变旨在包括在本公开的范围内且受下列权利要求保护。
【权利要求】
1.一种用于远程进程执行的系统,其包括: 一个或多个计算机处理器; 至少一个计算机存储器,其可由所述一个或多个计算机处理器中的至少一个访问;和远程执行管理组件,其包括由所述一个或多个计算机处理器执行的可执行软件模块,其中所述远程执行管理组件可被操作来: 确定用于软件进程实例的远程进程配置,其中所述远程进程配置识别所述软件进程实例的至少一个子进程以进行远程操作; 将与所述软件进程实例的所述至少一个子进程相关联的进程数据提供给网络计算供应商,其中所述进程数据至少识别与所述软件进程实例的所述至少一个子进程相关联的数据中的至少一个和与所述软件进程实例的所述至少一个子进程相关联的多个指令; 从所述网络计算供应商获取一个或多个处理结果,所述一个或多个处理结果与所述网络计算供应商处的所述多个指令中的一个或多个的执行相关联;且根据所述软件进程实例处理所获取 的一个或多个处理结果。
2.根据权利要求1所述的系统,其中所述远程进程配置识别用于与所述网络计算和存储组件交换数据的通信协议。
3.根据权利要求1所述的系统,其中所述客户端计算装置通过网络连接将进程数据提供给所述网络计算供应商并从所述网络计算供应商获取一个或多个处理结果。
4.根据权利要求1所述的系统,其中所述至少一个子进程包括第一子进程和第二子进程。
5.根据权利要求1所述的系统,其中所述进程数据包括与所述软件进程实例相关联的数据集。
6.根据权利要求1所述的系统,其中所述远程执行管理组件还可被操作来至少部分基于软件进程执行数据确定软件进程实例的远程进程配置。
7.根据权利要求6所述的系统,其中所述远程执行管理组件还可被操作来基于所述软件进程执行数据识别在所述网络计算供应商处进行远程执行的所述软件进程实例的子进程。
8.根据权利要求6所述的系统,其中所述远程执行管理组件还可被操作来基于所述软件进程执行数据使通信协议与所述软件进程实例的子进程相关联。
9.根据权利要求1所述的系统,其中所述远程进程配置是基于获取自所述网络计算供应商的信息。
10.一种用于远程进程执行的计算机实施方法,其包括: 初始化软件进程实例; 确定所述软件进程实例的远程进程配置,其中所述远程进程配置识别所述软件进程实例的至少一个子进程; 将进程数据提供给网络计算供应商,其中所述进程数据识别与所述至少一个子进程相关联的数据中的至少一个和与所述至少一个子进程相关联的多个可执行装置指令; 从所述网络计算供应商获取一个或多个处理结果,其中所述一个或多个处理结果相关联于与所述至少一个子进程相关联的所述多个可执行装置指令中的一个或多个的执行;和根据所述软件进程实例处理所获取的一个或多个处理结果。
11.根据权利要求10所述的计算机实施方法,其中所述客户端计算装置通过网络连接将进程数据提供给所述网络计算供应商并从所述网络计算供应商获取一个或多个处理结果O
12.根据权利要求10所述的计算机实施方法,其中所述进程数据包括与所述软件进程实例相关联的数据集。
13.根据权利要求10所述的计算机实施方法,其还包括: 在所述客户端计算装置处终止所述软件进程实例; 在所述客户端计算装置处初始化第二软件进程实例;和 从所述网络计算供应商获取一个或多个处理结果,其中所述一个或多个处理结果与终止于所述客户端计算装置处之前的所述软件进程实例的最后状态相关联。
14.根据权利要求10所述的计算机实施方法,其还包括将第二进程数据提供给第一计算装置以供处理,其中所述第二进程数据识别与将在所述第一计算装置处执行的所述至少一个子进程相关联的第二多个可执行指令。
15.根据权利要求14所述的计算机实施方法,其还包括基于与所述计算装置相关联的计算资源利用量确定是否 将处理数据提供给所述第一计算装置或所述网络计算供应商。
【文档编号】G06F9/50GK103999052SQ201280046251
【公开日】2014年8月20日 申请日期:2012年9月19日 优先权日:2011年9月21日
【发明者】乔纳森·A·詹金斯, 布雷特·R·泰勒 申请人:亚马逊技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1