CN101374158B - 根据结果完成比例将缓存内容或处理内容递送给客户端 - Google Patents
根据结果完成比例将缓存内容或处理内容递送给客户端 Download PDFInfo
- Publication number
- CN101374158B CN101374158B CN2008102133089A CN200810213308A CN101374158B CN 101374158 B CN101374158 B CN 101374158B CN 2008102133089 A CN2008102133089 A CN 2008102133089A CN 200810213308 A CN200810213308 A CN 200810213308A CN 101374158 B CN101374158 B CN 101374158B
- Authority
- CN
- China
- Prior art keywords
- result
- client
- request
- server
- performance level
- 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
Images
Abstract
本发明公开了一种服务器侧的结果分发服务软件程序的解决方案。程序可以接收和存储与来自不同内容提供服务器的请求上下文相关的结果。可以从客户端接收异步请求,客户端发起定义该请求的上下文的内容请求。可以确定满足所接收的客户端请求的请求结果的完成程度。完成程度可以与与先前建立的阈值进行比较。根据比较步骤的产生结果,可以将动态处理的结果或者先前缓存的结果传送给客户端。产生动态处理的结果的服务器侧操作可以是在由客户端发送内容请求之后发起的操作。先前缓存的结果可以根据在由客户端发送内容请求之前发起的处理而生成。
Description
技术领域
本发明涉及HTTP请求处理,并且更具体地,涉及根据结果完成比例将缓存内容或处理内容选择性地递送给客户端。
背景技术
对于服务器而言,发送缓存的响应来替代处理的响应是有益的。也即,服务器可以立即将缓存响应传送给客户端,使得客户端无需等待处理的响应,从而节省了服务器的处理资源。存在对内容缓存技术的扩展(例如,stale-while-revalidate HTTP缓存控制扩展和Coral内容分发网络),其建立缓存内容的有效时间周期。在此时间周期之后,可以发送陈旧(stale)的响应,同时处理服务器进行查询以确定请求是否有效,并且根据需要来替换缓存的内容。该扩展具有明显的时间限制,并且不会更新最初触发重新生效的请求。此外,存在这样的系统:其建立处理超时周期,其中一旦超过了该超时周期,便提供缓存的内容来替代处理的内容。
正在出现这样的服务器侧系统,其针对单个请求上下文而异步地处理内容。这些系统可以使用多个服务器来处理异步请求,并且可以执行客户端侧的内容聚合。例如,________提交的美国专利申请序号公开了一种在单应用服务器环境中用于异步上下文敏感请求操作的客户端侧聚合的方案。2007年8月22日提交的美国专利申请号11/843,038扩展了客户端侧内容聚合的概念,其教导了上下文敏感请求结果的客户端侧聚合,其中,请求结果由多个服务器异步处理。此外,_______提交的美国专利申请序号______教导了一种共享服务器生成的响应输出以满足由不同客户端发起的内容请求的方案,该方案可以与本发明的布置结合使用。
传统的内容缓存技术难以处理针对单个请求上下文而产生多个请求/结果这样的情况,其中,每个异步请求将具有不同的期望响应时间。由于这些不同的期望响应时间,使用单个超时规则以提供缓存结果来替代处理结果将是不适当的。对这些难题的预期解决方案是建立用于请求上下文的复杂的缓存配置,其中每个异步结果具有个性化的响应超时阈值。另一预期方案是将多个操作聚集在一起,并建立用于这些聚集操作的单个超时。这些方案的每一个都导致开销成本并具有固有的缺陷。需要一种用于处理缓存内容的新技术。
发明内容
本发明公开了一种根据结果的完成比例来选择性地使用缓存内容或者处理内容的方案。更具体地,请求接收服务器可以使用多个异步操作来处理客户端请求,其中,一旦操作完成便可以将操作的结果递送给结果服务。操作还可以将完成比例消息传送给结果服务。当实体向结果服务请求内容时,结果服务可以首先确定该内容是否已完成,如果已完成则在响应中返回结果。否则,结果服务可以确定完成比例。当该比例低于指定的完成阈值时,可以返回缓存结果。当完成比例超过阈值时,服务可以等待直到操作完成,继而返回处理结果。每次处理了结果时,可以更新缓存。在一个实施方式中,基于比例的缓存返回可以应用于共享进程(例如,美国专利申请号_______)。
应当意识到,将完成比例用于选择性缓存返回实质上补偿了具有不同期望响应时间的不同异步进程。比例的使用允许将相关进程分组或者单独的进程处理。总体上,所公开的方案优于基于一个或多个固定超时值的传统缓存管理技术。该方案可以处理针对单个请求上下文而产生的异步结果(以及同步结果),而不论是由单个服务器还是多个服务器进行处理的。而且,在客户端侧或者服务器侧对内容进行聚合时,可以使用基于比例的缓存方案。
可以使用各种编程技术来确定完成比例。例如,可以维护进程的平均完成时间的历史日志,并且可以使用该平均值来估计相对于已用时间量而言完成当前进程尚需的时间量。可以根据这些时间计算来确定完成比例。在另一示例中,服务器侧进程可以包括多个嵌入的里程标,在处理发生时报告这些里程标,其可以用来确定完成比例。
可以根据与在此给出的素材相一致的多个方面来实现本发明。例如,本发明的一个方面可以包括服务器侧的结果分发服务软件程序。该程序可以接收和存储与来自不同的内容提供服务器的请求上下文相关的结果。可以从客户端接收异步请求,所述客户端发起了定义该请求上下文的内容请求。可以确定满足所接收的客户端请求的请求结果的完成程度。可以将完成程度与之前建立的阈值进行比较。根据比较步骤的结果,可以将动态处理的结果或者先前缓存的结果递送给客户端。产生动态处理结果的服务器侧操作可以是在客户端发送内容请求之后发起的操作。先前缓存的内容可以从客户端发送内容请求之前启动的进程中生成。
本发明的另一方面可以包括一种用于根据完成程度来选择性地使用缓存结果以处理请求的方法。在该方法中,服务器侧的结果服务可以接收客户端侧的内容请求。内容可以包括由服务器侧的资源产生的结果,该服务器侧的资源将产生的结果递送给服务器侧的结果服务。例如,服务器侧的资源可以是多个Web服务器之一,其处理针对单个请求上下文的异步请求。可以使用各种编程技术(例如,基于历史的处理平均值,软件嵌入的完成里程标,等等)来确定最终产生结果的处理操作的完成程度(例如,完成比例)。基于所确定的完成程度,可以将对客户端侧请求的缓存响应或者针对客户端侧请求而动态产生的响应提供给发起请求的客户端。
本发明的又一方面可以包括一种基于结果完成程度来选择性地向客户端递送缓存内容或处理内容的方法。该方法可以包括Web服务器从客户端接收针对内容的REST型请求的步骤。REST型命令是一种遵循表象化状态转变(REST)架构的命令。可以发起一组异步操作,这些操作一起满足REST型请求。可以将操作结果递送给结果服务。结果服务可以从客户端接收针对操作结果的至少一个REST型请求。基于产生操作结果的异步操作的完成比例程度,结果服务可以选择性地将缓存内容或者对REST型请求的处理内容响应递送给客户端。
例如,当完成程度指示操作结果完成时,可以将完成的操作结果传送至客户端。当完成程度大于先前建立的阈值时,该方法可以等待处理操作结果,并继而将完成的操作结果提供给客户端。当完成程度没有大于先前建立的阈值时,可以将缓存内容提供给客户端。
应当注意,可以将本发明的各方面实现为用于控制计算设备来实现在此描述的功能的程序,或者实现为使计算设备能够执行对应于在此公开的步骤的过程的程序。可以通过将该程序存储在磁盘、光盘、半导体存储器或者任何其他记录介质上来提供该程序。还可以将该程序作为通过载波传送的数字编码信号来提供。所描述的程序可以是单个程序,或者可以作为多个子程序实现,其中每个子程序在单个计算设备中交互或者按照跨越网络空间的分布式方式交互。
附图说明
在附图中示出了目前优选的实施方式,然而应当理解,本发明不限于所示的精确布置和手段。
图1示出了一个系统的框图,在该系统中,根据服务器已经完成的处理比例,客户端请求选择性地返回缓存内容或者动态处理的内容。
图2是示出了根据在此公开的创造性布置的实施方式的基于结果完成比例而将缓存内容或者动态处理的内容递送给客户端的交互流程图。
具体实施方式
图1示出了系统100的示意图,其中,根据服务器已经完成的处理比例,客户端请求选择性地返回缓存内容或者动态处理的内容。基于比例的请求处理可以应用于任意数目的请求-响应范式(paradigm)。这些范式可以包括针对公共请求上下文(图中已示出)的一组异步处理的进程或者同步处理的请求。而且,内容在客户端侧的聚合(图中已示出)或者内容在服务器侧的聚合二者都可以通过基于比例的请求处理机132来处理。基本上,请求处理机132可以在任何环境中实现,其中,当一组系统100条件存在时,可以将缓存内容选择性地传送给请求客户端140,而当一组不同的条件存在时,可以将动态内容传送给请求客户端140。
更具体地,请求处理机132可以包括实现请求处理进程165的可编程指令集。进程165假设:客户端正在请求与先前发出的请求相关联的内容,其中,针对该先前发出的请求已经开始了处理。进程165可以开始于步骤170,在此接收客户端请求。在步骤172中,可以标识与该请求相关联的结果。在步骤174中,进程可以确定是否存在针对该请求的完成结果。如果存在,则进程可以在步骤180中返回完成结果。
如果结果还没有完成处理,则进程可以从步骤174进行到步骤176,在此,可以将结果的完成比例与先前建立的阈值进行比较。当比例没有超过该阈值时,方法可以从步骤176进行到步骤182,在此,可以返回缓存的内容。当比例超过阈值时,进程可以在步骤178中等待结果完成。可以在步骤180中返回完成的结果。尽管没有在进程165中明确示出,但是可以将步骤180的完成结果写入缓存,以便在处理针对相同内容的后续请求时使用。
当在步骤180或者182中返回了结果集合之后,方法可以进行到步骤184,在此,可以执行针对更多结果的检查。当更多的结果与请求相关联时(步骤170),进程可以从步骤184进行到步骤172,在此,可以标识和处理接下来的结果。
当在步骤184中不存在更多的结果时,进程可以在步骤186中结束。在一个可选实现中(未示出),可以建立自动的刷新循环,以便一旦生成了完成结果(步骤180)便利用完成结果(180)来刷新返回的缓存内容(步骤182)。刷新循环可以由客户端侧程序来处理,其中,间歇性地将内容请求发往结果服务,直到返回非缓存的完成内容。可选的刷新循环可以由服务器侧的进程来处理,其将完成的内容推送给先前已经从缓存接收了结果的客户端。
可以实现请求处理机132的一个上下文执行对已经异步处理的服务器侧102内容的客户端侧聚合。在该示出的上下文中,客户端140可以从服务器110请求150内容。服务器110可以立即提供包括静态内容的初始响应152,其中该静态内容包含一组在动态内容可用时将由动态内容填充的占位符。根据实现规范,客户端140可以立即显示初始内容152,或者可以在接收到占位符内容之前延迟。
服务器110可以向一个或多个服务器120发出多个异步请求154以进行处理。这些服务器120的每一个可以包括动态引擎122,其生成传送给结果服务130的结果156。动态引擎122可以确定完成比例156,该完成比例156在某些处理点处被自动地传送给结果服务130,或者响应于服务130发出的查询而被传送给结果服务130。在一个实施方式中,服务器110可以包括动态引擎112,其生成传送给结果服务130的异步结果和完成比例158。因此,服务130可以在包括一个(服务器110)或多个(服务器120)结果处理服务器的系统中使用。
动态引擎112和/或122可以使用多种不同的编程技术来确定完成程度或完成比例156。例如,可以维护进程的平均完成时间的历史记录,并且可以使用该平均值来估计相对于已用时间量而言完成当前进程尚需的时间量。可以根据这些时间计算来确定完成比例。可以结合其他因素来改进完成比例计算的准确性,诸如服务器负载、可用的存储器/资源、所处理请求的复杂性、处理的时刻/日期,等等。当执行时间平均计算时,可以直接由结果服务130来执行历史数据和比例的确定,而无需由实际执行处理操作的服务器110、120来执行。
在另一示例中,处理请求154的服务器侧程序可以包括多个软件嵌入的完成里程标,这些里程标在处理发生时被报告,其可以用来确定完成比例。例如,服务器侧程序可以包括10个不同的“等间隔”里程标,每个代表处理操作的十分之一已经完成。在达到每个里程标时,相关联的完成比例可以增加10%。上述示例仅是可以用来计算完成比例的多种技术中的两个,不应将本发明理解为受限于此。
在传递了初始请求150之后的一些时间点,客户端140可以从结果服务130请求160内容。结果服务130可以选择性地返回内容结果162来响应请求160。结果162可以异步地返回。结果162可以与从服务器120返回的结果156和/或从服务器110返回的结果158相关联。如进程165所示,当所请求结果的完成比例低于所建立的阈值时,结果162可以包括来自数据存储134的缓存结果。在各种实现中,客户端140可以接受缓存结果作为最终结果;客户端140可以持续地请求160内容,直到接收到处理结果156、158(非缓存的);和/或服务130可以在更新(处理结果)可用时,返回对缓存返回的更新(处理结果)。
在系统100中,服务器110-120可以是能够处理来自网络的超文本传输协议(HTTP)请求、并且能够提供对这些请求的HTTP响应的计算系统。服务器110-120的每一个可以与在传送HTTP请求时用于服务器110-120标识的统一资源标识符(URI)相关联。HTTP响应可以包括静态内容和动态内容。通常,服务器110产生的初始响应152将包括静态内容以及一个或多个占位符。占位符内容(包括动态内容)可以由服务器120产生。服务器110-120的每一个可以包括多个可选特征,诸如认证支持、加密通道支持(例如,通过传输层安全性(TLS)技术、安全套接字层(SSL)技术等的HTTPS支持)、内容压缩和解压缩支持,等等。服务器110-120的每一个可以分配资源来处理接收到的请求150、154,并且可以在服务器的处理任务完成时释放这些资源。也即,服务器110-120中的任意服务器用来处理请求上下文的时间周期小于处理请求上下文所需的总时间。服务器110-120可以在物理机器以及虚拟计算设备中实现,其中虚拟计算设备诸如通过虚拟化方案提供的那些设备(例如,VMWARE、MS VIRTUAL SERVER,等等)。
服务器110-120可以是公共服务器或专用服务器。在一个实现中,服务器110可以是公共服务器110,并且对请求154进行异步处理的一个或多个服务器120可以是不能直接通过公共网络访问的专用服务器。专用服务器可以受防火墙保护,可以是与服务器110链接的虚拟专用网络(VPN)的一部分,并且可以是允许服务器110访问的专用网络的一部分。而且,尽管系统100示出由单个服务器120来处理服务器110所发出的每个请求154,并由服务器120将结果提供给服务130,但是也可以使用其他布置。例如,服务器120最初可以处理请求154,可以将结果传送给中间服务器(未示出)以用于进一步处理,并且中间服务器可以将结果发送给服务130。
结果服务130可以是能够处理HTTP消息和其他REST型消息的服务器侧102软件程序。REST型消息是遵循表象化状态转变(REST)软件架构的消息。REST架构提供包括几个基本原语命令(例如,HTTPGET、HTTP PUT、HTTP POST、HTTP DELETE)的已存在的统一接口。基于REST的方案简化了组件实现,降低了连接器语法的复杂性,改进了性能调整的有效性,并增加了纯服务器组件的可伸缩性。
结果服务130可以实现为servlet、JAVA服务器页面(JSP)、活动服务器页面(ASP)、企业Java Bean(EJB)、企业服务总线(ESB)服务等。服务130可以与URI相关联,服务器110-120可以将响应156、158传送给该URI,并且客户端140可以将请求160传送给该URI。结果分发服务130可以驻留在服务器110、服务器120或者任何其他服务器之内。当服务130与不同于原始HTTP请求中寻址组件的组件相关联时,系统100必须实现度量,以确保服务130的URL对于服务器110-120和客户端140可用。
客户端140可以是能够发送HTTP请求150和能够呈现对这些请求的响应的任何计算设备。例如,客户端140可以包括个人计算机、笔记本计算机、移动计算设备、智能电话、个人数据助理(PDA)、嵌入式计算设备、电子游戏设备等等。客户端140可以包括浏览器,其处理HTTP通信。浏览器可以链接至用户与客户端140交互的界面。界面可以是图形用户界面(GUI)、多模态界面、语音用户界面(VUI)等等。界面可以包括内容和占位符。
在一个实现中,内容在客户端侧104的聚合可以以用户透明的方式进行。例如,可以通过插件或扩展来增强客户端浏览器,该插件或扩展自动地提交请求160,直到接收到了响应162。在一个实施方式中,服务器110可以将服务130的地址传送给客户端140和服务器120,使得每个计算设备能够确定请求的目标(例如,客户端140)和/或递送的目标(例如,服务器120)。在另一实施方式中,服务器110可以将用户标识的地址传送给服务器120,服务器120继而将其传送给服务130。服务130继而可以将结果162传送给由该地址标记的客户端140,和/或服务130继而可以向客户端140传送消息,使得客户端140知道将请求160发送到哪里。
系统100的各个组件可以经由网络(未示出)可通信地链接。网络可以包括能够传送在载波中编码的数字内容的组件。内容可以包含在模拟或数字信号中,并且可以通过数据或语音信道来传送,并且可以通过个人区域网络(PAN)或广域网(WAN)来传送。网络可以包括本地组件和将在计算设备组件之间以及集成设备组件和外围设备之间交换的通信所需的数据通路。网络还可以包括网络设备(诸如路由器、数据线路、集线器)以及一同构成了基于分组的网络(诸如互联网和内联网)的中间服务器。网络还可以包括基于电路的通信组件和移动通信组件,诸如电话交换机、调制解调器、蜂窝通信塔,等等。网络可以包括基于线路和/或无线的通信路径。
链接至服务器110-120或者客户端140的数据存储134和其他数据存储(未示出)在物理上可以在任意类型的硬件中实现,包括但不限于:磁盘、光盘、半导体存储器、数字编码的塑性存储器、全息存储器或者任意其他的记录介质。数据存储134可以是单独的存储单元,也可以是由多个物理设备构成的存储单元,其中多个物理设备可以彼此位于远程位置。而且,信息可以按照各种方式存储在数据存储134中。例如,信息可以存储在数据库结构中,或者可以存储在文件存储系统的一个或多个文件中,其中每个文件可以或者可以不为了信息搜索的目的而被索引。还可以可选地对存储在数据存储134中的信息加密,以便增加安全性。
尽管系统100示出了本发明的一个预期布置,但是本发明不限于所示出的精确布置。相反,在使用完成程度来确定是将缓存结果还是处理结果返回给客户端140的任意系统中,都可以执行所公开的方案。例如,客户端发出的请求150可以由服务器侧102组件同步地处理。客户端仍然可以发出针对内容的请求160(例如在发生明显的延迟并且结果没有返回时),并且结果162可被返回,取决于所计算的完成程度,结果162是先前缓存的结果或者是新处理的结果。在不同的派生中,替代由客户端发出请求160,每当服务器侧定时器指示要把针对请求150的结果返回给客户端140时,服务器侧102组件可以确定发出缓存的结果还是处理的结果(基于完成程度)。
图2是示出了根据在此公开的创造性布置的实施方式的基于结果完成比例将缓存内容或者动态处理的内容递送给客户端的交互的流程图200。框图200示出了在系统100上下文中的和/或在能够执行请求处理进程165的环境的上下文中的消息流程。
在框图200中,客户端210可以将请求230传送给服务器212。服务器212初始可以处理232该请求。处理232可选地产生初始响应234,例如包括用于异步处理的动态内容的占位符的静态内容。在另一实施方式中(未示出),针对请求230而产生的所有内容都可以是异步产生的动态内容,这种情况下将不会生成和传送初始响应234。
请求处理进程232还可以使服务器212生成用于第一进程236(进程A)的多个进程/线程和用于第二进程240(进程B)的多个进程/线程。这些进程236、240可以产生传送至结果服务214的结果238、242。还可以将进程236、240的完成比例传送至服务214,这可以是响应于来自服务214的完成查询(未示出)。针对请求230的两个进程236、240的显示是任意的,并且可以使用任意数目的异步进程来处理请求230。而且,每个进程236、240可以由服务器212来处理,或者由一个或多个位于远程的服务器(未示出)来处理。
客户端210可以向结果服务214查询244请求230的结果。在一个实现中,单个查询244可以请求进程A和B的结果。在另一实施方式中,针对来自每个进程A和B的结果可以发出多个异步查询244。在接收到请求244之后,服务214可以检查结果处理机216,以确定针对该进程的结果是否已经完成。如果已完成,结果处理机216可以将完成的结果252返回给客户端。如果结果没有完成,则结果处理机216可以确定248该进程的完成比例是否高于指定的阈值。在该步骤中,可以在结果处理机216和进程处理服务器(236、240)之间交换消息(未示出),从而在步骤248中使用当前比例。当完成比例超过阈值时,处理机216可以延迟250以等待结果完成,并且可以将完成的结果发送252给客户端210。在没有达到阈值时,可以从结果缓存218中取回254结果,并将其传送256给客户端210。
对于请求上下文中的每个进程(进程A和B),可以重复标号244-256所示的消息流。当接收到缓存结果256时,客户端可以在任意的延迟之后再次请求258处理结果。当返回的一部分来自缓存而另一部分来自结果230触发的进程时,只有缓存的返回需要在请求258中再次请求。例如,当进程A是从先前缓存返回获取的时,流程可以循环到消息246,在此可以将针对进程A的结果完成消息246传送给结果处理机216。当进程B是从先前缓存返回获取的时,流程可以循环到消息246,在此可以将针对进程B的结果完成消息246传送给结果处理机216。
在此记载的系统100、进程165和消息流程200示出了一种用于选择性地使用缓存内容的方案,并且此处可以预期对特定示出的装置的派生。例如,替代于使用完成比例,可以使用归一化的完成记分来产生等同的结果。因此,应当将在此使用的术语“完成比例”宽泛地解释为包括表示处理完成程度的任何数学值。
本发明可以在硬件、软件或者硬件和软件的结合中实现。本发明可以在一个计算机系统中按照集中式方式来实现,或者可以按照不同的元件分散在多个互连的计算机系统间的分布式方式来实现。适于执行在此描述的方法的任意类型的计算机系统或者其他装置都是适合的。硬件和软件的典型结合可以是具有计算机程序的通用计算机系统,其中,在加载和执行所述计算机程序时,其控制计算机系统,使得计算机系统执行在此描述的方法。
本发明还可以嵌入在计算机程序产品中,所述程序产品包括支持在此描述的方法的实现的所有特征,并且当所述程序产品被加载到计算机系统中时,其能够执行这些方法。本上下文中的计算机程序表示以任何语言、代码或符号表示的指令集合的任何表达式,其意在使具有信息处理能力的系统执行特定的功能,所述执行是直接的,或者是在完成以下内容的任一内容或两者之后:a)转换为其他语言、代码或符号;b)以不同的素材形式重现。
本发明可以在其他形式中实现,而不背离本发明的精神和实质属性。因此,在指示本发明的范围时,应当参考所附权利要求书而不是上述说明。
Claims (17)
1.一种用于根据完成程度选择性地使用缓存结果以处理请求的方法,包括:
服务器接收针对内容的原始请求;以及
所述服务器发起多个异步操作来满足所述原始请求,其中所述异步操作之一是所述处理操作;
服务器侧的结果分发服务接收客户端侧针对内容的请求,所述内容包括由服务器侧的资源产生的结果,所述服务器侧的资源将所产生的结果递送至所述服务器侧的结果分发服务;
确定最终产生所述结果的处理操作的完成程度;以及
基于所确定的完成程度,选择性地提供对所述客户端侧请求的缓存响应或者对所述客户端侧请求的动态产生的响应;所述方法进一步包括:
将所述完成程度与先前建立的阈值进行比较;
当所述完成程度大于所述阈值时,等待所述处理操作完成,并且在完成时提供包含来自所述处理操作的结果的所述动态产生的响应;以及
当所述完成程度不大于所述阈值时,提供所述缓存响应。
2.根据权利要求1所述的方法,进一步包括:
当确定步骤指示所述处理操作完成时,提供包含来自所述处理操作的结果的动态产生的响应。
3.根据权利要求2所述的方法,其中在接收到所述客户端侧针对内容的请求时,所述处理操作正在执行。
4.根据权利要求1所述的方法,其中所述先前建立的阈值是可配置的值,其是由发出请求的客户端建立的。
5.根据权利要求1所述的方法,其中所述结果分发服务是被配置为处理REST型请求的服务器侧程序,所述处理操作由Web服务器处理,所述客户端侧请求是从客户端浏览器发出的HTTP请求。
6.根据权利要求1所述的方法,进一步包括:
客户端向请求接收服务器发出所述客户端侧请求,所述客户端侧请求定义了请求上下文;
请求接收服务器发出针对所述请求上下文的多个异步请求;
结果分发服务接收处理所述异步请求的结果,其中所述结果分发服务是被配置为处理REST型请求的服务器侧程序;以及
所述结果分发服务将接收到的结果提供给所述客户端,其中所述客户端聚合针对所述请求上下文的结果。
7.根据权利要求1所述的方法,其中所述结果分发服务初始地按照提供步骤向所述客户端提供至少一个缓存结果,并且所述结果分发服务随即通过向所述客户端提供同等的接收到的结果来更新所述缓存结果。
8.根据权利要求1所述的方法,其中所述结果是针对所述客户端侧请求而由所述服务器侧的资源产生的同步处理结果。
9.根据权利要求1所述的方法,其中所述结果是针对单个请求上下文而产生的多个异步处理结果之一。
10.根据权利要求9所述的方法,其中所述多个异步处理结果是由不同的服务器产生的。
11.根据权利要求10所述的方法,其中由最初发出建立所述单个请求上下文的客户端请求的客户端来聚合所述异步处理结果。
12.根据权利要求1所述的方法,其中权利要求1所述的步骤是由至少一个机器按照具有多个代码段的至少一个计算机程序来自动执行的步骤,所述代码段可由所述至少一个机器执行,所述至少一个计算机程序存储在机器可读介质中。
13.一种用于根据结果完成程度选择性地将缓存内容或处理内容递送给客户端的方法,所述方法包括:
Web服务器从客户端接收针对内容的REST型请求;
发起多个异步操作,所述异步操作一起满足所述REST型请求;
将操作结果递送给结果分发服务;
所述结果分发服务从所述客户端接收针对所述操作结果的至少一个REST型请求;以及
基于产生所述操作结果的所述异步操作的结果完成程度,所述结果分发服务选择性地递送缓存内容或者处理的内容以响应于所述REST型请求;所述方法,进一步包括:
当所述完成程度指示操作结果完成时,将所述操作结果提供给所述客户端;
当所述完成程度大于先前建立的阈值时,等待将要处理的所述操作结果,并且将所述操作结果提供给所述客户端;以及
当所述完成程度不大于所述先前建立的阈值时,将所述缓存内容提供给所述客户端。
14.根据权利要求13所述的方法,其中所述结果完成程度是完成比例。
15.一种结果分发服务装置,包括:
用于接收和存储与来自多个不同内容提供服务器相关的结果的部件;
用于从客户端接收多个异步请求的部件,所述客户端发起了定义请求上下文的内容请求;
用于响应于每个接收到的客户端请求,确定满足所接收到的客户端请求的请求结果的完成程度的部件;
用于将所述完成程度与先前建立的阈值进行比较的部件;以及
用于基于所述比较部件的产出结果来传送动态处理结果或者先前缓存的结果的部件,其中包括,用于在所述客户端发送所述内容请求之后,发起产生所述动态处理结果的服务器侧操作的部件,并且所述先前缓存的结果是从所述客户端发送所述内容请求之前发起的进程得到的;
其中所述结果分发服务装置进一步包括:
用于当所述完成程度指示所述请求结果完成时,将所述完成结果提供给所述客户端的部件;
用于当所述完成程度大于所述先前建立的阈值时,等待所述请求结果完成处理,并且将所述完成结果提供给所述客户端的部件;以及
用于当所述完成程度指示所述请求结果不大于所述先前建立的阈值时,将所述先前缓存的结果提供给所述客户端的部件。
16.根据权利要求15所述的结果分发服务装置,其中所述结果分发服务是被配置为响应REST型请求的软件程序,并且所述完成程度是完成比例。
17.根据权利要求15所述的结果分发服务装置,其中在异步HTTP消息中将所述接收结果的每一个传送给所述结果分发服务,在异步HTTP消息中指明来自所述客户端的每个所述异步请求,在异步HTTP消息内将所述传送的结果提供给所述客户端。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/844,894 US7698411B2 (en) | 2007-08-22 | 2007-08-24 | Selectively delivering cached content or processed content to clients based upon a result completed percentage |
US11/844,894 | 2007-08-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101374158A CN101374158A (zh) | 2009-02-25 |
CN101374158B true CN101374158B (zh) | 2011-12-28 |
Family
ID=40448081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102133089A Expired - Fee Related CN101374158B (zh) | 2007-08-24 | 2008-08-22 | 根据结果完成比例将缓存内容或处理内容递送给客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101374158B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110060812A1 (en) * | 2009-09-10 | 2011-03-10 | Level 3 Communications, Llc | Cache server with extensible programming framework |
CN103581045A (zh) * | 2012-07-20 | 2014-02-12 | 华为技术有限公司 | 网络文件系统的数据处理方法、装置及系统 |
US9602594B2 (en) * | 2012-07-31 | 2017-03-21 | Microsoft Technology Licensing, Llc | Processing requests |
CN106921734B (zh) * | 2017-02-13 | 2020-04-03 | 上海大学 | 一种基于选择性缓存与同步的客户端与服务器数据交互方法 |
CN106911784B (zh) * | 2017-03-02 | 2020-12-18 | 北京奇鱼时代科技有限公司 | 一种执行异步事件的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617107A (zh) * | 2003-09-11 | 2005-05-18 | 国际商业机器公司 | 有选择地接受高速缓存内容的方法和系统 |
CN1635734A (zh) * | 2003-12-29 | 2005-07-06 | 北京中视联数字系统有限公司 | 一种数字电视数据广播系统利用缓存接收网页的方法 |
US7209915B1 (en) * | 2002-06-28 | 2007-04-24 | Microsoft Corporation | Method, system and apparatus for routing a query to one or more providers |
-
2008
- 2008-08-22 CN CN2008102133089A patent/CN101374158B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7209915B1 (en) * | 2002-06-28 | 2007-04-24 | Microsoft Corporation | Method, system and apparatus for routing a query to one or more providers |
CN1617107A (zh) * | 2003-09-11 | 2005-05-18 | 国际商业机器公司 | 有选择地接受高速缓存内容的方法和系统 |
CN1635734A (zh) * | 2003-12-29 | 2005-07-06 | 北京中视联数字系统有限公司 | 一种数字电视数据广播系统利用缓存接收网页的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101374158A (zh) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9264335B2 (en) | Adaptive packaging of network resources | |
CN101785004A (zh) | 语境敏感请求结果的客户端侧聚集 | |
US10089143B2 (en) | Dynamic scheduling of tasks for collecting and processing data using job configuration data | |
US7484007B2 (en) | System and method for partial data compression and data transfer | |
US7698411B2 (en) | Selectively delivering cached content or processed content to clients based upon a result completed percentage | |
US20050005259A1 (en) | System and method for communication and mapping of business objects between mobile client devices and a plurality of backend systems | |
JP5485993B2 (ja) | サービスのロードバランシング | |
JP5805934B2 (ja) | Urlを利用した分散コントロール方法及び装置 | |
CN110825479A (zh) | 页面处理方法、装置、终端设备、服务器和存储介质 | |
US20020174174A1 (en) | System and method for monitoring execution time of a transaction | |
US11323546B2 (en) | Executing remote commands | |
CN1184575A (zh) | 差分通信系统 | |
CN103209223A (zh) | 分布式应用会话信息共享方法、系统和应用服务器 | |
CN101374158B (zh) | 根据结果完成比例将缓存内容或处理内容递送给客户端 | |
WO2013023095A2 (en) | Smart thin client server | |
CN111901230B (zh) | 一种支持设备接入验证的物联网网关、系统和设备接入验证的方法 | |
CN102077543A (zh) | 计算机网络中用于用户设备间的资源共享的方法和装置 | |
CN102932471B (zh) | 浏览器登录服务器及其实现浏览器登录的方法和系统 | |
CN110572422A (zh) | 数据下载方法和装置 | |
CN100452704C (zh) | 一种发布博客文章的方法和系统 | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
US9432243B2 (en) | Re-using asynchronous server-side results generated for a request context of one client to satisfy a request context of a different client | |
US10771578B2 (en) | Webpage loading method and apparatus | |
CN107977380B (zh) | 用于生成页面的方法和装置 | |
CN111767495A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111228 Termination date: 20160822 |