CN103297494A - 用于与具有服务器响应预期的分布式应用交互的方法和*** - Google Patents
用于与具有服务器响应预期的分布式应用交互的方法和*** Download PDFInfo
- Publication number
- CN103297494A CN103297494A CN2013100532920A CN201310053292A CN103297494A CN 103297494 A CN103297494 A CN 103297494A CN 2013100532920 A CN2013100532920 A CN 2013100532920A CN 201310053292 A CN201310053292 A CN 201310053292A CN 103297494 A CN103297494 A CN 103297494A
- Authority
- CN
- China
- Prior art keywords
- user
- request
- server response
- current
- server
- 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
Links
- 230000004044 response Effects 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000009826 distribution Methods 0.000 claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 12
- 230000007246 mechanism Effects 0.000 claims description 11
- 230000000295 complement effect Effects 0.000 claims 1
- 230000003993 interaction Effects 0.000 abstract description 2
- 238000005096 rolling process Methods 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241001275944 Misgurnus anguillicaudatus Species 0.000 description 1
- 241000872198 Serjania polyphylla Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明的实施方式提供了用于与具有服务器响应预期的分布式应用交互的方法和***。提出一种用于在分布式应用的客户端侧与分布式应用交互的解决方案。一种对应方法(400)包括以下步骤:接收(412)用户请求的当前提交,向分布式应用的服务器侧传输(415-427)传输用户请求的指示,用于接收对于用户请求的当前提交的当前服务器响应,如果在关于用户请求的当前提交的时间限制内未从服务器侧接收到当前服务器响应则向当前服务器响应分配(439-442)默认值,从向当前服务器响应分配默认值开始对针对分布式应用执行的一组操作进行日志记录(445-448),从服务器侧接收(466)当前服务器响应的实际值,以及如果实际值不同于默认值,则回滚(484)日志记录的操作并且将当前服务器响应重置(487)成实际值。
Description
技术领域
根据本发明一个或者多个实施例的解决方案涉及数据处理领域。更具体而言,本解决方案涉及分布式应用。
背景技术
分布式应用在现代数据处理***中、尤其在因特网中司空见惯。在分布式应用中,服务器计算机(或者简称为服务器)提供可以被大量用户利用的服务,这些用户借助他们的客户端计算机(或者简称为客户端)访问服务器——一般通过通信网络远程进行。以这一方式,有可能将分布式应用分成处理层(在它的服务器侧)和呈现层(在它的客户端侧);这允许在服务器中集中处理操作,该服务器与所有客户端共享它的资源(从而简化分布式应用和客户端的管理)。分布式应用的典型示例是访问因特网中的网站。在这一情况下,每个客户端的用户利用web浏览器(或者简称为浏览器)以下载网站希望得到的网页;用户然后可以与网页交互用于录入数据、提交命令和显示信息。
与分布式应用的交互涉及到在客户端上提交的一系列用户请求(通过web浏览器或者任何其它用户接口),然后它们被传输到服务器;服务器处理用户请求并且向客户端返回对应服务器响应。一般而言,在提交每个用户请求之后,用户必须在继续与分布式应用的交互之前等待,直至从服务器返回对应服务器响应。
分布式应用的问题在于:在关键操作状况中,服务器响应可以在客户端上接收相对于对应用户请求的提交有相对长的延迟。例如这一延迟的原因可能是服务器的压力状况,这是由于技术问题(即,有限资源或者故障)或者可伸缩性问题(即,大量客户端访问它)所致的;实际上,在这一情况下,服务器不能立即对用户请求进行服务。另外,这一延迟的另一原因可能是由于技术问题(即,有限基础设施或者断线)或者可伸缩性问题(即高流量)所致的通信网络的小带宽;实际上,在这一情况下,在客户端与服务器之间的信息传输减缓。
因此,在关键操作状况中,用户必须等待相对长的时间(而无所事事);这一等待时间可能比在标准操作状况中针对正常服务水平而预计的等待时间长得多(例如数十秒比对数秒)。所有上述情况可能让用户颇为厌烦。在任何情况下,这显著地降低分布式应用的响应性和性能。
一般通过增加服务器的资源和通信网络的基础设施及其冗余性来解决上文提到的问题;然而这涉及到高成本并且它可能在具体情形中不切实际。
另外,也有可能将高速缓存技术应用于服务器响应。
具体而言,可以在代理计算机或者简称为代理(与客户端接近、在它们与服务器之间)中实施高速缓存技术;在这一情况下,服务器响应被保存到代理上,以便在接下来提交对应用户请求时被从它们取回(而不是再次前往服务器)。在JP-A-2004078756(通过引用将其全部公开内容结合于此)中描述这些高速缓存技术的示例。
备选地,也有可能在客户端中(例如在它的web浏览器中)应用高速缓存技术;在这一情况下,向客户端的高速缓存存储器上本地保存服务器响应,以便在接下来提交对应用户请求时从它直接取回服务器响应(而无需向服务器传输它们)。在US-A-2010/0138485,US-A-2009/0094377和“Caching in HTTP-http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html”(通过引用将其全部公开内容结合于此)中描述这些高速缓存技术的示例;另外,如在US-B-7096418(通过引用将其全部公开内容结合于此)中描述的那样,也有可能当在客户端的高速缓存存储器中的服务器响应不再最新时使它们无效(以免向用户提供错误信息)。
然而,高速缓存技术(在代理水平或者在客户端水平)仅对静态用户请求起作用,这些静态用户的请求的服务器响应一般沿着其不同提交(比如图像、背景和符号)随时间保持相同。反言之,这些技术在动态用户请求(例如包括可变参数)的情况下完全无效;实际上,在这一情况下,应当每次向服务器传输用户请求以便获得与之对应的新服务器响应。
此外,如在US-A-2009/0049243(通过引用将其全部公开内容结合于此)中描述的那样,也有可能将关于客户端上高速缓存的涉及服务器响应的对象的信息与对应用户请求一起向服务器传输;以这一方式,返回给客户端的服务器响应仅包括关于(在客户端上已经可用)这些对象的增量,以便减少通过通信网络传输的信息量。然而,当这一(减少的)服务器响应迟到时仍然面临上文提到的相同弊端。
发明内容
一般而言,根据本发明一个或者多个实施例的解决方案基于当服务器响应迟到时在客户端上预期它们这一想法。
具体而言,在独立权利要求中阐述根据本发明具体实施例的解决方案的一个或者多个方面,并且在从属权利要求中阐述相同解决方案的有利特征而通过引用将所有权利要求的措词逐字地结合于此(参照根据本发明的一个实施例的解决方案的具体方面提供在必要修改下适用于其每个其它方面的任何有利特征)。
更具体而言,根据本发明的一个实施例的解决方案的一个方面提供一种用于在分布式应用的客户端侧与分布式应用交互的方法。在这一情况下,当针对用户请求的服务器响应迟到时向服务器响应分配默认值;另外,在(以后接收的)服务器响应的实际值不同于这一默认值时,此后针对分布式应用执行的操作可以被回滚。
根据本发明的一个实施例的解决方案的又一方面提供一种对应的计算机程序(和对应的计算机程序产品)。
根据本发明的一个实施例的解决方案的不同方面提供一种对应的数据处理***。
附图说明
参照将结合附图阅读的仅通过非限制指示来给出的下文具体描述,将最好地理解根据本发明一个或者多个实施例的解决方案及其更多特征和优点(其中为了简化,用相同或者相似标号表示对应要素并且未重复它们的说明,而且每个实体的名称一般用来表示它的类型和它的属性——比如值、内容和表示)。具体而言:
图1示出根据本发明的一个实施例的解决方案可以被应用于其中的数据处理基础设施的示意框图,
图2示出根据本发明的一个实施例的解决方案的示例性应用的图形表示,
图3示出可以用来实施根据本发明的一个实施例的解决方案的的主要软件组件,以及
图4A-图4B示出活动图,该活动图描述涉及根据本发明的一个实施例的解决方案的一个实现方式的活动流程。
具体实施方式
具体参照图1,示出根据本发明的一个实施例的解决方案可以被应用于其中的数据处理基础设施100的示意框图。
数据处理基础设施100具有通常基于因特网的分布式架构;因特网由通过全球通信网络110相互连接的数以百万计的服务器计算机(或者简称为服务器)105形成。服务器105的子集,公知为万维网(或者简称为web),允许访问对应网站;每个网站包括(从主页开始通过对应超链接相互连接的)许多网页。每个网页由(在HTML语言中格式化的)超文本文档定义,通过HTTP协议访问该文档;出于这一目的,借助由根据标准语法而格式化的唯一串构成的对应URL来标识和本地化网页。客户端计算机(或者简称为客户端)115的用户访问因特网(通过作为访问提供商来操作的计算机,在图中未示出)以便利用服务器105提供的服务(并且具体下载所需网页)。
通用客户端115(例如由膝上型计算机构成)包括基部150,该基部容纳控制它的操作的电子电路;通常,这些电子电路包括中央处理单元、工作存储器、硬盘、输入/输出端口(例如为USB类型)、无线网络适配器(例如为Wi-Fi类型)等。基部150也具有用于读取/写入光盘155(例如CD和DVD)的驱动器。监视器160(用来在其屏幕上显示图像)铰接到基部150;以这一方式,监视器160可以打开(在使用时)和向下折叠到基部150上(在不用时)。膝上型计算机115的操作借助集成于基部150中的键盘165和触板170进行控制。膝上型计算机115可以经由AC适配器由市电电力供电,但是普遍借助基部150中装配的可再充电电池来使用它。
在图2中示出根据本发明的一个实施例的解决方案的示例性应用的图形表示。
具体而言,通用客户端的用户向分布式应用的客户端侧提交用户请求(例如通过选择在它的监视器上显示的网页中的命令)。响应于此,向关联服务器传输这一用户请求的指示,该服务器实施相同分布式应用的服务器侧。分布式应用的客户端侧然后进入对于来自服务器的针对该用户请求的提交的服务器响应的等待状况(例如通过在客户端的监视器上显示沙漏)。
在根据本发明的一个实施例的解决方案中,如果在预定义时间限制内未接收到关于用户请求的提交的服务器响应,则向其分配默认值(例如,通过将服务器响应设置成针对相同用户请求在以往以最高频率接收的值)。
用户然后可以与分布式应用正常交互(如同已经接收服务器响应);然而,现在在客户端上对针对分布式应用执行的任何操作进行日志记录(从向服务器响应分配默认值开始(包括该分配))。
此后,从服务器接收服务器响应的实际值。
如果服务器响应的实际值等于先前已经向其分配的默认值,则分布式应用的操作正常继续(而可以删除日志记录的操作)。
反之,如果服务器响应的实际值不同于先前已经向其分配的默认值,则回滚已经从向服务器响应分配(错误)默认值开始执行的日志记录的操作,以便返回到在向服务器响应分配默认值之前的分布式应用的状态(而然后可以删除日志记录的操作)。然后,将服务器响应重置成它的实际值以便恢复分布式应用的正确操作。
当可能在客户端上接收服务器响应而从提交对应用户请求起有相对长的延迟(例如由于服务器的压力状况和/或通信网络的窄带宽)时,上文描述的解决方案允许减少用户在关键操作状况中的等待时间。以这一方式,等待时间可以如针对在标准操作状况中的正常服务水平而预计的那样得以维持。这显著地提高了分布式应用的响应性和性能(因为服务器响应表现为被预先接收到用户)。
在统计基础上实现上文提到的优点。实际上,当默认值正确(即等于实际值)时,减少用户的等待时间(关于用户请求的提交的服务器响应的延迟与时间限制之间的差值);反之,当默认值错误(即不同于实际值)时,用户的等待时间(被按照浪费在回滚日志记录的操作上的附加时间)增加。因此,如果恰当设置默认值,则使默认值正确(继而等待时间减少)的概率远高于使它错误(并且等待时间增加)的概率;另外,如果服务器响应对分布式应用的操作具有少量影响(例如它们涉及根据网页的小对象的改变而对网页的简单刷新),则(用于在默认值错误时回滚日志记录的操作的)等待时间的增加远低于它的减少(当默认值正确时)。作为结果,平均而言减少了等待时间;例如,如果在70%的情况下节省10.00秒并且在剩余30%的情况下损失1.00秒,则等待时间的平均减少等于7,70秒。
上文描述的结果是通过仅作用于分布式应用的客户端侧来实现。因此,这一解决方案提供很高的可伸缩性。
在图3中示出可以用来实施根据本发明的一个实施例的解决方案的主要软件组件。
用标号300作为整体表示这些软件组件。信息(程序和数据)通常存储于硬盘上并且在程序运行时与操作***和其它应用程序(在图中未示出)一起(至少部分地)加载到通用客户端115的工作存储器中。程序初始地例如从光盘安装到硬盘。
具体而言,web浏览器(或者简称为浏览器)305用于客户端115的用户在因特网上冲浪。出于这一目的,浏览器305允许用户输入所需网页的URL,然后(从在图中未示出的对应服务器)向客户端上下载这些网页用于显示它们;另外,浏览器305允许用户借助对应超链接快速移向(在相同网站中或者在不同网站中的)其它网页。用户可以用不同方式与每个网页本地交互;具体而言,用户可以提交用户请求——例如通过一般在录入关联参数之后(例如通过利用键盘填写输入字段)用鼠标点击对应命令。这些用户请求中的一些用户请求引起代表它们的命令向对应服务器传输。通常,浏览器305也实施高速缓存机制,其中对静态用户请求的服务器响应被保存到浏览器的高速缓存存储器上;以这一方式,当将来再次提交相同(静态)用户请求时,可以从高速缓存存储器直接取回对应服务器请求(而无需向服务器再次传输它的命令)。
代之以参照动态用户请求(需要每次向服务器传输它们的命令以便获得新服务器响应),浏览器305可以利用先前已经与网页一起下载的异步引擎310;例如异步引擎310可以基于如在“Ajax:Asynchronously moving forward-http://www.interaktonline.com/files/art/ajax/AJAX%20-%20Asynchronously%20Moving%20Forward.pdf”、“Responsive web applications usingAjax-http://travi.org/about/AjaxSurvey.pdf”和“Ajax logger clientmonitoring technique with high installability & scalability-http://www.usenix.org/event/lisa07/posters/nakamura.pdf”中描述的Ajax技术。在这一情况下,针对用户请求的每次提交,浏览器305向异步引擎310发送对应脚本调用——例如借助包装器(比如基于Dojo工具包),该包装器提取在浏览器305的各种实现方式周围的对应对象;脚本调用未被阻止,从而用户可以继续与网页交互。异步引擎310向服务器传输代表用户请求的命令;一旦从服务器接收到对于用户请求的提交的服务器响应,异步引擎310将其返回到对网页的对应部分进行更新(而不完全重载它)的浏览器310。在这一情况下,如果浏览器305实施高速缓存机制,则通过向用户请求的提交添加唯一代码来(例如基于当前时间戳或者随机数)绕过这一高速缓存机制,以便防止浏览器305从高速缓存存储器取回对应服务器响应。
在根据本发明的一个实施例的解决方案中,利用监视器315扩展异步引擎310。监视器315与异步引擎310交互以监视用户请求(或者它们中的至少部分)的提交和对应服务器响应;另外,监视器315测量服务器响应关于用户请求的对应提交的延迟。监视器315将对应历史信息保存在存储库320上。例如历史信息包括频率表;针对由<用户请求/服务器响应值>对所定义的每个关键词,频率表存储已经针对这一用户请求接收服务器响应的这一个值的次数的计数器。另外,历史信息包括延迟表;针对用户请求定义的每个关键词,延迟表存储已经针对这一用户请求接收的所有服务器响应的延迟的平均值。就这一点而言,如果相同用户请求的提交包括不同唯一代码(以绕过浏览器305的高速缓存机制),在频率表和延迟表的关键词中丢弃这些唯一代码(以便避免将它们视为不同用户请求)。
利用预测器325进一步扩展异步引擎310。监视器305与预测器325交互,用于由异步引擎310提取将向未及时接收的每个服务器响应分配的默认值;具体而言,预测器325访问存储库320,以根据对应历史信息设置默认值。预测器325反过来控制日志记录器330,该日志记录器将从向每个服务器响应分配默认值开始针对网页执行的任何操作在对应存储库335上进行日志记录。
监视器315还负责在默认值已经被分配给每个服务器响应之后,将从服务器接收的每个服务器响应的实际值与这一默认值进行比较。异步引擎310进一步利用监视器315控制的回滚器340进行扩展。针对其实际值不同于默认值的每个服务器响应,回滚器340访问存储库335用于在浏览器305中回滚对应的日志记录的操作(然后删除它们)。
可以将上文描述的模块实施为浏览器305原本支持的纯脚本;在这一情况下,脚本一般在沙盒中执行(该沙盒提供紧密控制的资源集以便它们在客户端115中执行,特别地防止向它的海量存储器上写入任何文件);在这一情况下,向浏览器305的高速缓存存储器上存储所需信息。备选地,可以将相同模块实施为认证的小程序或者实施为浏览器305的插件(以便能够向客户端115的海量存储器上存储所需信息)。
在图4A-图4B中示出活动图,该活动图描述涉及根据本发明的一个实施例的解决方案的一个实现方式的活动流程。
具体而言,该图代表可以实施的用于用方法400在通用分布式应用的客户端侧与通用分布式应用交互的示例性过程。方法400在黑色开始圆圈403开始,然后一旦向浏览器请求所需网页(例如通过起动它、然后向其地址框中录入网页的URL)就转向块406。响应于这一动作,浏览器在块409从它的服务器下载网页的HTML定义(通过向其发送对应命令);浏览器然后通过解译网页的HTML定义来向专用窗口中绘制网页,并且它加载与网页关联的任何脚本(包括如上文扩展的异步引擎)。
一旦客户端的用户提交涉及到与服务器的任何交互的用户请求(例如用于显示将从服务器下载到网页的图形),活动流程就转向块412。响应于此,浏览器在块415向异步引擎发送针对与用户请求对应的脚本的调用。响应于此,异步引擎在块418验证针对这一用户请求的上文描述的预期特征的启用(用于在迟到时预期它的服务器响应);例如可以通过在脚本中断言预期标志来启用预期特征。以这一方式,有可能有选择地仅在需要时启用预期特征;例如预期特征可以针对如下用户请求而被启用,该用户请求的服务器响应根据某一规律和/或以相对慢的方式改变(从而可以用可接受的准确程度预测它们的默认值),然而预期特征可以针对如下用户请求而被禁用,该用户请求的服务器响应完全不可预测或者绝对需要有它们的正确值。
如果预期特征被启用(即,断言预期标志),则方法400转向块421,其中监视器向(在监视器中未决(pending)——即,使预期特征被启用并且等待对应当前服务器响应——的用户请求的当前提交的)未决表中添加针对用户请求的这一当前提交的记录;该记录包括用户请求的当前提交的时间戳和(初始解断言的)默认标志,该默认标志指示是否已经向对应的当前服务器响应分配默认值。另外,监视器在块424根据对应历史信息设置用于接收当前服务器响应的时间限制;例如将这一时间限制设置成对应(如在延迟表中针对用户请求指示的,该延迟表被通过丢弃用来绕过浏览器的高速缓存机制的用户请求的当前提交的唯一代码来查询)平均延迟的预定义倍数——比如它的1-3倍,但是在任一情况下都在浏览器的用于服务器响应的常规超时以下。方法400然后继续进行到块427;当预期特征被禁用(即,预期标志被解断言)时也从块418直接到达相同点。在这一点,异步引擎通过传输与用户请求对应的命令来连接到服务器,并且监听对应套接字而等待接收对用户请求的当前提交的当前服务器响应。
监视器在块430连续轮询使预期特征启用的用户请求的当前提交,这些用户请求等待对应当前服务器响应(如在未决表中所示)、但是尚未被分配默认值(即默认标志解断言)。针对用户请求的这些当前提交中的每个当前提交,监视器在块433验证(如在未决表中所示)对应时间限制是否已经到期。如果到期,则活动流程转向块436;在这一阶段中,预测器支持通过在日志表中创建对应记录来对针对浏览器中的当前网页执行的操作进行日志记录。然后预测器在块439根据对应历史信息设置(对用户请求的这一当前提交的)当前服务器响应的默认值。具体而言,将默认值设置成对于用户请求已经最多次接收的服务器响应的值(如在频率表中针对用户请求所示的那样,该频率表被通过丢弃用来绕过浏览器的高速缓存机制的用户请求的当前查询的唯一代码来查询)。以这一方式,默认值的设置基于了概率方式,该概率方式提供最可能正确的默认值。
出于这一目的,当频率表针对每对<用户请求/服务器响应值>存储已经针对这一用户请求接收到服务器响应的这一个值的次数的计数器时,预测器按照用户请求定义的关键词来查询频率表,寻找具有最高计数器的记录。例如以下频率表涉及用户请求U1,针对该用户请求已经分别2、3、7、4、1和2次返回针对它的先前提交的先前服务器响应的值S1、S2、S3、S4、S5和S6:
<用户请求/服务器响应值> | 计数器 |
<U1/S3> | 7 |
<U1/S4> | 4 |
<U1/S2> | 3 |
<U1/S1> | 2 |
<U1/S6> | 2 |
<U1/S5> | 1 |
在这一情况下,将针对用户请求U1的当前提交的当前服务器响应的默认值设置成值S3。
在本发明的一个不同实施例中,针对每对<用户请求/服务器响应值>,频率表包括一个或者多个记录组;这些组中的每组包括用于用户请求的先前提交的对应提交特性的不同值的多个记录(例如其时间范围)。然后当用户请求的先前提交与它的对应提交特性的值匹配时,每个记录存储服务器响应的这一个值已针对该用户请求被接收的次数的计数器。例如以下频率表涉及用户请求U1,针对该用户请求已经在周一-周五分别8、2和1次返回先前服务器响应的值S1、S2和S3并且在周六-周日分别3、2和7次返回先前服务器响应的值S1、S4、S2:
<用户请求/服务器响应值> | 时间范围 | 计数器 |
<U1/S1> | 周一-周五 | 8 |
<U1/S2> | 周一-周五 | 2 |
<U1/S3> | 周一-周五 | 1 |
<U1/S2> | 周六-周日 | 7 |
<U1/S1> | 周六-周日 | 3 |
<U1/S4> | 周六-周日 | 2 |
预测器然后关于用户请求定义的关键字和用户请求的当前提交的提交特性的值来查询频率表,寻找具有最高计数器的记录。例如在这一情况下,如果在周一-周五提交用户请求U1,则将针对它的当前提交的当前服务器响应的默认值设置成值S1,而如果在周六-周日提交它,则将它设置成值S2。
上文提到的实现方式也考虑用于设置当前服务器响应的默认值的先前服务器响应的趋势;这允许在若干实际情形中进一步提高默认值的预测准确性。例如,如果用户请求是用于验证远程服务器的状态(借助对它的主机名的ping命令),则有可能的是这一远程服务器一般在工作日期间可用并且一般在非工作日期间不可用(由于维护操作)。
继续进行到块442,预测器向监视器返回这样确定的默认值,该监视器将其分配给当前服务器响应;同时默认值被保存到未决表中的对应记录中,并且其默认标志被断言。监视器然后向异步引擎返回当前服务器响应,该异步引擎又将其返回给浏览器。
因此,一旦浏览器在块445针对网页执行下一操作,日志记录器在块448在日志表的对应记录中添加其指示。具体而言,当浏览器从异步引擎接收到当前服务器响应(在默认值)时立即执行这一操作,并且它更新网页的对应部分(例如通过基于这一默认值显示请求的图形)。
然后方法400继续进行到块451;如果用户请求的当前提交的时间限制尚未到期,则也从块433到达相同点。
以完全异步方式,在这一阶段中,异步引擎连续轮询等待对应当前用户响应(即仍然监听对应套接字)的用户请求的当前提交。针对用户请求的这些当前提交中的每个当前提交,异步引擎在块454验证常规超时是否已经到期。如果到期,则活动流程转向块457,其中进入错误状况(并且关闭与服务器的对应连接);然后异步引擎向浏览器返回错误代码,该浏览器向用户显示对应错误消息(例如在弹出窗中)。另外,在块460,异步引擎验证针对用户请求启用预期特征(如它的脚本中的预期标志所示)。如果预期特征被启用(即,启用标志被断言),则日志记录器在块463删除用户请求的当前提交的日志记录(如果有——即当默认标志被断言时),并且在任何情况下,监视器从未决表删除对应记录。在块466,活动流程从块463、从块460(当用户请求未使预期特征启用时)或者从块454(当常规超时尚未到期时)再次合并。
在这一点,异步引擎验证是否已经接收对用户请求的当前提交的当前服务器响应。如果是,则异步引擎在块469进一步验证针对用户请求的预期特征的启用(如它的脚本中的预期标志所示)。如果预期特征被启用(即启用标志被断言),则方法400转向块472,其中监视器相应地更新对用户请求的服务器响应的不同值的频率。例如出于这一目的,监视器验证针对用户请求(丢弃用来绕过浏览器的高速缓存机制的用户请求的当前提交的唯一代码)和当前服务器响应的值的记录是否存在于频率表中;如果否,则添加用于对<用户请求/服务器响应值>的新记录,并且将它的计数器初始化成0,反之则将对应记录的计数器递增1。在任何情况下,按照用于每个用户请求的计数器的递减顺序对频率表的记录排序。继续进行到块475,监视器也相应地更新用户请求的平均延迟。例如出于这一目的,监视器验证记录是否针对用户请求(丢弃用来绕过浏览器的高速缓存机制的用户请求的当前提交的唯一代码)存在于延迟表中;如果否,则添加针对用户请求的新记录,并且它的平均延迟被初始化成当前服务器响应关于用户请求的当前提交的当前延迟,反之则重新计算对应记录的计数器以考虑这一当前延迟。
活动流程然后根据向当前服务器响应分配默认值(如未决表中的对应默认标志所示)在块478分支。如果先前已经向当前服务器响应分配了默认值(即默认标志被断言),则执行块481-487,反之则执行块490。
现在考虑块481(默认值被分配),监视器验证(从未决表的对应记录提取的)默认值是否与刚才已经接收的当前服务器响应的实际值匹配。如果默认值不同于实际值,则方法400转向块484;在这一阶段中,回滚从日志记录表中的对应记录(从最近的一个开始,然后在时间上往回)连续取回日志记录的操作,该日志记录的操作从向当前服务器响应分配(错误)默认值时开始已经在网页上执行;并且它在浏览器中撤消它们;一旦已经完成该过程,该记录就可以从记录表删除(由此禁用对针对网页执行的操作的日志记录)。继续进行到块487,异步引擎将当前服务器响应重置成它的实际值;再次向浏览器返回当前服务器响应,该浏览器现在正确更新网页的对应部分(例如通过利用它的实际内容显示请求的图形)。
作为替代,参照块490(默认值未分配),异步引擎向浏览器直接返回当前服务器响应,该浏览器如上文描述的那样更新网页的对应部分。
活动流程然后在块492再次合并(从块487或者块490)。在这一阶段中,监视器从未决表删除对应记录。
再次参照块469,如果未启用用于用户请求的预期特征(即,启用标志被解断言),则方法400转向块496;也在这一情况下,异步引擎向浏览器直接返回当前服务器响应,该浏览器更新网页的对应部分。
然后,方法400从块493、从块496、从块481(当默认值等于实际值时)或者从块466(当尚未接收当前服务器响应时)在同心白色/黑色停止圆圈499结束。
自然地,为了满足本地和具体要求,本领域技术人员可以向上文描述的解决方案应用许多逻辑和/或物理修改和变更。更具体而言,虽然已经参照这一解决方案的一个或者多个实施例以某一程度的细节描述它,但是应当理解在形式和细节上的各种省略、替换和改变已经其它实施例是可能的。具体而言,甚至无在先前描述中阐述的用于提供对本发明的更透彻理解的具体细节(比如数值)也可以实现其不同实施例;反之,可以已经省略或者简化公知特征以免不必要的细节模糊描述。另外,特别旨在于结合公开的解决方案的任何实施例描述的具体单元和/或方法步骤可以作为一般设计选择事项而并入于任何其它实施例中。在任何情况下,序号或者其它限定词仅用作为区分具有相同名称的要素而本身未表示任何优先级、优先性或者顺序。另外,这些术语包括、具有、包含和涉及到(及其任何形式)应当旨在于开放式、非穷举含义(即不限于记载的项目),
这些术语基于、依赖于、根据、......的功能(及其任何形式)应当旨在于作为非穷举关系(即,涉及到可能更多变量),并且术语一个/一种应当旨在于作为一个或者多个项(除非另有明示)。
例如,本发明的一个实施例提供一种用于在(见下文,任何类型的)分布式应用的客户端侧与分布式应用交互的方法。该方法包括以下步骤。接收(见下文,任何类型的)用户请求的当前提交。向分布式应用的服务器侧传输用户请求的指示,以便接收对于用户请求(见下文,任何类型的)的当前提交的当前服务器响应。如果在相对于用户请求的当前提交的时间限制(见下文,具有任何值)内没有从服务器侧接收到当前服务器响应,则向当前服务器响应分配(见下文,任何类型的)默认值。对从向当前服务器响应分配默认值起针对分布式应用执行的一组操作进行日志记录(以任何方式、例如在一个或者多个临时文件中)。从服务器侧接收当前服务器响应的实际值。如果实际值不同于默认值,则回滚日志记录的操作并且将当前服务器响应重置成实际值。
然而,如果用等效方法实施相同解决方案(通过使用更多步骤的具有相同功能的相似步骤或者其部分、去除非必需的一些步骤或者添加更多可选步骤)则相似考虑适用;另外,可以(至少部分地)按不同顺序、并行地或者以交织方式执行步骤。
在本发明的一个实施例中,向当前服务器响应分配默认值的步骤包括:根据针对用户请求的先前提交从服务器侧接收的先前服务器响应设置默认值。
然而未排除以不同方式设置默认值的可能性(例如,简单地设置成先验已知在多数实际情形中最可能的预定义值,或者针对相同用户请求接收的最后的服务器响应)。
在本发明的一个实施例中,根据先前服务器响应设置默认值的步骤包括:根据先前服务器响应的值的至少一个频率分布设置默认值。
然而,默认值可以根据先前服务器响应的任何统计分析(例如基于模糊逻辑)来被设置。
在本发明的一个实施例中,所述至少一个频率分布是先前服务器响应的值的单个频率分布;根据至少一个频率分布设置默认值的步骤包括:将默认值设置成具有频率分布中的最高频率的先前服务器响应的值。
然而不同规则可以用来设置默认值(例如利用通过根据先前服务器响应的年龄而向它们分配不同权值所创建的频率分布)。
在本发明的一个实施例中,所述至少一个频率分布是(一个或者多个)频率分布组的集合,每组是先前服务器响应的值的多个频率分布之一。每组针对用户请求的先前提交的对应提交特性,并且其频率分布针对对应提交特性的不同值。根据至少一个频率分布设置默认值的步骤包括将默认值设置成先前服务器响应的值,该值在与用户请求的当前提交的对应提交特性的值匹配的每组的频率分布中具有最高频率。
然而可以提供任何数目的频率分布组。在任何情况下,基于用户请求的一个或者多个提交特性的任何其它标准可以用于设置默认值(例如基于不同频率分布组中的默认值的组合概率);另外,也有可能从先前服务器响应学习决策树,该决策树继而用来将用户请求的当前提交分类成与不同默认值关联的多个不相交类之一(根据它的提交特性)。
在本发明的一个实施例中,提交特性包括用户请求的提交的时间范围。
然而可以用另一方式(例如,以小时或者日级别)定义时间范围;在任何情况下,可以考虑用户请求的提交的无论任何特性或者其组合(例如客户端的地理位置)。
在本发明的一个实施例中,该方法还包括以下步骤:如果在关于用户请求的当前提交的又一时间限制内未从服务器侧接收到当前服务器响应,则进入错误状况;该又一时间限制高于所述时间限制。
然而,可以在未及时接收到服务器响应时采取任何其它动作(例如,简单地回滚日志记录的操作)。
在本发明的一个实施例中,该方法还包括以下步骤:根据先前服务器响应关于用户请求的先前提交的先前延迟,设置时间限制和/或又一时间限制。
然而这一过程可以仅应用于时间限制、仅应用于又一时间限制或者应用于二者,或者甚至不应用于它们中的任何一个(例如当在对应脚本中定义它们或者将它们预定义成固定值时);在任何情况下,可以关于用户请求的当前提交以任何其它方式(例如从它在客户端上的提交或者从它向服务器的传输开始)定义时间限制和/或又一时间限制。
在本发明的一个实施例中,接收用户请求的当前提交的步骤包括:由web浏览器检测对网页中的对应用户命令的选择;该方法还包括以下步骤:由web浏览器在网页中或者在又一网页中显示当前服务器响应的指示。
然而分布式应用可以是任何类型,甚至不基于因特网(例如实施数据库访问或者性能监视);另外,分布式应用的客户端侧可以是任何类型,甚至不基于web(例如由专用程序或者代理实施)。类似地,有可能具有不同类型的分布式应用的服务器侧(例如数据库或者监视服务器)和服务器响应(例如表或者报告)。
在本发明的一个实施例中,向分布式应用的服务器侧传输用户请求的指示的步骤:包括调用在网页的定义中包括的对应脚本;响应于包括在脚本中的对应指示符启用如下步骤:向当前服务器响应分配默认值,对一组操作进行日志记录,回滚日志记录的操作,以及将当前服务器响应重置成实际值。
然而,可以用任何其它方式(例如借助对应cookie)有选择地启用这一预期特征;在任何情况下,可以在用户请求的类别水平有选择地或者针对所有用户请求无区别地启用该预期特征。
在本发明的一个实施例中,用户请求的当前提交包括用于禁用浏览器的高速缓存机制的唯一代码;该方法还包括丢弃唯一代码以用于设置默认值的步骤。
然而,可以用不同方式(例如借助过滤的查询)丢弃用户请求的提交的唯一代码;在任何情况下,可以在浏览器不实施任何高速缓存机制时省略这一特征。
本发明的又一实施例提供一种包括代码装置的计算机程序,该代码装置用于当在数据处理***上执行计算机程序时使(见下文,任何类型的)数据处理***执行上文描述的方法的步骤。
然而,可以实施相同解决方案为独立模块、为用于浏览器(或者分布式应用的任何其它客户端侧)的插件或者甚至直接实施于浏览器本身中。在任何情况下,如果以不同方式构造(可以用来实施本发明的每个实施例的)程序,或者如果提供附加模块或者功能,则相似考虑适用;类似地,存储器结构可以是其它类型或者可以替换为等效实体(未必由物理存储介质构成)。程序可以采用适合于由任何数据处理***使用或者与之结合(例如在虚拟机内)的任何形式、由此配置***以执行所需操作;具体而言,程序可以是以外部或者常驻软件、固件或者伪代码(在目标代码中或者在源代码中——例如待编译或者解译)的形式。另外,有可能在任何计算机可用介质上提供程序(并且具体作为非瞬态介质上的制造品);介质可以是适合于包含、存储、通信、传播或者传送程序的任何单元。例如介质可以是电子、磁、光学、电磁、红外线或者半导体类型;这样的介质的示例是固定盘(其中可以预加载程序)、可拆卸盘、带、卡、接线、光纤、无线连接、网络、广播的波等。在任何情况下,根据本发明的一个实施例的解决方案本身用于甚至用硬件结构(例如集成于半导体材料芯片中)或者用软件与适当编程或者以别的方式配置的硬件的组合来实施。
本发明的又一实施例提供一种包括用于执行相同方法的步骤的装置的数据处理***(即客户端)。
然而,如果客户端具有不同结构或者包括等效组件或者它具有其它操作特性则相似考虑适用。在任何情况下,可以将其每个组件分离成更多单元,或者可以将两个或者更多组件一起组合成单个单元;另外,可以复制每个组件以支持并行执行对应操作。也指出(除非另有明示)在不同组件之间的任何交互一般无需连续并且它可以是直接的或者通过一个或者多个中间方而为间接的。在任何情况下,客户端可以具有另一结构或者可以包括相似单元(比如暂时存储程序或者其部分的高速缓存存储器);另外,有可能将客户端的计算机替换为基于物理机或者虚拟机的任何代码执行实体(比如桌面型计算机、PDA、移动电话等)。也可以在基于不同架构(例如局域、广域、蜂窝或者卫星网络)并且利用任何类型的(有线和/或无线)连接的数据处理基础设施中应用相同解决方案。
Claims (12)
1.一种用于在分布式应用的客户端侧与所述分布式应用交互的方法(400),所述方法包括步骤:
接收(412)用户请求的当前提交,
向所述分布式应用的服务器侧传输(415-427)所述用户请求的指示,用于接收对于所述用户请求的所述当前提交的当前服务器响应,
如果在关于所述用户请求的所述当前提交的时间限制内未从所述服务器侧接收到所述当前服务器响应,则向所述当前服务器响应分配(439-442)默认值,
从所述默认值向所述当前服务器响应的所述分配开始,对针对所述分布式应用而执行的一组操作进行日志记录(445-448),
从所述服务器侧接收(466)所述当前服务器响应的实际值,以及
如果所述实际值不同于所述默认值,则回滚(484)日志记录的所述操作并且将所述当前服务器响应重置(487)成所述实际值。
2.根据权利要求1所述的方法(400),其中向所述当前服务器响应分配(439-442)默认值的所述步骤包括:
根据从所述服务器侧接收的针对所述用户请求的先前提交的先前服务器响应来设置(439)所述默认值。
3.根据权利要求2所述的方法(400),其中根据先前服务器响应来设置(439)所述默认值的所述步骤包括:
根据所述先前服务器响应的值的至少一个频率分布来设置(439)所述默认值。
4.根据权利要求3所述的方法(400),其中所述至少一个频率分布是所述先前服务器响应的所述值的单个频率分布,根据至少一个频率分布来设置(439)所述默认值的所述步骤包括:
将所述默认值设置(439)成在所述频率分布中具有最高频率的所述先前服务器响应的值。
5.根据权利要求4所述的方法(400),其中所述至少一个频率分布是多个组的集合,每个组是所述先前服务器响应的所述值的多个频率分布之一,每个组针对所述用户请求的所述先前提交的对应提交特性,并且其所述频率分布针对所述对应提交特性的不同值,根据至少一个频率分布来设置(439)所述默认值的所述步骤包括:
将所述默认值设置(439)成所述先前服务器响应的如下值,所述值在与所述用户请求的所述当前提交的所述对应提交特性的所述值相匹配的每组的所述频率分布中具有最高频率。
6.根据权利要求5所述的方法(400),其中所述提交特性包括所述用户请求的所述提交的时间范围。
7.根据权利要求1至6中的任一权利要求所述的方法(400),还包括步骤:
如果在相对于所述用户的所述当前提交的又一时间限制内未从所述服务器侧接收到所述当前服务器响应,则进入(457-463)错误状况,所述又一时间限制高于所述时间限制。
8.根据权利要求1至7中的任一权利要求所述的方法(400),还包括步骤:
根据所述先前服务器响应关于所述用户请求的所述先前提交的先前延迟,来设置(424)所述时间限制和/或所述又一时间限制。
9.根据权利要求1至8中的任一权利要求所述的方法(400),其中接收(412)用户请求的当前提交的所述步骤包括:由web浏览器检测(412)对网页中的对应用户命令的选择,所述方法还包括步骤:
由所述web浏览器在所述网页中或者在又一网页中显示(442;490;493)所述当前服务器响应的指示。
10.根据权利要求9所述的方法(400),其中向所述分布式应用的服务器侧传输(415-427)所述用户请求的指示的所述步骤包括:调用在所述网页的定义中包括的对应脚本,向所述当前服务器响应分配(439-442)默认值、对一组操作进行日志记录(445-448)、回滚(484)日志记录的所述操作以及将所述当前服务器响应重置(487)成所述实际值的所述步骤是响应于包括在所述脚本中的对应指示符而被启用的。
11.根据权利要求9或者10所述的方法(400),其中所述用户请求的所述当前提交包括用于禁用所述浏览器的高速缓存机制的唯一代码,所述方法还包括步骤:
丢弃(439)所述唯一标识符以用于设置所述默认值。
12.一种数据处理***(115),包括用于执行根据权利要求1至11中的任一权利要求所述的方法(400)的步骤的装置(300)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12156435 | 2012-02-22 | ||
EP12156435.5 | 2012-02-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103297494A true CN103297494A (zh) | 2013-09-11 |
CN103297494B CN103297494B (zh) | 2016-02-24 |
Family
ID=47999041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310053292.0A Active CN103297494B (zh) | 2012-02-22 | 2013-02-19 | 用于与具有服务器响应预期的分布式应用交互的方法和*** |
Country Status (4)
Country | Link |
---|---|
US (2) | US9584357B2 (zh) |
CN (1) | CN103297494B (zh) |
DE (1) | DE102013201973A1 (zh) |
GB (1) | GB2501584B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659091A (zh) * | 2018-06-29 | 2020-01-07 | 国际商业机器公司 | 会话代理对话流用户界面 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130046878A1 (en) * | 2011-08-15 | 2013-02-21 | Lukas Fryc | Asynchronous request interception for testing a request life-cycle |
US10318987B2 (en) * | 2014-02-18 | 2019-06-11 | International Business Machines Corporation | Managing cookie data |
US10540282B2 (en) * | 2017-05-02 | 2020-01-21 | International Business Machines Corporation | Asynchronous data store operations including selectively returning a value from cache or a value determined by an asynchronous computation |
US10437724B2 (en) | 2017-05-02 | 2019-10-08 | International Business Machines Corporation | Providing data values in a timely fashion using asynchronous data store operations including selectively returning a value from a cache or a value determined by an asynchronous computation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340194A (zh) * | 2007-07-02 | 2009-01-07 | 美国博通公司 | 解码ldpc编码信号的解码器 |
US20100169465A1 (en) * | 2004-11-16 | 2010-07-01 | Qurio Holdings, Inc. | Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request |
CN102316097A (zh) * | 2011-07-27 | 2012-01-11 | 杭州斯凯网络科技有限公司 | 一种减少用户等待时间的流媒体调度分发方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311216B1 (en) * | 1998-05-29 | 2001-10-30 | Microsoft Corporation | Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS |
CA2296140A1 (en) | 1999-01-28 | 2000-07-28 | Lucent Technologies, Inc. | Methods and apparatus for logging web user activity using client-side support |
US7096418B1 (en) | 2000-02-02 | 2006-08-22 | Persistence Software, Inc. | Dynamic web page cache |
US8489437B1 (en) | 2000-11-02 | 2013-07-16 | Sureharvest | Method and system automatically to certify an agricultural product |
US7117504B2 (en) * | 2001-07-10 | 2006-10-03 | Microsoft Corporation | Application program interface that enables communication for a network software platform |
US8112529B2 (en) * | 2001-08-20 | 2012-02-07 | Masterobjects, Inc. | System and method for asynchronous client server session communication |
US7343396B2 (en) | 2002-06-20 | 2008-03-11 | Fineground Networks | Precomputation of web documents |
JP2004078756A (ja) | 2002-08-21 | 2004-03-11 | Nec Corp | コンテンツ配信システム、コンテンツ配信方法、コンテンツキャッシュサーバ及びプログラム |
AU2002952106A0 (en) | 2002-10-15 | 2002-10-31 | Silverbrook Research Pty Ltd | Methods and systems (npw008) |
CN100596135C (zh) | 2006-06-09 | 2010-03-24 | 华为技术有限公司 | 一种确定内容提供商优先级的***和方法 |
US9602613B2 (en) | 2006-08-03 | 2017-03-21 | Flash Networks, Ltd | Method and system for accelerating browsing sessions |
US8850520B1 (en) * | 2006-12-12 | 2014-09-30 | Google Inc. | Dual cookie security system with interlocking validation requirements and remedial actions to protect personal data |
US20090049243A1 (en) | 2007-08-13 | 2009-02-19 | Microsoft Corporation | Caching Dynamic Content |
US8135393B2 (en) * | 2008-09-18 | 2012-03-13 | Research In Motion Limited | System and method for transactional application lifecycle management for mobile devices |
US8516080B2 (en) | 2008-12-03 | 2013-08-20 | Mobophiles, Inc. | System and method for providing virtual web access |
US9792384B2 (en) * | 2009-02-26 | 2017-10-17 | Red Hat, Inc. | Remote retreival of data files |
US8965860B2 (en) * | 2010-04-01 | 2015-02-24 | Salesforce.Com, Inc. | Methods and systems for bulk uploading of data in an on-demand service environment |
-
2013
- 2013-02-07 DE DE102013201973A patent/DE102013201973A1/de not_active Ceased
- 2013-02-08 US US13/763,573 patent/US9584357B2/en not_active Expired - Fee Related
- 2013-02-13 GB GB1302521.8A patent/GB2501584B/en active Active
- 2013-02-19 CN CN201310053292.0A patent/CN103297494B/zh active Active
-
2017
- 2017-01-05 US US15/399,731 patent/US10171571B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169465A1 (en) * | 2004-11-16 | 2010-07-01 | Qurio Holdings, Inc. | Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request |
CN101340194A (zh) * | 2007-07-02 | 2009-01-07 | 美国博通公司 | 解码ldpc编码信号的解码器 |
CN102316097A (zh) * | 2011-07-27 | 2012-01-11 | 杭州斯凯网络科技有限公司 | 一种减少用户等待时间的流媒体调度分发方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659091A (zh) * | 2018-06-29 | 2020-01-07 | 国际商业机器公司 | 会话代理对话流用户界面 |
Also Published As
Publication number | Publication date |
---|---|
US20170118277A1 (en) | 2017-04-27 |
US9584357B2 (en) | 2017-02-28 |
DE102013201973A1 (de) | 2013-08-22 |
GB201302521D0 (en) | 2013-03-27 |
US20130218953A1 (en) | 2013-08-22 |
CN103297494B (zh) | 2016-02-24 |
GB2501584A (en) | 2013-10-30 |
US10171571B2 (en) | 2019-01-01 |
GB2501584B (en) | 2014-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2831381C (en) | Recovery of tenant data across tenant moves | |
CN107729041A (zh) | 应用程序热更新方法、装置、终端和存储介质 | |
CN100435152C (zh) | 组合书签的方法及建立更新的主书签数据库的计算机设备 | |
CN101930449A (zh) | 客户机、代理服务器和用于提供云存储器的方法 | |
CN103297494B (zh) | 用于与具有服务器响应预期的分布式应用交互的方法和*** | |
CN101438261A (zh) | 执行逐步升级的技术 | |
CN102349062A (zh) | 用于跨设备和web服务使浏览器缓存同步的编程模型 | |
CN102934101A (zh) | 针对本地和远程数据的透明访问机制 | |
EP3815342B1 (en) | Adaptive user-interface assembling and rendering | |
CN102270155A (zh) | 应用程序实例和查询存储 | |
CN103294610A (zh) | 可重复使用的内容可寻址存储 | |
CN103377064A (zh) | 一种页面脚本的加载方法及装置 | |
CN103166964B (zh) | 用于超级计算***监控的前后端实时通信方法 | |
US20120311375A1 (en) | Redirecting requests to secondary location during temporary outage | |
CN111586177B (zh) | 集群会话防丢失方法及*** | |
CN114780615A (zh) | 错误码管理方法及其装置 | |
US20120310912A1 (en) | Crawl freshness in disaster data center | |
CN113992759A (zh) | 应用于局域网的联合解析装置、方法及电子设备 | |
CN113570394A (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
CN112948733A (zh) | 接口维护方法、装置、计算设备以及介质 | |
US20230362659A1 (en) | Microwave design tool | |
KR100860093B1 (ko) | 웹 검색 시스템 및 방법 | |
CN101156145A (zh) | 使用Mozilla的个人计算环境*** | |
JP4100094B2 (ja) | コンテンツ管理装置、コンテンツ提供システム及び管理装置制御プログラム | |
KR101441752B1 (ko) | 이미지 기반의 도면 추출 방법, 그 시스템 및 기록매체 |
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 |