用于确保被分段请求的分段按合适顺序执行的方法和系统的制作方法

文档序号:6574682阅读:154来源:国知局
专利名称:用于确保被分段请求的分段按合适顺序执行的方法和系统的制作方法
技术领域
本发明一般涉及计算机数据处理,并且特别涉及确保请求的被独立分派的分段以所需要的上下文执行。
背景技术
客户使用分布式计算机环境来实施跨多个应用的多种任务。对于典型任务,客户向分布式计算机环境发送请求,该分布式计算机环境向该客户返回响应。尽管所述内容看来足够简单,但是实际上存在执行所述请求时所涉及的几个中间步骤。第一,用户或应用通过向代理(surrogate)计算机(此后为“代理”)发送客户请求来发起所述请求,其中,所述代理计算机是充当客户和分布式计算机环境之间的媒介的计算机。所述代理可以实施下述任务,例如检验客户的安全凭证以及确定分布式计算机环境上的哪个资源适于执行该客户的请求。第二,所述代理代表客户将请求转发到合适的资源。第三,当请求在所述资源上执行后,响应返回到所述代理,其中,该代理将所述响应发送到客户。
特定分段标记和组装技术(例如EDGE SIDE INCLUDE(ESI)、DELTA ENCODING以及其它分段标记和组装引擎)允许所述代理中特定环境下的请求分段。通常,请求可以被拆分为多个较小的任务或“读取(fetch)”,并且跨多个资源分布。当所有所述读取被执行后,已分段响应被重组并返回到客户。分段允许资源的更高效使用,并且允许分布式计算机环境上的更小周期次数。然而,当这些分段必须使用关联于逻辑请求的上下文时,这些技术的使用不会得出正确结果。例如,考虑下面的场景。客户产生传递属性X的请求。该请求要求第一应用(A)设置属性Y,并且然后使用第二应用(B)来实施同时使用属性X和Y的数据库查找。所述请求可以被分段为两个部分“设置Y”和“实施数据库查找”。计算Y的所述第一应用将该属性关联于其请求上下文,该上下文需要在所述第二应用的代码针对所述数据库查找的进行而执行时可用。只要不存在任何分段并且所述请求在单一执行线程中顺序地执行,则其上下文对于所述两个应用均可用。如果所述分段独立于来自代理的不同执行环境被分派,则由应用A设置的上下文对于在应用B中执行的分段不可用。
所述分段可以按照由逻辑应用定义的顺序执行,但是,由于其上下文关联于所述分段的执行环境并且在每个分段执行后被丢失,所以对于所述上下文的更新不可用于后来分段的合适执行。

发明内容
分段上下文保护器确保请求的被独立分配的分段以所要求的上下文执行。所述分段上下文保护器有两个部件已分段请求保护器和请求上下文助手。已分段请求保护器程序运行在附接到客户计算机和分布式计算机环境的代理上,并且,请求上下文助手运行在所述分布式计算机环境上的每个应用服务器上。所述已分段请求保护器向请求的每个分段添加属性以指示逻辑请求的开始、中间和结束。当客户向分布式计算机环境发送请求时,所述已分段请求保护器向该请求添加元数据,以指示其是新的逻辑请求,然后,将该请求转发到所述分布式计算机环境中的服务器上的应用。如果所述应用服务器选择不立即执行所述整个请求,则位于该应用服务器的所述请求上下文助手将把请求拆分为分段,并且把所述请求分段作为“延迟响应”发送回所述代理。所述延迟响应可包括对于初始请求的部分响应,例如设置对于执行后来的分段所需的属性。
所述请求上下文助手将把以不透明串行化形式的对上下文的任意更新嵌入到响应中。所述已更新上下文可以被保护,以致仅经授权的请求上下文助手可以读取该上下文。位于所述代理的已分段请求保护器以从该逻辑请求之前的分段响应接收的任意不透明更新顺序分配每个分段,并且接收对于每个分段的响应。位于所述应用服务器的请求上下文助手安全地检索对随分段请求被发送的上下文的任意更新,解串行化该更新,并且在该分段的执行之前使所述上下文在执行环境中可用。位于代理的所述已分段请求保护器还将元数据添加到最后一个分段,其指示读取序列结束。这允许位于应用服务器的所述请求上下文助手释放在逻辑请求的持续期间被占据的任意资源。所述已分段请求保护器组合包括所缓存的分段的所有响应,并且将其转发到客户。通过确保分段具有已更新的上下文,所述已分段请求保护器允许跨多个应用设置和获得属性的请求的分段。


图1示出了示例性计算机网络;图2示出了包含分段上下文保护器的计算机上的示例性存储器;图3示出了已分段请求保护器的流程图;图4示出了请求上下文助手的流程图;以及图5示出了被按顺序分派的已分段请求的图示。
具体实施例方式
本发明的原理适用于多种计算机硬件和软件配置。如此处所使用的术语“计算机硬件”或“硬件”是指能够接受、对其实施逻辑操作、存储或显示数据的任意机器或装置,并且包括但不限于处理器和存储器;术语“计算机软件”或“软件”是指可操作用于使得计算机硬件实施操作的任意指令集。如此处所使用的术语“计算机”包括但不限于硬件和软件的任意有用组合,并且“计算机程序”或“程序”包括但不限于可操作用于使得计算机硬件接受、对其实施逻辑操作、存储或显示数据的任意软件。计算机程序可以并且通常包括多个更小的编程单元,其中,所述更小的编程单元包括但不限于子例程、模块、函数、方法和过程。因此,本发明的功能可以被分布在多个计算机和计算机程序中。尽管如此,本发明被最好地描述为单一计算机程序,该单一计算机程序配置一个或更多通用计算机并且使其能够实现本发明的新颖方面。为说明目的,本发明的计算机程序将被称为“分段上下文保护器”。
另外,所述分段上下文保护器下面参考如图1中所示的硬件设备的示例性网络进行描述。“网络”包括任意数量的硬件设备,所述硬件设备相互耦合并且通过例如因特网的通信媒体相互通信。“通信媒体”包括但不限于通过其硬件或软件可以传送数据的任意物理、光学、电磁或其它媒体。为描述目的,示例性网络100具有仅有限数量的节点,其包括工作站计算机105、工作站计算机110、服务器计算机115和永久存储装置120。网络连接125包括对于使能网络节点105-120间的通信必要的所有硬件、软件和通信媒体。除了在下面的上下文中另外指出之外,所有网络节点使用公开可用的协议或消息传送服务来通过网络连接125相互通信。
分段上下文保护器200典型被存储在示意性地表示为图2中的存储器220的存储器中。如此处所使用的术语“存储器”包括但不限于任意易失性或永久媒体,例如电子电路、磁盘或光盘,在其中计算机可以把数据或软件存储任意长的时段。单一存储器可包括多个媒体并跨多个媒体分布。因此,所包括的图2仅作为说明性的手段,而不是必然反映存储器220的任何具体物理实施例。尽管如此,如图2中所示的,存储器220可包括额外数据和程序。在对于分段上下文保护器200的具体入口中,存储器220可包括目标应用230、分段标记和组装引擎240以及响应高速缓存250,分段上下文保护器200与它们相交互。目标应用230通过响应于请求来实施任务。分段标记和组装引擎240把旨在用于目标应用230的请求分段。分段标记和组装引擎可以是ESI引擎。响应高速缓存250是用于对已分派分段的响应的临时存储装置。分段上下文保护器200包括两个部件已分段请求保护器300和请求上下文助手400。本例中的所述已分段请求保护器300运转在负责向网络100传播请求的代理计算机上。请求上下文助手400运转在结合分段标记和组装引擎240以及目标应用230的应用服务器上。
图3是示出了已分段请求保护器300的逻辑的流程图。已分段请求保护器300当初始请求由客户产生时开始(310)。做出响应是否在响应高速缓存250中的确定(312)。如果是,则已分段请求保护器转到步骤318,以及如果否,则向所述初始请求附加元数据协议头部(314)。该确定的目的是利用保存在响应高速缓存250中的来自前一逻辑请求的、并且可以被用于响应于当前逻辑请求的信息,由此回避对所述应用实际执行该请求的需要。所述协议头部初始化上下文传播。已分段请求保护器300将所述初始请求分派到目标应用230(316)。已分段请求保护器300接收对该初始请求的响应(317),并且确定目标应用230产生了正常响应还是延迟响应(318)。正常响应被发送到客户(338),并且已分段请求保护器300结束(340)。通过在步骤318做出确定,由分段标记和组装引擎拆分所述初始请求的决策被回避,并且自动使用所述响应高速缓存中的合格响应。当分段标记和组装引擎240将所述初始请求拆分为一系列分段时,延迟响应发生。分段上下文助手400向每个分段附加指定顺序信息的元数据协议头部(见图4)。由分段上下文助手400提供的额外元数据指示每个分段是否需要特定属性或上下文来合适地执行。作为对分段的响应被发送的属性可以被附加为当分派下一分段时的上下文。在延迟响应的情况下,目标应用230可以作为响应的一部分执行一个或更多分段,例如设置初始属性。
如果在步骤318,做出响应是延迟响应的确定,则已分段请求保护器300确定是否该响应在响应高速缓存250中以及可缓存(320)。换句话说,被称为合格响应的某些响应是可缓存的,并且与其上下文元数据一起被缓存,并且,该步骤不同于暂时存储分段响应直到其在逻辑请求的范围相聚集。所述确定的原因是设定在响应可以被作为合格响应保存到所述响应高速缓存之前必须被满足的两个条件。首先,相同响应必须先前未被保存到响应高速缓存,以及,该响应必须能够被保存。这些条件防止了重复的响应被保存在响应高速缓存中,并且防止了对不能被保存的响应进行保存的尝试。不能被保存的响应的例子是命令而不是离散数据。如果所述响应可缓存,则已分段请求保护器300将例如属性的任意初始响应信息保存到响应高速缓存250(322)。如果所述响应不可缓存,则已分段请求保护器300使用元数据协议头部中的排序和上下文信息按顺序地通过分段来循环(324)。
如果属性或上下文需要被添加到分段(326),则已分段请求保护器300在将所述分段分派到目标应用230(330)之前添加该上下文(328),其中,该上下文可能已被保存到响应高速缓存250中。换句话说,已分段请求保护器添加引用对上下文的更新的元数据,其中,所述上下文来自逻辑请求的范围内的之前分段读取。除添加属性和上下文之外,已分段请求保护器300可以向所述元数据协议头部添加其它信息,例如通过最后的分段终止上下文传播。已分段请求保护器300从目标应用230接收响应(332),并且确定是否存在更多待分派的分段(334)。如果存在更多分段,则已分段请求保护器300转到步骤320,以及如果不存在更多分段(最后的分段已被分派),则组合被存储在响应高速缓存250中的所有响应(336),将所组合的响应发送到客户(338),以及停止(340)。
图4是示出了请求上下文助手400的逻辑的流程图。当分段标记和组装引擎240将请求断开为分段时请求上下文助手400开始(410)。请求上下文助手400确定所述分段的顺序、上下文和属性要求(412),向所述分段添加元数据(414),预留对于执行所述请求必要的资源或应用(416),以及将所述分段返回到已分段请求保护器300(见图3)(418)。接下来,请求上下文助手400从已分段请求保护器300接收被分派的分段(420),读取用于该被分派的分段的元数据(422),以及确定是否上下文被包括在该分段中(424)。如果上下文被包括,则请求上下文助手400从所述元数据提取上下文(426),以及转到步骤428。如果上下文不被包括,则请求上下文助手400转到步骤428,在该步骤其将所述分段和上下文传递到应用(428)。接下来,请求上下文助手400从应用接收分段响应(430),并且确定是否上下文被包括(432)。如果是,则其将上下文添加到所述元数据(434)并且转到步骤436。如果上下文不被包括,则请求上下文助手400转到步骤436,在该步骤其向已分段请求保护器300发送分段响应。请求上下文助手400确定是否所述分段是最后分段(438),并且如果不是,则转到步骤420。如果所述分段是最后分段,则请求上下文助手400释放所预留的资源(440)并且停止(442)。
图5示出了已分段请求的传播。数字501代表由客户产生的初始请求。数字502代表已分段请求保护器300运行在代理550上,向所述初始请求添加元数据协议头部以便初始化上下文传播。数字503代表代理550将所述初始请求分派到目标应用服务器580(504)。应用服务器580上的分段标记和组装引擎240将所述初始请求拆分为两个分段。每个分段具有带排序信息的元数据协议头部。该应用还设置初始属性“X”。数字505代表包含两个请求分段和所述属性“X”的延迟响应被发送回代理550。数字506代表代理550将所述属性保存到响应高速缓存250。
数字507代表代理550将带有属性X的分段1分派到应用服务器580。数字508代表应用服务器420响应于所述分段1和属性X设置属性“Y”。数字509代表应用服务器580将带有属性X和Y的响应发送到代理550。数字510代表代理550接收所述响应并且将所述响应保存到响应高速缓存250。数字511代表代理550将带有属性X和Y的分段2分派到应用服务器580。分段2还包含用于终止上下文传播的元数据协议头部信息。数字512代表应用服务器580响应于分段2使用属性X和Y实施所需动作。数字513代表应用服务器580将最后的响应发送到代理550。数字514代表代理550接收所述响应,并且将所述响应与响应高速缓存250中的之前的响应组合。数字515代表代理550将所组合的响应发送到客户。
在一实施例中,所述分段上下文保护器通过仅包括最少量的关于顺序和属性的相关元数据以及通过编码和解码包含在所述元数据中的信息可以提高分布式计算机环境的通信安全性和效率。
本发明的优选形式已在附图中示出并在上面描述,但所述优选形式中的变型对于本领域的技术人员将是显而易见的。前面的描述仅用于说明目的,并且本发明不应当被解释为受限于所示出和描述的特定形式。本发明的范围应当仅由权利要求中的语言所限定。
权利要求
1.一种用于确保已分段请求的分段按照合适顺序执行的计算机实现过程,所述计算机实现过程包括从客户接收请求;向所述请求添加元数据协议头部,以初始化上下文传播;将所述请求转发到应用;从所述应用接收延迟响应,其中所述延迟响应包括多于一个请求分段,并且每个分段包含指示所述合适执行顺序的元数据协议头部;按所述合适顺序将每个分段分派到应用;向最后的分段添加元数据协议头部,以终止上下文传播;添加引用对来自所述请求的范围内的前一分段读取的上下文的更新的元数据;从所述应用接收对于每个分段的响应;组合所述响应;以及将所组合的响应发送到所述客户。
2.根据权利要求1所述的计算机实现过程,还包括将来自所述应用的对于每个分段的合格响应存储在高速缓存中。
3.根据权利要求2所述的计算机实现过程,还包括从所缓存的之前已执行分段的响应中提取用于执行分段所需要的属性。
4.根据权利要求3所述的计算机实现过程,还包括在分派所述分段之前向具有所需要的属性的分段添加元数据。
5.根据权利要求2所述的计算机实现过程,其中所述过程通过仅包括所述元数据中的相关顺序信息和属性而被保护和优化。
6.一种用于确保已分段请求的分段按合适顺序执行的系统,包括连接多个计算机的网络;连接到所述网络和包含程序的存储器的计算机,所述程序指示所述处理器来从客户接收请求;向所述请求添加元数据协议头部,以初始化上下文传播;将所述请求转发到应用;从所述应用接收延迟响应,其中所述延迟响应包括多于一个请求分段,并且每个分段包含指示所述合适执行顺序的元数据协议头部;按所述合适顺序将每个分段分派到应用;向最后的分段添加元数据协议头部,以终止上下文传播;添加引用对来自所述请求的范围内的之前分段读取的上下文的更新的元数据;从所述应用接收对于每个分段的响应;组合所述响应;以及将所组合的响应发送到所述客户。
7.根据权利要求6所述的系统,其中所述程序还指示所述计算机将来自所述应用的对于每个分段的合格响应存储在高速缓存中。
8.根据权利要求7所述的系统,其中所述程序还指示所述计算机从所缓存的之前已执行分段的响应中提取用于执行分段所需要的属性。
9.根据权利要求8所述的系统,其中所述程序还指示所述计算机在分派所述分段之前向具有所需要的属性的分段添加元数据。
10.根据权利要求7所述的系统,其中所述程序还指示所述计算机通过仅包括所述元数据中的相关顺序信息和属性来保护和优化。
全文摘要
一种分段上下文保护器具有两个部件已分段请求保护器和请求上下文助手。所述已分段请求保护器程序运行在附接到客户计算机和分布式计算机环境的代理上,并且,请求上下文助手运行在所述分布式计算机环境上的每个应用服务器上。通过一起工作,所述两个程序确保请求的被独立分派的分段以所需要的上下文执行。
文档编号G06F17/30GK101043456SQ20071008916
公开日2007年9月26日 申请日期2007年3月20日 优先权日2006年3月22日
发明者M·K·切图帕拉比尔, S·黑斯默尔, S·梅杜里, A·斯里尼瓦桑, S·哈斯蒂, T·E·卡普灵格, M·A·莫尔登豪尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1