|Publication number||US7849162 B2|
|Application number||US 11/051,564|
|Publication date||Dec 7, 2010|
|Filing date||Feb 4, 2005|
|Priority date||Nov 12, 1999|
|Also published as||US6901438, US20050203902|
|Publication number||051564, 11051564, US 7849162 B2, US 7849162B2, US-B2-7849162, US7849162 B2, US7849162B2|
|Inventors||Clay Davis, Walter R. Bodwell, Michael C. Klobe|
|Original Assignee||Bmc Software, Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (27), Non-Patent Citations (24), Referenced by (6), Classifications (9), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This application is a continuation of, and claims a benefit of priority under 35 U.S.C. 120 to, the filing date of U.S. patent application Ser. No. 09/710,212 by inventors Clay Davis, Walter R. Bodwell and Michael C. Klobe entitled “System and Method for Replaying a Predefined Path Through the Internet” filed on Nov. 10, 2000, now U.S. Pat. No. 6,901,438 which in turn claims priority under 35 U.S.C. 119(e) to provisional application number 60/165,103 filed Nov. 12, 1999 entitled “System and Method for Software Simulation of A User Following A Path Through a Web Site, and provisional application number 60/165,102 filed Nov. 12, 1999, entitled “System and Method for Routing a User Through an Intermediate Web Server”, the entire contents of which are hereby expressly incorporated by reference for all purposes.
The present invention relates generally to web page systems and methods, and more particularly, a software system and method for replaying a predetermined web path from an intermediate server.
As web sites become more ubiquitous, businesses are increasingly interested in setting performance goals and quality standards for their web sites. One way to achieve these objectives is to simulate a user's experience with a company web site. By simulating a user's experience, the owner of a web site can determine the integrity of links and resources in the page and rate a customer's experience against the operational goals defined by the business. Furthermore, the information technology departments of companies will be better able to track and measure critical web resources.
One way to simulate a user's path through a web site is to record all the requests made by a user at a proxy server, record additional data related to each request and open a socket to send back the exact data that was passed. This technique can be used for web sites that contain only static pages. However, an increasing number of web sites are dynamic, and a method for replaying a user's path through the web must be able to account for content such as session IDs and forms. Because dynamic content can cause a web page session to expire or change over time, simply replaying a series of requests will often result in errors being returned from the target web site.
Current methods for simulating a path through web sites do not adequately address dynamic web sites. Microsoft Web Stress Analyzer Tool was developed to stress test a web site prior to making the site available on the Internet. The Microsoft tool only supports cookie-based dynamic web site techniques but does not support other techniques, nor does it support HTTPS communication between a browser and a web site. Furthermore, the Microsoft tool requires that software be downloaded and installed on a user's computer.
The present invention provides a web path replay system and method that substantially eliminates or reduces disadvantages and problems associated with previously developed web path replay systems. More specifically, the present invention provides a system and method for replaying a predefined path through a set of web pages. The method for replaying a predefined web path includes selecting a saved request associated with a saved URL from a request history. If the saved request is a form request, the present invention can determine a best-fit form from the originating web page for which a replay request can be made. Alternatively, if the request is not a form request, the present invention selects a best-fit URL on the originating web page for which a replay request can be made. After a best-fit form or a best-fit URL is selected as a target URL, the present invention makes a replay request to the target URL.
The present invention provides substantial advantages over previously developed systems by allowing a path through a dynamic web page to be replayed.
The present invention provides yet another important technical advantage by being completely web based.
The present invention provides yet another important technical advantage by running on industry standard servers.
The present invention provides yet another important technical advantage by supporting HTTPS communications.
The present invention provides yet another important technical advantage because it does not require the user to install additional software on a user's computer.
The present invention provides a significant advantage by being able to replay a path through a substantially larger number of web pages than previously developed methods.
For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following description taken in conjunction with the accompanying drawings in which like reference numerals indicate like features and wherein:
Preferred embodiments of the present invention are illustrated in the FIGUREs, like numerals being used to refer to like and corresponding parts of the various drawings.
For the purposes of the present invention, “content” refers to the HTML and other data returned to a user's browser by a web page in response to user's commands (e.g., when the user selects a link). “Static” content is that content returned to a user's browser which does not change over time. A “dynamic” web page represents a page that can contain different, non-preformatted content that changes over time in response to the same user's commands. A “path” is a succession of web requests in a particular order.
The present invention provides a system for replaying a user's path through the web from an intermediate server.
Software program 5, after mediating the content, can then communicate the mediated content to the display window of web browser 20. From a user's perspective, the page displayed in the display window of web browser 20 can look identical to the view which would have been displayed had web the user accessed target web server 30 directly. However, the display window of web browser 20 may have been opened without navigation or status bars. This may have been done so that a user will not inadvertently circumvent the path defining process by directly entering a URL at the top of the web browser 20 rather than accessing URLs through the mediated content displayed in the display window.
As the user makes an additional request for new web page 36 (e.g. a “target web page 36”), web page 35 becomes the “originating page 35.” Target web page 36 may be associated with the same target web server 30 as originating page 35 or a different target web server 30. Again software program 5 will mediate the contents of target web page 36 in response to the additional request and return the mediated contents to browser 20. It should be understood that both originating page 35 and target web page 36 are mediated. If the user makes an additional request from target web page 36, target web page 36 will be equivalent to originating page 35 for yet another target web page 36, and so on. As an example, if the “page A” was associated with the starting URL, and the user made a request for “page B” based on the mediated contents of “page A,” “page A” would be originating web page 35 for target “page B.” Software program 5 would mediate the contents of “page B” and forward the mediated contents to web browser 20. If the user made an additional request for “page C” from “page B”, “page B” would be originating page 35 for target “page C.” “Page A,” “Page B” and “Page C” may be associated with the same web server, or each may be associated with a different web server. As the user enters an additional request based on the content displayed in the display window of web browser, software program 5 saves the additional request in database 15.
In addition to saving requests to database 15, software program 5 can also record content such as cookies, headers and form parameters sent with the user request or returned in the content of web page 35. In this manner, intermediate server 10 can build a request history that contains information corresponding to each request made by a user. Generally, software program 5 can save all interactions to database 15 that require a server's intervention as a “request history” for that path. When the user is done defining a path through the web, the user can stop the path defining process, and the path is saved under the path name provided by the user.
During the replay process of the present invention, software program 5 accesses the request history stored at database 15 and sends out the requests in the order they were originally made. Furthermore, software program 5 will send the appropriate headers, cookies and/or form parameters necessary for a particular web page. Target web server 30 will return the appropriate content of target web page 36, which corresponds to each request. For each additional request, target web page 36 for the previous request will become originating page 35 for the next replay request. Software program 5 will continue to send out requests from the request history until the path defined by the user is fully replayed.
After a particular saved request has been selected, software program 5, at step 80, can determine whether the saved request is a form request. A particular URL request can be distinguished as a form request because, in the request history stored on database 15 the URL could have been noted to be associated with a “FORM” tag. If such an association is not found, then the request will not be for a form. As shown in
If the saved request is a form request, at step 90, software program 5 can determine to which form a replay request should be later made. Determining the form to which a replay request should be made can be much more involved than simply sending a replay request to the URL in the saved request. It is possible that the “current configuration,” that is the configuration encountered when the path is replayed, of originating form 35 may be different than the configuration when the user originally defined the path. Furthermore, the current configuration of originating page 35 may contain more than one form to which a replay request can be made, and can even contain multiple forms sharing a common URL. In order to account for these difficulties, software program, at step 90, selects a best-fit form from the potential forms located on the current configuration of originating page 35.
If the saved request is a form request, at step 90, software program 5 reads the tags in originating page 35 to determine if any forms match the URL in saved request. Any forms that do not include a matching URL are rejected. The order of steps for filtering out remaining forms on web page 35 depends on whether the saved request is a “POST” or a “GET.” Software program 5 can distinguish a “POST” from a “GET” because the category of a form request was saved in the request history when the user originally defined the path. If the saved request is for a POST, every form in originating page 35 is rejected that does not require all the parameters that are saved in the request history and would be included in a replay request. For example, if a “name” parameter is associated in the request history with a saved request, every form on originating page 35 which does not require the “name” parameter will be rejected. If more than one potential form still remains on the originating web page, the present invention will reject all forms on web page 35 which do not contain all the hidden parameters saved in the request history for the saved request. If there is still more than one potential form left after these initial filtering processes, a form is chosen in a predetermined manner. For example, the first remaining form on the page could be chosen or a random remaining form could be chosen. It should be understood that any predetermined selection method could be used to select the best-fit form from the remaining eligible forms.
If the request is a GET, the first-pass filter of rejecting any forms which do not match the URL in saved request is the same as when the form request is a POST. However, the second and third-pass filters are transposed. With a GET, as opposed to a POST, software program 5 first rejects all forms which do not contain all the hidden parameters saved in the request history for the saved request. If more than one potential form remains on web page 35, the present invention will reject all forms that do not contain all the parameters saved in the request history that would be included in a replay request. As noted in conjunction with the POST request, forms on originating page 35 may not require all the parameters saved in the request history. If there is still more than one potential form left after the initial filters are applied, a form is chosen in a predetermined manner, as with a POST request. For example, the first remaining form on the page could be chosen or a random remaining form could be chosen. Again, it would be understood that any manner of selecting a form from the eligible forms could be used.
If, at step 80, the software program 5 determines that a saved request is not a form request, software program 5, at step 110, determines which URL link in web page 35 is a best-fit for the URL in the saved request. If the exact URL from the saved request is found in a link on web page 35, this exact URL is used in the next request. If the exact URL can not be found, the present invention determines if a nonmatching URL can be found at the address on web page 35 that corresponds to the address of the URL in the original URL request.
An “address”, in this context, refers to the place on web page 30 at which a saved request was originally found. When a user defined a path, software program 5, could assign a web page address to each URL requested. The addresses can be assigned based on the structure of tags and attributes in web page 35. For example, given the following page:
<a href=first.html>Click Here First</a>
<a href=http://www.company.com/next.html>Click Here
The root of the structured page is an <html> tag. This tag contains two tags a <head> and a <body> tag. The <head> tag contains a <title> tag, and so on. This structure allows an individual attribute value on a HTML page to be assigned an address. For instance, the address of the <a> with the text “Click Here Next” is “html.body.a.href”. This address identifies the exact location of a tag or attribute on web page 35. If the exact URL from the saved request is not found on web page 35, then the URL at the corresponding address will be used. For example, if the user clicked on “Click Here Next” when defining a path web page 35, but the corresponding URL http://www.company.com/next.html could not be found, the replay request would be made to a URL located at the address of “html.body.a.href” in web page 35. It would be understood that alternative forms of addressing can be used which yield a location within the HTML of web page 35.
Alternatively, if the exact URL in the saved request can not be found in web page 35, software program 5 can match a partial URL. For example, a partial URL match can include matching a somewhat different URL to the URL in a saved request based on the number of characters that match between the URLs.
As shown in
At step 130, software program 5 can determine whether cookies should be returned to target web page 36 based on the creation details of the cookie. Also, software program 5 can modify cookies so that target web page 36 will not return expiration errors. For example, if the user originally visited a web page on March 3, and a cookie was returned that had a one day expiration, the current invention could modify the cookie so that the date returned in the cookie was the current date of the path replay, say October 17, with a one day expiration. The date can be modified because software program 5 stored the creation details of the cookie in database 15 when the path was defined. Because software program 5 can modify cookies so that target web page 36 will not return errors, a user's path can be replayed through dynamic web pages at subsequent times.
After determining the appropriate target web page 36 and the data to be included, software program 5, at step 140, can make the replay request. The replay request simulates the commands that would be made by a user in order to replay the path previously defined by the user. After making the replay request to target web server 30, software program 5 determines whether or not target web server 30 responded to the replay request. If target web server 30 responded, the current configuration of target web page 36 that was returned will be used as originating page 35 for the subsequent request in the request history. Target web server 30 could, alternatively, not respond or return an error. Software program 5 may receive a “time out error” or a “page not found” error indicating that either the appropriate target web server 30 or target web page 36 was not found. If an error of this nature is received by software program 5, software program 5, at step 160, can notify the user of the error via e-mail, or other means, and terminate the playback process. If target web server 30 responds with target web page 36, software program 5, at step 170, can repeat steps 60-160 of the present invention for each saved request in the request history, thereby replaying the path originally defined by the user.
The present invention provides a system and method for replaying a predefined path that allows a path through both static and dynamic web pages to be simulated. This allows the present invention to be applied to a much greater number of web pages than previously developed methods for replaying paths through a web page.
The present invention has been described in detail, it should be understood that various changes, substitutions and alterations can be made hereto without departing from the spirit and scope of the invention as described in the appended claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5809250||Oct 23, 1996||Sep 15, 1998||Intel Corporation||Methods for creating and sharing replayable modules representive of Web browsing session|
|US5870559||Apr 11, 1997||Feb 9, 1999||Mercury Interactive||Software system and associated methods for facilitating the analysis and management of web sites|
|US5958008||Apr 11, 1997||Sep 28, 1999||Mercury Interactive Corporation||Software system and associated methods for scanning and mapping dynamically-generated web documents|
|US5974572||Oct 14, 1997||Oct 26, 1999||Mercury Interactive Corporation||Software system and methods for generating a load test using a server access log|
|US6006260||Jun 3, 1997||Dec 21, 1999||Keynote Systems, Inc.||Method and apparatus for evalutating service to a user over the internet|
|US6052730||Jan 9, 1998||Apr 18, 2000||The Board Of Trustees Of The Leland Stanford Junior University||Method for monitoring and/or modifying web browsing sessions|
|US6138157||Oct 12, 1998||Oct 24, 2000||Freshwater Software, Inc.||Method and apparatus for testing web sites|
|US6144962||Apr 11, 1997||Nov 7, 2000||Mercury Interactive Corporation||Visualization of web sites and hierarchical data structures|
|US6169992 *||Nov 8, 1996||Jan 2, 2001||Cadis Inc.||Search engine for remote access to database management systems|
|US6237006||Nov 10, 1999||May 22, 2001||Mercury Interactive Corporation||Methods for graphically representing web sites and hierarchical node structures|
|US6286043 *||Aug 26, 1998||Sep 4, 2001||International Business Machines Corp.||User profile management in the presence of dynamic pages using content templates|
|US6286046||Dec 22, 1997||Sep 4, 2001||International Business Machines Corporation||Method of recording and measuring e-business sessions on the world wide web|
|US6341310||Oct 26, 1998||Jan 22, 2002||Mercury Interactive Corporation||System and methods for facilitating the viewing and analysis of web site usage data|
|US6374300||Jul 15, 1999||Apr 16, 2002||F5 Networks, Inc.||Method and system for storing load balancing information with an HTTP cookie|
|US6418471||Sep 11, 1998||Jul 9, 2002||Ncr Corporation||Method for recording and reproducing the browsing activities of an individual web browser|
|US6434614 *||May 29, 1998||Aug 13, 2002||Nielsen Media Research, Inc.||Tracking of internet advertisements using banner tags|
|US6470383||Oct 22, 1998||Oct 22, 2002||Mercury Interactive Corporation||System and methods for generating and displaying web site usage data|
|US6535912||Aug 31, 1999||Mar 18, 2003||Lucent Technologies Inc.||Method for creating and playing back a smart bookmark that automatically retrieves a requested Web page through a plurality of intermediate Web pages|
|US6901438||Nov 10, 2000||May 31, 2005||Bmc Software||System selects a best-fit form or URL in an originating web page as a target URL for replaying a predefined path through the internet|
|US20020147805||Mar 15, 2002||Oct 10, 2002||Eran Leshem||Software system and methods for generating and graphically representing web site usage data|
|AU6414799A||Title not available|
|CA2346398A1||Jan 10, 2000||Jul 27, 2000||Whang Kwee Tan||Photo album with removable pages|
|CN1200221A||Oct 2, 1996||Nov 25, 1998||星视电视广播股份有限公司||System and methods for providing television schedule information|
|EP1121644A1||Oct 6, 1999||Aug 8, 2001||Freshwater Software||Method and apparatus for testing web transactions|
|GB2341955A||Title not available|
|JP2002527822A||Title not available|
|WO2000022534A1||Oct 6, 1999||Apr 20, 2000||Freshwater Software||Method and apparatus for testing web transactions|
|1||"SiteScope Users' Guide-URL Transaction Monitor" [Online] Feb. 10, 1999, Freshwater Software, Boulder, Colorado, as retrieved from website: http://web.archive.org/web (2 pages).|
|2||"SiteScope Users' Guide—URL Transaction Monitor" [Online] Feb. 10, 1999, Freshwater Software, Boulder, Colorado, as retrieved from website: http://web.archive.org/web (2 pages).|
|3||Business Wire, "Citation," 1997.|
|4||Decision to Refuse European Patent Application for Application No. EP 00977108.0, European Patent Office, dated Jul. 21, 2009, 26 pgs.|
|5||Edge Publishing, "Edge: work group computing report," 1997.|
|6||Examination Report for Chinese Application No. 00816857.1, Chinese Patent Office, dated Apr. 28, 2006 (with English translation), 15 pgs.|
|7||Examination Report for Chinese Application No. 00816857.1, Chinese Patent Office, dated Nov. 24, 2006 (with English translation), 10 pgs.|
|8||International Preliminary Examination Report for International Application No. PCT/US00/30805 mailed Jul. 28, 2003, 3 pgs.|
|9||International Preliminary Examination Report for International Application No. PCT/US00/30991 completed Jun. 18, 2003, 2 pgs.|
|10||International Search Report for PCT/US00/30805 faxed Jun. 10, 2003.|
|11||International Search Report for PCT/US00/30991, Mar. 21, 2003.|
|12||Internet Week, "Keynote software measures internet service", 1996.|
|13||Jacobs, et al., "Filling HTML forms simultaneously: CoWeb-architecture and functionality", Computer Networks and ISDN Systems, vol. 28, No. 11, pp. 1385-1395, May 1, 1996.|
|14||Keynote Systems Company, "Keynote ships first real-time web site performance measurement and management solution", 1997.|
|15||Keynote Systems Company, "Press Releases 1997".|
|16||Keynote Systems Company, Keynote systems clocks true speed on the internet highway at 5,000 characters per second, or only 40 kbps, 1997.|
|17||Know-it Software Products, "Know-it server trak", 1997.|
|18||Nicol, et al., "Footsteps: Trail-blazing the Web" Computer Networks and ISDN Systems, North Holland Publishing, vol. 27, No. 6, p. 882, Apr. 1, 1995.|
|19||Office Action for Application No. EP 00977108.0, European Patent Office, dated Aug. 22, 2005, 8 pgs.|
|20||Office Action for Application No. EP 00977108.0, European Patent Office, dated May 23, 2007, 4 pgs.|
|21||Office Action issued in U.S. Appl. No. 09/710,212 mailed Aug. 6, 2004, 9 pgs.|
|22||Office Action issued in U.S. Appl. No. 09/710,212 mailed Feb. 9, 2004, 7 pgs.|
|23||Pitkow, "In search of reliable usage data on the WWW", Computer Networks and ISDN Systems, vol. 29, No. 8-13, pp. 1343-1355, Sep. 1, 1997.|
|24||Written Opinion for International Application No. PCT/US00/30805 mailed Jun. 5, 2003, 2 pgs.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8327271||Jun 7, 2010||Dec 4, 2012||Software Research, Inc.||Method and system for testing websites|
|US8392890||Oct 8, 2008||Mar 5, 2013||Software Research, Inc.||Method and system for testing websites|
|US8495585||Feb 11, 2013||Jul 23, 2013||Software Research, Inc.||Method and system for testing websites|
|US8650493||Nov 8, 2012||Feb 11, 2014||Software Research, Inc.||Method and system for testing websites|
|US8683447||Feb 11, 2013||Mar 25, 2014||Software Research, Inc.||Method and system for testing websites|
|US8984491||Jun 20, 2013||Mar 17, 2015||Software Research, Inc.||Synchronization checks for use in testing websites|
|U.S. Classification||709/219, 709/228|
|International Classification||G06F15/16, G06F17/30|
|Cooperative Classification||G06F11/3476, G06F11/3414, G06F17/3089|
|European Classification||G06F17/30W7, G06F11/34C2|
|Oct 16, 2007||AS||Assignment|
Owner name: BMC SOFTWARE, INC., TEXAS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DAVIS, CLAY;BODWELL, WALTER L.;KLOBE, MICHAEL C.;REEL/FRAME:019966/0485
Effective date: 20001117
|Dec 5, 2007||AS||Assignment|
Owner name: BMC SOFTWARE, INC., TEXAS
Free format text: RE-RECORD TO CORRECT A DOCUMENT PREVIOUSLY RECORDED AT REEL 019966, FRAME 0485. (ASSIGNMENT OF ASSIGNOR S INTEREST);ASSIGNORS:DAVIS, CLAY;BODWELL, WALTER R.;KLOBE, MICHAEL C.;REEL/FRAME:020226/0007
Effective date: 20001117
Owner name: BMC SOFTWARE, INC., TEXAS
Free format text: RE-RECORD TO CORRECT A DOCUMENT PREVIOUSLY RECORDED AT REEL 019966, FRAME 0485. (ASSIGNMENT OF ASSIGNOR S INTEREST);ASSIGNORS:DAVIS, CLAY;BODWELL, WALTER R.;KLOBE, MICHAEL C.;REEL/FRAME:020223/0006
Effective date: 20001117
|Sep 11, 2013||AS||Assignment|
Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLAT
Free format text: SECURITY AGREEMENT;ASSIGNORS:BMC SOFTWARE, INC.;BLADELOGIC, INC.;REEL/FRAME:031204/0225
Effective date: 20130910
|May 7, 2014||FPAY||Fee payment|
Year of fee payment: 4