CN101606138A - 使用连接端点代理的基于规则的事务预取 - Google Patents

使用连接端点代理的基于规则的事务预取 Download PDF

Info

Publication number
CN101606138A
CN101606138A CNA2006800128935A CN200680012893A CN101606138A CN 101606138 A CN101606138 A CN 101606138A CN A2006800128935 A CNA2006800128935 A CN A2006800128935A CN 200680012893 A CN200680012893 A CN 200680012893A CN 101606138 A CN101606138 A CN 101606138A
Authority
CN
China
Prior art keywords
message
response
server
client
client applications
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.)
Granted
Application number
CNA2006800128935A
Other languages
English (en)
Other versions
CN101606138B (zh
Inventor
D·T-S·吴
V·凯斯万尼
C·拉森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NBT Technology Inc
Original Assignee
NBT Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=36992437&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN101606138(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by NBT Technology Inc filed Critical NBT Technology Inc
Publication of CN101606138A publication Critical patent/CN101606138A/zh
Application granted granted Critical
Publication of CN101606138B publication Critical patent/CN101606138B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Abstract

网络代理减少响应来自客户机应用程序的请求序列的服务器等待时间。网络代理截取客户机和服务器的消息。将所截取的客户机请求与规则相比较。当客户机请求与规则匹配时,代表客户机应用程序向服务器发送附加请求消息。服务器响应于该附加请求消息提供相应的响应消息。网络代理截取并高速缓存该响应消息。网络应用程序代理截取后续客户机请求并将其与高速缓存的消息相比较。如果高速缓存的响应消息对应于客户机请求消息,则响应消息被立即返回至客户机应用程序而不是向服务器重新请求同一信息。服务器方代理能将客户机请求与规则相比较并发送附加请求消息。相应的响应消息可以被发送至客户机方网络代理用于高速缓存。

Description

使用连接端点代理的基于规则的事务预取
相关申请的交叉引用
本申请要求于2005年3月15日提交的题为“Rule-Based TransactionPrefetching Using Connection End-Point Proxies”的第60/662,452号美国临时专利申请的优先权,该申请所揭示的内容被援引于此用于各种用途。本申请涉及于2002年10月30日提交的题为“Transaction Accelerator for Client-ServerCommunication Systems”(下文称为“McCanne I”)的美国专利申请第10/285,351号;于2003年8月12日提交的题为“Transparent Client-Server TransactionAccelerator”(下文称为“McCanne III”)的美国专利申请申请第10/640,405;于2003年8月12日提交的题为“Cooperative Proxy Auto-Discovery andConnection Interception”(下文称为“McCanne IV”)的美国专利申请第10/640,562号;以及于2003年8月12日提交的题为“Content Delivery for Client-ServerProtocols with User Affinities using Connection End-Point Proxies”(下文称为“McCanne V”)的美国专利申请第10/640,459号,它们均被援引于此用于各种用途。
发明背景
本发明一般涉及加速网络上的客户机-服务器事务。许多典型的计算机应用使用基于请求-响应的消息接发方案用于客户机-服务器交互。在此方案中,客户机发出请求,然后在发出下一请求之前等待来自服务器的响应。在某些情形中,服务器可向客户机初启一个请求或“回叫”消息。
由客户机初启的事务由一个或多个请求-响应消息对组成。当客户机和服务器端点是通过网络通道通信的分离的实体时,网络通道的等待时间特性在整个事务时间中起着重要的作用。通常,与局域网(LAN)相比,广域网(WAN)具有较长的往返传输时间(RTT)。因此,从客户机发出请求到它从服务器接收响应要较长时间。另外,对于包括多个请求-响应消息对的事务,因为客户机只在接收到对前一请求的响应之后才发出下一请求,整个事务时间由于较长的往返传输时间而增加。
在高等待时间WAN的情形中,整个事务时间可以通过修改客户机执行事务的方式来减少。如果两个请求相互独立,则客户机无需在发出下一请求之前等待接收对第一未完成的请求的响应。通常,存在至少两种形式的独立:数据独立和定时独立。无论从第一请求接收到的响应消息如何第二请求的内容都是相同的,则该对请求是数据独立的。如果没有服务器所对第一请求的肯定地确认(通常由响应消息传送)就能发出第二请求,则该对请求是相互定时独立的。所有定时独立的请求也是数据独立的,但反过来不成立。两个或多个独立的请求消息可以同时或接二连三地由客户机发出,减少了减少事务所花费的所有时间。然而,此方法并不适用于所有情形,因为请求常常是相互依赖的。
甚至在这此改进是可能的并且独立的事务可以被标识的情形中,客户机应用程序常常不能被容易地修改。源代码可能由于法律或商业原因而不可得到;对源变化的改变可能由于可支持性原因而不被允许;或者可能得不到改变客户机应用程序的技术人员。
因此,希望一个系统或方法,不需要修改应用程序而减少客户机一服务器事务的时间。
概述
在本发明的一个实施例中,网络应用代理可用于提高客户机-服务器事务的速度而不修改客户机应用程序。特别地,网络应用代理能用于减少服务器响应于来自客户机应用程序的请求序列的等待时间。网络应用程序代理被用于客户机和/或服务器端以截取在客户机和服务器之间建立的网络连接。将网络应用程序代理所截取的客户机请求与一组规则相比较。当客户机请求匹配一个或多个规则时,称为预取请求的附加消息以客户机应用程序的名义被发送至服务器。在一个实施例中,根据系统上的特定应用程序来定义规则。
响应于发送至服务器的一个或多个预取消息,服务器能提供相应的响应消息。网络应用代理截取该响应消息并高速缓存与预取消息相对应的响应。当后续客户机请求被网络应用程序代理截取时,它们与高速缓存的预取消息相比较。如果客户机请求与高速缓存的消息相匹配,则相关联的所得消息立即被返回至客户机应用程序而不是重新向服务器请求相同的信息。
在另一实施例中,此功能是用客户机方和服务器方网络代理两者实现的。服务器方网络代理能将客户机请求与该组规则相比较,创建预取消息,并接收对预取消息的响应消息。服务器方代理随后可将包括对客户机方网络代理的响应消息在内的数据送至高速缓存。客户机方网络代理截取进一步的客户机请求并将它们与本地高速缓存的预取消息相比较。如果客户机请求与高速缓存的预取消息匹配,则客户机方代理能立即向客户机应用程序返回相关联的所得消息。相反,若客户机请求不与高速缓存的预取消息相匹配,则客户机方代理能向服务器方代理发送该客户机请求,用于与该组规则相比较并由服务器作出最终处理。
在又一实施例中,如果客户机发出的请求消息不是预先发出并被高速缓存的请求消息,则客户机代理向服务器方代理发送无序的请求消息。在接收到此消息时,服务器方代理的一个实施例确定该消息是否使所有预取的响应无效,根本不影响它们,还是导致不可恢复的事务故障。如果所有预取的消息需要被无效,则服务器方代理将该决定中继至客户机方代理,该客户机方代理清除其所有或部分高速缓存。如果无序消息导致不可恢复的事务故障,则服务器方代理关闭其与服务器以及与其对等客户机方代理的连接,并且客户机代理被强制向客户机节点返回一个错误。
某些服务器应用程序支持异步客户机通知,其中当某状况出现时由服务器向客户机发送一个消息。通知可用作对客户机的回叫以确保由一个或多个客户机节点和/或服务器节点共享的状态信息的一致性。例如,如果服务器用作数据库服务器并且许多客户机访问数据库,则客户机可能很希望在另一客户机修改它从先前与服务器的的读取事务中记录的某个数据库项目时接收到通知。为了确保一致性,客户机的一个实施例更新或擦除先前记录的数据库项目。为了在网络层应用代理被使用时维持此一致性,代理应知道当这类回叫发生时何时使预取的响应无效或更新预取的响应。规则确定当服务器发起的回叫消息与指定的正规表达式相匹配时采取什么动作。通常,该动作是在客户机方代理处清除预取的响应。
在一个实施例中,用户指定的规则准确地指定用于判定哪个客户机或服务器生成的请求是匹配的准则。另外,该规则指定当匹配时应采取的适当动作。用于判定匹配的准则取决于请求/响应消息的结构。为了示例目的,考虑客户机使用明文查询和/或诸如在由Sybase、微软实现的表列数据流(TDS)协议中编码的远程过程调用(RPC)以及可在www.freetds.org处获得的程序来访问数据库应用服务器。在此例子中,用户在明文查询的情形中指定全文或部分文本匹配的正规表达式。对于RPC消息,简单的基于文本的正规表达式匹配不能满足,因为请求消息可由基于非文本的RPC名字、标识符、自变量、参数等的编码(例如二进制编码)构成。因此,应用代理必须将编码的RPC消息成分解码并将其以明文(或字符格式)呈现给用户使得按照以下元素中的一个或多个的组合来进行匹配:RPC名、RPC标识符、RPC参数号、参数名、参数类型、参数类型或自变量值。
在一个实施例中,用户指定的动作确定在查询或RPC消息与用户指定的规则匹配时生成了多少预取的请求。第一预取的请求是通过复制原始的规则触发的消息然后修改它来获得的。对于基于明文的查询消息,该修改可以是正规表达式代入操作。对于基于RPC的消息,用户动作指定RPC名或标识符通过正规表达式代入改变。对于RPC自变量,用户动作使用其在列表中的偏移量来指定自变量并使用正规表达式来指定修改。后续的预取请求消息或是规则触发消息的复制或是先前预取的消息。
用户指定的规则可能在服务器方代理处生成大量预取的请求。这类情形可导致加重服务器节点的资源的负担,或在客户机节点发出尚未由代理高速缓存的请求消息时导致过度延迟。在一个实施例中,两种方案可用于避免这一问题:a)用户指定的限制控制由服务器方代理向服务器发出的尚未完成的预取的请求的数量,b)代理之间的反馈机制确定何时恢复执行预取。反馈机制需要在客户机节点请求其响应已被预取并存储在客户机处的请求消息时,使客户机方代理向服务器方发回肯定的确认。如果客户机请求不是已被取出的消息,则反馈机制防止服务器方代理发出新请求。另一方面,如果向客户机发送预取的响应,则肯定的反馈结果导致服务器方代理预取更多来自服务器的响应。
附图简要说明
本发明将参照附图进行说明,其中:
图1示出一个适合用于本发明的实施例的客户机、服务器、代理以及互连网的示例配置;
图2示出根据本发明的一个实施例的客户机方代理和服务器方代理的内部组织;
图3示出根据本发明的一个实施例处理从客户机方代理接收到的消息的方法;
图4示出根据本发明的一个实施例的处理从服务器方代理接收到的消息的方法;
图5示出根据本发明的一个实施例的客户机方代理与服务器方代理之间的消息流;
图6示出适合用于本发明的一个实施例的服务器方代理的规则存储中的规则的几个例子;以及
图7示出根据本发明的一个实施例的处理从服务器方代理接收的消息的方法。
发明的详细说明
图1示出根据本发明的一个实施例的用于客户机110和服务器170之间的加速事务的系统100。在该图中,客户机110和客户机方网络代理130均连接通常是局域网或LAN的客户机方网络120。同样,服务器170和服务器方网络代理150均连接服务器方网络160。客户机方网络120和服务器方网络160两者通过WAN 140连接,可能经由附加路由、交换或桥接设备以及图1中未示出的链路连接。WAN 140可由能传送包括虚拟专用连网协议在内的数据消息的各种网络或因特网组成。
来自客户机110的请求115通过可以借助匹配高速缓存的预取的响应136来应答它的客户机方网络代理130来发送。如果客户机方网络代理130不具有匹配的高速缓存的预取的响应,则客户机方网络代理110优化或转换请求115并将其作为优化的请求135发送至在广域网WAN 140的另一端的服务器方网络代理150。服务器方网络代理150是客户机方网络代理130的对方并对所接收的优化的请求135进行逆优化或转换以产生原始请求116。服务器方网络代理150检查匹配原始请求116的规则;如果一个或多个规则引发并且预取尚未被节流(throttle),则引发的规则将原始请求116转换或替换成新请求155、156。如果没有规则引发并且预取已被节流,则原始请求116被发送至服务器170。
服务器170对客户机110的响应175通过反向路径。它通过服务器方代理150发送,服务器方代理150确定是否必须采取诸如更新客户机方网络代理130处的高速缓存的信息或使其无效等附加动作,以可能用响应157扩充或替换响应175。服务器方网络代理170优化或转换已修改的响应157,并将其作为优化的响应158通过WAN 140发送至客户机方网络代理130。客户机方网络代理130是服务器方网络代理170的对方并且对所接收的优化的请求158进行逆优化或转换,以产生原始的已修改的响应157。客户机方网络代理通过按需要更新其本地高速缓存或使某无效来处理已修改的响应157。如果已修改的响应157包括直接(非预取的)响应,则该直接响应136被发送至客户机110。
图2示出根据本发明的一实施例的客户机方网络代理130与服务器方网络代理150的内部组件。客户机方网络代理130包括结果缓存210、优化编解码器215、以及预取节流控制220。服务器方网络代理150包括优化编解码器216、无效检查器230、匹配引擎240、通知接收器250、规则存储260节流器以及预取节流器270。
当客户机方网络代理130接收到来自客户机110的请求消息115时,将该请求消息115与结果高速缓存210的内容相比较。在一个实施例中,结果高速缓存210是包括预取的客户机请求以及来自服务器170的相应响应的表或其它数据结构。如果结果高速缓存210包含与请求115匹配的结果,则该匹配结果被返回至客户机110并且请求115不再被转送至服务器方代理150。
如下详述,客户机方代理130的一个实施例可包括用于防止来自预取的请求的数据淹没到客户机10的WAN连接,从而阻止或延迟客户机110向服务器170显式地请求的数据。在这些实施例中,如果预取节流控制220指出,在服务器方代理150处已节制了预取,则来自结果高速缓存210的结果的使用使客户机方网络代理130向在服务器方网络代理150处的预取节流器270发送“不节流”消息。在接收到“不节流”消息时,预取节流器270将允许服务器方网络代理150恢复预取客户机110的数据。
如果在结果高速缓存210中不存在匹配结果,则请求消息115被传递至优化编解码器215,该优化编解码器215进行诸如专利申请McCanneI、McCanneIII、McCanneIV和McCanneV中所述的优化和转换。优化的消息218从客户机方优化编解码器215流向服务器方优化编解码器216,并且这些优化的消息218无需在数量或大小上完全对应于原始的请求消息115。
在服务器方网络代理150处,服务器方优化编解码器216取消客户机方优化编解码器215所进行的优化以及转换,恢复原始的请求消息115。无效检查器230检查请求消息115以确定请求115是否无效在结果高速缓存210中预取并高速缓存的信息。如果要无效,则无效检查器230向客户机方网络代理130发送一条无效消息。如果无效检查器230确定请求115不能被执行,则无效检查器230向客户机方网络代理130发送一条重大错误消息。
如果无效检查器230检测不到重大错误,则消息115被递送至匹配引擎240。匹配引擎240将消息115与规则存储260的内容相比较,并确定规则存储260中的规则中哪个规则“引发”或被激活。当规则引发时,它所定义的影响发生,可能产生一条要被发送至服务器170的新消息280。规则可以是无状态的或是满状态(stateful)的。
匹配引擎240和规则存储260确定是否引发任何规则、是否多个规则可引发,以及以什么次序引发规则。规则可允许其它规则被启用或停用。在一个实施例中,由匹配引擎240和规则存储260施加收敛特性或时限特性以确保不存在规则引发的无止境循环。一个这类配设置是在每一规则引发之后停用该规则并且在接收到新消息之前不允许其被重新启用。此配置确保存在一个单调递减的适用规则的集合。配另一这类配置是具有一个在每次引发后递减的规则的限制计数器。另一种这类配置是具有一个随着时间的流逝递减的实时计数器。
如下详述,规则存储260的一个实施例使用至少一个规则元素和动作元素来指定各规则。规则元素指定用于与客户机请求匹配的准则。在一个实施例中,规则元素可包括能替代客户机请求中的另一个或几个特征的通配符。在其它实施例中,规则元素可包括与相应的语法规则结合在一起使得规则元素能指定更复杂的匹配客户机请求的集合而不必实际地列出集合中的每一个可能的元素的正规表达式。
在又一实施例中,匹配引擎240和规则存储260可以被配置成使用对上下文敏感的语法来激活规则。在此实施例中,匹配引擎240使用两个或多个消息的内容的分析来确定是否激活规则。例如,对上下文敏感的语法在接收到的一个或多个满足准则附加信息之前可能不会响应于第一消息激活一个规则。在另一例子中,基于一个或多个先前消息的内容响应于一个消息的规则激活可能被抑制。
动作元素描述为所接收到的与相应规则元素匹配的消息采取的动作。在一个实施例中,动作元素可指定代表与匹配客户机请求相关联的客户机向服务器170发送的一个或多个附加消息的格式。动作元素可指定精确的预取消息和/或预取消息的模板。在后一情形中,模板可以使用客户机请求的属性或其它系统属性形成完整的预取消息来完成。
本发明的其它实施例可包括一个节流系统,以防止来自预取请求的数据淹没与客户机110的WAN连接218,从而断碍或延迟客户机110向服务器170显式地请求的数据。在这些实施例中,匹配引擎240和规则存储260的操作也可能被预取节流器270抑制。任何与所接收的请求115不同的新消息280被认为是预取请求并且这些消息的生成可能受到预取节流器270的限制。预取节流器270跟踪预取消息280的生成并在所生成的消息的数量达到可配置的极限时通过规则引发(节制该预取)来抑制这类消息的生成。在其它实施例中,预取节流器270能根据由一个或多个预取消息280返回的数据的总大小、用于预取消息及它们的响应的网络包的总数、花在预取消息及它们的响应上的时间量、或一个或多个预取消息及它们的响应的任何其它单个或集合的属性来限制所生成的消息的数量。在又一实施例中,在发生此节制时,还向客户机方代理30处的预取节流控制220发送表示预取已被节制的消息。在节流就位之后,将不恢复预取直至使用来自客户机方代理130(如上所述)处的结果高速缓存210的结果或结果高速缓存210被无效检查器230的决定无效。
对应于所接收的请求115的结果通过成对的优化编解码器216、215发送回客户机方代理130,该代理在一个实施例中向客户机110发送未改变的结果。对应于预取消息280的结果被相应地标记并通过成对的优化编解码器216、215发送至客户机方代理130,代理130将结果添加至结果高速缓存210并且不向客户机110发送任何东西。
在又一实施例中,两个或多个预取消息及它们与客户机请求相关联的相应的响应消息在被发送回客户机代理之前被打包在一起。例如,服务器方代理能尝试将尽量多的预取消息和相应的响应消息打包成单个网络包。一旦包的数据大小限制达到一包消息或时限届满,则服务器方代理将可能包含多个消息的包发送至客户机方代理。服务器方代理将对任何余下的消息重复它打包。这具有使与客户机方代理互通预取消息及它们的相应响应所需的网络包的数量最少化从而改善网络性能的效果。
在某些环境中,“结果”消息将来自服务器作为通知,即没有任何相应的请求初启它。在其它使用中,这些通知常常用于向可能对那些项目感兴趣的客户机指示特定共享的数据项的已改变的环境。这些通知是由通知接收器250在服务器方代理150处接收的。非常象无效检查器230,通知接收机250分析所接收的通知以确定所接收的通知是否使预取并高速缓存在结果高速缓存210中的信息无效。如果这样的话,通知接收器250向客户机方网络代理130发送无效消息。通知接收器250还可确定,表示已发生解决不了的问题的通知,并向客户机方网络代理130发送重大错误消息。
图3A和3B示出根据本发明的一个实施例处理服务器方网络代理的数据的方法。图3A示出根据本发明的一个实施例的用于处理通过客户机方代理从客户机接收到的消息的方法300。在步骤305,服务器方代理从客户机应用程序接收对于服务器的客户机请求消息。在一个实施例中,客户机请求消息通过客户机方代理,该代理使用结果高速缓存中的数据来确定是否能满足客户机请求消息。如果不能,则客户机方代理将客户机请求消息发送至服务器方代理。
步骤310确定客户机请求消息是否能被发送至服务器而不引发错误。在一个实施例中,如果客户机请求与已由服务器方代理发出的预取的消息不一致,则客户机请求消息不能被发送至服务器。这可能在由服务器方代理使用的规则集合无法正确地预测一个系列中的一个或多个相关的客户机请求消息时发生。可能不向服务器发送客户机请求消息的另一原因是如果客户机请求消息会例如由于无序的客户机消息请求或未预计到的消息请求而产生不可恢复的事务错误。
如果客户机请求消息能被安全地发送至服务器,则方法300进到步骤315。相反,如果客户机请求消息不能被安全地发送至服务器,则方法300进到步骤320。步骤320确定,无效结果高速缓存或其部分,诸如高速缓存中存储系统预期的预取消息而不是在步骤305中接收到的客户机请求消息的那部分是否会使客户机请求消息被安全发送至服务器。如果这样,则方法300进到步骤325以无效客户机方代理的结果高速缓存的全部或一部分。在一个实施例中,步骤325向适当的客户机方代理发送一个消息,指定全部或一部分结果高速缓存应被无效且相关联的数据应被废弃。方法300随后从步骤325进到步骤315。
在一个实施例中,服务器方代理在服务器方代理处客户机请求消息与规则相匹配时向客户机方代理发出诸如全部或基于规则的部分高速缓存无效策略。如下所述,客户机方代理在发生高速缓存错误时使用此高速缓存无效策略,来确定是否应无效客户机方代理的高速缓存的全部或一部分。
如果步骤320确定即使客户机方代理结果被无效客户机请求消息也不能被安全地发送至服务器,则步骤330确定客户机请求消息。此可在例如无序客户机请求消息导致不可恢复的事务故障时发生。在步骤330的一个实施例中,服务器方代理关闭其与服务器的连接以及与其对等客户机方代理的连接,并且客户机方代理被强制向客户机应用程序返回一个错误。
继步骤310或步骤325之后,步骤315向预期服务器发送客户机请求消息用于处理。在一个实施例中,服务器方代理维持客户机请求消息的记录,以将其与由服务器返回的任何结果消息相匹配。
继步骤315之后,步骤335将客户机请求消息与由服务器方代理维持的那组规则相比较。在一个实施例中,步骤335响应于与一个或多个规则匹配的客户机请求消息代表客户机应用程序向服务器发出一个或多个预取消息。预取消息可以被同时或连续地发出。在一个实施例中,服务器方代理维持与客户机请求消息一起发送至服务器的预取消息的记录。在又一实施例中,可以使用上述通信节流系统来停用步骤335。继步骤335之后,方法300返回至步骤305以等待来自客户机方代理的进一步消息。
图3B示出用于处理从服务器接收的消息的方法350。在替换的实施例中,这些步骤可以按不同的次序执行,因为除了在被明白地指出的情况下以外,不存在必需的同步或先后顺序。步骤355接收来自服务器的消息。步骤360确定所接收的消息是否是服务器对先前由服务器方代理接收到的客户机请求消息的响应。如果是这样,则方法350进到步骤365。在一个实施例中,可以通过由服务器方代理维持的客户机请求消息的记录来方便进行此比较。
相反,如果步骤360确定所接收的消息不是服务器对先前由服务器方代理接收到的客户机请求消息的响应,则步骤370确定所接收消息是否是服务器对于由服务器方代理代表客户机应用程序响应于匹配一个或多个规则的客户机请求消息发送的预取消息的响应。如果是这样,则方法350进到步骤375。在一个实施例中,可以通过由服务器方代理维持的预取消息的一个记录来方便进行此比较。
步骤375标记并打包该消息。在一个实施例中,该消息与附加数据打包在一起以便于被客户机方代理高速缓存。在一个实施例中,此附加数据可包括相应预取请求的拷贝或由其导出的标识符。此使得客户机方代理能将未来客户机请求与存储在结果高速缓存中的数据相匹配。继步骤375之后,方法350进到步骤365。
继步骤375或步骤360之后,步骤365将消息或如以下或其它地方所述的一包消息发送至客户机方代理。
在另一实施例中,步骤375能将多个消息一起打包到一个网络包中以改善网络性能。在此实施例中,继步骤375之后,如果包不满的话可以绕过步骤365。在此情形中,方法350随后直接进到步骤355以等待来自服务器的下一消息。在另一实施例中,如果来自服务器的与部分填充的包相关联的另一消息在一定时间内未被接收到,则方法350将返回到步骤365以将任何部分填充的包发送至合适的客户机方代理。
回到步骤370,如果所接收的消息不是服务器对预取消息的响应,则方法350进到步骤380。步骤380确定所接收的消息是否无效客户机方代理的结果高速缓存中的数据。如果是这样,则方法350进到步骤385以无效客户机方代理的结果高速缓存。在一个实施例中,步骤385向提供高速缓存无效策略的客户机方代理发送消息。响应于在客户机请求不与高速缓存中的任何数据匹配时发生的高速缓存错误,客户机方代理根据高速缓存无效策略废弃其结果高速缓存的全部或一部分。高速缓存无效策略可指定结束高速缓存中的所有数据要被废弃或只废弃与规则匹配的数据。
在一个实施例中,服务器方代理直接无效客户机方代理的结果高速缓存的全部或一部分。例如,这可以使用一对代理规则:规则A和规则B来实现。规则A包括查询匹配准则、预取指令以及“发送错误而不进行对服务器的高速缓存清除”的高速缓存错误策略。规则B包括匹配准则以及活动高速缓存清除(部分或全部)指令。活动高速缓存清除消息被发送至客户机方代理以使客户机方代理清除该高速缓存。
这对规则可用于服务器方代理预取查询的大列表并使用规则A将它们发送至客户机方代理的情形。客户机只请求这些预取的查询的子集,这些预取的查询不时夹杂着被客户机方代理处的作为高速缓存错误的客户机请求消息。在某个点,客户机可发出导致客户机处的高速缓存错误的特定客户机请求消息。象引起高速缓存错误的其它客户机请求消息一样,此特定客户机请求消息被发送至服务器方代理用于执行。在服务器方代理处,此客户机请求消息匹配规则B。规则B的准则被指定成它与指示客户机将不请求更多存储在客户机方代理的结果高速缓存中的余下预取的请求的客户机请求消息相匹配。作为客户机请求消息匹配规则B的结果,服务器向客户机方代理发送清除客户机方代理的结果高速缓存的部分或全部的消息。
相反,如果所接收的消息不要求无效结果高速缓冲器,则方法350进到步骤390。步骤390确定该消息是否指示重大错误。如果是这样,则方法350进到步骤395,该步骤结束该方法。否则,方法350从步骤390回到步骤355以等待进一步的消息。
图4示出根据本发明的一个实施例的在客户机方网络代理处处理数据的方法。图4A示出用于处理从客户机接收的消息的方法400。步骤405接收来自客户机应用程序的客户机请求消息。步骤410确定该客户机请求消息是否与存储在客户机方网络代理的结果高速缓存中的数据相匹配。在一个实施例中,结果高速缓存存储预取消息及它们的相应的结果消息。在此实施例中,步骤410在结果高速缓存中搜索与所接收的客户机请求消息相匹配的预取消息。在其它实施例中,诸如散列表等技术可用于便于在结果高速缓存中搜索与所接收的客户机请求消息相匹配的结果消息。
如果步骤410确定结果缓冲器不包括任何与所接收的客户机请求消息相匹配的数据,则步骤415向服务器发送所接收的客户机请求消息用于处理。在一个实施例中,步骤415向服务器方代理发送所接收的客户机请求消息用于如上所述地处理。方法400随后返回至步骤405以等待进一步的客户机请求消息。
相反,如果步骤410确定结果高速缓存不包括一个或多个与所接收的客户机请求消息相对应的结果消息,则步骤420从结果高速缓存中去除相应的结果消息。步骤425向客户机应用程序发送该结果消息,籍此满足客户机请求消息而无需初启与服务器的进一步通信。
在一个实施例中,客户机方网络代理可包括预取节流控制。在此实施例中,步骤430确定是否从服务器方网络代理节制或挂起包括与附加的预取消息和相应的结果消息相关联的数据的网络通信。如果是,则步骤435向服务器方网络代理发送一个未节流通过以表示服务器方网络代理能恢复向客户机方代理发送与任何附加预取消息及相应的结果消息相关联的数据。如果否,则方法400返回步骤405以等待来自客户机应用程序的附加客户机请求消息。类似地,继步骤440之后,方法400返回至步骤405。
图4B示出根据本发明的一个实施例的用于处理从服务器方代理接收的消息的方法450。在替换的实施例中,这些步骤可以按不同的次序执行,因为除了明确指示的情形之外不需要同步或顺序执行。
步骤455接收来自服务器方代理的消息。消息可特定地发往客户机方代理或发往客户机应用程序。在后一情形中,客户机方代理截取由服务器或服务器方代理发往客户机应用程序的消息。步骤460确定所接收的消息是否请求无效客户机方代理的结果高速缓存的全部或一部分。如果是,则在步骤465中,客户机方代理废弃或以其它方式无效其结果高速缓存中的适当部分中的数据。继步骤465之后,方法450返回至步骤455以等待来自服务器方代理的附加消息。
相反,如果步骤460确定该消息不请求无效结果高速缓存中的任何部分,则步骤470确定该消息是否包括要高速缓存的数据。在一个实施例中,包括要高速缓存的数据的消息可包括一个或多个与由服务器方代理代表客户机应用程序发出的一个或多个预取消息相对应的结果消息。在另一实施例中,包括要高速缓存的数据的消息可包括预取消息的拷贝或由其导出的标识符以便于将所接收的客户机请求消息与存储在结果高速缓存中的相应结果消息相匹配。
如果步骤470确定从服务器方网络代理接收的消息包括要高速缓存的数据,则步骤475将来自该消息的数据添加至客户机方网络代理的结果高速缓存。相反,如果步骤470确定所接收的消息不包括要高速缓存的数据,则步骤480将所接收的消息发送至其预期目的地,诸如客户机应用程序等。继步骤480或475之后,方法450返回至步骤455以等待任何附加消息。
图5A至5C示出根据本发明的实施例的在系统的组件之间的示例消息流。图5A示出从客户机应用程序510通过客户机方网络代理520和服务器方网络代理530流向服务器应用程序540的客户机请求消息501的简单消息流。相应的响应消息502从服务器应用程序540通过服务器方网络代理530和客户机方网络代理520流向客户机应用程序510。在图5A中,客户机方网络代理520和服务器方网络代理530能检查客户机请求消息501和响应消息502但不影响客户机510与服务器540之间的通信。
图5B示出从客户机应用程序510流向客户机方网络代理520的客户机请求消息503的消息流。在此例子中,客户机请求消息503与高速缓存在客户机方代理的结果高速缓存中的响应消息相对应。因此,客户机方代理520从其结果高速缓存中检索响应消息504并将其返回至客户机应用程序510。在此例中,不需要与系统的其它组件的任何附加通信。
图5C示出预取是如何发生的并因而示出客户机方网络代理520如何会能如先前在图5B中所示地递送高速缓存的结果。来自客户机应用程序510的客户机请求消息505可以在客户机方代理520处检查,但在此例子中不与任何高速缓存的结果匹配。因此,客户机请求消息505被发送至客户机方代理530再次进行检查。在此例子中,客户机请求消息匹配用于触发服务器方代理530以生成消息505a和505b的一个或多个规则。在某些实施例中,消息505a可与请求505相同。在某些实施例中,服务器方代理530可能生成更多或更少的消息;对于此例子使用两个消息是无关紧要的。消息505a和505b被发送至产生的相应的结果消息506a和506b的服务器540。在一个配置中,505a是未修改的直接请求520,因此相应的结果506a被作为507a递送至客户机方网络代理520,然后作为508a递送至客户机510。然而,505b是预取消息,因而相应的结果消息506b被标记成要高速缓存并被打包在消息507b中的数据。当结果消息507b被发送至客户机方网络代理520,则内容507b被放置在客户机方网络代理520的结果高速缓存中并且不向客户机510发送相应的消息。
图6示出一个示例规则的元素,诸如可用于建立在图2中所述的规则存储260中的规则的元素。那里编码的例子捕捉以下情形:
当服务器方代理从客户机接收作为以TDS格式编码的微软项目产品的消息时,其中该消息属于类型3,具有RPC ID 5,带有7个自变量,并且该消息的查询部分与以下正规表达式相匹配;然后执行以下动作:
Send a prefetch TDS message of type 3,rpc id 5,with the query string
“select                proj_read_count,proj_locked,proj_read_write,
proj_read_only,proj_id,proj_machine_id,proj_data source        from
msp_projects where proj_name=<the_matched_sub_expression>”
规则元素610说明规则的匹配部分。动作元素620说明要为所接收的与相应的规则元素610匹配的消息采取的全部消息替换动作。规则元素610可具有多个相关联的动作元素620,而各动作元素620产生各不相同的整个消息替换。自变量动作元素630说明自变量级(level)替换而动作元素620说明整个消息级替换。动作元素620可具有多个相关联的自变量动作元素630,而各自变量动作元素630产生各不相同的自变量替换。
为了示例的目的讨论了图6的示例规则。本发明的实施例可采用任何数量的具有不同规则类型和动作元素的规则。另外,可以为不同类型和类别的客户机应用程序、不同的服务器应用程序和不同的消息格式和协议指定规则。通常,本发明的实施例适用于其中客户机使用任何类型的请求/回复协议与服务器应用程序通信的系统。例如,本发明的实施例可与任何类型的数据库服务器、Java RMI和CORBA结合使用。
在另一实施例中,如上所述的用于预取和高速缓存的系统和技术能延伸用到预先确认客户机请求消息。预先确认是由客户机方或服务器方网络代理或事务加速器创建对客户机请求消息的合成响应,以替代由服务器响应于客户机请求消息正常向客户机发送的确认消息。预先确认的使用减少了客户机在发送客户机请求消息到接收来自服务器的确认消息之间的延迟。
在某些应用中,预先确认从数据一致性方面来看可能不安全。因此,在一个实施例中,预先确认在网络代理和事务加速器的默认配置中被关闭。预先确认随后可以被有选择地启动只用于特定类型的事务。在又一实施例中,在客户机请求消息周围事务边界的插入确保了数据一致性安全性。
在一个实施例中,规则在客户机方和/或服务器方代理处被用于确定请求是否可以被预先确认。在第一实施例中,服务器方规则引擎检查输入的客户机请求消息以确定用预先确认消息响应是否安全。在一个或多个服务器方规则与客户机请求消息之间匹配的情形中,服务器方代理向客户机方代理发送诸如语句标识符、句柄等标识符或其它事务标识信息。此标识符用于标识能由客户机方代理或事务加速器预先确认的相同或相关事务中的后续客户机请求消息。
在一个实施例中,客户机方代理或事务加速器只使用标识符或结合附加的客户机方规则来标识能被安全地预先确认的后续客户机请求消息。响应于标识与标识符匹配的后续客户机请求消息,客户机方代理或交易加速器立即向客户机返回预先确认消息。
在一个例子中,如果客户机请求消息由服务器接收和处理,则可以在客户机不关心诸如客户机上载以及反复用不同自变量调用SQL过程等一系列客户机请求消息的结果时使用预先确认消息。
在另一实施例中,客户机方代理或事务加速器中的客户机方规则被用于在事务中频繁但不连续地出现的请求。在一个实施例中,客户机方代理包括从输入的客户机请求消息生成标识符的能力。在又一实施例中,客户机方代理为包括不与客户机方规则匹配以及未预先确认的消息在内的所有输入的客户机请求消息生成和存储标识符。这防止了不能被预先确认的客户机请求消息由于标识符冲突而被误标识。
在又一实施例中,客户机方网络代理还通过在拟被预先确认的第一客户机请求消息之前插入事务起点请求来确保数据一致性安全性。客户机方代理废弃服务器对此事务起点请求的响应。
在又一实施例中,包括响应于客户机请求消息发送的确认消息在内的服务器响应由客户机方代理接收。客户机方代理检查确认消息中的成功或故障代码。在客户机请求消息的成功代码已被客户机方代理预先确认的情形中,客户机方代理将响应消息作为冗余废弃。在客户机请求消息的故障代码已被客户机方代理预先确认的情形中,从客户机接收到的同一事务中的下一客户机请求消息接收错误响应。或者,客户机方代理可响应于故障代码断开该连接。
如果对客户机请求消息的所有响应指示成功并且接收到非预先确认客户机请求消息,则向服务器方发送事务终点请求。在接收到成功响应时,待决的不可预先确认的请求被代理至服务器方。不成功响应导致不可预先确认的响应被发送至客户机或客户机方代理断开该连接。
在又一实施例中,可以基于响应回到客户机方代理来使用调节机制。客户机方代理会在预先确认的请求的未完成响应的数量超过可配置阈值时中止预先确认请求的生成。这防止了客户机由于客户机请求消息与预先确认响应之间的减小的延迟而占满了服务器。
在一个实施例中,为了实现预先确认,图2中的客户机方代理增加了可选的匹配引擎240a和规则存储260a。可选的匹配引擎240a和规则存储260a类似于上述匹配引擎240和规则存储260,并具有参照预先确认消息所述的附加功能。
图7示出根据本发明的一个实施例的处理从服务器方代理接收的消息的方法700。方法700基本上类似于图4A的方法400,方法700的步骤405、410、415、420、425、430和435与它们在方法400中同样编号的对应步骤相似。然而,继步骤405之后,步骤705在客户机中确定请求消息与预先确认规则匹配。如果否,则方法700进到步骤410以及如上所述的后续步骤。如果步骤705确定该消息不与预先确认规则相匹配,则步骤710生成预先确认消息并将其发送回客户机。继步骤710之后,方法700返回到步骤405。
虽然本发明已参照其特定实施例进行了讨论,但这些实施例只是本发明的示例而非限定。另外,上述系统体系结构是用于示例目的。本发明可以用包括作为独立的应用程序或作为与其它应用程序集成的模块在内许多不同的形式实现。因此,本发明的范围只由权利要求确定。

Claims (30)

1.一种用于加速客户机-服务器事务的方法,所述方法包括:
(a)接收来自客户机应用程序的第一消息;
(b)将所述第一消息与一组规则相比较;
(c)响应于与所述规则组中的至少一个规则匹配的所述第一消息,将所述第一消息和至少一个附加消息发送至服务器应用程序;
(d)从所述服务器应用程序接收至少一个与所述附加消息相对应的响应消息;
(e)将与所述附加消息相对应的响应消息存储在消息高速缓存中;
(f)接收来自所述客户机应用程序的第二消息;
(g)确定所述第二消息是否类似于所述附加消息;以及
(h)响应于类似于所述附加消息的所述第二响应消息,将存储在所述消息高速缓存中的所述响应消息发送至所述客户机应用程序。
2.如权利要求1所述的方法,其特征在于,(a)、(b)、(c)和(d)是由服务器方网络代理执行的,而(e)、(f)、(g)和(h)是由客户机方网络代理执行的。
3.如权利要求2所述的方法,其特征在于,(e)还包括:
将来自所述服务器方网络代理的所述至少一个响应消息,发送至所述客户机方网络代理。
4.如权利要求3所述的方法,其特征在于,发送所述响应消息还包括:将所述响应消息与附加信息打包在一起,所述附加信息适用于向所述客户机方网络代理指示所述响应消息拟被存储在所述消息高速缓存中。
5.如权利要求4所述的方法,其特征在于,所述附加信息标识与所述响应消息相对应的附加信息。
6.如权利要求3所述的方法,其特征在于,还包括:
响应于(e),确定是否已达到高速缓存极限;
响应于确定已达到所述高速缓存极限,通过所述客户机方代理将节流消息发送至所述服务器方代理;以及
响应于所述服务器方网络代理接收到所述节流消息,中止向所述客户机方网络代理发送来自服务器方网络代理的至少一个响应消息。
7.如权利要求6所述的方法,其特征在于,还包括,响应于(h):
从所述响应高速缓存中去除已发送的响应消息;
确定是否已达到所述高速缓存存储极限;
响应于尚未达到所述高速缓存极限的确定,由所述客户机方代理向所述服务器方代理发送不节流消息;以及
响应于所述服务器方网络代理接收到所述不节流消息,恢复向所述客户机方网络代理发送来自所述服务器方网络代理的至少一个响应消息。
8.如权利要求1所述的方法,其特征在于,还包括:
生成与所述第一消息相对应的预先确认消息;以及
向所述客户机应用程序发送所述预先确认消息。
9.如权利要求8所述的方法,其特征在于,还包括:
接收来自所述服务器应用程序的确认消息,其中所述确认消息是对所述第一消息的响应;
分析所述确认消息的状态码;
响应于指示成功状况的状态码,废弃所述确认消息;以及
响应于指示故障状况的确认消息的状态码,在接收到来自所述客户机应用程序的第二消息之后,向所述客户机应用程序发送指示故障状况的响应消息。
10.一种用于加速客户机-服务器事务的方法,所述方法包括:
接收从客户机应用程序发往服务器应用程序的消息;
确定所述消息是否与发送至所述服务器应用程序的先前消息一致;
响应于所述消息与发送至所述服务器的先前消息一致的确定,向所述服务器发送所述消息;
将所述消息与一组规则相比较;
响应于所述消息与至少一个规则匹配生成至少一个附加消息;以及
将所述附加消息发送至所述服务器应用程序。
11.如权利要求10所述的方法,其特征在于,所述先前消息是由服务器方代理响应于与所述规则组匹配的至少一个附加的先前消息生成的。
12.如权利要求10所述的方法,其特征在于,还包括:
响应于所述消息与发送至所述服务器应用程序的先前消息不一致的确定,确定所述消息是否与存储发送至所述服务器应用程序的先前消息相对应的结果消息的结果高速缓存的至少一部分不一致;以及
响应于所述消息与结果高速缓存的所述部分不一致的确定,使所述结果高速缓存的所述部分无效。
13.如权利要求10所述的方法,其特征在于,还包括:
接收来自所述服务器应用程序的第二消息;
确定所述第二响应是否是对所述附加消息的响应;以及
将指示所述第二消息拟被存储在包括在与所述客户机应用程序相关联的网络代理中的结果高速缓存中的第二消息打包,并响应于所述第二消息是对所述附加消息的响应的确定,将所述打包的第二消息发送至与所述客户机应用程序相关联的网络代理。
14.如权利要求13所述的方法,其特征在于,还包括:
确定所述第二消息是不是对来自所述客户机应用程序的消息的响应;以及
响应于所述第二消息是对来自所述客户机应用程序的消息的响应的确定,向所述客户机应用程序发送所述第二消息。
15.如权利要求13所述的方法,其特征在于,还包括:
确定所述第二消息是否使包括在所述客户机应用程序相关联的网络代理中的结果高速缓存的至少一部分无效;以及
将使高速缓存无效消息发送至所述网络代理指定应使所述结果高速缓存的所述部分无效。
16.一种用于加速客户机-服务器事务的方法,所述方法包括:
接收从客户机应用程序发往服务器应用程序的消息;
确定所述消息是否对应于结果高速缓存中的数据;
响应于所述消息不对应于所述结果高速缓存中的数据的确定,向所述服务器应用程序发送所述消息;以及
响应于所述消息对应于所述结果高速缓存中的至少一部分数据的确定,向所述客户机应用程序发送响应消息,其中所述响应消息包括来自所述结果高速缓存的数据的至少一部分。
17.如权利要求16所述的方法,其特征在于,还包括:
响应于所述消息不对应于所述结果高速缓存中的数据的确定,生成一预先确认消息,并向所述客户机应用程序发送所述预先确认消息。
18.如权利要求17所述的方法,其特征在于,还包括:
接收来自所述服务器应用程序的确认消息,其中所述确认消息是对来自所述客户机应用程序的消息的响应;
分析所述确认消息的状态码;
响应于所述状态码指示成功状况,废弃所述确认消息;
接收从所述客户机应用程序发往所述服务器应用程序的第二消息;以及
响应于指示故障状况的确认消息的状态码,在接收到来自所述客户机应用程序的所述第二消息之后,向所述客户机应用程序发送指示故障状况的响应消息。
19.如权利要求16所述的方法,其特征在于,还包括:
接收来自服务器方代理的第二消息;
确定所述第二消息是否包括由所述服务器方代理预取的附加数据或对来自所述客户机应用程序的消息的响应;
响应于所述附加数据被所述服务器方代理预取的确定,将所述附加数据存储在所述结果高速缓存中;以及
响应于所述附加数据是对来自所述客户机应用程序的消息的响应的确定,向所述客户机应用程序发送所述第二消息。
20.如权利要求16所述的方法,其特征在于,还包括:
确定所述第二消息是否是高速缓存无效消息;以及
响应于所述第二消息是高速缓存无效消息的确定,使所述结果高速缓存的至少一部分无效。
21.如权利要求19所述的方法,其特征在于,还包括:
响应于接收到所述第二消息,确定所述结果高速缓存的容量;
响应于所述结果高速缓存是满负载的确定,向所述服务器方代理发送一个节流消息。
22.如权利要求21所述的方法,其特征在于,还包括:
响应于将包括所述数据的至少一部分的响应消息从所述结果高速缓存发送至所述客户机应用程序,从所述结果高速缓存中去除所述数据的至少一部分;以及
响应于从所述结果高速缓存中去除所述数据的至少一部分,向所述服务器方代理发送不节流消息。
23.一种适用于加速客户机-服务器事务的网络代理,所述网络代理包括:
适用于与客户机应用程序交换消息的第一网络接口;
适用于与服务器应用程序交换消息的第二网络接口;
适用于存储至少一个规则的规则存储,其中所述规则包括指定来自所述客户机应用程序的至少一个消息的集合的属性的规则元素,以及指定与所述至少一个消息的集合相关联的附加消息的至少一部分的动作元素;以及
匹配引擎,适用于将通过所述第一网络接口从所述客户机应用程序接收到的消息与所述规则存储的所述规则元素相比较,以响应于来自所述客户机应用程序的消息与所述规则元素的属性匹配从所述动作元素生成所述附加消息,并将所述附加消息发送至所述服务器应用程序。
24.如权利要求23所述的网络代理,其特征在于,还包括:
无效检查器,适用于确定所述第二消息是否使与所述客户机应用程序相关联的网络代理中所包括的结果高速缓存的至少一部分无效,并向与指定所述结果高速缓存的所述部分应被无效的客户机应用程序相关联的网络代理发送高速缓存无效消息。
25.如权利要求23所述的网络代理,其特征在于,还包括适用于以下功能的逻辑:
确定从所述服务器应用程序接收到的第二消息是否是对所述附加消息的响应;以及
将指示所述第二消息拟被存储在与所述客户机应用程序相关联的网络代理中所包括的结果高速缓存中的第二消息打包,并响应于所述第二消息是对所述附加消息的响应的确定,向与所述客户机应用程序相关联的网络代理发送所述打包的第二消息。
26.如权利要求25所述的网络代理,其特征在于,还包括适用于以下功能的逻辑:
确定所述第二消息是否是对来自所述客户机应用程序的消息的响应;以及
响应于所述第二消息是对从所述客户机应用程序接收到的消息的响应的确定,向所述客户机应用程序发送所述第二消息。
27.一种适用于加速客户机-服务器事务的网络代理,其特征在于,所述网络代理包括:
适用于与客户机应用程序交换消息的第一网络接口;
适用于与服务器应用程序交换消息的第二网络接口;
适用于存储包括代表所述客户机应用程序预取的响应消息在内的数据的结果高速缓存;以及
适用于以下功能的逻辑:
确定从客户机应用程序接收到并发往服务器应用程序的消息是否对应于结果高速缓存中的数据;
响应于所述消息不对应于所述结果高速缓存中的数据的确定,向所述服务器应用程序发送所述消息;以及
响应于所述消息对应于所述结果高速缓存中的数据的至少一部分的确定,向所述客户机应用程序发送存储在所述结果高速缓存中的响应消息。
28.如权利要求27所述的网络代理,其特征在于,还包括适用于以下功能的逻辑:
接收来自服务器方代理的第二消息;
确定所述第二消息是否包括由所述服务器方代理预取的附加数据还是对来自所述客户机应用程序的先前消息的响应;
响应于所述附加数据被所述服务器方代理预取的确定,将所述附加数据存储在所述结果高速缓存中;以及
响应于所述附加数据是对来自所述客户机应用程序的先前消息的响应的确定,向所述客户机应用程序发送所述第二消息。
29.如权利要求27所述的网络代理,其特征在于,还包括适用于以下功能的逻辑:
响应于从所述客户机应用程序接收到的消息不与所述结果高速缓存中的数据相对应的确定,生成预先确认消息并且所述客户机应用程序发送所述预先确认消息。
30.如权利要求29所述的网络代理,其特征在于,还包括适用于以下功能的逻辑:
接收来自所述服务器应用程序的确认消息,其中所述确认消息是对从所述客户机应用程序接收到消息的响应;
分析所述确认消息的状态码;
响应于指示成功状况的状态码废弃所述确认消息;以及
响应于指示故障状况的确认消息的状态码,在从所述客户机应用程序接收到后续消息之后,向所述客户机应用程序发送指示故障状况的响应消息。
CN2006800128935A 2005-03-15 2006-03-15 使用连接端点代理的基于规则的事务预取 Expired - Fee Related CN101606138B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US66245205P 2005-03-15 2005-03-15
US60/662,452 2005-03-15
US11/273,861 US7853699B2 (en) 2005-03-15 2005-11-14 Rules-based transaction prefetching using connection end-point proxies
US11/273,861 2005-11-14
PCT/US2006/009544 WO2006099542A2 (en) 2005-03-15 2006-03-15 Rules-based transaction prefetching using connection end-point proxies

Publications (2)

Publication Number Publication Date
CN101606138A true CN101606138A (zh) 2009-12-16
CN101606138B CN101606138B (zh) 2012-08-22

Family

ID=36992437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800128935A Expired - Fee Related CN101606138B (zh) 2005-03-15 2006-03-15 使用连接端点代理的基于规则的事务预取

Country Status (7)

Country Link
US (2) US7853699B2 (zh)
EP (1) EP1866786B1 (zh)
JP (1) JP4981022B2 (zh)
CN (1) CN101606138B (zh)
AU (1) AU2006222887B2 (zh)
IL (1) IL185950A (zh)
WO (1) WO2006099542A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003976A (zh) * 2014-12-16 2017-08-01 慧与发展有限责任合伙企业 基于可准许活动规则确定可准许活动

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364815B2 (en) 2005-03-18 2013-01-29 Riverbed Technology, Inc. Reliability and availability of distributed servers
US8473620B2 (en) * 2003-04-14 2013-06-25 Riverbed Technology, Inc. Interception of a cloud-based communication connection
US20060248194A1 (en) 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
US7756932B2 (en) * 2005-07-29 2010-07-13 Research In Motion Limited System and method for processing messages being composed by a user
US8438628B2 (en) * 2005-08-10 2013-05-07 Riverbed Technology, Inc. Method and apparatus for split-terminating a secure network connection, with client authentication
US8478986B2 (en) * 2005-08-10 2013-07-02 Riverbed Technology, Inc. Reducing latency of split-terminated secure communication protocol sessions
US8370583B2 (en) 2005-08-12 2013-02-05 Silver Peak Systems, Inc. Network memory architecture for providing data based on local accessibility
US8392684B2 (en) 2005-08-12 2013-03-05 Silver Peak Systems, Inc. Data encryption in a network memory architecture for providing data based on local accessibility
US8171238B1 (en) 2007-07-05 2012-05-01 Silver Peak Systems, Inc. Identification of data stored in memory
US8095774B1 (en) 2007-07-05 2012-01-10 Silver Peak Systems, Inc. Pre-fetching data into a memory
GB0517585D0 (en) * 2005-08-30 2005-10-05 Ramakrishna Madhusudana Intuitive search which delivers fast results on the mobile phone
US8929402B1 (en) 2005-09-29 2015-01-06 Silver Peak Systems, Inc. Systems and methods for compressing packet data by predicting subsequent data
US8811431B2 (en) 2008-11-20 2014-08-19 Silver Peak Systems, Inc. Systems and methods for compressing packet data
US8489562B1 (en) 2007-11-30 2013-07-16 Silver Peak Systems, Inc. Deferred data storage
US7962513B1 (en) 2005-10-31 2011-06-14 Crossroads Systems, Inc. System and method for defining and implementing policies in a database system
US8782393B1 (en) 2006-03-23 2014-07-15 F5 Networks, Inc. Accessing SSL connection data by a third-party
US8364467B1 (en) 2006-03-31 2013-01-29 Google Inc. Content-based classification
US8463843B2 (en) * 2006-05-26 2013-06-11 Riverbed Technology, Inc. Throttling of predictive ACKs in an accelerated network communication system
US7769834B2 (en) * 2006-05-30 2010-08-03 Riverbed Technology, Inc. System for selecting a proxy pair based on configurations of autodiscovered proxies on a network
US8755381B2 (en) 2006-08-02 2014-06-17 Silver Peak Systems, Inc. Data matching using flow based packet data storage
US8885632B2 (en) 2006-08-02 2014-11-11 Silver Peak Systems, Inc. Communications scheduler
US8799432B1 (en) * 2006-10-31 2014-08-05 Hewlett-Packard Development Company, L.P. Managed computer network caching requested and related data from remote computers
US8209748B1 (en) 2007-03-27 2012-06-26 Amazon Technologies, Inc. Protecting network sites during adverse network conditions
US20080244012A1 (en) * 2007-03-30 2008-10-02 International Business Machines Corporation Instant messaging with reduced message overhead
KR20080090976A (ko) * 2007-04-06 2008-10-09 엘지전자 주식회사 콘텐츠 처리 방법 및 그 단말
US8966053B2 (en) * 2007-07-12 2015-02-24 Viasat, Inc. Methods and systems for performing a prefetch abort operation for network acceleration
US7831621B1 (en) 2007-09-27 2010-11-09 Crossroads Systems, Inc. System and method for summarizing and reporting impact of database statements
US9654328B2 (en) 2007-10-15 2017-05-16 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US8307115B1 (en) 2007-11-30 2012-11-06 Silver Peak Systems, Inc. Network memory mirroring
US8966011B2 (en) * 2007-12-28 2015-02-24 Echostar Technologies L.L.C. Performance enhancing proxy
US8442052B1 (en) 2008-02-20 2013-05-14 Silver Peak Systems, Inc. Forward packet recovery
US8935336B2 (en) * 2008-06-18 2015-01-13 Cisco Technology, Inc. Optimizing program requests over a wide area network
US9717021B2 (en) 2008-07-03 2017-07-25 Silver Peak Systems, Inc. Virtual network overlay
US10805840B2 (en) 2008-07-03 2020-10-13 Silver Peak Systems, Inc. Data transmission via a virtual wide area network overlay
US10164861B2 (en) 2015-12-28 2018-12-25 Silver Peak Systems, Inc. Dynamic monitoring and visualization for network health characteristics
US8743683B1 (en) 2008-07-03 2014-06-03 Silver Peak Systems, Inc. Quality of service using multiple flows
US8442059B1 (en) 2008-09-30 2013-05-14 Gridiron Systems, Inc. Storage proxy with virtual ports configuration
US8838850B2 (en) * 2008-11-17 2014-09-16 Violin Memory, Inc. Cluster control protocol
US8417895B1 (en) 2008-09-30 2013-04-09 Violin Memory Inc. System for maintaining coherency during offline changes to storage media
US8443150B1 (en) 2008-11-04 2013-05-14 Violin Memory Inc. Efficient reloading of data into cache resource
US8788758B1 (en) 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8707043B2 (en) * 2009-03-03 2014-04-22 Riverbed Technology, Inc. Split termination of secure communication sessions with mutual certificate-based authentication
US8667366B1 (en) 2009-04-17 2014-03-04 Violin Memory, Inc. Efficient use of physical address space for data overflow and validation
US8650362B2 (en) 2009-04-17 2014-02-11 Violin Memory Inc. System for increasing utilization of storage media
US8713252B1 (en) 2009-05-06 2014-04-29 Violin Memory, Inc. Transactional consistency scheme
US9069676B2 (en) 2009-06-03 2015-06-30 Violin Memory, Inc. Mapping engine for a storage device
US8402198B1 (en) 2009-06-03 2013-03-19 Violin Memory, Inc. Mapping engine for a storage device
US8656419B2 (en) * 2009-07-02 2014-02-18 Ca, Inc. Dynamic distributed evaluator
US8402246B1 (en) * 2009-08-28 2013-03-19 Violin Memory, Inc. Alignment adjustment in a tiered storage system
US20110137909A1 (en) * 2009-12-07 2011-06-09 Sap Ag Location independent execution of user interface operations
GB0922608D0 (en) * 2009-12-23 2010-02-10 Vratskides Alexios Message optimization
US8700892B2 (en) 2010-03-19 2014-04-15 F5 Networks, Inc. Proxy SSL authentication in split SSL for client-side proxy agent resources with content insertion
US9026589B1 (en) * 2010-05-04 2015-05-05 Amazon Technologies, Inc. Stubbing techniques in distributed-services environments
US8832384B1 (en) 2010-07-29 2014-09-09 Violin Memory, Inc. Reassembling abstracted memory accesses for prefetching
US8959288B1 (en) 2010-07-29 2015-02-17 Violin Memory, Inc. Identifying invalid cache data
US8972689B1 (en) 2011-02-02 2015-03-03 Violin Memory, Inc. Apparatus, method and system for using real-time performance feedback for modeling and improving access to solid state media
US8635416B1 (en) 2011-03-02 2014-01-21 Violin Memory Inc. Apparatus, method and system for using shadow drives for alternative drive commands
US8516041B1 (en) * 2011-05-18 2013-08-20 Amazon Technologies, Inc. Pre-fetching asynchronously requested content
CA2828056A1 (en) * 2011-05-24 2012-11-29 Isa Auctionata Auktionen Ag Computer system for the exchange of messages
US8892708B2 (en) * 2011-07-11 2014-11-18 Cisco Technology, Inc. Placement of service delivery locations of a distributed computing service based on logical topology
US9130991B2 (en) 2011-10-14 2015-09-08 Silver Peak Systems, Inc. Processing data packets in performance enhancing proxy (PEP) environment
US9626224B2 (en) 2011-11-03 2017-04-18 Silver Peak Systems, Inc. Optimizing available computing resources within a virtual environment
US8886752B2 (en) * 2011-11-21 2014-11-11 Sony Computer Entertainment America System and method for optimizing transfers of downloadable content
EP2791819B1 (en) 2011-12-14 2017-11-01 Level 3 Communications, LLC Content delivery network
EP2813103A2 (en) 2012-02-10 2014-12-17 Apple Inc. Methods and apparatus for correcting error events associated with identity provisioning
US10395270B2 (en) 2012-05-17 2019-08-27 Persado Intellectual Property Limited System and method for recommending a grammar for a message campaign used by a message optimization system
US9660874B2 (en) 2012-12-13 2017-05-23 Level 3 Communications, Llc Devices and methods supporting content delivery with delivery services having dynamically configurable log information
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
US10701148B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having storage services
US10791050B2 (en) 2012-12-13 2020-09-29 Level 3 Communications, Llc Geographic location determination in a content delivery framework
US10701149B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having origin services
US20140337472A1 (en) 2012-12-13 2014-11-13 Level 3 Communications, Llc Beacon Services in a Content Delivery Framework
US10652087B2 (en) 2012-12-13 2020-05-12 Level 3 Communications, Llc Content delivery framework having fill services
US9531647B1 (en) * 2013-03-15 2016-12-27 Cavium, Inc. Multi-host processing
WO2014192213A1 (ja) * 2013-05-31 2014-12-04 日本電気株式会社 分散処理システム
US10296240B2 (en) 2014-04-28 2019-05-21 Hewlett Packard Enterprise Development Lp Cache management
US9348674B2 (en) * 2014-07-25 2016-05-24 Netapp, Inc. Aysnchronous communications having compounded responses
US9948496B1 (en) 2014-07-30 2018-04-17 Silver Peak Systems, Inc. Determining a transit appliance for data traffic to a software service
US9875344B1 (en) 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
EP3289476B1 (en) 2015-04-30 2022-01-26 Fortinet, Inc. Computer network security system
US10061852B1 (en) * 2015-05-19 2018-08-28 Amazon Technologies, Inc. Transparent proxy tunnel caching for database access
US10313256B2 (en) * 2015-05-21 2019-06-04 Intel Corporation Apparatus and methods for adaptive data compression
US10504137B1 (en) 2015-10-08 2019-12-10 Persado Intellectual Property Limited System, method, and computer program product for monitoring and responding to the performance of an ad
US10437883B2 (en) * 2015-11-24 2019-10-08 Cisco Technology, Inc. Efficient graph database traversal
US10832283B1 (en) 2015-12-09 2020-11-10 Persado Intellectual Property Limited System, method, and computer program for providing an instance of a promotional message to a user based on a predicted emotional response corresponding to user characteristics
US9591047B1 (en) 2016-04-11 2017-03-07 Level 3 Communications, Llc Invalidation in a content delivery network (CDN)
US10432484B2 (en) 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics
US10021204B2 (en) * 2016-07-12 2018-07-10 Ca, Inc. Test proxy between client applications and web services
US9967056B1 (en) 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
JP6592616B2 (ja) 2016-12-13 2019-10-16 オリンパス株式会社 中継装置
KR101962426B1 (ko) * 2016-12-27 2019-03-26 한국과학기술원 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US10771394B2 (en) 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US11044202B2 (en) 2017-02-06 2021-06-22 Silver Peak Systems, Inc. Multi-level learning for predicting and classifying traffic flows from first packet data
US10257082B2 (en) 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows
US11212210B2 (en) 2017-09-21 2021-12-28 Silver Peak Systems, Inc. Selective route exporting using source type
CN109672545B (zh) * 2017-10-16 2022-04-15 中兴通讯股份有限公司 一种处理链路检测报文的方法、装置、设备及存储介质
US10637721B2 (en) 2018-03-12 2020-04-28 Silver Peak Systems, Inc. Detecting path break conditions while minimizing network overhead
US10826941B2 (en) 2018-05-10 2020-11-03 Fortinet, Inc. Systems and methods for centrally managed host and network firewall services
CN112968825B (zh) * 2021-01-29 2023-05-26 北京字节跳动网络技术有限公司 一种消息发送方法、装置、设备及存储介质

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996025801A1 (en) * 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US5754774A (en) 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5926834A (en) * 1997-05-29 1999-07-20 International Business Machines Corporation Virtual data storage system with an overrun-resistant cache using an adaptive throttle based upon the amount of cache free space
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
JPH11149405A (ja) * 1997-11-14 1999-06-02 Hitachi Ltd Wwwキャッシュシステムおよびwwwデータの先読み方法
US6173318B1 (en) * 1997-12-16 2001-01-09 Intel Corporation Method and apparatus for pre-fetching data for an application using a winsock client layered service provider and a transparent proxy
US6959318B1 (en) * 1998-03-06 2005-10-25 Intel Corporation Method of proxy-assisted predictive pre-fetching with transcoding
US6415329B1 (en) 1998-03-06 2002-07-02 Massachusetts Institute Of Technology Method and apparatus for improving efficiency of TCP/IP protocol over high delay-bandwidth network
US6144996A (en) * 1998-05-13 2000-11-07 Compaq Computer Corporation Method and apparatus for providing a guaranteed minimum level of performance for content delivery over a network
US6578073B1 (en) * 1998-05-13 2003-06-10 Hewlett-Packard Development Company, L.P. Accelerated content delivery over a network using reduced size objects
US6330561B1 (en) * 1998-06-26 2001-12-11 At&T Corp. Method and apparatus for improving end to end performance of a data network
US6178461B1 (en) 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
JP4299911B2 (ja) 1999-03-24 2009-07-22 株式会社東芝 情報転送システム
US6742043B1 (en) * 2000-01-14 2004-05-25 Webtv Networks, Inc. Reformatting with modular proxy server
US8291007B2 (en) * 2000-02-22 2012-10-16 Flash Networks Ltd System and method to accelerate client/server interactions using predictive requests
EP1330720B1 (en) * 2000-07-25 2008-05-28 Juniper Networks, Inc. Network architecture and methods for transparent on-line cross-sessional encoding and transport of network communications data
WO2002015519A2 (en) * 2000-08-17 2002-02-21 Mobileum, Inc. Method and system for wireless voice channel/data channel integration
WO2002044915A1 (en) * 2000-11-30 2002-06-06 Appfluent Technology, Inc. System and method for delivering dynamic content
US7113935B2 (en) * 2000-12-06 2006-09-26 Epicrealm Operating Inc. Method and system for adaptive prefetching
US20020092026A1 (en) * 2001-01-09 2002-07-11 International Business Machines Corporation Method and apparatus for broadcast delivery of content to a client-side cache based on user preferences
JP2002373109A (ja) * 2001-06-13 2002-12-26 Nec Corp データ先読みシステムおよび先読み方法
US7230949B2 (en) * 2001-08-24 2007-06-12 Juniper Networks, Inc. Efficient method and system for automatic discovery and verification of optimal paths through a dynamic multi-point meshed overlay network
JP3785343B2 (ja) 2001-10-02 2006-06-14 日本電信電話株式会社 クライアントサーバシステム及びクライアントサーバシステムにおけるデータ通信方法
US20030212739A1 (en) * 2002-05-09 2003-11-13 Antoine Boucher Store and forward architecture
US7953820B2 (en) * 2002-09-11 2011-05-31 Hughes Network Systems, Llc Method and system for providing enhanced performance of web browsing
US7650416B2 (en) 2003-08-12 2010-01-19 Riverbed Technology Content delivery for client-server protocols with user affinities using connection end-point proxies
US7120666B2 (en) 2002-10-30 2006-10-10 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
US7318100B2 (en) 2003-04-14 2008-01-08 Riverbed Technology, Inc. Cooperative proxy auto-discovery and connection interception
US8069225B2 (en) 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
EP1887484B1 (de) * 2002-11-06 2009-10-14 Tellique Kommunikationstechnik GmbH Verfahren zum vorabübertragen strukturierter datenmengen zwischen einer clienteinrichtung und einer servereinrichtung
US7650415B1 (en) * 2003-03-10 2010-01-19 Network Equipment Technologies, Inc. Gateway for conversion of messages between multiple protocols using separate sessions
US7698453B2 (en) * 2003-07-29 2010-04-13 Oribital Data Corporation Early generation of acknowledgements for flow control
US20050234643A1 (en) * 2003-11-21 2005-10-20 Charles Abraham Method and apparatus for managing network elements in a satellite navigation data distribution system
US7600230B2 (en) * 2004-07-06 2009-10-06 Oracle International Corporation System and method for managing security meta-data in a reverse proxy

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003976A (zh) * 2014-12-16 2017-08-01 慧与发展有限责任合伙企业 基于可准许活动规则确定可准许活动
CN107003976B (zh) * 2014-12-16 2021-05-07 微福斯有限责任公司 基于可准许活动规则确定可准许活动

Also Published As

Publication number Publication date
US20110238738A1 (en) 2011-09-29
WO2006099542A3 (en) 2009-04-16
JP4981022B2 (ja) 2012-07-18
IL185950A (en) 2013-05-30
IL185950A0 (en) 2008-01-06
AU2006222887B2 (en) 2011-08-04
US9009252B2 (en) 2015-04-14
WO2006099542A2 (en) 2006-09-21
AU2006222887A1 (en) 2006-09-21
US20060212524A1 (en) 2006-09-21
JP2008537814A (ja) 2008-09-25
EP1866786A2 (en) 2007-12-19
EP1866786B1 (en) 2016-05-11
EP1866786A4 (en) 2013-12-04
CN101606138B (zh) 2012-08-22
US7853699B2 (en) 2010-12-14

Similar Documents

Publication Publication Date Title
CN101606138B (zh) 使用连接端点代理的基于规则的事务预取
US6665674B1 (en) Framework for open directory operation extensibility
CN100369026C (zh) 用于客户-服务器通信系统的事务加速器
US7518986B1 (en) Push-based hierarchical state propagation within a multi-chassis network device
US8161472B2 (en) Methods and apparatus for incorporating a partial page on a client
CN102197627B (zh) 组播流量收敛的改善
US20030072263A1 (en) Method and apparatus for monitoring and logging the operation of a distributed processing system
US20130128775A1 (en) Link data transmission method, node and system
CN102483702A (zh) 用于网络设备中的虚拟机的网络话务处理流水线
CN109327511B (zh) 一种基于http协议的数据请求方法和服务器
US7934218B2 (en) Interprocess communication management using a socket layer
US20090094263A1 (en) Enhanced utilization of network bandwidth for transmission of structured data
Chopra et al. Bungie: Improving fault tolerance via extensible application-level protocols
US8627412B2 (en) Transparent database connection reconnect
Cooper An argument for soft layering of protocols
US9800672B2 (en) Computer work distribution system and method
WO2010019578A2 (en) Message tracking system and method
Banks et al. HTTPR specification
CN109155792B (zh) 更新以内容为中心的网络中的传输栈
JP2000295294A (ja) ネットワークシステム及びネットワーク制御方法、信号送受信装置
JP5085163B2 (ja) メッセージ送受信システム及び送受信方法
CN107332891A (zh) Http请求处理的方法、服务器及客户端
JP5320571B2 (ja) ノード間データ応答システム
GB2426161A (en) Networking via a communication layer
Kobus et al. RESTGroups for resilient Web services

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
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Wu Zhixi

Inventor after: Keswani Vivasvat

Inventor after: Larson Christopher

Inventor before: Wu David Tze-si

Inventor before: Keswani Vivasvat

Inventor before: Larson Christopher

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: DAVID TZE-SI WU VIVASVAT KESWANI CHRISTOPHER LARSON TO: WU ZHIXI VIVASVAT KESWANI CHRISTOPHER LARSON

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: 20120822

Termination date: 20160315