高度可靠的跨会话web应用测试的制作方法

文档序号:6361316阅读:128来源:国知局
专利名称:高度可靠的跨会话web应用测试的制作方法
技术领域
本发明涉及管理对用户跟踪数据的收集,该用户跟踪数据代表用户在客户端设备与web内容的交互。更具体而言,本发明涉及在客户端设备本地高速缓存用户跟踪数据并且有选择地传输高速缓存的数据。
背景技术
人们越来越多地通过网络获得一个形式或者另一形式的服务。例如,客户端设备的用户可以通过网络从远程定位的计算机设备获得新闻、电视、天气信息并且甚至大学教育。这样的客户端设备可以采用许多形式,这些形式包括但不限于蜂窝电话、个人数字助理、膝上型计算机和台式计算机。出于多种原因,知道用户如何与这样的远程提供的服务交互是有用的。例如,服务提供商可以发现知道用户将他们的输入聚焦(比如鼠标指针)频繁地悬停于显示器的某一部分之上或者用户很少使用由服务提供的某些控件是有用的。服务提供商可以出于服务的用户个人化、用户建档、系统使用度量和其它搜索目的这些附加目的而收集数据,该数据反映用户与远程提供的服务的交互。远程提供的服务通常包括客户端侧逻辑和服务器侧逻辑。服务的客户端侧逻辑通常负责生成用户接口,用户可以通过该用户接口与服务交互。服务的服务器侧逻辑通常负责服务的内容并且负责向客户端提供该内容。获得关于用户如何与使用计算设备来访问的服务交互的信息被称为“用户跟踪”。为了执行用户跟踪而进行的修改被称为“测试(instrumentation)”。如今使用cookie或者通过使用“信标(beacon) ”从客户端侧向服务器侧立即发送关于用户动作和应用性能的信息来执行大多数用户跟踪和web应用测试。这些机制高度地有约束并且限制可以用可靠方式并且在未不适当地降低用户体验时在客户端侧上收集的信息量。例如,由cookie和信标捕获的信息通常限于用户的“点击流”。点击流指示用户已经“点击”的在由服务提供的HTML页面内的控件。然而,用户的点击流仅传送用户与web服务的交互的部分。例如,点击流可能未指示用户何时和何处在与服务交互时移动他们的输入聚焦。作为另一示例,点击流可能不能指示用户如何进行特定选择。例如,一些网页可以提供用于实现相同操作(例如,在应用中保存文档)的多个备选输入机制(例如,可点击按钮、菜单选项和键盘快捷键)。点击流可以指示用户选择过操作,但是不指示哪个输入机制用来发起操作。作为另一示例,点击流可能未指示由在由服务向客户端递送的网页中嵌入的客户端侧代码(比如JAVASCRIPT 或者FLASH )处理的用户交互。知道用户如何与由客户端侧代码生成的接口交互可能恰如知道用户的点击流一样重要。遗憾的是,捕获多个点击流带来若干技术挑战。例如,从客户端侧逻辑到服务器侧逻辑的通信带宽(“上游带宽”)经常显著地低于从服务器侧逻辑到客户端侧逻辑的通信带宽(“下游带宽”)。因而,向服务器侧发送关于用户在客户端侧上做什么的具体信息可能消耗相对小的上游带宽中的不可接受的大量带宽。
此外,web应用开发已经改变,并且现在在客户端计算机上创建或者完全控制更多逻辑和用户接口。服务器以前将经由回传(页面重载)创建用户接口元素和/或获得针对如果并非所有则为大多数的用户动作的请求。在这些实例中通过监视在用户导航可用资源时由向服务器的用户请求所生成的用户的点击流来实现用户跟踪。由于“Web 2. O”技术已经激增,这些用于跟踪用户动作的机智不再足以捕获用户与“Web 2. O”接口交互的多种方式。当前解决方案尝试在收集所有测试数据时立即发送它或者将关于用户与页面的交互的信息排队并且继而通过在页面卸载时向服务器侧发送信息来刷新队列。遗憾的是,响应于页面的卸载向服务器侧发送客户端侧的内容并不可靠,它也未在可能时提供良好用户体验。此外,由于当前解决方案在易失性存储器中保持用户跟踪数据,所以客户端侧队列数据的传输失败可能造成在结束会话之后永久失去宝贵的用户跟踪数据。在本部分中描述的方式是如下方式,这些方式可以被探求,但是未必是先前已经设想或者探求的方式。因此,除非另有明示,则不应假设在本部分中描述的方式中的任何方式仅由于在本部分中包含它们而作为现有技术
发明内容


在附图的各图中通过示例而非通过限制来图示本发明,在附图中,相似标号指代相似单元,并且在附图中图1是描绘用于从用户与web应用的交互中收集用户跟踪数据的示例网络布置100的框图。图2是图示根据本发明的一个实施例的用于收集用户跟踪数据的步骤的流程图。图3是本发明的实施例可以实施于其上的计算机系统的框图。
具体实施例方式在下文描述中,出于说明的目的,阐述许多具体细节以便提供对本发明的透彻理解。然而,将清楚,无这些具体细节也可以实现本发明。在其它实例中,以框图形式示出公知结构和设备以便避免不必要地模糊本发明。综述提供一种可靠高速缓存机制以用于数据的客户端侧高速缓存,该数据捕获用户与远程服务的交互,其中用户通过计算设备与远程服务交互。根据一个实施例,这样的数据(这里称为“测试项目”)被高速缓存于客户端侧离线队列中。在客户端侧队列内,收集的测试项目在用户与远程服务的会话之间存续。由于客户端侧在会话结束时未失去在会话中收集的测试项目,所以无需在其中收集那些测试项目的会话终止时或者之前向服务器侧传送所有测试项目。作为替代,可以在将对用户体验具有更少影响时(比如在计算设备以别的方式空闲时)向服务器侧发送测试项目。使用这些技术,可以收集并且向服务器侧发送更多信息而不显著地干扰用户体验。以这一方式使用客户端侧高速缓存允许服务收集比原本在未干扰用户体验或者应用性能时测试而可行的那样更多的关于用户的动作的数据。能够在客户端侧上可靠地保存测试项目而无需向服务器侧数据收集服务立即发送它们允许服务动态地达到在用户体验、收集的数据量和向服务器侧报告该数据的及时性之间的恰当平衡。
具体而言,在一个实施例中,客户端侧高速缓存允许针对如下情形的“数据节流”,在这些情形中,向服务器侧发送(所有)测试项目可能暂时不方便或者不可行。其中可以推迟测试项目传输的情形包括在用户体验降低的连接速度时或者当在捕获服务上有异常高的负荷时。客户端侧测试代码根据一个实施例,提供客户端侧计算机代码,该计算机代码可以出于测试目的而监听或者被给予感兴趣的项目。在一个实施例中,实施代码为面向对象语言中的类(这里称为“测试类”)。应当注意,使用测试类仅为其中可以实施客户端侧高速缓存的一种方式,并且这里描述的技术不限于使用测试类的实现方式。例如,可以使用遍布若干不同类的客户端侧例程或者甚至通过用不是面向对象的编程语言编写的例程实施技术。根据使用测试类的一个实施例,测试类限定用于在客户端侧离线存储机制(比如HTML 5 Web Storage> Adobe Flash 应用的 SharedObject、Microsoft Silverlight)或者其它客户端侧技术(比如Google Gears)中存储捕获的项目的方法。这些仅为可以使用的客户端侧离线存储机制的示例,并且这里描述的技术不限于任何特定离线存储机制。多个选项可用于向用户的客户端递送实施测试类的代码。根据一个实施例,整体地提供客户端侧代码作为在用户请求使用远程服务时向用户递送的web应用内容的部件。测试类代码可以直接嵌入于web应用内容中或者向应用内容中导入作为单独递送的库部件。根据另一实施例,客户端侧测试代码可以向web浏览器中集成作为附件(add-on)或者工具栏或者作为独立客户端侧应用来递送。在客户端已经接收并且实例化实施测试类的代码之后,向测试类递送用户事件以用于处理。根据一个实施例,在应用代码中的事件句柄可以向测试类发送测试项目,这些事件句柄监视用户与应用接口的交互。例如,在用户选择按钮时,实施按钮的代码可以调用测试类的方法并且向方法传递参数值,这些参数值指示用户与按钮的交互。参数可以传送关于用户的交互的多种信息,比如选择哪个按钮、何时选择按钮和通过用户选择按钮来发起的具体操作。根据另一实施例,测试类本身可以监听用户动作并且记录那些动作作为测试项目数据。例如,可以先向用户事件总线发送由客户端应用代码检测的用户交互。测试类将监听用户事件总线以检测准备好向客户端侧离线存储机制中输入的新测试项目。在这样的实施例中,事件总线将提供用于跨web应用的检测到的用户交互的共同入口点。根据另一实施例,在远程应用外部的其它客户端侧代码可以监视用户交互并且通过适当接口向测试类递送它们。控制客户端侧高速缓存操作根据一个实施例,可以向由测试类提供的方法传递不同值作为参数以影响测试项目如何高速缓存于客户端侧以及何时向服务器侧发送高速缓存的测试项目。其值对客户端侧高速缓存的操作有影响的参数在这里被称为“控制参数”。由于向控制参数传递的值影响客户端侧高速缓存操作的规则,所以那些规则在这里被称为“参数化的规则”。根据一个实施例,基于参数化的规则,基于测试类而实例化的过程关于(a)当前应用状态和(b)在通过网络向捕获服务发送测试项目之前的用户活动确定待高速缓存的最优数据量。变量
在一个实施例中,向控制参数传递的值影响变量,这些变量转而影响客户端侧高速缓存的操作。例如,在一个实施例中,可以基于向测试类提供的控制参数的值而调整的变量流逝的时间、关键时间段、事件数目、数据大小、用户空闲时间、网络流量等。这些变量仅为测试类可以用来影响客户端侧高速缓存如何操作的变量类型的示例。可以在应用范围的基础上建立这些变量的类型和值,或者在服务内的个别应用部件的开发者可以基于每个应用部件的具体要求提供变量。根据一个实施例,控制参数可以用来向对客户端侧高速缓存的操作有影响的变量指派可变优先级程度。在这样的实施例中,可以至少部分基于变量的相对优先级在传输队列中对存储于离线存储机制中的测试项目排序。根据这一实施例,可以按照与用户事件在客户端出现的顺序不同的顺序向服务器侧传输存储的测试项目。例如,假设向“流逝的时间”指派高优先级值而向“数据大小”指派低优先级值。在这些境况之下,客户端侧高速缓存可以在发送更加新的小测试项目之前向服务器侧发送更旧的大测试项目。反言之,如果向“流逝的时间”指派低优先级值而向“数据大小”指派高优先级值,则客户端侧高速缓存可以在更大的旧测试项目之前发送更加新的小测试项目。变量阈值根据一个实施例,对客户端侧高速缓存的操作有影响的变量可以具有一个或者多个阈值。例如,可以针对“网络连接速度”建立阈值。如果用户的检测到的网络连接速度在阈值以上,则可以减少测试项目高速缓存于离线存储机制中的时间量。反言之,如果用户的检测到的网络连接速度在阈值以上,则可以增加测试项目高速缓存于离线存储机制中的时间量。可以存在用于任何给定变量的任何数目的阈值。因此,可以针对网络连接速度建立第二更低阈值,其中如果用户的检测到的速度降至第二阈值以下,则根本不向服务器侧发送测试项目。根据一个实施例,可以根据改变网络(changing network)、客户端侧、服务器侧或者其它应用条件动态地调谐与变量相关联的阈值。可以在用户开始新会话时初始地设置用于变量的阈值,并且也可以在用户的会话期间响应于检测到某一条件的改变来设置或者调整这些阈值。根据一个实施例,规则可以建立具体测试项目应当被视为“关键”,其中可选地绕过高速缓存向服务器侧立即发送关键测试项目。即使在已经成功发送所有数据之前终止会话(卸载页面),仍然在客户端侧上存留数据,并且可以在用户下次访问网站或者应用时发送数据。令牌化(tokeni ze)的测试项目根据一个实施例,通过在从客户端侧向服务器侧发送测试项目之前令牌化测试项目来进一步减少测试项目的传输对性能具有的负面影响。例如,可以通过创建测试项目的大部分和/或重复部分的映射来“令牌化”测试项目。这些映射可以是会话专属的,或者可以跨越会话使用相同映射。例如,在一个实施例中,测试类发送出单个映射项目,后端可以利用该映射项目以针对每个接收的项目扩展数据的完全部分。因此,如果用户与之交互的页面的URL是将用每个测试项目报告的数据的部分,则页面的整个URL可以与向短令牌或者ID(比如数或者MD5散列)的映射一起一次发送。在基于与该相同页面的交互而生成的的所有后续测试项目中,URL可以被替换为更短ID。根据一个实施例,在从离线存储机制选择并且向服务器侧传输测试项目时根据已知令牌映射令牌化测试项目。映射可以包括已经为当前会话而创建的令牌或者包括在先前会话中生成的令牌映射。根据另一实施例,测试类可以连续地或者定期地扫描离线存储机制以便检测测试项目数据的重复部分以便创建新令牌映射。继而,可以在传输之前在离线存储机制中令牌化测试项目,从而减少为了存储测试项目数据而需要的空间。测试数据的跨会话管理为了收集在其中生成测试项目数据的用户会话期间未向服务器侧传输的数据,测试项目存储于客户端侧高速缓存中并且有能力跨越用户会话而存留。例如,用户会话可以在用户在当前在高速缓存中的所有数据已经被传输之前登出远程应用或者卸载包含远程应用的页面时结束。根据一个实施例,可以根据包括会话标识属性的数据方案对存储于客户端侧高速缓存中的测试项目编码以便跨越多个会话区分测试项目数据。其它示例测试项目方案属性可以包括用户ID、迹线水平、来源、元素、命令和时间戳。根据一个实施例,可以在用户开始新会话时在高速缓存中检测来自先前会话的测试项目,并且可以递送项目作为新会话的启动序列的部分。例如,可以通过比较会话ID或者时间戳属性在高速缓存中检测来自先前会话的测试项目。根据另一实施例,可以简单地向用于当前会话的传输队列添加并且相应地选择从先前会话检测到的测试项目以用于传输。客户端侧代码可以根据特定高速缓存实现方式出于这样的目的而使用任何可用编程接口来存储和从离线存储机制取回测试项目。可以使用多个通信协议向服务器侧传输从高速缓存取回的测试项目,这些通信协议包括但不限于HTTP、HTML 5套接字或者TCP/IP连接。可以向接收服务传输测试项目数据作为个别项目或者作为包括多个项目的成批数据对象。根据一个实施例,来自客户端侧高速缓存的传输的测试项目可以保留于传输队列中,直至客户端从服务器侧接收某一递送确认。例如,在一个实施例中,传输的测试项目可以保留于传输队列中,直至从服务器侧接收HTTP 200响应或者依赖于协议的任何其它相似递送确认消息。根据另一实施例,可以实施传输重试机制以便尝试重传输未针对其接收递送确认消息的或者另外未向服务器侧成功传输的项目。示例操作图1是描绘用于从用户与web应用的交互中收集用户跟踪数据的示例网络布置100的框图。参照图1,在客户端设备110的用户开启web浏览器112并且向服务器120进行针对使用远程服务122的请求。在这一示例中,服务器120向客户端设备110发送回web应用数据,该web应用数据向用户提供用于与远程服务122交互的能力。在一个实施例中,web应用数据将包括出于跟踪用户与接收的web应用交互的目的而将在客户端设备110上执行的代码。用户可以在应用已经在客户端的设备110上的浏览器112中加载时或者备选地在用户登入web应用时开始与web应用的新会话。图2是代表客户端的设备110上的web应用在客户端设备HO已经接收了用于web应用的客户端侧逻辑之后的生命周期200的流程图。
参照图2,在步骤202,客户端设备101从web服务器接收web应用,其中web应用包括用于跟踪用户交互的代码。Web应用可以采用许多形式,这些形式包括但不限于在已经从客户端取回的网页中嵌入的或者伴随该网页的代码。在步骤204,web应用在客户端的设备110上被实例化并且供应用于一个或者多个程序变量的参数。根据一个实施例,在步骤206,应用检查离线存储机制114以寻找高速缓存中的可能在先前用户会话中尚未向服务器传输的任何用户跟踪数据。基于在步骤206确定来自先前会话的用户跟踪数据存在于储存器中,在步骤208中根据一个实施例,应用可以向服务器传输用户跟踪数据作为应用的启动序列的部分,或者向为当前会话而实例化的传输队列添加用户跟踪数据以用于以后传输。—旦应用已经完成了任何其它启动例程,应用就开始在步骤110跟踪用户与web应用的当前交互。在一个实施例中,向应用发送用户与web应用的动作的通知以用于处理。在步骤212,应用在客户端设备110上的离线存储机制114中存储代表用户交互的数据。根据一个实施例,用户交互数据保留于离线存储机制114中,直至应用在步骤214基于程序变量中的一个或者多个程序变量检测到某一条件,该条件触发应用向服务器发送用户交互数据项目中的一个或者多个用户交互数据项目。应用可以继续以这一方式操作,直至用户通过关闭包含应用的页面或者以别的方式暂停代码的执行来卸载客户端上的应用。硬件概述根据一个实施例,这里描述的技术由一个或者多个专用计算设备实施。专用计算设备可以被硬接线成执行技术或者可以包括数字电子器件(比如持久地编程为执行技术的一个或者多个专用集成电路(ASIC)或者现场可编程门阵列),或者可以包括编程为按照固件、存储器、其它储存器或者组合中的程序指令执行技术的一个或者多个通用硬件处理器。这样的专用计算设备也可以组合定制硬接线逻辑、ASIC或者FPGA与定制编程以实现技术。专用计算设备可以是台式计算机系统、便携计算机系统、手持设备、联网设备或者并入硬接线和/或程序逻辑以实施技术的任何其它设备。例如,图3是图示了本发明的一个实施例可以实施于其上的计算机系统300的框图。计算机系统300包括总线302或者用于传达信息的其它通信机制和与总线302耦合以用于处理信息的硬件处理器304。硬件处理器304可以例如是通用微处理器。计算机系统300也包括主存储器306 (比如随机存取存储器(RAM)或者其它动态存储设备),该主存储器耦合到总线302以用于存储信息和将由处理器304执行的指令。主存储器306也可以用于在执行将由处理器304执行的指令期间存储临时变量或者其它中间信息。这样的指令在存储于处理器304可访问的存储介质中时使计算机系统300成为专用机器,该专用机器被定制成执行在指令中指定的操作。计算机系统300还包括耦合到总线302以用于存储用于处理器304的静态信息和指令的只读存储器(ROM) 308或者其它静态存储设备。提供和耦合存储设备310 (比如磁盘或者光盘)到总线302以用于存储信息和指令。计算机系统300可以经由总线302耦合到用于向计算机用户显示信息的显示器312,比如阴极射线管(CRT)。包括文字数字和其它键的输入设备314耦合到总线302以用于向处理器304传达信息和命令选择。另一类型的用户输入设备是用于向处理器304传达方向信息和命令选择并且用于控制显示器312上的光标移动的光标操纵装置316,比如鼠标、跟踪球或者光标方向键。这一输入设备通常具有在第一个轴(例如,X)和第二个轴(例如,y)这两个轴中的两个自由度,这允许设备指定平面中的位置。计算机系统300可以使用定制的硬接线逻辑、一个或者多个ASIC或者FPGA、固件和/或程序逻辑来实施这里描述的技术,该定制的硬接线逻辑、一个或者多个ASIC或者FPGA、固件和/或程序逻辑与计算机系统组合使计算机系统300成为或者将计算机系统30编程为专用机器。根据一个实施例,计算机系统300响应于处理器304执行主存储器306中包含的一个或者多个指令的一个或者多个序列来执行这里的技术。可以从另一存储介质(比如存储设备310)向主存储器306中读取这样的指令。在主存储器306中包含的指令序列的执行使处理器304执行这里描述的过程步骤。在备选实施例中,可以取代软件指令或者与软件指令组合使用硬接线电路。术语“存储介质”如这里所用指代任何如下介质,该介质存储使机器以具体方式操作的数据和/或指令。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质例如包括光盘或者磁盘,比如存储设备310。易失性介质包括动态存储器,比如主存储器306。常见存储介质形式例如包括软盘、柔性盘、硬盘、固态驱动、磁带或者任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或者盒。存储介质不同于传输介质,但是可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴线缆、铜线和光纤,这包括接线,这些接线包括总线302。传输介质也可以采用声波或者广播的形式,比如在无线电波和红外线数据通信期间生成的波。可以在向处理器304输送一个或者多个指令的一个或者多个序列以用于执行时涉及到各种介质形式。例如,可以在远程计算机的磁盘或者固态驱动上初始地携带指令。远程计算机可以向它的动态存储器中加载指令并且使用调制解调器通过电话线发送指令。计算机系统300本地的调制解调器可以在电话线上接收数据并且使用红外线发射器以将数据转换成红外线信号。红外线检测器可以接收在红外线信号中携带的数据,并且适当电路可以将数据放置于总线302上。总线302向主存储器306输送数据,处理器304从该主存储器取回并且执行指令。主存储器306接收的指令可以可选地在由处理器304执行之前或者之后存储于存储设备310上。计算机系统300也包括耦合到总线302的通信接口 318。通信接口 318提供与连接到本地网络322的网络链路320的双向数据通信耦合。例如,通信接口 318可以是综合服务数字网络(ISDN)卡、线缆调制解调器、卫星调制解调器或者用于提供与对应电话线类型的数据通信连接的调制解调器。作为另一示例,通信接口 318可以是用于提供与兼容LAN的数据通信连接的局域网(LAN)卡。也可以实施无线链路。在任何这样的实现方式中,通信接口 318发送和接收电、电磁或者光信号,这些信号携带代表各种类型的信息的数字数据流。网络链路320通常通过一个或者多个网络向其它数据设备提供数据通信。例如,网络链路320可以通过本地网络322提供与主机计算机324的连接或者提供与由因特网服务提供商(ISP) 326操作的数据设备的连接。ISP 326转而通过现在常被称为“因特网”328的全球范围的分组数据通信网络提供数据通信服务。本地网络322和因特网328均使用携带数字数据流的电、电磁或者光信号。通过各种网络的信号和在网络链路320上并且通过通信接口 318的信号是传输介质的示例形式,这些信号携带去往和来自计算机系统300的数字数据。计算机系统300可以通过网络、网络链路320和通信接口 318发送消息和接收包括程序代码的数据。在因特网示例中,服务器330可以通过因特网328、ISP 326、本地网络322和通信接口 318传输用于应用程序的请求的代码。接收的代码可以在它被接收时由处理器304执行和/或储存于存储设备310或者其它非易失性储存器中以用于以后执行。在前文说明书中,已经参照可以随着实现方式而变化的许多具体细节描述了本发明的实施例。因此,本发明以及申请人旨在成为的本发明仅由并且完全由从本申请公布的包括任何后续修正的权利要求集合以这样的权利要求的具体公布形式指示。这里针对在这样的权利要求中包含的术语而明确阐述的任何定义应当决定如在权利要求中使用的这样的术语的含义。因此,在权利要求中未明确记载的限制、要素、性质、特征、优点或者属性不应以任何方式限制这样的权利要求的范围。因而,将在示例而不是限制意义上考虑说明书和附图。
权利要求
1.一种计算机实施的方法,用于收集用户测试数据,所述方法包括以下步骤 在远程服务与客户端之间的第一会话期间,检测用户与在所述客户端上显示的接口的交互,其中所述接口是与所述远程服务相关联的Web应用的接口 ; 其中在相对于所述客户端为远程的服务器处托管所述远程服务; 响应于检测到所述用户交互,在客户端侧离线存储机制中存储代表所述用户交互的测试项目; 在所述第一会话终止之后在所述客户端侧离线存储机制中保持所述测试项目;以及在所述远程服务与所述客户端之间的第二会话期间,从所述客户端侧离线存储机制向服务器侧数据收集服务传输所述测试项目; 其中所述方法由一个或者多个计算设备执行。
2.根据权利要求1所述的方法,其中所述存储所述测试项目的步骤由从托管所述远程服务的所述服务器向所述客户端发送的客户端侧逻辑执行。
3.根据权利要求1所述的方法,在执行所述传输步骤之前还包括 接收由所述web应用提供的用于一个或者多个应用变量的参数值;以及 至少部分基于所述一个或者多个应用变量确定何时向所述服务器侧收集服务传输所述测试项目。
4.根据权利要求1所述的方法,其中存储所述测试项目包括将所述测试项目放置于队列中以用于向所述服务器侧收集服务传输。
5.根据权利要求4所述的方法,还包括 至少部分基于一个或者多个变量对所述传输队列中的所述测试项目相对于所述传输队列中的其它测试项目排序,其中用于所述一个或者多个变量的值由所述web应用提供;基于在所述传输队列中存储所述传输项目的顺序向所述服务器侧收集服务传输所述测试项目。
6.根据权利要求5所述的方法,其中所述变量包括代表以下各项中的至少一项的变量用户空闲时间、在所述离线存储机制中流逝的时间、网络连接速度、在所述离线存储机制中的测试项目数目或者存储机制的数据大小。
7.根据权利要求5所述的方法,还包括 将一个或者多个指定阈值与所述一个或者多个变量进行关联;以及使用所述一个或者多个指定阈值以确定何时向所述服务器侧收集服务传输所述测试项目。
8.根据权利要求7所述的方法,还包括 检测某一应用或者网络条件已经改变;以及 响应于检测到某一应用或者网络条件已经改变,调整所述指定阈值中的一个或者多个指定阈值。
9.根据权利要求1所述的方法,还包括 为存储于所述客户端侧离线存储机制中的一个或者多个测试项目的一个或者多个部分创建令牌映射; 向所述服务器侧收集服务传输代表所述创建的令牌映射的项目;以及 基于所述令牌映射来令牌化所述客户端侧离线存储机制中的一个或者多个其它测试项目。
10.根据权利要求1所述的方法,所述传输步骤还包括检测来自所述服务器侧收集服务的指示收到所述测试项目的递送确认消息;以及基于检测到所述递送确认消息,从所述客户端侧离线存储机制去除所述测试项目。
11.根据权利要求1所述的方法,还包括检测在指定时间段之后尚未接收来自所述服务器侧收集服务的指示收到所述传输的测试项目的递送确认消息;基于检测到在指定时间段之后尚未接收到所述递送确认消息,向所述服务器侧收集服务重传输所述测试项目。
12.根据权利要求1所述的方法,其中所述客户端侧离线存储机制是web浏览器的持久部件。
13.—个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求1所述的方法的指令。
14.一个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求2所述的方法的指令。
15.一个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求3所述的方法的指令。
16.一个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求4所述的方法的指令。
17.—个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求5所述的方法的指令。
18.—个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求6所述的方法的指令。
19.一个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求7所述的方法的指令。
20.一个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求8所述的方法的指令。
21.—个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求9所述的方法的指令。
22.—个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求10所述的方法的指令。
23.—个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求11所述的方法的指令。
24.一个或者多个非瞬态存储介质,存储在由一个或者多个计算设备执行时实现执行根据权利要求12所述的方法的指令。
全文摘要
提供一种可靠高速缓存机制以用于数据的客户端侧高速缓存,该数据捕获用户与远程服务的交互,其中用户通过计算设备与远程服务交互。这样的测试项目高速缓存于客户端侧离线队列中。在客户端侧队列内,收集的测试项目在用户与远程服务的会话之间存续。由于客户端侧在会话结束时未失去在会话中收集的测试项目,所以无需在其中收集那些测试项目的会话终止时或者之前向服务器侧传送所有测试项目。作为替代,可以在将对用户体验具有更少影响时(比如在计算设备以别的方式空闲时)向服务器侧发送测试项目。
文档编号G06F15/167GK103038759SQ201180037726
公开日2013年4月10日 申请日期2011年7月13日 优先权日2010年7月30日
发明者T·J·布林尼卡 申请人:阿波洛集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1