【技术实现步骤摘要】
请求处理技术本申请是申请日为2014年8月11日、申请号为201480052085.6、题为“请求处理技术”的分案申请。相关申请案的交叉参考本申请案主张2013年8月12日申请的标题为“根据请求的计算机系统实例(PERREQUESTCOMPUTERSYSTEMINSTANCES)”的第13/964,977号、标题为“应用引导映像(APPLICATIONBOOTIMAGE)”的第13/964,941号以及标题为“请求处理技术(REQUESTPROCESSINGTECHNIQUES)”的第13/964,889号共同待决的美国专利申请案,所述专利申请案的内容全文以引用的方式并入本文中。
技术介绍
电子请求的服务可能需要各种资源量。例如,请求服务的规模可以在微小的无状态计算到耗时的大规模并行应用的范围内。请求的服务通常只需要有限的计算资源量,通常少于计算机系统用来服务可用的请求的资源量。因此,计算资源经常没有被充分使用,并且一般来说,用于处理请求的传统技术具有很多的缺点。在很多方面,虚拟化改善了使用计算资源的方式,例如,允许单个物理计算机系统实施多个同时运行的虚拟计算机系统,从而提供可调整大小的能力,使得开发人员易于弹性增加规模。然而,归因于服务请求所需的资源以及加速和拆除虚拟计算机系统(实例)的成本摊销,传统虚拟化技术在开发人员减少计算规模的能力方面会受到基本限制。服务虚拟化的实际实施通常依赖于预期工作负载将占据几分钟、几小时或甚至更长时间。例如,在很多应用中,可以相对不常使用虚拟计算机系统。然而,为了让虚拟计算机系统能 ...
【技术保护点】
1.一种用于处理请求的计算机实施的方法,包括:/n在配置有可执行指令的一个或多个计算机系统的控制下,/n由管理程序实施虚拟计算机系统实例和控制器,从而使得:/n所述虚拟计算机系统实例缺少用于接收所述请求的协议堆栈的一个或多个层的实施;/n所述控制器具有所述虚拟计算机系统实例缺少的所述协议堆栈的所述一个或多个层的实施;并且/n所述虚拟计算机系统实例和所述控制器可访问共享存储区;/n将从所述控制器到所述虚拟计算机系统实例的所述请求的数据放到所述共享存储区中;/n将来自所述共享存储区的所述数据提供到所述虚拟计算机系统;/n将从所述虚拟计算机系统到所述控制器的用于响应所述请求的数据放到所述共享存储区中;/n将用于所述响应的所述数据从所述共享存储区提供到所述控制器;以及/n使用所述控制器的所述协议堆栈的所述一个或多个层的所述实施来提供对所述请求的所述响应。/n
【技术特征摘要】
20130812 US 13/964,977;20130812 US 13/964,941;20131.一种用于处理请求的计算机实施的方法,包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
由管理程序实施虚拟计算机系统实例和控制器,从而使得:
所述虚拟计算机系统实例缺少用于接收所述请求的协议堆栈的一个或多个层的实施;
所述控制器具有所述虚拟计算机系统实例缺少的所述协议堆栈的所述一个或多个层的实施;并且
所述虚拟计算机系统实例和所述控制器可访问共享存储区;
将从所述控制器到所述虚拟计算机系统实例的所述请求的数据放到所述共享存储区中;
将来自所述共享存储区的所述数据提供到所述虚拟计算机系统;
将从所述虚拟计算机系统到所述控制器的用于响应所述请求的数据放到所述共享存储区中;
将用于所述响应的所述数据从所述共享存储区提供到所述控制器;以及
使用所述控制器的所述协议堆栈的所述一个或多个层的所述实施来提供对所述请求的所述响应。
2.如权利要求1所述的计算机实施的方法,其中:
所述方法还包括可访问所述虚拟计算机系统实例和所述控制器的所述管理程序的超级调用接口,将通知提供到所述控制器的超级调用处理程序;以及
作为所述超级调用处理程序接收到所述通知的结果,将用于所述响应的所述数据从所述共享存储区提供到所述控制器。
3.如权利要求1所述的计算机实施的方法,其中:
将所述请求的所述数据放入所述共享存储区包括将控制区域中的所述数据的一个或多个位置写入到所述共享存储区的所述控制区域;以及
将所述数据从所述共享存储区提供到所述虚拟计算机系统实例包括至少部分基于写入到所述控制区域的所述一个或多个位置来定位出所述数据。
4.如权利要求1所述的计算机实施的方法,其中所述方法进一步包括:
通过所述虚拟计算机系统实例,使用第一对象模型生成第一监听器对象;以及
通过所述控制器生成第二监听器对象,以接收所述请求,所述第二监听器对象对应于所述第一监听器对象。
5.如权利要求1所述的计算机实施的方法,其中所述请求是超文本传输协议请求。
6.如权利要求1所述的计算机实施的方法,其中所述方法进一步包括:
通过所述管理程序来实施第二虚拟计算机系统实例,从而使得第二虚拟计算机系统实例和所述控制器可访问第二共享存储区;并且其中
所述协议堆栈的所述一个或多个层的所述实施由所述控制器用来处理所述第二虚拟计算机系统实例的请求。
7.一种计算机实施的方法,包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
在管理程序的第一域中实施计算机系统实例;
在所述管理程序的第二域中实施控制器,所述控制器与所述计算机系统实例共享访问存储区,并且实施协议堆栈的多个层,所述多个层包括由所述计算机系统实例实施的所述协议堆栈的共享层;
至少通过以下方式满足使用所述协议堆栈接收的请求:
使用所述协议堆栈的所述共享层和所述存储区来将用于所述请求的响应数据从所述计算机系统实例传送到所述控制器;以及
使用来自所述协议堆栈的所述多个层中的至少一个层对所述第二域中的所述响应数据执行一个或多个操作,其中所述计算机系统实例缺少对所述至少一个层的实施。
8.如权利要求7所述的计算机实施的方法,其中所述请求是超文本传输协议请求。
9.如权利要求7所述的计算机实施的方法,其中所述共享层是所述协议堆栈的应用层。
10.如权利要求7所述的计算机实施的方法,其中传送用于所述请求的所述响应数据包括作为所述计算机系统实例与半虚拟装置驱动器交互的结果而将所述控制器的超级调用传输到所述管理程序的超级调用接口
11.如权利要求7所述的计算机实施的方法,其中:
所述存储区被配置来包括控制空间和多个请求插槽;
将所述请求数据从所述计算机系统传送到所述控制器包括促使所述控制器获取所述响应数据,方式是至少访问所述控制空间以确定来自所述多个请求插槽中的请求插槽,所述请求插槽中放有所述请求数据的至少一部分。
12.如权利要求7所述的计算机实施的方法,其中满足所述请求包括在所述第一域中生成第一请求,所述第一请求对应于所述请求,所述请求已在所述第二域中接收到。
13.一种系统,包括:
一个或多个处理器;以及
存储器,其包括指令,所述指令在被所述一个或多个处理器执行时促使所述系统实施:
管理程序;
在所述管理程序上操作的一个或多个计算机系统实例;
在所述管理程序上操作的控制器;
针对所述一个或多个计算机系统实例中的每个计算机系统实例,存储空间由所述计算机系统实例和所述控制器共享;
其中所述管理程序、所述计算机系统实例以及所述控制器共同被配置来通过借助从所述计算机系统实例到所述控制器的超级调用而将用于响应的数据通知给所述请求,至少部分由所述控制器满足所述计算机系统的请求,其中通过将所述请求数据放在所述存储空间可访问所述请求。
14.如权利要求13所述的系统,其中所述计算机系统实例包括半虚拟装置驱动器到所述管理程序实施的超级调用接口,从而所述计算机系统实例和控制器中的一者的超级调用触发到所述计算机系统实例和所述控制器中的另一者的对应通信。
15.如权利要求13所述的系统,其中:
所述控制器包括协议套的第一层集的实施;
所述计算机系统实例包括所述协议套的第二层集的实施;
所述第一层集和所述第二层集不同但具有非空交叉;以及
满足所述请求包括由所述控制器使用所述协议套的所述第一层集。
16.如权利要求13所述的系统,其中所述请求是HTTP请求。
17.如权利要求13所述的系统,其中将所述请求数据放在所述存储空间中包括将第一数据写入所述存储空间的第一分区,以及将第二数据写入所述存储空间的第二分区,所述第一数据指明所述第二数据在所述存储空间的所述第二分区中的位置。
18.如权利要求13所述的系统,其中所述控制器包括超级调用处理程序,其被配置来接收来自所述管理程序的超级调用接口的超级调用,并且因此,访问所述存储空间,以识别将被服务的请求。
19.一种存储有指令的非瞬时计算机可读存储媒体,所述指令在被计算机系统的一个或多个处理器执行时促使所述计算机系统至少实施:
管理程序的第一域中的计算机系统实例;
所述管理程序的第二域中的控制器;以及
所述控制器和所述计算机系统实例可访问的存储区;
其中所述计算机系统实例和控制器共同被配置来在请求处理时协作,从而满足请求包括:
使用所述管理程序的超级调用接口和所述存储区在所述计算机系统实例与所述控制器之间传送数据;以及
促使所述计算机系统实例和所述控制器各自结合所述数据来执行一个或多个操作。
20.如权利要求19所述的计算机可读存储媒体,其中所述请求是超文本传输协议请求。
21.如权利要求19所述的计算机可读存储媒体,其中在所述计算机系统实例与所述控制器之间传送所述数据包括所述计算机系统实例与半虚拟装置驱动器交互,以便促使所述存储区中的所述数据的通知被发出到所述控制器。
22.如权利要求21所述的计算机可读存储媒体,其中所述通知包括所述请求的标识符,以及其中在所述计算机系统实例与所述控制器之间传送所述数据还包括使用所述标识符来确定位置,以从存储在所述存储区中的多个数据实例中选择请求数据。
23.如权利要求19所述的计算机可读存储媒体,其中:
所述控制器实施了所述计算机系统实例未实施的协议堆栈的一个或多个层;以及
所述请求处理包括使用所述协议堆栈的所述一个或多个层。
24.如权利要求23所述的计算机可读存储媒体,其中:
所述指令还促使所述计算机系统实施一个或多个其他计算机系统实例;
所述协议堆栈的所述实施的一个或多个层用于针对所述一个或多个其他计算机系统实例中的每个的请求处理;以及
所述一个或多个其他计算机系统实例不可访问所述存储区。
25.一种计算机实施的方法,包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
接收应用源,所述应用源包括可执行部分;
解析所述应用源,以确定所述可执行部分的执行中的变化点;
至少部分基于确定的变化点,通过虚拟机实例将所述可执行部分执行到停止点;
在所述停止点停止所述虚拟机实例;
在所述变化点处或之前得到停止的虚拟机实例的快照;以及
使用所述快照来实例化另一虚拟机实例。
26.如权利要求25所述的计算机实施的方法,其中:
解析所述应用源包括用包括所述确定的变化点的一个或多个变化点的一个或多个位置给所述应用源加注释;以及
所述停止点至少部分基于所注释的应用源。
27.如权利要求26所述的计算机实施的方法,其中对所述应用源加注释包括将所述应用源中提及的一个或多个功能与对应于变化点的功能目录相匹配。
28.如权利要求25所述的计算机实施的方法,其中:所述方法还包括将所述虚拟机实例恢复到对应于确定为安全点的所述变化点之前的执行点的状态;以及
在确定为所述安全点的所述执行点处得到所述快照。
29.如权利要求25所述的计算机实施的方法,其中将所述可执行部分执行到所述停止点包括监控所述可执行部分的执行,以检测所述停止点。
30.如权利要求29所述的计算机实施的方法,其中所述快照对所述虚拟机实例的存储空间的至少一部分的复本进行编码,并且包括下列各项中的一个或多个:一个或多个处理器寄存器的状态、一个或多个标记的状态、一个或多个程序计数器的状态,或者入口点地址。
31.如权利要求25所述的计算机实施的方法,其中使用所述快照来实例化另一虚拟机实例包括:将所述快照添加到可用于虚拟机实例的实例化的应用图像存储库,以及从另一虚拟机实例的实例化存储库中检索所述快照。
32.一种计算机实施的方法,包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
识别应用源的可执行部分中的一个或多个变化点,其中所述一个或多个变化点中的每个变化点对应于一个或多个计算机可执行指令,所述指令的执行结果可能会导致多个执行之中的不同应用行为;
通过虚拟机实例来监控所述应用源的所述可执行部分的执行,以从所述一个或多个变化点中识别出变化点;
至在至少部分基于所识别的变化点的点处停止所述虚拟机实例;
在至少部分基于所识别的变化点的点处获取所述虚拟机实例的快照;以及
至少部分基于所获取的快照来存储应用图像,所述应用图像可用于实例化另一虚拟机实例
33.如权利要求32所述的计算机实施的方法,其中所识别的一个或多个变化点对应于无法从所述应用源中确定得到的执行结果所在的所述可执行部分的执行中的点。
34.如权利要求32所述的计算机实施的方法,其中识别所述一个或多个变化点包括:
识别所述应用源中指定的一个或多个功能;以及
确定所识别的一个或多个功能是否出现在被确定可能导致变化点的功能的目录中
35.如权利要求32所述的计算机实施的方法,其中获取所述快照包括在所识别的变化点处或之前识别安全点,所述安全点被识别为以下结果:所述安全点对应于可再现的计算机系统状态,并且从所述安全点,所述应用源的所述可执行部分的执行可以在不同的计算机系统上重新开始。
36.如权利要求32所述的计算机实施的方法,其中:
获取所述快照包括识别出所识别的变化点处或之前的安全点;以及
识别所述安全点至少部分基于安全点标准,所述标准应用于在不同时间得到的所述虚拟机实例的多个快照的集合中的一个或多个快照。
37.一种系统,包括:
一个或多个处理器;以及
存储器,所述存储器包括可执行指令,所述可执行指令在被所述一个或多个处理器执行时促使所述系统实施第一子系统,所述第一子系统被配置成:
至少部分基于应用源来实例化计算机系统实例;
监控所述计算机系统实例中的所述应用源的可执行部分的执行以:
识别变化点;并且
由于所述计算机系统实例的存储页面包括对应于所述变化点的指令,发出促使所述计算机系统实例暂停的中断;
至少部分基于所识别的变化点来获取所述计算机系统实例的快照;以及
至少部分基于所获取的快照来促使应用图像被存储,所述应用图像可用于实例化另一计算机系统实例。
38.如权利要求37所述的系统,还包括第二子系统,所述第二子系统被配置来处理所述应用源的所述可执行部分以识别变化点的集合,所识别的变化点来自变化点集合。
39.如权利要求37所述的系统,其中实例化所述计算机系统实例包括:
至少部分基于所述应用源来选择引导程序;以及
执行所述引导程序。
40.如权利要求37所述的系统,其中:
所述系统还包括用于实例化计算机系统实例的其他系统可访问的应用图像存储库;以及
促使所述应用图像被存储包括将所述应用图像传输到所述应用图像存储库。
41.如权利要求37所述的系统,其中:
用表明潜在变化点的一个或多个注释对所述应用源加注释;以及
至少部分基于所述一个或多个注释来监控所述应用源的所述可执行部分的执行。
42.如权利要求37所述的系统,其中所识别的变化点对应于无法从所述应用源中确定得到的执行结果所在的所述可执行部分的执行中的点。
43.如权利要求37所述的系统,其中监控所述计算机系统示例的所述应用源的所述可执行部分的执行以识别所述变化点还包括:在到达所述变化点的所述执行的点处,在所述计算机系统实例的外部,通知进程以使得所述进程能够暂停所述计算机系统实例。
44.如权利要求37所述的系统,其中所述计算机系统实例是虚拟机实例。
45.一种存储有指令的非瞬时计算机可读存储媒体,所述指令在被计算机系统的一个或多个处理器执行时促使所述计算机系统至少:
获取应用源,所述应用源包括可执行部分;
促使计算机系统实例执行所述可执行部分中的至少一些;
在部分但不完全执行所述可执行部分之后确定执行中的变化点,其中所确定的变化点对应于无法从所述应用源中确定得到的执行结果所在的所述可执行部分的执行中的点,其中在所述变化点处获取的所述计算机系统实例的快照可用于实例化另一计算机系统实例,以便在得到所述快照的点处开始执行所述可执行部分;
在执行中的所述变化点处,在所述计算机系统实例的外部,通知进程以使得所述进程能够暂停所述计算机系统实例;以及
在所述变化点处获取所述计算机系统实例的所述快照。
46.如权利要求45所述的非瞬时计算机可读存储媒体,其中:
所述应用源被获取具有注释,所述注释表明用于停止执行所述可执行部分的一个或多个潜在点;以及
促使所述计算机系统实例被停止的所述指令促使所述计算机系统实例在获取所述快照之前根据来自所述注释中的注释而被停止。
47.如权利要求45所述的非瞬时计算机可读存储媒体,其中所述指令还包括促使所述计算机系统将所述计算机系统实例实例化为虚拟机的指令。
48.如权利要求45所述的计算机可读存储媒体,其中至少部分基于点处的中央处理单元状态来确定执行所述可执行部分中的所述点。
49.如权利要求45所述的计算机可读存储媒体,其中所述快照包括所述计算机系统实例的存储空间的至少一部分的复本,并且包括下列各项中的一个或多个:一个或多个处理器寄存器的状态、一个或多个标记的状态、一个或多个程序计数器的状态,或者入口点地址。
50.如权利要求45所述的计算机可读存储媒体,其中所述指令还促使所述计算机系统至少部分基于所述快照而将应用图像传输到应用图像的存储库,所述应用图像每个可用于实例化虚拟机实例。
51.一种计算机实施的方法,包括:
接收由用户装置通过网络提交的处理数据的请求;
至少通过以下方式满足所述请求:
由管理程序至少部分基于请求实例配置来实例化请求实例,所述请求实例配置指明由所述请求实例所执行的语言运行时和应用代码;
将所述请求和请求数据提供到所述请求实例;
通过至少根据所述请求处理所述请求数据来获取由所述请求实例所生成的对所述请求的响应;并且
将所述响应提供到与所述请求相关联的计算机系统;
生成所述请求实例已经完成所述请求数据的处理的确定;以及
作为所述确定的结果,对所述请求实例进行去实例化。
52.如权利要求51所述的计算机实施的方法,其中所述处理数据的请求被提交到前端监听器并且转发到所述管理程序以便满足。
53.如权利要求52所述的计算机实施的方法,其中所述前端监听器还向所述管理程序提供至少部分基于所述请求生成的工作令牌;且
其中满足所述请求还包括促使所述管理程序对工作令牌进行排队。
54.如权利要求51所述的计算机实施的方法,其中实例化所述请求实例还包括由所述管理程序将应用图像的至少一部分复制到用于所述请求实例的存储器分区。
55.如权利要求51所述的计算机实施的方法,其中所述请求实例配置还包括至少部分基于通过至少引导所述请求实例而生成的入口点来初始地执行的所述应用代码的一部分:
所述应用图像至少部分基于另一虚拟计算机系统的快照,所述另一虚拟计算机系统已经部分执行所述应用代码的对应于所述应用图像的可执行部分而没有完全执行所述应用代码的所述可执行部分。
56.如权利要求51所述的计算机实施的方法,其中所述计算机实施的方法还包括至少部分基于在执行期间生成另一请求实例的快照来生成所述请求实例,所述另一请求实例至少部分基于所述请求实例配置而实例化。
57.一种系统,包括:
一个或多个处理器;以及
存储器,所述存储器储存计算机可执行的指令,作为所述指令被执行的结果,使得所述一个或多个处理器:
由请求实例获取处理数据的请求;
实例化所述请求实例以执行应用代码的第一部分,所述应用代码由与所述请求实例相关联的语言运行时所支持;
促使所述请求实例根据所述请求处理所述数据以生成响应;
将所述响应提供到与所述请求相关联的计算机系统;
至少部分基于一组因素生成所述请求实例可被终止的确定;以及
作为所述确定的结果,终止所述请求实例。
58.如权利要求57所述的系统,其中所述一组因素中的第一因素包括所述请求实例已经完成所述数据的处理的指示。
59.如权利要求57所述的系统,其中所述一组因素中的第一因素包括针对由所述请求实例处理所述请求所分配的时间间隔的到期。
60.如权利要求59所述的系统,其中所述时间间隔被定义在指明所述语言运行时和所述应用代码的所述第一部分的请求实例配置中。
61.如权利要求57所述的系统,其中促使所述处理器实例化所述请求实例的指令还包括作为被执行的结果而促使所述一个...
【专利技术属性】
技术研发人员:N·A·艾伦,
申请(专利权)人:亚马逊技术股份有限公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。