WO2003065232A1 - Method, apparatus, and system for capturing, processing, and/or playing selected data exchanged between a server and a user - Google Patents

Method, apparatus, and system for capturing, processing, and/or playing selected data exchanged between a server and a user Download PDF

Info

Publication number
WO2003065232A1
WO2003065232A1 PCT/US2003/002541 US0302541W WO03065232A1 WO 2003065232 A1 WO2003065232 A1 WO 2003065232A1 US 0302541 W US0302541 W US 0302541W WO 03065232 A1 WO03065232 A1 WO 03065232A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
user
server
captured
plurality
Prior art date
Application number
PCT/US2003/002541
Other languages
French (fr)
Inventor
Donald A. House
Stephen M. Beckett
Michael L. Whitmer
Original Assignee
Witness Systems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US10/061,489 priority Critical patent/US20030145140A1/en
Priority to US10/061,491 priority patent/US20030142122A1/en
Priority to US10/061,491 priority
Priority to US10/061,469 priority
Priority to US10/061,489 priority
Priority to US10/061,469 priority patent/US7219138B2/en
Application filed by Witness Systems, Inc. filed Critical Witness Systems, Inc.
Publication of WO2003065232A1 publication Critical patent/WO2003065232A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce, e.g. shopping or e-commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/02Network-specific arrangements or communication protocols supporting networked applications involving the use of web-based technology, e.g. hyper text transfer protocol [HTTP]

Abstract

Data exchanged between at least one server (100) and at least one user (120) is captured, selectively recorded, and replayed. The exchanged data is intercepted in a capturing module that operates independently from the server (100) and the user(120). A copy of the intercepted data is stored in a database(110). The intercepting and storing are performed transparently to the user. The captured data is retrieved and a determination is made whether the retrieved data satisfies predefined rules. Data that satisfies the predefined rules is selected, and the selected data is recorded. The captured data is collected during a given time period, and a session of interactions between the server (100) and the user (120) is assembled in the order in which they occurred. Then, the session is replayed.

Description

METHOD, APPARATUS, AND SYSTEM FOR CAPTURING, PROCESSING,

AND/OR PLAYING SELECTED DATA EXCHANGED

BETWEEN A SERVER AND A USER

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority from U.S. Patent Applications No. 10/061,469, No. 10/061,489, and No. 10/061,491 filed January 31, 2002. These applications are hereby incorporated by reference.

BACKGROUND

The present invention is directed to a method, apparatus, and system for capturing, processing, and/or playing selected data. More particularly, the present invention is directed to a method, apparatus, and system for capturing, processing and or playing selected data exchanged between a server and a user. For systems employing interactions between a user and server, it is often desirable to be able to view the interactions, ideally in a manner that is transparent to the user. This is particularly desirable in a context such as sales, customer service, or e- commerce, where interactions between customers and a service provider are important indicators of customer satisfaction. Attempts have been made to recreate interactions between a user and a server.

For example, click stream analysis procedures have been used to recreate interactions between a web user and a web service provider. This type of procedure is analogous to reviewing and analyzing the script to a movie. While this procedure reveals some information about the interaction between the server and the user, it does not provide a clear tangible picture of special effects, the environment, chemistry between the user and the server, etc.

Other attempts have been made to replay recorded interactions between a server and a user. However, these attempts are typically implemented at the server and are thus suitable only for a particular type of server. In addition, these approaches typically do not distinguish between interactions that are considered important and interactions that are not important. Thus, a lot of time and resources are wasted on replaying unimportant recorded interactions.

There is thus a need for a way of capturing data exchanged between a server and a user in a manner that is independent of the server and transparent to the user and that provides a full picture of the interaction between the server and the user. There is also a need for a technique for selectively processing data captured during an exchange between a server and a user. Still further, there is a need for a technique replaying data selected from among data captured during exchanges between and a web server and a user.

SUMMARY

The present invention is directed to a method, apparatus and system for capturing, processing, and/or replaying selected data exchanged between at least one server and at least one user. According to exemplary embodiments, data from the user destined for the server or data from the server destined for the user is intercepted in a capturing module that operates independently from the server and the user. A copy of the intercepted data is stored in a database. The intercepted data destined for the server is forwarded to the server, or the intercepted data destined for the user is forwarded to the user. The intercepting and storing are performed transparently to the user. Interception may be performed continuously. Storing of data may be performed during a predetermined time window or at predetermined time intervals.

According to exemplary embodiments, data captured during the exchange between the server and the user is retrieved. A determination is made whether the retrieved data satisfies predefined rales. Data that satisfies the predefined rales is selected, and the selected data is recorded.

According to exemplary embodiments, the data captured during the interaction between the server and the user during a given time period is collected. A session of interactions between the server and the user, including the at least one interaction, is assembled in the order in which they occurred. Then, the session is replayed. According to one embodiment, data that satisfies predetermined search criteria is searched for among the captured data, and a result set of data satisfying the search criteria is created. The session is assembled from the result set. The data may be searched based upon predefined rules. The search criteria may be specified by the user and may include a date and time range or a specific user. The captured data may be searched sequentially.

According to exemplary embodiments, the intercepted data may include events, attributes, images, user identifications, requests, and/or responses. Only a predetermined portion of the data and/or data that satisfies predefined rules may be stored.

According to an exemplary embodiment, the user is a web server or a web browser, and the server is a web server. The data may be exchanged in the form of an Internet protocol and assembled into a web page view for the user.

Data may be exchanged between a plurality of servers and the user, the server and a plurality of users, or a plurality of servers and a plurality of users. The intercepting and storing may be performed concurrently for capturing data exchanged simultaneously between the plurality of servers and the user, the server and the plurality of users, or the plurality of servers and the plurality of users.

Further objects, advantages and features ofthe present invention will become more apparent when reference is made to the following description taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates an exemplary system for capturing data exchanged between a server and a user;

FIG. IB illustrates an exemplary system for capturing, recording, and playing back data according to an exemplary embodiment;

FIG. 1C illustrates in detail an exemplary system for processing captured data according to an exemplary embodiment; FIGS. 2 A and 2B illustrate an exemplary method for capturing and recording data exchanged between a server and a user;

FIGS. 3A-3C illustrate how data is stored according to exemplary embodiments; FIGS. 4 A and 4B illustrate exemplary page tables before and after postprocessing, respectively;

FIG. 5 illustrates an exemplary method for processing captured data according to an exemplary embodiment;

FIGS. 6A-6C illustrate exemplary search pages; FIGS. 7A-7G illustrate an exemplary playback page; and

FIG. 8 illustrates an exemplary method for playing data according to an exemplary embodiment.

DETAILED DESCRIPTION According to exemplary embodiments, data exchanged between a server and a user is captured in a manner that is independent of the server and transparent to the user. The captured data may be selectively processed and played back.

In the following description, the server is referred to as a web server, and the user is referred to as a web browser. It will be appreciated, however, that the invention may be applicable to other types of servers and users.

FIG. 1A illustrates an exemplary system for capturing data exchanged between a server and a user according to an exemplary embodiment. The system includes a server, such as a web server 100, a data capturing module, such as a page capture module 110, and a user, such as a web browser 120. Although only one web server 100, page capture module 110, and web browser 120 are depicted in FIG. 1A, it will be appreciated that the invention is applicable to any number of servers, data capturing modules, and users.

The web browser 120 may be implemented in a personal computer, a telephone, etc. The web server 100 may be implemented as a server supporting any operating system, e.g., Unix, Linux, NT or Windows 2000. The page capture module 110 is arranged between the web server 100 and the web browser 120. For security purposes, a firewall 115 may separate the web browser 120 and the page capture module 110.

The page capture module 110 operates independently from the web server 100 and the web browser 120. Thus, the page capture module 110 does not need to be customized for each type of web server but may be used with any web server, supporting any operating system.

Although the page capture module 110 operates independently from the web server 100 and the web browser, it may be implemented in the same device as the web server 100 or the web browser 120.

According to an exemplary embodiment, the page capture module 110 intercepts data exchanged over the Internet using the HyperText Transfer Protocol (HTTP). Both HTTP (unsecure) and HTTPS (secure) protocols may be supported by the page capture module 110. For secure protocols, a security certificate is shared between the web server 100 and the page capturing module 110. In addition, other types of data stream protocols may be supported, e.g., extensible Markup Language (XML) and socket based data transfers.

According to exemplary embodiments, the page capture module 110 acts as a redirection or proxy server from the user's perspective. The page capture module 110 listens on a specified port, such as port 80 for HTTP or port 443 for HTPPS, and then redirects all browser requests to the web server 100, which is configured to listen on a port other than ports 80 or 443. Of course, if the page capture module 110 is implemented in the same device as the web server 100, the web server may listen on the same port. Web server responses are intercepted by the page capture module 110 and redirected back down to the web browser 120.

The page capture module 110 captures pages and other data exchanged between the web server 100 and the browser 120. Pages and other data may be captured continually or at designated intervals or time windows. The page capture module 110 may also record these pages and other data, or recording may be performed in a separate recorder server connected to the page capture module. Each web browser 120 is assigned a unique machine identity (ID) by the web server 100. A persistent machine ID cookie may be created by the web server 110 and stored at the web browser 120 for this purpose. All pages served to a particular web browser 120 are identified and grouped by the machine ID. Although the module 110 is described as a page capture module, according to exemplary embodiments, other types of data may also be captured. For example, events and attributes may be captured. Attributes may be captured in a manner similar to that in which pages are captured, as described above.

For event capturing, according to an exemplary embodiment an event capture module captures user side events and delivers these to the page capture module 110. The event capture module may be implemented as an applet 130 that is downloaded to the web browser 120. Although shown as a separate component, the event capture applet 130 is stored at the browser, with parameters such as the web browser machine ID, the host Internet Protocol (IP) address, and the current page name. The event capture applet 130 may be notified, for example, by JavaScript embedded in the current page, whenever an event needs to be recorded. The event capture applet 130 records events such as: page load, page unload, page scroll, page resize, and browser exit. The event capture applet 130 sends captured events to the page capturing module 110 via, for example, a Transmission Control Protocol/Internet Protocol (TCP/IP) socket connection on port 80 (or port 443 for secure exchanges).

For event capturing, an HTTP request header containing a unique signature or identifier may be used to send a captured event to the page capture module 110. The unique signature may take the form of an application defined request header. Captured event data may include a browser machine ID, a page name, an event type ID, and event data.

According to an exemplary embodiment, the page capture module 110 intercepts HTTP requests that are identified as event captured HTTP requests and does not send the event captured HTTP request to the web server 110.

FIG. IB illustrates an exemplary system for capturing, recording and playing back data according to an exemplary embodiment. Pages and other data captured during exchanges between the web server 100 and the web browser 120 at the page capture module 110 are sent from the page capturing module 110 to a page preprocessor 125 via, e.g., a TCP/IP socket.

According to an exemplary embodiment, each captured page is assigned a unique page ID and is associated with a specific browser user machine ID. Each page may also contain the date and time that the page was captured and the page status (recording, processing, playback, etc.) After pages are captured, this information is extracted from the captured page, and a new record is inserted into a database 145.

The page preprocessor 125 acts as a recorder server and stores the captured data in a device such as a database 145. The pages 135 are passed on to the page postprocessor 140. Alternatively, the page capture module 110 may perform this recording. To reduce the amount of storage necessary, only predetermined portions of data may be stored, e.g., the request portion or the response portion. Also, only data satisfying predetermined rules, e.g., rules indicating timing, may be stored. When the captured pages are recorded, identifying information may also be recorded, e.g., a session record ID, a date/time of recording, a machine ID, etc.

The post-processing module 140 determines which captured data satisfies predefined rules, e.g., business rules, and records this data in a file 180, such as a Java Archive (JAR) file. The database 145 is updated to indicate what captured data has been selected and recorded for playback. This is described in more detail below with reference to FIG. lC.

A playback tool 190 selects recorded data from the database 180, using the information in the database 145. The playback module 190 controls playback of the data. The data may be displayed, for example, in a search frame for the web server or the browser. This is described in further detail below.

Although not shown in the interest of simplifying the illustrations, it will be appreciated that the system in FIG. IB may also include other components, e.g., configuration files used for processing and log files use for storing information for debugging, etc. Referring now to FIG. 1C, this figure illustrates in detail an exemplary system for processing captured data according to an exemplary embodiment. Captured and recorded pages, attributes, and events are fed to a page post-processing program running on a page post-processor 140. A business rales engine 150 delivers business rules to the post-processor 140 that evaluates the captured/recorded pages to determine whether they satisfy the business rules. Data from a page table database 160 and a page rule table database 170 is used during this evaluation. Pages that satisfy the business rules are recorded for future playback. The page table and page rule database are updated after post-processing. When a set of captured pages is identified as a session, then a session record is created of the identified session during post-processing. The session identification information may be stored in a session table, such as that shown in FIG. 3C.

According to exemplary embodiments, business rules are applied to the recorded data to determine whether a page should be saved for playback. Business rales are business elements that are compared with captured data in real time. An example of a comparison of business rule with captured data may be determining whether the captured data is an interaction resulting in a sale greater than a predetermined number of dollars, determining whether an interaction was longer than a predetermined number of minutes, etc. As another example, a business rule may state that the current page is to be recorded and all previous pages for that machine ID in that session.

According to an exemplary embodiment pages that do not satisfy the business rules are deleted.

According to an exemplary embodiment, the post-processing program appends the recorded JAR file to the playback JAR file in the playback directory for the current machine ID. If a playback file does not exist for the specified machine ID, the postprocessing program may create one.

Images are retrieved for saved pages.

According to an exemplary embodiment, events may be recorded as a text file using XML. The file has the same name as the page that generated the event. A time period may be set for retaining recorded data, e.g., 30 minutes. This time period may be used in determining whether a page is part of a session, and pages that are part of the same session may be grouped for future playback.

FIG. 2A illustrates an exemplary process for capturing data exchanged between a server and a user. The process begins at step 200 at which the page capture module 110 receives a request/response from the web browser 120 or receives a response/request from the web server 100. The page capture module 110 passes the request/response to the web server 100 or the web browser 120, respectively. At step 205, the page capture module 110 determines whether the request/response is eligible for recording based on, e.g., on timing, content type (for example, text or HyperText Markup Language (HTML)), positioning on a page, etc. If not, the process proceeds to step 210, at which no action is required. If the request/response is eligible for recording, a determination is made at step 215 whether a browser machine ID cookie exists. If not, an attempt to create the cookie is made at step 220. A determination is made at step 225 whether the cookie is created successfully. If not, a cookie create failure is created, and the request/response is redirected to the web browser 120 (or the web server 100) at step 230. Instead of a cookie, it will be appreciated that any other form of persistent ID may be used. For example, a persistent ID may be created using Uniform Resource Locator (URL) rewriting. If the cookie (or other persistent ID) is created successfully or the browser machine ID cookie exists, a determination is made whether event capturing is enabled, e.g., whether the event capture applet 130 has been notified that an events needs to be recorded, at step 235. If not, the page is sent to the page preprocessor at step 240. Otherwise, the event is captured at step 245. An exemplary process for recording captured requests and responses is shown in FIG. 2B. The process begins at step 250 at which a page preprocess thread is created. At step 255, a determination is made whether there is an event type request header. If not, the last page ID for the current browser machine ID is obtained at step 260, and the captured event is recorded at step 265. If there is an event type request header, a page table entry for the captured page is inserted at step 270 and stored, e.g., in the database 145. At step 275, the next available page ID is retrieved. At step 280, the captured data, e.g., page and attributes, are recorded.

The tables of data shown in FIGS.3A-3C demonstrate an example of how data is selected and stored for future playback according to an exemplary embodiment. Captured data is stored in a page table such as that shown in FIG. 3A. In FIG. 3A, each table entry includes a machine ID, a page ID, a page status, a page path, and a page create date. Data regarding rules is stored in a page rule table, as shown in FIG. 3B. Each entry the page rule table includes a page rule ID, a page ID and a rule ID. The page rale tables indicate which rule(s) were used to capture a specific page. The page rule table is updated as the result of evaluating pages in a session. Data concerning a session is stored in a sessions table, as shown in FIG. 3C. Each entry in the session table includes a session ID, a page ID and a number of pages.

To demonstrate how data storing works, assume for example that the page table before post-processing appears as shown in FIG. 4A. Assume that a customer defined a maximum age limit of 30 minutes, and the current time at the time of page postprocessing is 9:30:00 A.M. To identify an eligible session for page post-processing, a list of page table entries in which the machine ID equals xxx and page status equals 1 is selected and stored by page creation date. The list of matching pages is processed, and for each page, the current page creation date is compared to the previous page creation date. If the difference is greater than 30 minutes, then a session has been identified. To create a new session ID, the page ID for the first page in that session may be used. In this example, a session ID, yyy, has been generated. The session ID is stored in the session table, such as that shown in FIG. 3C.

Next, a determination is made whether the newly identified session is eligible for processing, using the page creation date for the last page in the session. If the page creation date for the last page in the session is greater than 30 minutes compared to the current time, then the session is eligible for post-processing. Otherwise, the session is not eligible at the current time, and the page status ID is reset back to 1. For the last page entry in a list of page entries, a determination is made whether the last set of pages form a complete session and are therefore eligible for page postprocessing.

After post-processing, the page table appears as shown in FIG. 4B. FIG. 5 illustrates an exemplary process for processing captured data according to an exemplary embodiment. The process begins at step 500 at which a list of eligible machine id' s is retrieved from the database of stored captured data. At step 505, a determination is made whether the machine ID is eligible to proceed. In not, the process enters a sleep mode at step 510 and returns to step 500. If, at step 505, it is determined that there is an eligible machine ID to process, the list of captured pages from the specified machine ID is retrieved from the database at step 515. At step 520, a determination is made whether there is a captured page to process. If not, the process returns to step 505. If there is a captured page to process, business rules are evaluated for the specified page at step 525. These rules may be generated by the client. For example, the client may only want pages of a certain media recorded. At step 530, a determination is made whether the page satisfies the business rules. If not, the page files are deleted at step 535, the page entry ID selected from the database at step 540, and the process returns to step 520. If, at step 530, the page is determined to satisfy the business rules, the image files for the page are retrieved at step 545, the absolute and relative paths are updated at step 550, and the page is written to a playback file at step 555. From step 525, the process returns to step 530.

According to an exemplary embodiment, a user is allowed to search for, select and playback a recorded browser session using the playback module 190 shown, e.g., in FIG. IB. The playback module 190 assembles a session of recordings selected by the user and plays back the session. The playback module may be implemented using, e.g., Netscape 4.5x and above browser or an Internet Explorer 4.x and above browser.

According to an exemplary embodiment, an exemplary search page layout 600 as shown in FIGS. 6A-6C may be used for searching. FIGS. 6A and 6B illustrate a search page 600, and FIG. 6C illustrates a rule search page 610. The search page 600 is split into two screens, one of which is shown in FIG. 6 A, and the other of which is shown in FIG. 6B. The search page screen shown in FIG. 6A allows the user to specify session search criteria. Session search criteria may include date/time criteria and rule criteria. Also, all captured pages may be searched for a specific machine ID. The screen shown in FIG. 6B illustrates the search parameters that are selected and the resulting sessions found based on the search parameters.

Date search criteria allow a user to find matching page captured sessions based on the begin/end date/time criteria. Date/time may be searched by entering, e.g., either a begin time or a begin and an end time. Rule criteria allows the user to find matching captured sessions based on business rales used to capture individual pages in a session. For instance, a user may wish to see all sessions that contain pages that were captured that satisfy business rule ID 0001 or business rule ID 0012. More than one business rule may be specified when performing searches by business rules. The user may specify either the date/time criteria or the rule criteria or any combination of both. The date/time and rule criteria may be specified in the screen shown in FIG. 6A. Alternately, the rule criteria may be specified using the page 610 shown in FIG. 6C.

The results may be displayed in the screen shown in FIG. 6B. The results may be displayed as a tree view that may be expanded. Each top level tree node may be a hyperlink representing one row returned by the query. When a top level tree node is expanded, all matching pages for that node may be displayed.

The matching page information may be retrieved from the corresponding JAR file. The recorded pages for each top level tree node may be programmatically extracted from the corresponding JAR file. Each second level tree node may be a hyperlink to a recorded page. The selected recorded page may be displayed in a page display area, e.g., as described below. For pages that are recorded as frames, the parent frame may be displayed first. To play back a session, a session is selected from a list of sessions based on the dates and rules provided. The selected session ID is retrieved, and the session ID is matched to a current machine ID.

According to an exemplary embodiment, playback of a session may be handled using the playback page as shown in FIG. 7A. The playback page includes a playback control window 710 and a page display window 720. The playback page corresponds to a particular session. For example, the playback page shown in FIG. 7A corresponds to session "107405".

As shown in FIG. 7 A, the playback control window 710 includes a session playback control area, a session information area, and a detailed page information area.

The playback control area provides control using video cassette recorder (VCR) type button controls. The VCR type button control enables the user to move to the first captured page in a session, play the session, pause session and remain at current page, stop session playback and return to first page in session, and move to last captured page in session. Although not illustrated, a slider control may also be used, permitting the user to move from page to page, backward or forward by sliding the control to the left or to the right. Settings may be also be set to configure playback to run in a real-time mode or to use a specified page interval between pages during playback using, e.g., the playback preferences frame shown in FIG. 7B. The session information area of the window 710 contains hyperlinks: playback preferences, sessions annotations, all page annotations, page flow, and help. Selecting one of these links causes the corresponding frame to be displayed. For example, selecting the hyperlink "Playback Preferences" causes the frame shown in FIG. 7B to be displayed which permits selection of real-time playback or page interval playback. Selecting the hyperlink "Session Annotations" causes the frame shown in FIG. 7C to be displayed, which allows session notes to be added and displays saved session notes for a particular session. Selecting "All page Annotations" causes the frame shown in FIG. 7D to be displayed, which permits page annotations to be added and displays saved annotations for a particular page. Selecting the hyperlink "Page Flow" causes the frame shown in FIG. 7E to be displayed, which illustrates thumbnails of captured pages. Selecting the hyperlink "Help" causes a help frame (not shown) to be displayed. Other hyperlinks may be used for playback control, as needed.

In the detailed page information area of window 710, a list of the captured pages in a session is displayed. Selecting one of the hyperlinks in the list causes the corresponding captured page to be displayed, e.g., in the window 720. For example, in FIG. 7A, the currently selected page ("Apache Status") is shown in the window 720. Icons next to the hyperlinks may be used to display related information. For example, selecting the icon including a paper with a "!" causes the page attributes frame shown in FIG. 7F to be displayed, and selecting the icon including a paper and a pencil causes the pages notes frame shown in FIG. 7G to be displayed.

According to one embodiment, captured pages may be viewed sequentially, with the session of pages assembled in the order in which the pages occurred. Alternatively, the pages may be viewed in any order desired.

FIG. 8 illustrates a process for playing data according to an exemplary embodiment. The process begins at step 800 at which data captured during interaction between the user and the server during a given time period is collected. At step 810, a session of interactions is assembled din the order in which they occurred. This step may include searching a certain of a result set from which the session is assembled. At step 820, the session is replayed. According to exemplary embodiments, a user interaction with a server is captured. For a web user and a web server, this information may be used to recreate the web experience of the user. For example, in a customer service context, the flow of customer inputs and the text and images that are displayed on the pages that are viewed by the customer may be captured and recorded. In such a context, this recreation will provide contact center personnel the ability to observe the customer's experience for the purpose of analyzing how well service was delivered and whether or not the needs of the customer were met. The invention may also be useful in other contexts, such as sales or e-com erce.

While the examples above primarily discuss capturing, recording, and playing back exchanged pages, the invention is not limited to page capturing, recording and play back. According to exemplary embodiments, any type of data, including for example events and attributes, may be captured during an interaction between a user and a server, selectively recorded, and played back.

According to exemplary embodiments, all the user actions within a browser session may be captured, without degrading the performance of the browser session or web host environment. Also, all captured data may be transmitted efficiently with low network bandwidth utilization. Thousands of concurrent users may be supported simultaneously, with the recording of a large number of sessions that are simultaneously occurring on different web sites provided by various web servers. It should be understood that the foregoing description and accompanying drawings are by example only. A variety of modifications are envisioned that do not depart from the scope and spirit of the invention. The above description is intended by way of example only and is not intended to limit the present invention in any way.

Claims

WHAT IS CLAIMED IS:
1. A method for capturing data exchanged between at least one server and at least one user, the method comprising the steps of: intercepting data exchanged between the server and the user in a proxy server that operates independently from the server and the user; storing the intercepted data; and forwarding the data from the server or the user to the user or the server, respectively.
2. The method of claim 1, wherein the intercepting and storing are performed transparently to the user.
3. The method of claim 1, wherein the data includes at least one of events, attributes, images, user identifications, requests, and responses.
4. The method of claim 1, wherein the data is exchanged in the form of an Internet protocol and is assembled into a web page view for the user.
5. The method of claim 3, wherein only a predetermined portion of the data is stored.
6. The method of claim 5, wherein only requests or responses are stored.
7. The method of claim 1, wherein the user is a web server or a web browser, and the server is a web server.
8. The method of claim 1, wherein the step of intercepting is performed continuously, and the step of storing is performed during a predetermined time window or at predetermined time intervals.
9. The method of claim 1, further comprising selecting data that satisfies predefined rules among the intercepted data, wherein the step of storing stores the selected data.
10. The method of claim 1, further comprising replaying data exchanged between the server and the user, using the stored data.
11. The method of claim 1, wherein data is exchanged between a plurality of servers and the user, the server and a plurality of users, or a plurality of servers and a plurality of users.
12. The method of claim 11 , wherein the steps are performed concurrently for capturing data exchanged simultaneously between the plurality of servers and the user, the server and the plurality of users, or the plurality of servers and the plurality of users.
13. An apparatus for capturing data exchanged between at least one server and at least one user, the apparatus including: intercepting means operating independently from the server and the user for intercepting data exchanged between the server and the user; storage means for storing the intercepted data; and forwarding means for forwarding the intercepted data from the server or the user to the user or the server, respectively.
14. The apparatus of claim 13, wherein the intercepting and storing are performed transparently to the user.
15. The apparatus of claim 13, wherein the data includes at least one of events, attributes, images, user identifications, requests, and responses.
16. The apparatus of claim 13, wherein the data is exchanged in the form of an Internet protocol and is assembled into a web page for display to the user.
17. The apparatus of claim 15, wherein only a predetermined portion of the data is stored.
18. The apparatus of claim 17, wherein only requests or responses are stored.
19. The apparatus of claim 13, wherein the user is a web server or a web browser, and the server is a web server.
20. The apparatus of claim 13, wherein the data is intercepted continuously and is stored during a predetermined time window or at predetermined time intervals.
21. The apparatus of claim 13, further comprising means for selecting data that satisfies predefined rules among the intercepted data, wherein the selected data is stored in the database.
22. The apparatus of claim 13, further comprising means for replaying data exchanged between the server and the user using the stored data.
23. The apparatus of claim 13, wherein data exchanged between a plurality of servers and the user, the server and a plurality of users, or a plurality of servers and a plurality of users is captured.
24. The apparatus of claim 23, wherein data exchanged simultaneously between the plurality of servers and the user, the server and the plurality of users, or a plurality of servers and a plurality of users is captured concurrently.
24. A system for capturing data, comprising: at least one server; at least one user, wherein the server and the user exchange data; and at least one proxy server connected between the server and the user and operating independently from the server and the user, wherein the proxy server intercepts data exchanged between the server and the user, stores the intercepted data, and forwards the data from the server or the user to the user or the server, respectively.
25. The system of claim 24, wherein the processor performs intercepting and storing transparently to the user.
26. The system of claim 24, wherein the data includes at least one of events, attributes, images, user identifications, requests, and responses.
27. The system of claim 24, wherein the data is exchanged in the form of an Internet protocol and is assembled into a web page for display to the user.
28. The system of claim 26, wherein only a predetermined portion of the data used to display the web page is stored.
29. The system of claim 28, wherein only requests or responses are stored.
30. The system of claim 24, wherein the user is a web server or a web browser, and the server is a web server.
31. The system of claim 24, wherein the data is intercepted continuously and is stored during a predetermined time window or at predetermined time intervals.
32. The system of claim 24, wherein data that satisfies predefined rules is selected from among the intercepted data, and the selected data is stored.
33. The system of claim 24, wherein the stored data is used for replaying data exchanged between the server and the user.
34. The system of claim 24, wherein data exchanged between a plurality of servers and the user, the server and a plurality of users, or a plurality of servers and a plurality of users is captured.
35. The system of claim 34, wherein data simultaneously exchanged between the plurality of servers and the user, the server and the plurality of users, or the plurality of servers and the plurality of users is captured concurrently.
36. A method for selectively processing data captured during at least one exchange between at least one server and at least one user, the method comprising the steps of: retrieving data captured during the exchange between the server and the user; determining whether the retrieved data satisfies predefined rules; selecting the data that satisfies the predefined rules; and recording the selected data.
37. The method of claim 36, wherein the selected data is recorded for a finite duration.
38. The method of claim 36, wherein the user is a web browser or a web server, and the server is a web server.
39. The method of claim 36, wherein the captured data includes at least one of pages, events, or attributes.
40. The method of claim 36, wherein the captured data is in the form of an Internet protocol and is displayed to the user as a web page.
41. The method of claim 40, wherein only a predetermined portion of the data is captured.
42. The method of claim 41 , wherein only a response or a request portion of the data is captured.
43. The method of claim 42, further comprising retrieving image data associated with the captured data for displaying the web page to the user.
44. The method of claim 42, further comprising retrieving code module data associated with the captured data.
43. The method of claim 36, wherein the steps are performed for data captured during simultaneous exchanges between a plurality of servers and the user, the server and a plurality of users, or a plurality of servers and a plurality of users.
44. An apparatus for selectively processing data captured during at least one exchange between at least one server and at least one user, the apparatus comprising: means for retrieving data captured during the exchange between the server and the user; means for determining whether the retrieved data satisfies predefined rules; means for selecting the data that satisfies the predefined rules; and means for recording the selected data.
45. The apparatus of claim 44, wherein the selected data is recorded for a finite duration.
46. The apparatus of claim 44, wherein the user is a web browser or a web server, and the server is a web server.
47. The apparatus of claim 44, wherein the captured data includes at least one of pages, events, or attributes.
48. The apparatus of claim 44, wherein the captured data is in the form of an Internet protocol and is displayed to the user as a web page.
49. The apparatus of claim 44, wherein only a portion of the data is captured.
50. The apparatus of claim 49, wherein only a request or a response portion of the data is captured.
51. The apparatus of claim 50, further comprising means for retrieving image data associated with the captured data for displaying the web page.
52. The apparatus of claim 50, further comprising means for retrieving code module data associated with the captured data.
53. The apparatus of claim 44, wherein data captured during exchanges between a plurality of servers and the user, the server and a plurality of users, or a plurality of users and a plurality of servers is selectively processed.
54. A system for selectively processing captured data, comprising: at least one server; at least one user; and ' at least one processor for selectively processing data captured during an exchange between the server and the user, wherein the processor retrieves the captured data, determines whether the retrieved data satisfies predefined rules, selects the data that satisfies the predefined rules, and records the selected data.
55. The system of claim 54, wherein the selected data is recorded for a finite duration.
56. The system of claim 54, wherein the user is a web browser or a web server, and the server is a web server.
57. The system of claim 54, wherein the captured data includes at least one of pages, attributes, and events.
58. The system of claim 54, wherein the data is in the form of an Internet protocol and is used for displaying a web page to the user.
59. The system of claim 54, wherein only a predetermined portion of the data is captured.
60. The system of claim 59, wherein only a request or a response portion of the data is captured.
61. The system of claim 60, wherein the processor retrieves image data associated r the captured data for displaying the web page to the user.
62. The system of claim 60, wherein the processor obtains code modules associated with the captured data.
63. The system of claim 54, wherein data captured during exchanges between a plurality of servers and the user, the server and a plurality of users, or a plurality of servers and a plurality of users is selectively processed.
65. A method for replaying data captured during at least one interaction between at least one server and at least one user, the method comprising the steps of: collecting data captured during the interaction between the server and the user during a given time period; assembling a session of interactions between the server and the user, including the at least one interaction, in the order in which they occurred; and replaying the session.
66. The method of claim 65, further comprising: searching for data that satisfies predetermined search criteria, among the captured data; and creating a result set of data satisfying the search criteria, wherein the session is assembled from the result set.
67. The method of claim 66, wherein the step of searching searches among data selected from the captured data based upon predefined rules.
68. The method of claim 65, wherein the captured data includes at least one of pages, events, or attributes.
69. The method of claim 65, wherein the captured data is in the form of an Internet protocol, and the session is displayed as at least one web page to the user.
70. The method of claim 65, wherein the user is a web server or a web browser, and the server is a web server.
71. The method of claim 66, further comprising specifying the search criteria by the user.
72. The method of claim 66, wherein the search criteria includes a date and time
73. The method of claim 66, wherein the captured data is searched sequentially.
74. The method of claim 66, wherein the search criteria includes a specific user identification.
75. The method of claim 65, wherein the steps are performed for replaying data captured during interactions between a plurality of servers and the user, the server and a plurality of users, or a plurality of servers and a plurality of users.
76. An apparatus for replaying data captured during at least one interaction between at least one server and at least one user, the apparatus comprising: means for collecting data captured during the interaction between the server and the user during a given time period; means for assembling a session of interactions between the server and the user, including the at least one interaction, in the order in which they occurred; and means for replaying the session.
77. The apparatus of claim 76, further comprising: means for searching for data that satisfies predetermined search criteria among the captured data captured; and means for creating a result set of data satisfying the predetermined search criteria, wherein the session is assembled from the result set.
78. The apparatus of claim 77, wherein the searching means searches among data selected from the captured data based upon predefined rules.
79. The apparatus of claim 76, wherein the captured data includes at least one of pages, events, or attributes.
80. The apparatus of claim 76, wherein the data is in the form of an Internet protocol, and the session is displayed as at least one web page to the user.
81. The apparatus of claim 76, wherein the user is a web browser or a web server, and the server is a web server.
82. The apparatus of claim 77, wherein the search criteria is specified by the user.
83. The apparatus of claim 77, wherein the search criteria includes a date and time range.
84. The apparatus of claim 77, wherein the captured data is searched sequentially.
85. The apparatus of claim 77, wherein the search criteria includes a specific user identification.
86. The apparatus of claim 76, wherein the apparatus replays data captured during interactions between a plurality of servers and the user, the server and a plurality of users, or a plurality of servers and a plurality of users.
87. A system for replaying captured data, comprising: at least one server, at least one user, a player for collecting data captured during at least one interaction between the server and the user during a given time period, assembling a session of interactions between the server and the user, including the at least one interaction, in the order in which they occurred, and replaying the session.
88. The system of claim 87, wherein the player searches for data that satisfies predetermined search criteria among the captured data, creates a result set of saved data satisfying the predetermined criteria, and assembles the session from the result set.
89. The system of claim 87, wherein the player searches among data selected from the captured data based upon predefined rules.
90. The system of claim 87, wherein the captured data includes at least one of pages, events, or attributes.
91. The system of claim 88, wherein the data is in the form of an Internet protocol, and the session is displayed as at least one web page to the user.
92. The system of claim 87, wherein the user is a web browser or a web server, and the server is a web server.
93. The system of claim 88, wherein the user specifies the search criteria.
94. The system of claim 88, wherein the search criteria includes a date and time range.
95. The system of claim 88, wherein the player searches the captured data sequentially.
96. The system of claim 88, wherein the search criteria includes a specific user identification.
97. The system of claim 87, wherein data captured during interactions between a plurality of servers and the user, the server and a plurality of users, or a plurality of servers and a plurality of users is replayed.
PCT/US2003/002541 2002-01-31 2003-01-29 Method, apparatus, and system for capturing, processing, and/or playing selected data exchanged between a server and a user WO2003065232A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US10/061,491 US20030142122A1 (en) 2002-01-31 2002-01-31 Method, apparatus, and system for replaying data selected from among data captured during exchanges between a server and a user
US10/061,491 2002-01-31
US10/061,469 2002-01-31
US10/061,489 2002-01-31
US10/061,469 US7219138B2 (en) 2002-01-31 2002-01-31 Method, apparatus, and system for capturing data exchanged between a server and a user
US10/061,489 US20030145140A1 (en) 2002-01-31 2002-01-31 Method, apparatus, and system for processing data captured during exchanges between a server and a user

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2003564754A JP2005516305A (en) 2002-01-31 2003-01-29 Method for capturing the exchanged selected data between the server and the user, process, and / or reproducing apparatus and systems
EP03710772A EP1479005A4 (en) 2002-01-31 2003-01-29 Method, apparatus, and system for capturing, processing, and/or playing selected data exchanged between a server and a user
CA 2474735 CA2474735C (en) 2002-01-31 2003-01-29 Method, apparatus, and system for capturing, processing, and/or playing selected data exchanged between a server and a user
NZ53464203A NZ534642A (en) 2002-01-31 2003-01-29 Method, apparatus, and system for capturing, processing, and/or playing selected data exchanged between a server and a user
AU2003214926A AU2003214926B2 (en) 2002-01-31 2003-01-29 Method, apparatus, and system for capturing, processing, and/or playing selected data exchanged between a server and a user

Publications (1)

Publication Number Publication Date
WO2003065232A1 true WO2003065232A1 (en) 2003-08-07

Family

ID=27670384

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/002541 WO2003065232A1 (en) 2002-01-31 2003-01-29 Method, apparatus, and system for capturing, processing, and/or playing selected data exchanged between a server and a user

Country Status (6)

Country Link
EP (1) EP1479005A4 (en)
JP (1) JP2005516305A (en)
AU (1) AU2003214926B2 (en)
CA (1) CA2474735C (en)
NZ (1) NZ534642A (en)
WO (1) WO2003065232A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2399196A (en) * 2003-02-28 2004-09-08 Sun Microsystems Inc Automating and recording Web applications

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5178219B2 (en) * 2008-01-31 2013-04-10 三菱スペース・ソフトウエア株式会社 Access analyzer and access analysis method and access analysis program
JP5648186B2 (en) 2011-08-22 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Apparatus and method for generating data for reproducing a transaction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809250A (en) * 1996-10-23 1998-09-15 Intel Corporation Methods for creating and sharing replayable modules representive of Web browsing session
US6286046B1 (en) 1997-12-22 2001-09-04 International Business Machines Corporation Method of recording and measuring e-business sessions on the world wide web
WO2001090966A1 (en) 2000-05-24 2001-11-29 Telstra New Wave Pty Ltd Monitoring system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3073502A (en) * 2000-12-11 2002-06-24 Phlair Inc System and method for detecting and reporting online activity using real-time content-based network monitoring

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809250A (en) * 1996-10-23 1998-09-15 Intel Corporation Methods for creating and sharing replayable modules representive of Web browsing session
US6286046B1 (en) 1997-12-22 2001-09-04 International Business Machines Corporation Method of recording and measuring e-business sessions on the world wide web
WO2001090966A1 (en) 2000-05-24 2001-11-29 Telstra New Wave Pty Ltd Monitoring system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1479005A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2399196A (en) * 2003-02-28 2004-09-08 Sun Microsystems Inc Automating and recording Web applications

Also Published As

Publication number Publication date
AU2003214926B2 (en) 2009-01-22
CA2474735C (en) 2009-10-13
NZ534642A (en) 2006-06-30
JP2005516305A (en) 2005-06-02
EP1479005A4 (en) 2010-10-13
EP1479005A1 (en) 2004-11-24
CA2474735A1 (en) 2003-08-07

Similar Documents

Publication Publication Date Title
US7035925B1 (en) Parsing navigation information to identify interactions based on the times of their occurrences
US10270870B2 (en) Passively monitoring online video viewing and viewer behavior
US6507867B1 (en) Constructing, downloading, and accessing page bundles on a portable client having intermittent network connectivity
JP6062895B2 (en) Content rendering control system and method
CA2284530C (en) Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US7519702B1 (en) Method and apparatus for measuring web site performance
US6393479B1 (en) Internet website traffic flow analysis
US9614927B2 (en) Independent actionscript analytics tools and techniques
US6981256B2 (en) Methods and apparatus for enabling dynamic resource collaboration
US8312146B2 (en) Methods and apparatus for enabling dynamic resource collaboration
CA2264781C (en) Testing and debugging tool for network applications
US6411998B1 (en) World wide web internet delay monitor
US8976955B2 (en) System and method for tracking web interactions with real time analytics
US8122336B2 (en) Web page link-tracking system
US8577996B2 (en) Method and apparatus for tracing users of online video web sites
US5884056A (en) Method and system for video browsing on the world wide web
JP4471554B2 (en) How to network usage monitoring device and associated
US9275413B2 (en) Transaction management system
US7765295B2 (en) Methods and apparatus for real user monitoring
Cohen PyFlag–An advanced network forensic framework
US6606644B1 (en) System and technique for dynamic information gathering and targeted advertising in a web based model using a live information selection and analysis tool
US20020152284A1 (en) System and method for performing real time monitoring and control of an interactive network
US7437451B2 (en) System and method for collecting desired information for network transactions at the kernel level
US20130097313A1 (en) Web page load time prediction and simulation
US9590930B2 (en) System and method for performing follow up based on user interactions

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 163232

Country of ref document: IL

WWE Wipo information: entry into national phase

Ref document number: 2474735

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2003214926

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 2003564754

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 534642

Country of ref document: NZ

WWE Wipo information: entry into national phase

Ref document number: 2003710772

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2003710772

Country of ref document: EP

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)