用于异步地处理请求的方法、系统和程序产品的制作方法

文档序号:7607347阅读:124来源:国知局
专利名称:用于异步地处理请求的方法、系统和程序产品的制作方法
技术领域
本发明一般地涉及用于异步地处理请求的方法、系统和程序产品。具体地说,本发明允许应用服务器处理基于网络的请求(例如,Web请求)而不必维持与客户端的持续连接。
背景技术
随着因特网的使用变得越来越普及,Web用户正在日益依赖万维网作为信息源。在一种典型的实现中,用户将在客户端上运行Web浏览器并向服务器提交对某一特定网页的“请求”。服务器上的一个或多个“服务器小程序”(或类似程序)处理该请求并将适合的网页返回给浏览器。在此程度上,获得广泛使用的一种特定技术是门户网页的概念。通常,门户网页为用户提供了一种接收有目标的和个性化的内容的机制。典型地,门户页包括区域或可视的门户件(portlet),它们中的每个都包含根据用户偏好来选择并格式化的特定门户内容。例如,用户可以建立他/她自己的具有用于新闻、天气和体育的区域的门户页。当所述门户页被请求时,服务器上的门户程序将从适当的内容提供商处获得所希望的内容。一旦获得了内容,所述门户内容将被聚合,然后在适当的区域中被显示为门户网页。此技术已导致用于个人Web用户的个性化“主页”的激增。
不幸的是,在这些实例中的每个实例中,请求和响应的处理是同步完成的。也就是说,请求被发送给服务器,并且客户端与服务器之间的连接被维持直到返回响应为止。以这种方式维持连接不但会限制或妨碍客户端执行其他任务的能力,而且还会限制或妨碍服务器与其他客户端进行连接的能力。对于响应必须由服务器小程序/门户件来处理的情况尤为如此。例如,在门户页的情况下,创建对请求的响应将要求与大量内容源进行连系。这样,响应的创建将花费若干秒钟。如果在此整个时间段内一直维持客户端与服务器之间的连接,则将出现以上指出的问题。
如本领域所公知的,在超文本传输协议(HTTP)下,服务器通常不能启动与客户端的连接。相反,客户端必须启动与服务器的连接。因此,如果在处理请求的同时终止了客户端与服务器之间的连接,则只有客户端才能启动新的连接以接收响应。目前,现有技术都不允许在请求正在被处理时终止客户端与服务器之间的连接,同时不需要故意/手动修改客户端以便在稍后的时间重新建立所述连接。

发明内容
有利地,本发明允许在来自客户端的请求正在被处理时终止客户端与服务器之间的连接,并且允许客户端在无需对客户端部分进行修改或故意的操作的情况下,在稍后的时间自动建立与服务器的新的连接。
总的来说,本发明提供了一种用于异步地处理请求的方法、系统和程序产品。具体地说,在本发明下,在服务器上接收来自客户端的对统一资源定位符(URL)的请求。在接收之后,获得相应的会话对象并生成响应标识符。基于所述响应标识符,判定所述客户端先前是否请求过所述URL。如果否,则开始最终响应的生成。在所述响应正在被生成时,生成响应刷新标头并将其与临时响应一起透回给所述客户端。所述响应刷新标头包含时间值,其用于导致所述客户端自动发送对所述URL的后续请求。在所述最终响应的生成完成之后,根据所述响应标识符将其存储在高速缓存中。然后,当在所述响应刷新标头中的所述时间值到期之后接收到来自所述客户端的所述后续请求时,根据所述响应标识符从所述高速缓存检索所述最终响应并将其提供给所述客户端。
本发明的第一方面提供了一种用于异步地处理请求的方法,所述方法包括接收来自客户端的对统一资源定位符(URL)的请求,以及获得与所述请求对应的会话对象;根据会话标识符和所述URL来生成响应标识符;根据所述响应标识符来判定所述客户端先前是否请求过所述URL;以及生成包括时间值的响应刷新标头,所述时间值用于导致所述客户端自动发送对所述URL的后续请求。
本发明的第二方面提供了一种用于异步地处理请求的方法,所述方法包括接收来自客户端的对统一资源定位符(URL)的请求,以及获得与所述请求对应的会话对象;根据会话标识符和所述URL来生成响应标识符;根据所述响应标识符来判定所述客户端先前是否请求过所述URL;如果所述客户端先前请求过所述URL,根据所述响应标识符来检查高速缓存以查找对所述请求的最终响应;以及如果所述最终响应没有完成,生成包括时间值的响应刷新标头,所述时间值用于导致所述客户端自动发送对所述URL的后续请求。本发明的第三方面提供了一种用于异步地处理请求的系统,所述系统包括对象系统,所述对象系统用于为从客户端接收的对统一资源定位符(URL)的请求获得会话对象;响应标识符系统,所述响应标识符系统用于根据会话标识符和所述URL来生成响应标识符;请求检查系统,所述请求检查系统用于判定所述客户端先前是否请求过所述URL;以及标头生成系统,所述标头生成系统用于生成包括时间值的响应刷新标头,所述时间值用于导致所述客户端自动发送对所述URL的后续请求。
本发明的第四方面提供了一种存储在可记录介质上的用于异步地处理请求的程序产品,当被执行时,所述程序产品包括用于为从客户端接收的对统一资源定位符(URL)的请求获得会话对象的程序代码;用于根据会话标识符和所述URL来生成响应标识符的程序代码;用于判定所述客户端先前是否请求过所述URL的程序代码;以及用于生成包括时间值的响应刷新标头的程序代码,所述时间值用于导致所述客户端自动发送对所述URL的后续请求。


现在将仅通过实例的方式参考如以下附图中示出的本发明的优选实施例对本发明进行描述,这些附图是
图1示出了根据本发明的用于异步地处理请求的系统;图2更详细地示出了图1的请求处理系统;图3示出了根据本发明的方法流程图。
所述附图只是示意的表示,并非旨在描绘本发明的具体参数。所述附图仅旨在描述本发明的典型实施例,并且因此不应被看作限制本发明的范围。在附图中,相同的编号代表相同的部件。
具体实施例方式
如以上指出的,本发明提供了一种用于异步地处理请求的方法、系统和程序产品。具体地说,在本发明下,在服务器上接收来自客户端的对统一资源定位符(URL)的请求。在接收之后,获得相应的会话对象并生成响应标识符。基于所述响应标识符,判定所述客户端先前是否请求过所述URL。如果否,则开始最终响应的生成。在所述响应正在被生成时,生成响应刷新标头并将其与临时响应一起返回给所述客户端。所述响应刷新标头包含时间值,其用于导致所述客户端自动发送对所述URL的后续请求。在所述最终响应的生成完成之后,根据所述响应标识符将其存储在高速缓存中。然后,当在所述响应刷新标头中的所述时间值到期之后接收到来自所述客户端的所述后续请求时,根据所述响应标识符从所述高速缓存检索所述最终响应并将其提供给所述客户端。因此,可以结合所有支持超文本传输协议(HTTP)的浏览器/系统来实现此处的教导。
应当预先理解,如此处所使用的,术语“请求”意在指从客户端发出的到服务器的基于网络的请求(如Web请求)。通常,所述请求针对特定的统一资源定位符(URL)。在此程度上,如下面将进一步说明的,所述请求可以由一个或多个服务器小程序或门户件等在服务器上进行处理。
现在参考图1,其中示出了用于异步地处理请求的系统10。在本发明下,客户端12和服务器14可以代表任何类型的计算机化的系统。例如,客户端12和/或服务器14可以是个人计算机、工作站、膝上型计算机、手持设备等。通常,客户端12通过网络与服务器14通信。此外,如下面将进一步描述的,客户端12与服务器14之间的通信可以在任何类型的公共网络(如因特网)或任何类型的专用网络(如局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)等)上发生。在一个实施例中,服务器14是诸如将门户页发送给客户端12的门户服务器之类的应用服务器。在任何情况下,用户16都将在客户端12上运行Web浏览器18以便从服务器14请求网页。服务器14将通过从各种内容源20获得内容来生成所述网页(例如,对请求的最终响应)。一旦被生成,所述网页就被发送回发出请求的客户端12。
如图所示,服务器14通常包括中央处理单元(CPU)22、存储器24、总线26、输入/输出(I/O)接口28、外部设备/资源30以及存储单元32。CPU 22可以包括单个处理单元,或者可以在一个或多个位置中(例如,在客户端和计算机系统上)跨一个或多个处理单元分布。存储器24可以包括任何公知类型的数据存储和/或传输介质,包括磁介质、光介质、随机存取存储器(RAM)、只读存储器(ROM)、数据高速缓存40、数据对象等。此外,类似于CPU 22,存储器24可以位于单个物理位置(包括一种或多种类型的数据存储),或以各种形式跨多个物理系统分布。
I/O接口28可以包括任何用于向/从外部源交换信息的系统。外部设备/资源30可以包括任何公知类型的外部设备,包括扬声器、CRT、LCD屏幕、手持设备、键盘、鼠标、语音识别系统、话音输出系统、打印机、监视器/显示器、传真机、寻呼机等。总线26提供了服务器14中的每个组件之间的通信链路,并且同样可以包括任何公知类型的传输链路,包括电链路、光链路、无线链路等。
存储单元32可以是任何能够在本发明下为信息提供存储的系统(例如,数据库)。所述信息可以包括会话对象、响应标识符、临时响应等。同样,存储单元32可以包括一个或多个存储设备(如磁盘驱动器或光盘驱动器)。在另一个实施例中,存储单元32包括跨例如局域网(LAN)、广域网(WAN)或存储区域网络(SAN)(未示出)分布的数据。
如以上指出的,本发明的教导通常在诸如因特网、广域网(WAN)、局域网(LAN)、虚拟专用网络(VPN)之类的网络环境中实现。在此程度上,可以通过直接硬布线连接(例如,串口)或通过可以利用有线和/或无线传输方法的任何组合的可寻址连接来进行客户端12与服务器14之间的通信。服务器14和客户端12可以利用常规的网络连通性,例如令牌环、以太网、WiFi或其他常规的通信标准。此外,可以通过常规的基于TCP/IP套接字的协议来提供连通性。在此情况下,客户端12可以利用因特网服务提供商来建立到服务器14的连通性。
存储器24中示出的是请求处理系统36、服务器小程序/门户件38和高速缓存40。通常,请求处理系统36允许来自客户端12的请求被异步地处理,而无需对客户端12或浏览器18部分进行修改或操作。进而,应当理解,请求处理系统36可以包括当前门户或应用服务器程序的某些或全部组件。例如,请求处理系统36可以结合WebSphere Application Server和/或WebSphere Portal Server的组件(WebSphere是国际商业机器公司的注册商标)。
共同参考图1和2,将更详细地描述本发明的教导。应当预先理解,图2中示出的请求处理系统36的实施例仅旨在是示例性的。同样,其子系统可以被实现为更多或更少的子系统。例如,输入系统50和输出系统68可以被合并成单个“通信系统”。在任何情况中,在本发明下,当从客户端12发送请求时,输入系统50将接收该请求。接收之后,对象系统52将获得与客户端12和服务器14之间的会话对应的会话对象。所述会话对象通常说明了与所述会话对应的会话标识符。如果所述会话是新的对话,则对象系统52将创建会话对象并将其存储在存储单元30中。相反,如果所述会话是先前创建的,则对象系统52可以从存储单元32检索所述会话对象。无论怎样,一旦获得了会话对象,响应标识符系统54将生成响应标识符。通常,所述响应标识符包括来自所述会话对象的会话标识符以及被请求的统一资源定位符(URL)的散列。这允许其同时引用特定会话和所请求的URL。
一旦生成了响应标识符,请求检查系统56将判定客户端12先前是否请求过所述URL。具体地说,请求检查系统56将访问所述会话对象中的“请求”表。如果所述响应标识符被列在其中,则意味着客户端12先前请求过所述URL。在此情况下,高速缓存检查系统58将检查高速缓存40以判定对所述请求的最终响应是否完成。通常,由响应缓存系统66根据所述响应标识符来缓存对请求的最终响应。因此,高速缓存检查系统可以检查高速缓存40以查找匹配的响应标识符。如果最终响应已完成,则通过输出系统68将其返回给客户端12。
但是,如果请求检查系统56判定所述响应标识符并未列在所述会话对象的请求表中(即,客户端12先前并未请求过所述URL),则请求检查系统56将所述请求与指令一起传送给响应缓存系统66。所述指令指示对所述请求的最终响应将根据所述响应标识符被存储在高速缓存40中。同时或几乎同时,响应创建系统64将开始最终响应的生成。在一个典型实施例中,响应创建系统64将调用一个或多个将从内容源20获得相应内容的服务器小程序/门户件38(图1)。在此程度上,服务器小程序/门户件38可以包括标准或远程门户件(例如,用于远程门户的Web服务),同时内容源20可以包括独立组织、数据结构、存储单元等。在任何情况下,在最终响应正在被生成时,标头生成系统60将生成包括时间值的响应刷新标头,所述时间值用于导致客户端12自动发送对同一URL的后续请求。所述时间值可以由程序员44(图1)来建立并近似地为创建所述最终响应所花费的时间。例如,如果对此请求的最终响应通常需要花费十秒钟来生成和返回,则所述响应刷新标头中的时间值可以是十一秒钟。这允许在所述最终响应正在被生成时终止客户端12与服务器14之间的连接。
通过输出系统68将所述响应刷新标头连同由临时响应系统62生成的临时响应一起返回给客户端。类似于所述时间值,临时响应可由程序员44定义。例如,所述临时响应可以是说明“请求正在被处理”的页面。一旦最终响应完成,响应缓存系统66会根据响应标识符将其存储在高速缓存40中以便其可以被方便地交叉引用。
客户端12将在浏览器18中接收所述临时响应和响应刷新标头。在所述响应刷新标头中的时间值到期之后,浏览器18会自动地将对所述URL的后续请求发送给服务器14。具体地说,在HTTP下,浏览器18可以被配置成操作和处理诸如本发明的响应刷新标头之类的标头以便自动地生成和发送请求,而无需任何对用户16部分的故意或手动操作。因此,所述响应刷新标头允许请求处理是异步的,无需对客户端12或浏览器18进行任何修改。
输入系统50接收后续的响应。类似于先前的请求,对象系统52将获得相应的会话对象。由于这是后续的响应,所述会话对象应已经存在。因此,对象系统52可以从存储单元32检索所述会话对象。在获得所述会话对象之后,响应标识符系统54重新生成响应标识符。如以上指出的,所述响应标识符包括会话标识符和所请求的URL的散列。使用所述响应标识符,请求检查系统56将判定所述URL先前是否被请求过。具体地说,请求检查系统56将检查会话对象中的请求表。由于所述URL先前被客户端12请求过,所述响应标识符应被列在所述请求表中。因此,高速缓存检查系统58将检查高速缓存40以判定所述最终响应是否完成。具体地说,高速缓存检查系统58将使用所述响应标识符来检查所述最终响应。如果所述最终响应已完成,则高速缓存检查系统58从高速缓存40检索该最终响应并通过输出系统68将其发送给客户端12以便在浏览器18中进行显示。但是,如果所述最终响应尚未完成,标头生成系统60将生成带有时间值的新的响应刷新标头。所述时间值可以与先前的响应刷新标头中的时间值相同,或者可以是新的不同的时间。在任何情况下,该新的响应刷新标头与新的临时响应一起通过输出系统68被发送给客户端12。在所述新的响应刷新标头中的时间值到期之后,客户端12将提交另一个对所述URL的请求,该请求将以类似的方式被处理。
现在参考图3,其中示出了本发明的流程图100。如图所示,在步骤S1接收对URL的请求。在步骤S2,获得会话对象,并且在步骤S3生成响应标识符。在步骤S4,根据所述响应标识符来判定客户端先前是否请求过所述URL。如果所述URL先前没有被请求过,则在步骤S5开始最终响应的生成。在步骤S6,将指令与所述请求一起传递给响应高速缓存系统以便根据所述响应标识符将所述最终响应(当完成时)存储在高速缓存中。在所述最终响应正在被生成时,在步骤S7生成响应刷新标头。在步骤S8,所述响应刷新标头与临时响应一起被返回给客户端。
在所述响应刷新标头中的时间值到期之后,所述客户端在步骤S9发送对所述URL的后续请求。在步骤S1中的接收之后,将重复步骤S2-S4。具体地说,将获得会话对象、生成响应标识符以及判定客户端先前是否请求过所述URL。由于客户端先前请求过所述URL,在步骤S10将检查高速缓存以判定对所述请求的最终响应是否已完成。如果已完成,则在步骤S11从高速缓存检索所述最终响应并将其返回给客户端。如果所述最终响应尚未完成,则在步骤S7生成新的响应刷新标头并在步骤S8将其与新的临时响应一起返回给客户端。所述过程可以一直重复,直到所述最终响应被返回给客户端为止。
应当理解,本发明可以以硬件、软件或硬件和软件的组合来实现。任何种类的计算机/计算机系统(多个)或其他适合于执行此处所描述的方法的装置都是适合的。典型的硬件和软件的组合可以是具有计算机程序的通用计算机系统,当所述计算机程序被加载和执行时,其将执行此处描述的相应方法。可替代地,可以使用包含用于执行本发明的一个或多个功能任务的专用硬件的专用计算机。本发明还可以被嵌入计算机程序产品,其包括允许实现此处所述的方法的所有相应特征,并且当被加载到计算机系统中时,其能够执行这些方法。当前上下文中的计算机程序、软件程序、程序或软件是指一组指令的以任何语言、代码或符号表示的任何表达,旨在使具有信息处理能力的系统直接执行特定的功能,或者执行以下两者之一或全部后执行特定的功能a)转换为另一种语言、代码或符号;和/或b)以不同的材料形式再现。
出于示例和说明目的给出了对本发明的优选实施例的以上描述。所述描述并非旨在是穷举的或是将本发明限于所公开的精确形式,并且很显然,许多修改和变化都是可能的。对本领域的技术人员显而易见的此类修改和变化旨在被包括在如所附权利要求限定的本发明的范围之内。
权利要求
1.一种用于异步地处理请求的方法,所述方法包括以下步骤获得用于从客户端接收的统一资源定位符(URL)的会话对象;根据会话标识符和所述URL来生成响应标识符;根据所述响应标识符来判定所述客户端先前是否请求过所述URL;以及生成包括时间值的响应刷新标头,所述时间值用于导致所述客户端自动地发送对所述URL的后续请求。
2.根据权利要求1的方法,还包括以下步骤将对所述请求的临时响应和所述响应刷新标头发送给所述客户端。
3.根据权利要求1或权利要求2的方法,还包括以下步骤将所述请求与指令一起发送给响应缓存系统以便根据所述响应标识符来缓存对所述请求的最终响应。
4.根据任一上述权利要求的方法,其中所述请求是Web请求。
5.根据任一上述权利要求的方法,其中所述响应标识符包括所述会话标识符和所述URL的散列。
6.根据任一上述权利要求的方法,还包括以下步骤判定在所述生成步骤之前对所述请求的最终响应是否完成;以及如果所述最终响应完成,将所述最终响应发送给所述客户端,其中如果所述最终响应完成,不生成所述刷新标头并且不将其与所述临时响应一起发送给所述客户端。
7.根据任一上述权利要求的方法,还包括以下步骤开始对所述请求的最终响应的生成;以及当所述最终响应完成时根据所述响应标识符将所述最终响应存储在高速缓存中。
8.根据权利要求7的方法,还包括以下步骤在所述响应刷新标头中的所述时间值到期之后接收来自所述客户端的对所述URL的后续请求;获得所述会话对象;生成所述响应标识符;根据所述响应标识符来判定所述URL先前是否被请求过;根据所述响应标识符来检查所述高速缓存以查找所述对请求的最终响应;以及如果所述最终响应完成,将所述最终响应发送给所述客户端,其中如果所述最终响应没有完成,则生成新的刷新标头并将其与新的临时响应一起发送给所述客户端。
9.根据任一上述权利要求的方法,其中所述判定步骤包括检查所述会话对象中的表以查找所述响应标识符以便判定所述客户端先前是否请求过所述URL。
10.根据任一上述权利要求的方法,还包括以下步骤接收来自客户端的对统一资源定位符(URL)的请求。
11.根据权利要求2到10中的任一权利要求的方法,还包括以下步骤如果所述客户端先前请求过所述URL,则根据所述响应标识符来检查高速缓存以查找对所述请求的最终响应。
12.一种用于异步地处理请求的系统,所述系统包括对象系统,所述对象系统用于为从客户端接收的对统一资源定位符(URL)的请求获得会话对象;响应标识符系统,所述响应标识符系统用于根据会话标识符和所述URL来生成响应标识符;请求检查系统,所述请求检查系统用于判定所述客户端先前是否请求过所述URL;以及标头生成系统,所述标头生成系统用于生成包括时间值的响应刷新标头,所述时间值用于导致所述客户端自动发送对所述URL的后续请求。
13.根据权利要求12的系统,还包括响应缓存系统,所述响应缓存系统用于根据所述响应标识符将对所述请求的最终响应存储在高速缓存中。
14.根据权利要求12或权利要求13的系统,还包括高速缓存检查系统,所述高速缓存检查系统用于根据所述响应标识符来检查高速缓存以查找对所述请求的最终响应,其中如果所述最终响应完成,则所述最终响应被发送给所述客户端。
15.根据权利要求13到14中的任一权利要求的系统,还包括输出系统,所述输出系统用于将所述响应刷新标头和对所述请求的临时响应发送给所述客户端。
16.根据权利要求13到15中的任一权利要求的系统,其中所述响应标识符包括所述会话标识符和所述URL的散列。
17.根据权利要求13到16中的任一权利要求的系统,其中所述请求检查系统检查所述会话对象的表以判定所述客户端先前是否请求过所述URL。
18.根据权利要求13到17中的任一权利要求的系统,还包括用于接收所述请求的输入系统。
19.根据权利要求13到18中的任一权利要求的系统,还包括输入系统,所述输入系统用于在所述响应刷新标头中的所述时间值到期之后接收来自所述客户端的对所述URL的后续请求。
20.根据权利要求19的系统,还包括用于获得所述会话对象的装置;用于生成所述响应标识符的装置;用于根据所述响应标识符来判定所述URL先前是否被请求过的装置;用于根据所述响应标识符来检查所述高速缓存以查找所述对请求的最终响应的装置;以及用于在所述最终响应完成时将所述最终响应发送给所述客户端的装置,其中如果所述最终响应没有完成,则生成新的刷新标头并将其与新的临时响应一起发送给所述客户端。
21.一种计算机程序,当所述程序在计算机上运行时,所述计算机程序包括适合于执行权利要求1到11中的任一权利要求的所有步骤的程序代码装置。
全文摘要
在本发明下,在服务器(14)上接收来自客户端(12)的对统一资源定位符(URL)的请求。接收之后,获得相应的会话对象并生成响应标识符。根据所述响应标识符,判定所述客户端先前是否请求过所述URL。如果否,则开始最终响应的生成。在所述响应正在被生成时,生成响应刷新标头并将其与临时响应一起返回给所述客户端。所述响应刷新标头包含时间值,所述时间值用于导致所述客户端自动发送对所述URL的后续请求。在所述最终响应的生成完成之后,根据所述响应标识符将其存储在高速缓存(40)中。然后,当从所述客户端接收到所述后续请求时,从所述高速缓存检索所述最终响应并将其提供给所述客户端。
文档编号H04L29/08GK1830192SQ200480021766
公开日2006年9月6日 申请日期2004年7月15日 优先权日2003年7月31日
发明者D·P·约翰逊 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1