CN1507237A - 用于重放动态超文本传输协议事务的方法和系统 - Google Patents
用于重放动态超文本传输协议事务的方法和系统 Download PDFInfo
- Publication number
- CN1507237A CN1507237A CNA2003101182102A CN200310118210A CN1507237A CN 1507237 A CN1507237 A CN 1507237A CN A2003101182102 A CNA2003101182102 A CN A2003101182102A CN 200310118210 A CN200310118210 A CN 200310118210A CN 1507237 A CN1507237 A CN 1507237A
- Authority
- CN
- China
- Prior art keywords
- record
- transactions requests
- software application
- request message
- dom
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种用于记录和重放Web浏览器内或者类似的客户机应用程序内的事务的方法、系统、装置和计算机程序产品。事务记录和重放实用程序在记录与/或重放基于Web浏览器的事务时捕捉动态信息。所述动态信息从在Web浏览器应用程序内维护的与文档对象模型(DOM)相关的信息中获得。利用来自先前记录的事务的信息,事务记录和重放实用程序搜索当前的与DOM相关的信息,以获得动态参数的当前值,以此使得在每次随后重放记录的事务时能够产生完整的和合适的HTTP请求。
Description
技术领域
本发明涉及一种改进的数据处理系统,具体地说,涉及一种用于和图形用户接口相关的信息处理的方法和装置。更具体地说,本发明涉及重放先前记录的在图形用户接口内的用户事件。
背景技术
很多情况下,用户必须重复软件应用程序内的任务。在可获得图形用户接口之前,通过命令行接口控制软件应用程序。为了快速地重复这种应用程序中的任务,必须使用含有数据和许多命令的批处理文件来通过命令行接口提供重复的输入。在图形用户接口广泛流行之后,产生了用于产生所谓的用户宏(macro)的实用程序,在所述宏中用户可以存储一系列用户接口事件供以后重放。例如,用户可能需要在照片编辑应用程序内对许多数字图像进行一组共同的照片编辑操作。每个操作可能需要选择菜单项,然后在对话框内选择多个选项和指定多个参数,包括含有要进行照片编辑操作的数字图像文件的文件名。记录器实用程序使用户能够捕捉在应用程序的图形用户接口内的、启动和结束用户想要的照片编辑操作所需的事件。
随着万维网的发展,产生了用于使在Web浏览器中重复性的用户活动序列自动化的记录器实用程序。这些实用程序有助于重放在因特网上常规的用户活动,例如定期地检查基于Web的邮件服务或者从网站上下载信息。典型的基于Web的宏记录器实用程序和Web浏览器一起运行,用于记录由Web浏览器提供的图形用户接口内的用户事件,包括选择Web页面内的超链接。因为事件是根据Web浏览器应用程序记录的,用户可以使跨越多个网站的活动自动化。这种类型的宏记录器实用程序使用户能够创建、查看、编辑和重放记录的宏。
不过,在重放用户记录的基于Web浏览器的宏时,产生了几个问题。超文本传输协议(HTTP)事务的记录和重放是一个挑战,这是因为网站的动态本质,这些网站在其提供基于Web的内容和服务的方式上变得更复杂。由网站使用的技术可以包括动态会话标识符(dynamic sessionidentifier)、动态cookie、例如JavaScript、ECMAScript以及VBScript的客户端脚本机制动态产生的统一资源定位符(URL),以及许多其它动态的与Web相关的技术。例如,基于Web浏览器的宏记录器可以记录包括动态信息的URL,而重放记录的信息会产生错误,因为在用户的以前会话期间产生的动态信息在用户的当前会话期间不再有效。
因此,拥有一种考虑到这些可能问题的、基于Web浏览器的用户事件宏记录和重放技术将是有利的,该技术是通过捕捉和利用动态信息来实现的,而该动态信息使得在重放时能够产生正确的Web服务请求。
发明内容
提供一种用于使在代表在客户机上的软件应用程序的事务记录和重放实用程序内的事务请求自动化的方法、系统、装置和计算机程序产品。所述实用程序检索记录的事务请求;在重放操作模式期间的检索记录的事务请求之前,所述实用程序可以在记录操作模式期间记录发送的事务请求。为响应确定记录的事务请求包括动态确定的参数,从由所述软件应用程序维护的数据结构中获得动态确定的参数的值;所述的值可以通过合适的应用程序编程接口(API)检索。然后,所述实用程序根据记录的事务请求产生事务请求消息,使用获得的值作为在事务请求消息内动态确定的参数的值,并把所述事务请求消息从客户机发送给服务器。在一优选实施例中,所述软件应用程序是Web浏览器,而由软件应用程序维护的数据结构表示文档对象模型(DOM)。
附图说明
被认为是本发明的特点的新的特征在所附的权利要求书中提出。通过结合附图阅读下面的详细说明,将会更好地理解本发明本身及其进一步的目的和优点,其中:
图1A表示各数据处理系统的典型的网络,其中每一数据处理系统都可以实施本发明;
图1B表示一种可在可以实施本发明的数据处理系统内采用的典型的计算机体系结构;
图2表示支持典型的基于Web浏览器的宏记录器实用程序的客户机的方框图;
图3表示用于具有集成的宏记录器实用程序的浏览器应用程序的图形用户接口(GUI)窗口;
图4是一个方框图,按照本发明的一实施例表示了和客户机设备上的浏览器一起运行的事务记录和重放(TRP)实用程序;
图5表示显示出用于捕获和记录事务的处理过程的流程图;
图6示出一文本文件,其表示在本发明的记录操作模式期间生成的脚本;
图7表示按照本发明的一实施例显示出用于重放记录的事务的处理过程的流程图;
图8表示按照本发明的一实施例显示出用于产生HTTP GET请求的处理过程的流程图;以及
图9表示按照本发明的一实施例显示出用于产生HTTP POST请求的过程的流程图。
具体实施方式
一般地说,可以包含本发明或者和本发明相关的装置包含多种数据处理技术。因此,作为背景,在更详细说明本发明之前,首先说明在分布式数据处理系统中的硬件和软件组件的典型组织。
现在参看附图,图1A表示多个数据处理系统的典型的网络,其中每一数据处理系统都可以实施本发明。分布式数据处理系统100包括网络101,该网络是一种媒介,可用于提供在分布式数据处理系统100内连接在一起的各个装置和计算机之间的通信链路。网络101可以包括永久连接,例如电缆或光缆,或者通过电话或无线通信实现的暂时连接。在所示的示例中,服务器102和服务器103与存储装置104一起连接到和网络101。此外,客户机105-107也和网络101相连。客户机105-107和服务器102-103可以由各种计算装置代表,例如大型机、个人计算机、个人数字助理(PDA)等。分布式数据处理系统100可以包括没有示出的另外的服务器、客户机、路由器、其它装置以及对等体系结构。
在所示的示例中,分布式数据处理系统100可以包括互联网,其中网络101代表使用各种协议,例如轻量目录访问协议(LDAP)、传输控制协议/网际协议(TCP/IP)、超文本传输协议(HTTP)等,来相互通信的网络和网关的全世界范围内的集合。当然,分布式数据处理系统100还可以包括许多不同类型的网络,例如内联网、局域网(LAN)或者广域网(WAN)。例如,服务器102直接支持客户机109和网络110,该网络包括无线通信链路。有联网功能的电话111通过无线链路112和网络110相连,且PDA 113通过无线链路114和网络110相连。电话111和PDA 113也可以通过无线链路115并利用如蓝牙无线技术的合适的技术在它们之间直接传递数据,从而形成所谓的个人区域网络或者个人专用网络(personalad-hoc network)。PDA 113可以以类似的方式通过无线通信链路116向PDA 107传输数据。
本发明可以在各种硬件平台和软件环境中实施。图1A旨在作为异构计算环境的一个示例,并不是作为本发明的体系结构限制。
现在参看图1B,该图表示一种可以实施本发明的、如图1A所示的数据处理系统的典型的计算机体系结构。数据处理系统120包括和内部系统总线123连接的一个或多个中央处理单元(CPU)122,所述总线与随机存取存储器(RAM)124、只读存储器126、以及输入/输出适配器128互连,该输入/输出适配器支持各种I/O装置,例如打印机130、磁盘机132、或者其它未示出的装置,例如音频输出系统等。系统总线123还连接用于提供到通信链路136的访问的通信适配器134。用户接口适配器148连接各种用户装置,例如键盘140和鼠标142,或者未示出的其它装置,例如触摸屏、指示笔、麦克风等。显示适配器144连接系统总线123和显示装置146。
本领域的普通技术人员可以理解,图1B的硬件可以根据系统的实施方案而改变。例如,所述系统可以具有一个或多个处理器,例如基于IntelPentium的处理器和数字信号处理器(DSP),所述系统还可以具有一种或更多种类型的易失和非易失存储器。也可以将其它外设与图1B所示的硬件一起使用或代替图1B所示的硬件。所示的例子不意味着暗示关于本发明的体系结构的限制。
除去能够在多种硬件平台上实施之外,本发明可以在多种软件环境中实施。可以使用典型的操作系统控制每个数据处理系统中的程序的执行。例如,一个装置可以运行Unix操作系统,而另一个装置可以包含简单的Java运行时环境。典型的计算机平台可以包括浏览器,其为一种众所周知的软件应用程序,用于访问多种格式的超文本文档,例如图形文件、字处理文件、可扩展标记语言(XML)、超文本标记语言(HTML)、手持设备标记语言(HDML)、无线标记语言(WML)以及各种其它格式和类型的文件。还应当注意,图1A所示的分布式数据处理系统被认为完全能够支持各种对等的子网络和对等的服务。
如上所述,本发明可以在多种硬件和软件平台上实施。然而,更具体地说,本发明请求保护一种用于重放记录的用户事件的方法和系统。在更详细说明本发明之前,首先说明用于记录和重放在基于Web浏览器的宏记录器实用程序内的用户事件的现有技术的解决方案。
现参见图2,该方框图表示支持典型的基于Web浏览器的宏记录器实用程序的客户机。在客户机202上的浏览器软件模块200生成服务器206的事务204。当用户把统一资源定位符(URL)或(更一般地说)把统一资源标识符(URI)输入到浏览器内的位置数据输入字段内时,或者当用户点击网页内的超文本链接时,浏览器将生成包含由用户输入或选择的URI的HTTP请求。一般地说,服务器返回一个网页,然后该网页被浏览器存储在浏览器高速缓存208内。在与另外的Web资源检索操作的同时,或者在检索了所述请求的所有资源之后,浏览器显现所述网页,并在与客户机连接的显示装置上的浏览器窗口210内显示该网页。
用户可以在浏览器窗口内选择超链接或者进行其它的操作。在本例中,用户还调用典型的宏记录器实用程序,该实用程序可以具有许多不同的形式,例如宏记录器实用程序插件212,其作为在浏览器内的客户端插件而运行。或者,宏记录器实用程序可以采用独立的应用程序的形式,和浏览器应用程序一起交互运行,或者和客户机的操作系统协同运行,以便在客户机图形用户接口(GUI)内获得关于用户产生的事件的信息,这些事件也叫做用户手势(user gesture)。在任一情况下,宏记录器实用程序都可以和其它的软件应用程序或模块214交互运行。虽然记录器实用程序可以在浏览器窗口内呈现相关的信息,用户也可以通过记录器实用程序窗口216与宏记录器实用程序交互。在记录用户活动会话之后,宏记录器实用程序生成并在宏文件218中存储宏或用户活动脚本;当需要时,用户可以通过宏记录器实用程序重新检查、编辑和删除这些宏。
当浏览器产生成HTTP请求时,服务器返回一个文档,例如网页,然后由浏览器对其进行分析。文档可被非常广义地描述为可作为整体处理的一组信息项。在基于Web的、处理按照从标准通用标记语言(SGML)导出的标记语言,例如XML或HTML,而格式化的结构化文档的应用程序的环境中,文档是一种有序的元素的集合;元素是含有在划定了该元素的界限的开始标记和结束标记之间的所有内容、以及为该元素定义的任何属性集的对象。
如果浏览器确定接收的网页实际上是容器网页,即,其含有嵌在该网页内的内嵌(in-line)资源,则浏览器试图完成这些内嵌在线资源的附加的事务。内嵌源的示例包括图像或小应用程序(applet)。浏览器可以跟随来自服务器的HTTP重定向响应,这使浏览器发出指定重定向URL的新的请求。
现在参看图3,其中示出了一个具有集成的宏记录器实用程序的浏览器应用程序的GUI窗口。在客户机装置上的浏览器应用程序显示了GUI窗口300,GUI窗口300上具有菜单条302。在本例中,已调用了宏记录器实用程序,且该宏记录实用程序已在菜单条302内安装了“记录器”(“Recorder”)菜单304。用户可以访问菜单304,以便运行宏记录器实用程序。窗口300还显示浏览器工具条306,其提供一组GUI控件,用于启动浏览器应用程序命令的小的子集。在本例中,宏记录器实用程序安装了“宏监视器”(“Macro Monitor”)按钮308,该按钮308使用户能打开由宏记录器实用程序控制的窗口;宏记录器实用程序窗口可以为用户提供任何记录的用户事件的实时的视图。
如上所述,现有技术的解决方案在重放用户记录的、由Web浏览器派生的宏的方面存在着许多问题,因为记录的信息可能含有动态生成的信息,该信息在从一个会话到另一个会话时无效。
现在参看其余的附图,本发明请求保护一种方法和系统,用于提供可能含有动态信息的先前记录的HTTP事务的精确重放,下面将参照剩余附图对其进行详细说明。和现有技术相比,在本发明中的事务记录和重放实用程序试图避免对各种类型的记录的信息作明确的假设,例如关于在网页内的超链接的位置的信息,用于每个后续的事务的超链接的内容的信息,或者当重放事务时可能会使用的客户机装置的配置的信息。
更具体地说,本发明记录事务,然后在Web浏览器或类似的客户机应用程序内重放记录的事务。就本发明来说,事务可以表征为在客户机和服务器之间的一个或多个通信协议动作的集。因为来自Web浏览器的大部分通信流量是HTTP消息,本发明的主要兴趣在于记录和重放在Web浏览器内作为用户手势的结果而生成的HTTP事务。
本发明通过考虑到记录的事务可能含有动态生成的信息来解决现有技术的解决方案中存在的问题。因而,记录的事务可以导致在每次后续重放该记录的事务时,生成的事务内的内容稍微有所不同。
概括地说,本发明的事务记录和重放实用程序通过在记录与/或重放基于Web浏览器的事务时捕获动态信息来解决这个问题。动态信息是从在Web浏览器应用程序内维护的文档对象模型(DOM)相关的信息中导出的。利用来自以前记录的事务的信息,事务记录和重放实用程序搜索当前DOM相关信息中动态参数的当前值,以此提供到事务记录和重放实用程序的输入,使得其在每次随后重放记录的事务时,可以生成完整的和合适的HTTP请求。
现在参看图4,该方框图表示按照本发明的实施例和客户机装置上的浏览器一起运行的事务记录和重放(TRP)实用程序。在客户机402上的浏览器软件模块400以和图3类似的方式为服务器406生成事务404,该服务器返回网页作为响应。浏览器在浏览器高速缓存408中存储接收到的网页,并且浏览器在浏览器窗口410内显示接收到的网页。在本例中,用户已经调用了包括本发明的一实施例的功能的TRP实用插件412。
TRP实用程序可以与包括客户端代理程序的其它的软件应用程序或模块414交互运行。虽然TRP实用程序可以在浏览器窗口内显示相关信息。用户也可以通过TRP实用程序窗口416和TRP实用程序交互。在记录用户活动会话之后,TRP实用程序生成并在脚本文件418中存储宏或用户活动脚本,在需要时,用户可以通过TRP实用程序重新检查、编辑和删除这些脚本。
应当注意,此处的浏览器和TRP实用程序被描述为软件模块,因为它们可以以各种品型(form factor)来实现,例如完整功能的应用程序、插件、或者在另一应用程序控制下的MicrosoftActiveXTM控件。本领域普通技术人员可以理解,包含本发明的步骤、方法、或过程的指令、装置或计算机程序产品不受实施本发明所用的形式的限制。
此外,TRP实用程序有两种主要操作模式:记录模式和重放模式。每种操作模式可体现于不同的模块或应用程序中,这些模块或应用程序理解其中存储记录的事务的脚本文件的格式。不过,本发明不应当解释为排除其它的操作模式的特征,例如混合操作模式,在该模式中TRP实用程序能够以某种并行的方式同时进行事务的记录和重放。
虽然上面没有结合图3进行说明,当浏览器接收和处理来自服务器的网页和其它对象时,浏览器把关于接收到的文档和其它数据的信息放置到其与DOM相关的数据结构、数据对象、或类似的数据存储(datastore)中,如图4中的DOM 420所示。
负责颁布许多与Web相关的技术规范的万维网联盟(W3C)以下述方式定义了其文档对象模型:
文档对象模型是一个平台和语言中性的接口,其允许程序和脚本
动态地访问和更新文档的内容、结构和样式。可进一步处理文档,该
处理的结果可以重新包括到所显示的页中。
W3C发布了其关于文档对象模型的发展方向的“W3C DOM ActivityStatement”:
W3C的文档对象模型(DOM)是一种文档结构的标准应用程序编程接口(API);其目的在于使得程序员易于访问组件以及删除、添加或编辑其内容、属性和格式。本质上,DOM使得程序员可以编写出能够在所有浏览器服务器以及所有的平台上正确运行的应用程序。虽然程序员可能需要使用不同的编程语言,但他们不需要改变其编程模型。
因而,W3C的文档对象模型为程序员提供了一种平台和语言中性的程序接口,其使得使用诸如Java和ECMAScript等语言跨平台可靠地编程成为现实。
应当注意,DOM不仅仅是典型的数据模型;其旨在捕获结构和行为。因而,DOM包括一组应用程序编程接口(API),该组应用程序编程接口(API)和一组对象结合,或者作为一组对象的特征,并且DOM可以以各种与语言相关的或者语言中性的方式来实现。
显然,W3C的文档对象模型的规范继续还在改进,能够预见到,可广泛采用的浏览器和其它类型的基于Web的应用程序将继续支持W3C的DOM。无论什么时候,NetscapeNavigator/Communicator和MicrosoftInternet Explore浏览器都可以支持W3C的DOM规范的版本或者所谓的“风格”(“flavor”)。虽然下面提供的与附图相关的一些例子是从结合MicrosoftInternet Explore浏览器的本发明的一实施例中提取的,但是本发明旨在用于各种文档对象模型,而不应限于文档对象模型的任何特定的版本或风格。
如上所述,TRP实用程序412和浏览器应用程序400联合运行,以便在记录阶段记录由浏览器启动与/或结束的事务,包括HTTP重定向。此外,正如下面详细说明的,TRP实用程序还利用与DOM相关的API捕获来自在Web浏览器应用程序内维护的与DOM相关的信息的动态信息,其优选地是通过TRP实用程序内的DOM分析模块422进行的;与DOM相关的信息是在记录与/或重放基于Web浏览器的事务时捕获的。
虽然此处的示例将本发明描述为和Web浏览器一起运行,但是应当注意,本领域普通技术人员可以理解,本发明也可以描述为和其它形式的客户机软件应用程序一起运行,该客户机软件应用程序也处理通信协议事务,也维护DOM类似的信息。此外,虽然此处的例子将本发明描述为和一单个客户机软件应用程序一起运行,并假定客户机装置的软件平台提供足够的支持,本发明也可以和多个客户机软件应用程序一起运行。
现在参见图5,该流程图表示用于捕捉和记录事务的过程。该过程(步骤502)以用户从Web浏览器启动对事务的记录开始,例如,通过如上所述的TRP实用程序选择工具条按钮或菜单项开始。此步骤实际上开始了用户和TRP实用程序进行交互的记录阶段,在记录操作模式之后的某个后来的时刻,用户可以在重放操作模式期间通过同一个TRP实用程序重放任何所记录的脚本。
当用户操作Web浏览器时(步骤504),例如当用户键入URL或者点击当前正被Web浏览器显示的网页内的URL表示时,TRP实用程序记录用户手势。然后(步骤506),TRP实用程序确定记录的事务内的动态参数。在下面参照图6所示的记录的事务的表示更详细地说明确定动态参数的方式。步骤506可以在记录阶段实时地进行,或者此步骤可以在记录阶段结束之后,即在步骤508之后,作为一种后处理活动进行。
在每种情况下,在某个后来的时刻,用户进行某些用户接口动作,例如通过TRP实用程序选择工具条按钮或菜单项,表示用户要结束记录操作模式(步骤508)。然后,TRP实用程序生成和存储记录的事务的脚本(步骤510)并且结束本过程。脚本可以以XML格式文档的形式存储,如图6所示。或者,可以在TRP实用程序收集关于事务的信息时实时地生成脚本。
再次参看步骤504,下面更详细地说明当用户操作Web浏览器时TRP实用程序记录用户手势的方式。众所周知,用户可以在Web浏览器应用程序的GUI窗口内执行许多手势。还众所周知的是,当用户在Web浏览器内执行某些手势时,例如通过在浏览器内的位置数据输入字段中输入资源识别符,或者通过点击在网页内的超文本链接时,浏览器会生成含有由用户以某种方式指示的URI的HTTP请求。因而,虽然对于所有用户手势,Web浏览器可以从客户机的操作系统中接收许多GUI事件,只有其中某些手势能够使Web服务器生成HTTP请求。更一般地说,只有在客户机软件应用程序内的某些用户手势能够使该客户机软件应用程序生成事务。
步骤504表示当用户操作Web浏览器时TRP实用程序记录用户手势,并且本发明可以记录和用户手势事件有关的各种信息。虽然大部分现有技术的宏实用程序对记录由Web浏览器内的用户手势生成的GUI事件感兴趣,但是本发明的主要兴趣是在由Web浏览器内的用户手势生成的通信协议事件;如上所述,事务可被表征为在客户机和服务器之间的一个或多个通信协议动作集。因而,步骤504的更具体的描述是,TRP实用程序记录响应客户机软件应用程序内的用户手势的由该客户机软件应用程序产生的HTTP请求。应当注意,当浏览器自动地跟随重定向、元刷新(meta-refresh)引用等等时,一个用户手势可以产生一个以上的HTTP请求。
假定本发明的主要兴趣是记录(以及随后重放)由在客户机软件应用程序中的用户手势生成的通信协议事件,现在更详细地说明用于捕获这些通信协议事件的优选的记录过程。不过,应当注意,本发明也可以使用其它的记录过程,而不影响本发明的范围。
优选的记录过程按时间以如下方式操作。在用户执行手势之后,TRP实用程序接收GUI事件的通知。例如,在用户点击网页内的超链接之后,客户机操作系统通知TRP实用程序按下鼠标按钮(mouse-button-down)事件。再举一个例子,在用户按下键盘上的“ENTER”键之后,例如在把URI输入Web浏览器内的位置数据输入字段后,客户机操作系统通知TRP实用程序键盘事件。TRP实用程序可以向所述操作系统注册某类事件的通知,这样就不必过滤或处理每个GUI事件。
在确定该GUI事件可以使Web浏览器生成HTTP请求之后,TRP实用程序设置定时器,并禁止所有的鼠标单击事件或键盘事件,直到定时器到期。可以假定,TRP实用程序具有足够的操作系统优先权或授权,以便以这种方式修改客户机的运行时环境。
当定时器运行时,TRP实用程序记录由Web浏览器发送的任何HTTP请求。例如,TRP实用程序可以运行所有HTTP请求必须通过的代理程序,这为TRP实用程序提供了复制每个HTTP请求的机会,而不管发送HTTP请求的理由,例如,用户超链接的选择或者由Web浏览器跟随的重定向。
在定时器到期之后,被禁止的GUI事件重新启用,这样用户可以进行其它的动作。这一系列的步骤在整个TRP实用程序的记录操作模式期间重复。
定时器可以由用户配置,以便适应在用户手势和Web浏览器动作之间可能发生的最大时间间隔。例如,当用户点击超链接时,产生的网页实际上可能具有元刷新(meta-refrsh)标记,该标记在30秒钟之后把Web浏览器重定向到另一页面。因而,定时器需要设置为大于所述时间间隔的值,以便适应任何可能的延迟。借助于利用定时器,便可以在确定和任何输出的HTTP请求相关的用户手势时消除不确定性;假定已经适当地配置了客户机平台,则输出的HTTP请求只能是由在各定时器执行之间发生的用户手势引起的。此外,不必依赖于复杂的GUI事件处理,例如,确定按下鼠标按钮(mouse-button-down)事件是否发生在Web浏览器窗口的内容区域内的特定“(x,y)”位置。
现在参看图6,该文本,文件表示在本发明的记录操作模式期间产生的脚本。如上所述,本发明的主要兴趣在于记录响应用户手势的由Web浏览器生成的HTTP请求。虽然图6只说明了HTTP请求,其它类型的事务也能存储在脚本文件中;此外,也可以存储不是从事务中具体获得的、但是可用来以某种方式表征用户手势的其它类型的信息。
捕获的HTTP请求可以表示为若干数据项的组合:请求方法的类型,即GET或POST;利用动态参数占位符对各URI值的代替;对显式的或原始的URI的保存;描述超链接的一组元素(如果合适),例如在框架内的定位(anchor)标记;关于网页的其它信息;如果HTTP请求方法是POST方法,则为POST消息的本体(body)以及和该内容关联的输入字段的类型,例如文本字段、口令字段、隐藏字段等;与/或适用于在重放时精确地重新生成HTTP请求的任何其它的信息。可以存储原始请求用作参考,同时也可以和未修改的版本相关联地存储原始请求的修改的版本。下面更详细地说明图6所示示例的具体的内容和格式。
图6所示的示例脚本文件是一个XML格式的文件。本发明也可以支持其它的文件格式。不过,标记语言格式是优选的,因为TRP实用程序可包括标记语言分析器,该标记语言分析器用于解释包含标记语言的文件,例如网页。
如上所述,脚本文件可以包含除HTTP请求之外的信息,这些信息包括其它通信协议的事务,但是图6的示例脚本文件显示了一系列的HTTP请求。HTTP请求的顺序位置和捕获HTTP请求的时间顺序直接相关;捕获的第一个HTTP请求作为第一个HTTP请求存储在脚本文件内,尽管其它的实施例可以提供不同的存储方案。虽然图6中的示例脚本文件只含有关于精确地重放记录的事务的信息,但是其它的元数据(metadata)也可以记录在脚本文件中,例如关于记录脚本的时间的信息,关于客户机、浏览器与/或TRP实用程序的配置的信息,例如版本号,以及从管理脚本文件的角度看来对于处理脚本文件可能有用的任何其它信息。
参看图6,“请求”(“request”)元素,例如元素602,定义用于事务的单个HTTP请求。在本例中,此元素唯一的属性是“源”(“source”),并且由记录器捕获的任何请求具有“手势”“gesture”的源属性值。另一种情况是负责生成事务的嵌入了浏览器的应用程序可被指定具有“嵌入”(“embedded”)的源属性值。换句话说,请求元素的类型和内容可以被扩展或者被修改。下面更详细地说明“request”元素的子元素。
“请求行”(“request-line”)元素是在记录的请求中采用的HTTP方法、URL和HTTP协议版本的组合。在该请求行中,任何参数值都可以含有专用的动态占位符,例如在“request-line”元素604中的“sti-dyn0”;动态占位符可以是不太可能出现在URL参数值中,即名称冲突的几率几乎是0的任何表达式。或者,利用指向记录的请求的、指示被确定为动态参数的位置或数据项的指针,动态占位符可存储在记录的请求信息之外的其它位置。
因为HTTP协议被设计成一种无状态协议,其中每个HTTP请求和相应的HTTP响应被认为是打开和关闭通信会话,HTTP协议并没有内建的机制,以使Web服务器从服务器的角度来跟踪给定用户的会话。因而,Web应用程序发展了多种机制用于维护状态信息。例如,URI可以具有从一个用户会话到另一个用户会话时改变的参数值。
不过,TRP实用程序编码有各种规则,用以引导TRP实用程序在任何捕获的信息内查找动态参数。为定位动态参数,TRP实用程序在HTTP标题(header)、URI、文本字符串、消息本体或者其它可能包含动态生成的信息的数据项或者内容字段中搜索捕捉的信息,以获取特定的信息。例如,可以配置TRP实用程序,例如通过当初始化或者实例化TRP实用程序时TRP实用程序读取的配置文件或资源文件,扫描特定的标记,例如“=”、“?”等。这些标记很可能表示动态参数,即具有动态指定的值的参数,并且TRP实用程序可以在处理这些值的同时插入专用的占位符,以便每次当TRP实用程序需要进行记录的事务的重放时,不必分析记录的请求以指示动态参数。或者,可以存储用于向回指向记录的事务内的这些动态参数的位置的指针。
“标题”(“header”)元素,例如元素606,含有子元素“h1”,该子元素含有一个属性“source”;该属性类型可以是“用户”(“user”)或者“浏览器”(“browser”)。“用户”(“user”)类型指出该标题是由记录器实用程序指定的,即编程到逻辑中。“浏览器”(“browser”)类型指出该标题是由浏览器控件通过“BeforeNavigate2”回调方法的标题参数指定的。元素文本可以是任何有效的HTTP标题。
“内容”(“content”)元素,例如元素608,含有子元素“w3-enc”,该子元素含有单个属性“类型”(“type”)。该“类型”包含的值是在记录时从DOM提取的值。这样的值基于HTML INPUT元素类型,例如“文本”(“text”)、“口令”(“password”)、“隐藏”(“hidden”)等。此元素的文本值是在HTML INPUT元素中包含的POST数据。
“元信息”(“meta-info”)元素,例如元素610,包含子元素“元”(“meta”),该子元素含有单个属性“标记”(“tag”)。此属性的值是以下之一:“URI”、“A”、“表单”(“FORM”)、“帧”(“FRAME”)、“输入”(“INPUT”)或“区域”(“AREA”)。
“URI”表示在记录操作模式期间请求访问的原始的URL。具有类型为“URI”的“标记”(“tag”)属性的“元”(“meta”)元素将存在于每个记录的请求中。此元素的文本值是在记录时访问的原始的URL。
“A”表示HTML“定位”(“anchor”)元素。该元素的文本值是基于被确定为此元素的元信息的最强的类型。其优选的顺序是“innerText”,“outterText”,“innerHTML”,以及“outterHTML”。这些优选项是在记录和重放期间存在于与DOM相关的信息内的基于DOM的元素。
“表单”(“FORM”)是HTML FORM元素;该元素的文本值是“动作”(“action”)属性的键标和值。“帧”(“FRAME”)是HTMLFRAME元素;该元素的文本值是“名称”(“name”)属性的键标和值。
“输入”(“INPUT”)是HTML INPUT元素;该元素的文本值是其“name”属性的键标和值。“区域”(“AREA”)是HTML AREA元素;该元素的文本值是其“alt”属性的键标和值。各“元”(“meta”)元素的顺序是重要的,”且具有以下可能的组合:
URI[FRAME|FORM|A|AREA]
FRAME[FORM]?[A|AREA]?
FORM,INPUT
现在参看图7,该流程图表示按照本发明的实施例用于重放记录的事务的过程。该过程开始于用户在TRP实用程序内启动重放(步骤702),例如借助于如上所述的TRP实用程序选择工具条按钮或菜单项。用户可以在TRP内设置多种参数,用于控制重放操作模式的各个方面,例如,用户希望重放的脚本的文件名。
(在步骤704,)TRP实用程序从脚本文件获得第一个记录的请求,并(在步骤706)重放该第一请求,优选的是不加任何修改。换句话说,利用图6所示的脚本文件的示例,TRP实用程序从脚本获得第一请求元素,然后生成并发送在脚本中指定的URL(或者更一般地,URI)的HTTP请求。此外,在步骤706,TRP实用程序在一URL矢量中保存该请求的URL供以后使用,下面将要更详细描述。
在事务脚本的开头,可以假定第一个记录的请求不含有任何动态参数。因此,它不需要TRP实用程序在重放时替代任何动态信息。这个假定应当是准确的,因为可以假定用户是在向特定的Web服务器生成任何请求之前启动记录操作模式的。换句话说,可以假定记录操作模式以这种方式开始,这种方式使得Web浏览器处于“清洁状态”(“clean state”),即Web浏览器尚未使用信息填充其与DOM相关的数据结构,该信息可能影响对请求内的动态参数的确定。如果需要,当用户启动记录操作模式时,TRP实用程序将通过清空Web浏览器的存储器高速缓存、文档高速缓存、cookie高速缓存等以某种方式强制实现清洁浏览器状态,许多市场上可购买的Web浏览器提供了这一选项。类似地,在用户启动重放操作模式时,TRP实用程序可以强制实现清洁的浏览器状态。TRP实用程序可以向用户提供可选择的选项,用于在这些情形下把Web浏览器重置到清洁状态。
然后(在步骤708,)TRP实用程序确定Web浏览器是否接收到重定向。例如,通过在由TRP实用程序控制的代理程序处从Web服务器接收输入的HTTP重定向响应,或者通过在代理程序处在所述重定向被处理之后从Web浏览器接收输出的HTTP请求,TRP实用程序可以检测到重定向。或者,TRP实用程序可以接收到具有任何相关信息的事件通知。在任一情况下,如果没有接收到重定向,则过程只是继续进行。
然而,如果收到重定向,则(在步骤710)重定向中的URL被保存在URL矢量数据结构中,此后,(在步骤712)发送该重定向的HTTP请求。如果需要,则以类似于上面在记录操作模式期间所述的定时器的方式,TRP实用程序可以等待一个可设置的时间量,以确保在尝试发送下一个请求之前接收到或接收不到重定向。
然后,(在步骤714)确定脚本文件是否包含另一个记录的事务。如果不包含,则重放操作模式完毕,并且该过程结束。
如果在脚本文件中有另一个记录的事务,则(在步骤716,)从脚本文件中检索下一个记录的事务。然后(在步骤718)TRP实用程序确定在脚本内是否有动态参数。如果没有,则可以不替代任何动态信息而生成请求。
在请求执行之后,Web浏览器接收响应,处理所述响应,并使用关于接收的文档与/或接收的对象的信息填充其与DOM相关的数据结构。响应于每个请求,作出响应的Web服务器可以生成包含在HTTP响应内的并且可能嵌入响应消息的本体或内容区域内的内容。
在其它情况下,Web浏览器能够在客户机生成动态信息。例如,Web浏览器可以执行JavaScript,ECMAScript和VBScript,以及许多其它动态的与Web相关的技术,包括小应用程序或者ActiveX控件。任何这些技术的执行可以使用DOM信息作为其自身过程的输入,并且也可以引起对与DOM相关的数据结构的修改。
然而,每次请求之后,与DOM相关的数据结构在一定程度上反映了该请求的结果。此外,根据发生了多少次重定向,URL矢量数据结构将包含一个或多个URL,URL矢量总是含有至少一个URL,它是在第一个HTTP请求中使用的URL。然后与DOM相关的信息和URL矢量可被TRP实用程序用来确保正确地生成随后的请求,以使得随后的请求包含任何合适的信息,任何合适的信息包括只能动态地获得的、在记录操作模式期间不能被预先记录的任何信息。
假定一些动态参数嵌入记录的请求内,则(在步骤720)TRP实用程序生成下一个HTTP请求,同时如果需要则从与DOM相关的信息和URL矢量中获得动态参数的值。TRP实用程序然后(在步骤722)为合适的URL发送HTTP请求;再一次地,该请求的URL被保存在URL矢量中。HTTP请求的生成将在下面参照图8和图9作更详细的说明。然后,该过程重新进入一个处理循环,其中TRP实用程序再次检查重定向和其它的记录的事务。在重放所有的记录的事务之后,重放操作模式结束。
现在参看图8,该流程图表示按照本发明的实施例的用于生成HTTPGET请求的过程。图8更详细地示出在图7中的步聚720发生的用于产生下一个请求,具体地说,HTTP GET请求消息的处理。应当注意,图8所示的过程只是事务记录和重放实用程序可以用来通过合适的一组API访问和处理Web浏览器的与DOM相关的信息的方式的示例,本发明的范围可以包括其它的与DOM相关的信息的处理方法。
图8的过程假定TRP实用程序已经确定其必须替换以至少一个动态参数的值,所述动态参数可以通过扫描检查从脚本文件获得的下一个记录的请求是否含有动态的占位符来确定,如上面参照图6所述。不过,如步骤718所述,下一个记录的请求可能不要求替换动态参数的值,在这种情况下,则不经如图8所示的任何进一步处理便发送下一个请求。
因而,假定在下一个记录的请求中包含一个动态占位符,则TRP实用程序开始处理记录的请求,以便生成下一个要发送的请求。为简化术语,当前正在被TRP实用程序处理的记录的请求被称为“当前请求”。
该过程开始于(在步骤802)由TRP实用程序使用来自当前请求的“元”(“meta”)标记,来尽可能接近地定位DOM内的正确的文档。再次参见图6,每个“请求”(“request”)元素含有“meta-info”元素,“meta-info”元素又含有一个或多个“元”(“meta”)元素。例如,如果各元(meta)标记被排序为帧(FRAME)、表单(FORM)、输入(INPUT),则TRP实用程序在由FRAME“meta”标记描述的帧(FRAME)内搜索该表单(FORM)。
虽然TRP实用程序可以被描述为搜索DOM,TRP既不维护也不管理表示DOM的数据结构,因此TRP并不象TRP实用程序在存储器中搜索其自身的例如URL矢量的数据结构时发生的那样,直接搜索表示DOM的数据结构。而是,TRP实用程序使用合适的API从DOM中读取或者以其它方式获得信息,此后,TRP实用程序可以接着搜索所获得的信息。
例如,微软的Internet Explorer DOM反映了被Web浏览器处理过的文档的结构和文档的嵌入的标记语言格式。DOM可被表示为树状数据结构,其中树的各片断相应于文档的各部分。换句话说,树状数据结构的层级表示反映了文档及其DOM的层级结构。通过微软的IHTMLDocument2接口提供的API使得按照顺序寻访存储的资源成为可能,以使得资源与/或其属性可以从DOM获取,然后根据需要由应用程序处理。DOM API允许寻访、插入、删除和更新文档的任何部分,例如线嵌入的资源与/或其属性,虽然某些属性对于诸如插件或软件开发工具等软件模块,即浏览器应用程序之外的软件模块来说,可能是只读的。
然后,(在步骤804)TRP实用程序根据该请求的URL(更一般地说,URI)和诸参数键(其值是动态占位符),来搜索DOM,以获得最佳URL匹配,并生成搜索结果指示符。(在步骤806)TRP实用程序还根据最后一个“元”(“meta”)元素(这应当是输入[INPUT]、区域[AREA]、或者“A”元素)的元(meta)信息来搜索DOM,以便获得最佳元(meat)信息匹配,并且生成搜索结果指示符。
在每个搜索操作之后,生成搜索结果指示符。这些指示符可以是标志、整数等。例如,在步骤804,如果定位了匹配,则可以返回成功值“1”,否则,返回值“0”。类似地,在步骤806,如果发生“元”(“meta”)匹配,则返回值“2”;否则返回值“0”。
然后,(在步骤808)分析这些搜索结果指示符,从而生成合成的搜索结果指示符。如果使用整数表示结果,则这些值可以相加,然后按照以下方式解释。从URL搜索返回的值和从“元”(“meta”)搜索返回的值的可能的和是TOTAL_FAILURE(0)、URI_SUCCESS(1)、META_SUCCESS(2)、或者TOTAL_SUCCESS(3)。TOTAL_SUCCESS表示为完全匹配;TRP实用程序找到了URL并利用元(meta)数据对其进行了验证。META_SUCCESS是强匹配;TRP实用程序找到了元(meta)信息,在此示例中其被指定为比URL匹配更强的匹配。URI_SUCCESS或TOTAL_FAILURE是弱匹配;实际上不能确信TRP实用程序已经定位了正确的URL。
然后TRP实用程序检查URL矢量中的原始的URL之后的每个URL,以获得包含在原始的URL中的任何键,并(在步骤810)在动态占位符中进行全值替换;这一步假定置于重定向URL中的值总是最新的和最重要的。
(在步骤812,)如果TRP实用程序具有来自步骤808的TOTAL_FAILURE或URI_SUCCESS值,并且不能使用URL矢量替换URL中的动态信息,则TRP实用程序指定URI“元”(“meta”)标记的URI元素文本为要在当前HTTP请求中使用的URL。
(在步骤814)如果TRP实用程序具有META_SUCCESS或者TOTAL_SUCCESS值,则TRP实用程序确定获得的URL是正确的,并指定其作为要在当前HTTP请求中使用的URL。然后,在任一情况下,该过程结束。TRP实用程序接着把指定的URL置于HTTP请求中,如上参照图7中的步骤722所述。
现在参见图9,该流程图按照本发明的实施例表示用于生成HTTPPOST请求的过程。图9更详细地示出在图7的步骤720进行的用于生成下一个请求,具体地说,HTTP POST请求消息的处理。也如同上面参照图8所述,图9所示的过程只是一个表示事务记录和重放实用程序可以用来通过合适的API集访问和处理Web浏览器的与DOM相关的信息的方式的例子,且本发明的范围可以包括其它的与DOM相关的信息处理方法。
以和图8类似的方式,图9的过程假定TRP实用程序已经确定其必须替换至少一个动态参数的值。不过,如步骤718所述,下一个记录的请求可能不要求替换动态参数的值,在这种情况下,不经图9所示的任何进一步处理而发送下一个请求。因而,假定在下一个记录的请求中具有动态占位符,则TRP实用程序开始处理记录的请求,以便生成要发送的下一个请求。为简化术语,当前正在被TRP实用程序处理的记录的请求被称为“当前请求”。
该过程(在步骤902)从TRP实用程序执行与图8所示的相同的步骤,以便获得正确的(所能确定出的最佳的)URL开始。假定该过程正在生成HTTP POST请求,则需要另外的处理用于获得响应于从Web服务器接收到的表单而返回即发布到Web服务器的值。
(在步骤904)利用在当前请求内的POST内容,即“w3c-enc”元素(其表示名称/值参数),TRP实用程序在与DOM相关的信息中搜索DOM中的该文档的所有的表单(FORM)参数,并且在键(或名称)匹配时,TRP实用程序利用在该文档中找到的值替换“w3c-enc”元素的任何值。
然后,(在步骤906,)利用URL矢量,当各URL和“w3c-enc”元素的任何键匹配时,TRP实用程序利用URL的值替换任何“w3c-enc”元素的值;这一步骤处理那些使用重定向的HTTP GET请求的值作为随后请求中的HTTP POST值的站点。然后结束该过程。TRP实用程序已经确定了要在当前的HTTP POST请求中使用的指定的URL。TRP实用程序将接着把确定的各POST参数和指定的URL一起置于HTTP POST请求中,如上面参照图7的步骤722所述。
从上面提供的本发明的详细说明来看,显而易见本发明的优点。与现有技术的解决方案相比,这些现有技术解决方案在重放用户记录的、由Web浏览器获得的宏的方面具有许多问题,本发明检查Web浏览器内部的数据结构,从而在重放先前记录的事务时获得产生完整和正确的事务所需的动态信息。从一个方面来看,本发明的事务记录和重放功能把记录的事务看作是请求的几乎完整的模板,而不象现有技术的解决方案那样把记录的事务本身作为完整的请求。动态地获得填充几乎完整的请求模板中的占位符所需的动态信息,该动态信息和以前记录的信息组合,以便产生完整的请求。
具体地说,事务记录和重放实用程序检查Web浏览器的数据结构,该数据结构与其对于请求的网页的文档对象模型(DOM)的内部表示关联。按照文档对象模型的类型,事务记录和重放实用程序确定动态的信息,然后所述动态信息被标记在为记录的事务所生成的脚本内的合适的位置。在重放脚本时,标识出任何以前确定的动态参数,并从当前的DOM中检索该动态参数的合适的值。然后利用动态确定的信息生成HTTP请求,以此使得脚本能够没有错误地重放,并使Web浏览器内的特定的用户任务自动化。
应当注意,虽然本发明以一种具有完整功能的数据处理系统进行了说明,本领域的普通技术人员将理解,本发明的过程能够以在计算机可读介质中的指令的形式和其它多种形式分布,而与实际用于进行所述分布的信号承载介质的具体类型无关。计算机可读介质的例子包括例如EPROM、ROM、磁带、纸张、软盘、硬盘驱动器、RAM和CD-ROM的介质,以及传输型的介质,例如数字的和模拟的通信链路。
方法一般被认为是一种导致所需的结果的前后一致的一系列的步骤。这些步骤需要对物理量的物理处理。通常,虽然并非必须,这些量采取电信号或磁信号的形式,这些形式的信号能够存储、传送、组合、比较和进行其它的处理。有时,主要是由于通常用法,把这些信号称为位、值、参数、项目(item)、元素、对象、符号、字符、项(term)、号码等是方便的。不过,应当注意,所有这些术语和类似的术语都要与适当的物理量关联,因而只是应用于这些物理量的方便的标签。
上面已经对本发明进行了说明,这只是为了说明的目的,而并非旨在穷尽或限制到所公开的实施例。显而易见本领域的普通技术人员,可以作出许多修改和改变。选择这些实施例是为了说明本发明的原理及其实际应用,并使本领域的其他普通技术人员能够理解本发明,以便能够实现各种实施例,这些实施例具有可能适合于其它构想的应用的各种修改。
Claims (30)
1.一种用于使代表在客户机的软件应用程序的事务记录和重放实用程序内的事务请求自动化的方法,所述方法包括:
检索记录的事务请求;
响应于确定所述记录的事务请求包含动态参数,从由所述软件应用程序维护的数据结构中获得所述动态参数的值;
根据所述记录的事务请求生成事务请求消息,使用所述获得的值作为在所述事务请求消息内的所述动态参数的值;以及
把所述事务请求消息从客户机发送给服务器。
2.按照权利要求1所述的方法,其特征在于:所述软件应用程序是一Web浏览器。
3.按照权利要求1所述的方法,其特征在于:由所述软件应用程序维护的所述数据结构代表文档对象模型(DOM)。
4.按照权利要求3所述的方法,其特征在于还包括:
搜索由所述软件应用程序维护的所述数据结构,以获得和所述记录的事务请求内的URI匹配的URI;以及
确定来自所述DOM中的、和所述匹配的URI相关的文档中的所述获得的值。
5.按照权利要求1所述的方法,其特征在于:所述生成的事务请求消息是HTTP GET消息。
6.按照权利要求1所述的方法,其特征在于:所述生成的事务请求消息是HTTP POST消息。
7.按照权利要求1所述的方法,其特征在于还包括:
在重放操作模式期间的检索所述记录的事务请求之前,在记录操作模式期间记录发送的事务请求。
8.按照权利要求1所述的方法,其特征在于:所述记录的事务请求是响应于在所述软件应用程序内的用户手势而先前记录的。
9.按照权利要求1所述的方法,其特征在于:所述记录的事务请求从包含表示脚本的一系列的记录的事务请求的文件中检索。
10.按照权利要求1所述的方法,其特征在于还包括:响应于确定所述记录的事务请求不包括动态参数,根据所述记录的事务请求生成事务请求消息。
11.一种用于使代表在客户机的软件应用程序的事务记录和重放实用程序内的事务请求自动化的数据处理系统,所述数据处理系统包括:
用于检索记录的事务请求的装置;
用于响应于确定所述记录的事务请求包括动态参数,从由所述软件应用程序维护的数据结构中获得所述动态参数的值的装置;
用于根据所述记录的事务请求生成事务请求消息并使用所述获得的值作为在所述事务请求消息内的所述动态参数的值的装置;以及
用于把所述事务请求消息从客户机发送给服务器的装置。
12.按照权利要求11所述的数据处理系统,其特征在于:所述软件应用程序是Web浏览器。
13.按照权利要求11所述的数据处理系统,其特征在于:由所述软件应用程序维护的数据结构表示文档对象模型(DOM)。
14.按照权利要求13所述的数据处理系统,其特征在于还包括:
用于搜索由所述软件应用程序维护的所述数据结构,以获得和所述记录的事务请求内的URI匹配的URI的装置;以及
用于确定来自所述DOM中的、和所述匹配的URI相关的文件中的所述获得的值的装置。
15.按照权利要求11所述的数据处理系统,其特征在于:所述生成的事务请求消息是HTTP GET消息。
16.按照权利要求11所述的数据处理系统,其特征在于:所述生成的事务请求消息是HTTP POST消息。
17.按照权利要求11所述的数据处理系统,其特征在于还包括:
用于在重放操作模式期间的检索所述记录的事务请求之前,在记录操作模式期间记录发送的事务请求的装置。
18.按照权利要求11所述的数据处理系统,其特征在于:所述记录的事务请求是响应于在所述软件应用程序内的用户手势而先前记录的。
19.按照权利要求11所述的数据处理系统,其特征在于:所述记录的事务请求从包含表示脚本的一系列的记录的事务请求的文件中检索。
20.按照权利要求11所述的数据处理系统,其特征在于还包括:用于响应于确定所述记录的事务请求不包括动态参数,根据所述记录的事务请求生成事务请求消息的装置。
21.一种用于数据处理系统的计算机可读介质中的计算机程序产品,用于使代表在客户机的软件应用程序的事务记录和重放实用程序内的事务请求自动化,所述计算机程序产品包括:
用于检索记录的事务请求的装置;
用于响应于确定所述记录的事务请求包括动态参数,从由所述软件应用程序维护的数据结构中获得所述动态参数的值的装置;
用于根据所述记录的事务请求产生事务请求消息并使用所述获得的值作为在所述事务请求消息内的所述动态参数的值的装置;以及
用于把所述事务请求消息从客户机发送给服务器的装置。
22.按照权利要求21所述的计算机程序产品,其特征在于:所述软件应用程序是Web浏览器。
23.按照权利要求21所述的计算机程序产品,其特征在于:由所述软件应用程序维护的数据结构表示文档对象模型(DOM)。
24.按照权利要求23所述的计算机程序产品,其特征在于还包括:
用于搜索由所述软件应用程序维护的所述数据结构,以获得和所述记录的事务请求内的URI匹配的URI的装置;以及
用于确定来自所述DOM中的、和匹配的URI相关的文件中的所述获得的值的装置。
25.按照权利要求21所述的计算机程序产品,其特征在于:所述生成的事务请求消息是HTTP GET消息。
26.按照权利要求21所述的计算机程序产品,其特征在于:所述生成的事务请求消息是HTTP POST消息。
27.按照权利要求21所述的计算机程序产品,其特征在于还包括:
用于在重放操作模式期间的检索所述记录的事务请求之前,在记录操作模式期间记录发送的事务请求的装置。
28.按照权利要求21所述的计算机程序产品,其特征在于:所述记录的事务请求是响应于在所述软件应用程序内的用户手势而先前记录的。
29.按照权利要求21所述的计算机程序产品,其特征在于:所述记录的事务请求从包含表示脚本的一系列的记录的事务请求的件中检索。
30.按照权利要求21所述的计算机程序产品,其特征在于还包括:用于响应于确定所述记录的事务请求不包括动态参数,根据所述记录的事务请求生成事务请求消息的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/314,466 | 2002-12-06 | ||
US10/314,466 US7269633B2 (en) | 2002-12-06 | 2002-12-06 | Method and system for playback of dynamic HTTP transactions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1507237A true CN1507237A (zh) | 2004-06-23 |
CN100588196C CN100588196C (zh) | 2010-02-03 |
Family
ID=32468470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200310118210A Expired - Fee Related CN100588196C (zh) | 2002-12-06 | 2003-12-05 | 用于重放动态超文本传输协议事务的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7269633B2 (zh) |
CN (1) | CN100588196C (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7231606B2 (en) * | 2000-10-31 | 2007-06-12 | Software Research, Inc. | Method and system for testing websites |
US20040158617A1 (en) * | 2003-02-06 | 2004-08-12 | Trip Advisor, Inc. | Methods and systems for processing a link |
US20040172253A1 (en) * | 2003-02-28 | 2004-09-02 | Sun Microsystems, Inc., A Delaware Corporation | Capture and playback web automation tool |
EP1616246A4 (en) * | 2003-04-04 | 2006-09-20 | Computer Ass Think Inc | SYSTEM AND METHOD FOR ACCESSING DOCUMENT DATA OVER A WEB SERVICE |
US20050034148A1 (en) * | 2003-08-05 | 2005-02-10 | Denny Jaeger | System and method for recording and replaying property changes on graphic elements in a computer environment |
US20050177613A1 (en) * | 2004-02-11 | 2005-08-11 | Scott Dresden | Statistical and vouyeristic link behavioral tracking and presentation tools |
US20050283727A1 (en) * | 2004-06-21 | 2005-12-22 | Large William T | Non-resident methods and systems for providing clickless user actuation of a webpage |
US20060070075A1 (en) * | 2004-09-03 | 2006-03-30 | Sergei Rodionov | Server-recorded macros and web application automation |
US7653721B1 (en) * | 2004-10-29 | 2010-01-26 | Sun Microsystems, Inc. | Mechanism for capturing high level events on user interface components |
US7640296B2 (en) * | 2004-12-21 | 2009-12-29 | Sap Ag | Mapping of a content request for a cache server |
US7499438B2 (en) * | 2005-01-13 | 2009-03-03 | 2Wire, Inc. | Controlling wireless access to a network |
US7536642B2 (en) * | 2005-04-13 | 2009-05-19 | International Business Machines Corporation | Method for monitoring computer user input |
US7814410B2 (en) * | 2005-09-12 | 2010-10-12 | Workman Nydegger | Initial server-side content rendering for client-script web pages |
US8196052B2 (en) * | 2006-06-30 | 2012-06-05 | International Business Machines Corporation | System and method to display a web page as scheduled by a user |
US20080082629A1 (en) * | 2006-10-03 | 2008-04-03 | Oracle International Corporation | Enabling Users to Repeatedly Perform a Sequence of User Actions When Interacting With a Web Server |
US8214451B2 (en) * | 2007-01-19 | 2012-07-03 | Alcatel Lucent | Network service version management |
US8281234B2 (en) * | 2007-03-20 | 2012-10-02 | Microsoft Corporation | Definable application assistant |
WO2008126796A1 (ja) | 2007-04-06 | 2008-10-23 | International Business Machines Corporation | サービス・プログラムを生成する技術 |
US7970857B2 (en) * | 2007-05-18 | 2011-06-28 | Red Hat, Inc. | Method and an apparatus to record web transactions using a proxy server |
US8392890B2 (en) * | 2007-10-15 | 2013-03-05 | Software Research, Inc. | Method and system for testing websites |
US9558097B2 (en) * | 2007-11-13 | 2017-01-31 | Red Hat, Inc. | Automated recording and playback of application interactions |
US8234393B2 (en) * | 2007-11-16 | 2012-07-31 | Red Hat, Inc. | Generic network protocol scripting |
EP1970819A1 (de) * | 2007-11-20 | 2008-09-17 | Eye-T Communications GmbH | Verfahren zum Erstellen und Ausgeben von Webseiten über ein Computernetzwerk |
US8849944B2 (en) * | 2007-11-27 | 2014-09-30 | Red Hat, Inc. | Multi-use application proxy |
US8418060B2 (en) * | 2008-03-03 | 2013-04-09 | International Business Machines Corporation | Method, apparatus and computer program product for capturing and viewing stored web resource interactions |
US11005910B1 (en) * | 2008-06-17 | 2021-05-11 | Federal Home Loan Mortgage Corporation (Freddie Mac) | Systems, methods, and computer-readable storage media for extracting data from web applications |
DE102008046638A1 (de) * | 2008-09-09 | 2010-03-11 | Chattensoft E. K. | Verfahren zum Automatisieren eines Datenaustauschs zwischen einem Endgerät eines Anwenders und einer von einem Fremdserver bereitgestellten Website |
US8589810B2 (en) * | 2008-11-18 | 2013-11-19 | At&T Intellectual Property I, L.P. | Methods, systems, and products for recording browser navigations |
US20100146112A1 (en) * | 2008-12-04 | 2010-06-10 | Real Dice Inc. | Efficient communication techniques |
US8761575B2 (en) * | 2009-04-09 | 2014-06-24 | Sony Computer Entertainment America Llc | Method and apparatus for searching replay data |
CN102460428A (zh) * | 2009-06-05 | 2012-05-16 | 惠普开发有限公司 | 用于表示与web服务的用户交互的系统和方法 |
US9350817B2 (en) * | 2009-07-22 | 2016-05-24 | Cisco Technology, Inc. | Recording a hyper text transfer protocol (HTTP) session for playback |
US20110131450A1 (en) * | 2009-11-30 | 2011-06-02 | Microsoft Corporation | Using synchronized event types for testing an application |
US8635334B2 (en) * | 2009-12-10 | 2014-01-21 | Riverbed Technology, Inc. | Web transaction analysis |
DE102010049671B4 (de) * | 2010-10-26 | 2012-08-16 | Wolfram Kress | Verfahren zum Steuern von Komponenten eines Automationssystems |
US8874525B2 (en) | 2011-04-19 | 2014-10-28 | Autodesk, Inc. | Hierarchical display and navigation of document revision histories |
US8701002B2 (en) * | 2011-04-19 | 2014-04-15 | Autodesk, Inc. | Hierarchical display and navigation of document revision histories |
US8806574B2 (en) | 2011-10-05 | 2014-08-12 | Hewlett-Packard Development Company, L.P. | System and method for policy conformance in a web application |
US9176797B1 (en) * | 2012-01-27 | 2015-11-03 | Sprint Communications Company L.P. | Workflow processing and methods for auditing and playback of data |
US20140012974A1 (en) * | 2012-07-09 | 2014-01-09 | ALC, Spol. S.R.O. | On-line system for monitoring user activities on an it device |
KR102084630B1 (ko) * | 2012-07-26 | 2020-03-05 | 삼성전자주식회사 | 질문 메시지 전송 방법 및 이를 위한 디스플레이 장치, 정보 공유 방법 및 모바일 기기 |
US8812434B2 (en) | 2012-10-12 | 2014-08-19 | Ca, Inc. | Data structure for efficiently identifying transactions |
US9985991B2 (en) * | 2013-02-26 | 2018-05-29 | Red Hat, Inc. | HTTP password mediator |
US10306050B2 (en) * | 2013-08-07 | 2019-05-28 | Microsoft Technology Licensing, Llc | Controlling the actions of a mobile browser |
US10362090B2 (en) * | 2014-06-25 | 2019-07-23 | Tata Consultancy Services Limited | Automating a process associated with a web based software application |
US10171548B2 (en) * | 2014-08-26 | 2019-01-01 | Mavenir Systems, Inc. | Method and system for efficient enrichment of upper layer protocol content in transmission control program (TCP) based sessions |
US10664404B2 (en) * | 2016-02-04 | 2020-05-26 | Sap Se | User interface state transitions |
US10257342B2 (en) | 2016-03-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Validating stateful dynamic links in mobile applications |
US20170289338A1 (en) * | 2016-03-31 | 2017-10-05 | Microsoft Technology Licensing, Llc | Enabling stateful dynamic links in mobile applications |
US10474563B1 (en) * | 2016-12-28 | 2019-11-12 | Wells Fargo Bank, N.A. | System testing from production transactions |
US11455625B2 (en) * | 2019-10-30 | 2022-09-27 | Gregory Peter Kavanagh | Method of electronic payment by means of a uniform resource identifier (URI) |
US20230038691A1 (en) * | 2021-08-05 | 2023-02-09 | Yaar Inc. | Workflow instruction interpretation for web task automation |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5611038A (en) * | 1991-04-17 | 1997-03-11 | Shaw; Venson M. | Audio/video transceiver provided with a device for reconfiguration of incompatibly received or transmitted video and audio information |
US5737592A (en) * | 1995-06-19 | 1998-04-07 | International Business Machines Corporation | Accessing a relational database over the Internet using macro language files |
US5715453A (en) * | 1996-05-31 | 1998-02-03 | International Business Machines Corporation | Web server mechanism for processing function calls for dynamic data queries in a web page |
US5890172A (en) * | 1996-10-08 | 1999-03-30 | Tenretni Dynamics, Inc. | Method and apparatus for retrieving data from a network using location identifiers |
US5809250A (en) * | 1996-10-23 | 1998-09-15 | Intel Corporation | Methods for creating and sharing replayable modules representive of Web browsing session |
DE69832986T2 (de) * | 1997-06-25 | 2006-08-17 | Samsung Electronics Co., Ltd., Suwon | Verfahren und vorrichtung zur selbständigen baumbildung für ein heimnetz |
EP0889418A3 (en) | 1997-06-30 | 1999-08-18 | Sun Microsystems, Inc. | Abstract URL resolution via relocation service |
US6178433B1 (en) * | 1997-07-15 | 2001-01-23 | International Business Machines Corporation | Method and system for generating materials for presentation on a non-frame capable web browser |
US6041360A (en) * | 1997-11-21 | 2000-03-21 | International Business Machines Corporation | Web browser support for dynamic update of bookmarks |
US6105043A (en) * | 1997-12-16 | 2000-08-15 | International Business Machines Corporation | Creating macro language files for executing structured query language (SQL) queries in a relational database via a network |
US6195679B1 (en) * | 1998-01-06 | 2001-02-27 | Netscape Communications Corporation | Browsing session recording playback and editing system for generating user defined paths and allowing users to mark the priority of items in the paths |
US6314432B1 (en) * | 1998-05-13 | 2001-11-06 | International Business Machines Corporation | System and method for retrieval, saving and printing of using hyperlinks |
US6209027B1 (en) * | 1998-06-01 | 2001-03-27 | International Business Machines Corporation | Recirculating network address list with single button sequencer/selector |
US6848104B1 (en) * | 1998-12-21 | 2005-01-25 | Koninklijke Philips Electronics N.V. | Clustering of task-associated objects for effecting tasks among a system and its environmental devices |
US6408360B1 (en) * | 1999-01-25 | 2002-06-18 | International Business Machines Corporation | Cache override control in an apparatus for caching dynamic content |
DE19904090C2 (de) * | 1999-02-02 | 2003-06-05 | Wolf Gmbh Richard | Verfahren und Vorrichtung zur automatischen Steuerung und Verwaltung medizinischer Geräte und Anlagen |
US6675387B1 (en) * | 1999-04-06 | 2004-01-06 | Liberate Technologies | System and methods for preparing multimedia data using digital video data compression |
AU2001266543A1 (en) | 2000-06-22 | 2002-01-02 | The National University Of Singapore | A system for automating a web browser application |
-
2002
- 2002-12-06 US US10/314,466 patent/US7269633B2/en not_active Expired - Fee Related
-
2003
- 2003-12-05 CN CN200310118210A patent/CN100588196C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7269633B2 (en) | 2007-09-11 |
US20040111488A1 (en) | 2004-06-10 |
CN100588196C (zh) | 2010-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1507237A (zh) | 用于重放动态超文本传输协议事务的方法和系统 | |
US11886402B2 (en) | Systems, methods, and media for dynamically generating informational content | |
US7536389B1 (en) | Techniques for crawling dynamic web content | |
RU2412476C2 (ru) | Прикладной программный интерфейс для извлечения и поиска текста | |
US6665658B1 (en) | System and method for automatically gathering dynamic content and resources on the world wide web by stimulating user interaction and managing session information | |
CN1229715C (zh) | 信息控制系统和信息处理方法 | |
CN1120432C (zh) | 产生显示控制信息的方法和计算机 | |
US6144990A (en) | Computer apparatus and method for communicating between software applications and computers on the world-wide web using universal variable handling | |
US7293089B2 (en) | Site evaluation system and site evaluation program storage medium | |
CN109033195A (zh) | 网页信息的获取方法、获取设备及计算机可读介质 | |
CN1555534A (zh) | 用于在网络中传送动态信息的方法和系统 | |
US20070250514A1 (en) | Browsing and monitoring the web through learning and ingemination | |
JP2005157965A (ja) | 文書リンク構造情報作成装置及び方法 | |
CN1728094A (zh) | 智能ui记录和重放结构 | |
US9069771B2 (en) | Music recognition method and system based on socialized music server | |
US7529771B2 (en) | Method of and apparatus for gathering information, system for gathering information, and computer program | |
CN104618412A (zh) | 页面跳转方法及装置 | |
US20100070856A1 (en) | Method for Graphical Visualization of Multiple Traversed Breadcrumb Trails | |
US20030135587A1 (en) | Method and system of state management for data communications | |
CN1301452C (zh) | 模态同步控制方法及多模态界面系统 | |
CN101517574A (zh) | 互联网上使用访问/搜索应用自动搜索非法内容的系统和方法 | |
CN1154065C (zh) | 用于显示超文本的显示设备和超文本显示系统 | |
US20030159065A1 (en) | Apparatus and method for inspecting the copyright of digital data on a network, and recording medium on which is recorded a copyright inspection program | |
JP2005010899A (ja) | ウェブサイト診断・支援装置、該方法及び該プログラム | |
JP2006048144A (ja) | 自動巡回装置,クライアント端末および自動巡回方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100203 Termination date: 20181205 |
|
CF01 | Termination of patent right due to non-payment of annual fee |