Language selection

Search

Patent 2474735 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2474735
(54) English Title: METHOD, APPARATUS, AND SYSTEM FOR CAPTURING, PROCESSING, AND/OR PLAYING SELECTED DATA EXCHANGED BETWEEN A SERVER AND A USER
(54) French Title: PROCEDE, APPAREIL, ET SYSTEME DE CAPTURE, DE TRAITEMENT, ET/OU DE REPRODUCTION DE DONNEES SELECTIONNEES ECHANGEES ENTRE UN SERVEUR ET UN UTILISATEUR
Status: Expired
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 13/00 (2006.01)
  • G06F 15/00 (2006.01)
(72) Inventors :
  • STRAUT, CHRISTOPHER (United States of America)
  • BOYERS, ALBERT S. (United States of America)
  • OWEN, JOSEPH H., JR. (United States of America)
  • CHORAGUDI, RAM (United States of America)
(73) Owners :
  • WITNESS SYSTEMS, INC. (United States of America)
(71) Applicants :
  • WITNESS SYSTEMS, INC. (United States of America)
(74) Agent: OSLER, HOSKIN & HARCOURT LLP
(74) Associate agent:
(45) Issued: 2009-10-13
(86) PCT Filing Date: 2003-01-29
(87) Open to Public Inspection: 2003-08-07
Examination requested: 2007-04-13
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/US2003/002541
(87) International Publication Number: WO2003/065232
(85) National Entry: 2004-07-28

(30) Application Priority Data:
Application No. Country/Territory Date
10/061,469 United States of America 2002-01-31
10/061,489 United States of America 2002-01-31
10/061,491 United States of America 2002-01-31

Abstracts

English 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.


French Abstract

Selon l'invention, un échange de données entre au moins un serveur (100) et au moins un utilisateur (120) est capturé, enregistré de manière sélective, et reproduit. Les données échangées sont interceptées dans un module de capture qui fonctionne indépendamment du serveur (100) et de l'utilisateur (120). Une copie des données interceptées sont stockées dans une base de données (110). L'interception et le stockage sont effectués de manière transparente vis-à-vis de l'utilisateur. Les données capturées sont extraites puis on détermine si les données extraites satisfont les règles prédéterminées. Les données qui satisfont les règles sont sélectionnées et enregistrées. Les données capturées sont collectées pendant un certain temps, et une session d'interactions entre le serveur (100) et l'utilisateur (120) est assemblée dans l'ordre qu'il a eu lieu. La session est alors reproduite.

Claims

Note: Claims are shown in the official language in which they were submitted.



16
The embodiments of the present invention for which an exclusive property or
privilege is claimed are defined as follows:

1. A system for capturing data, comprising:
at least one server;
at least one user, wherein the server and the user exchange data;
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 a portion of the
intercepted data, and forwards the data from the server or the user to the
user or
the server, respectively; and
a filter coupled to the proxy server wherein the filter identifies the portion
of the
intercepted data by determining if the intercepted data satisfies a predefined
rule,
thereby producing filtered data for the proxy server to store and discarding
intercepted data that does not satisfy the predefined rule;
wherein the filter works in real-time to filter the intercepted data before
the portion of
the intercepted data is stored, thereby reducing storage requirements;
wherein the user is a consumer visiting a site associated with said at least
one server;
wherein the intercepted data is for use in analyzing the consumer's behavior
on
the site.

2. The system of claim 1, wherein the proxy server performs intercepting and
storing transparently to the user.

3. The system of claim 1, wherein the data includes at least one of events,
attributes,
images, user identifications, requests, and responses.

4. The system of claim 1, wherein the data is exchanged in the form of an
Internet
Protocol and is assembled into a web page for display to the user.

5. The system of claim 3, wherein only a predetermined portion of the data
used to
display the web page is stored.

6. The system of claim 5, wherein only requests or responses are stored.


17
7. The system of claim 1, wherein the user is a web server or a web browser,
and the
server is a web server.

8. The system of claim 1, wherein the data is intercepted continuously and is
stored
during a predetermined time interval.

9. The system of claim 1, wherein the stored data is used for replaying data
exchanged between the server and the user.

10. The system of claim 1, 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.

11. The system of claim 10, wherein data simultaneously exchanged between the
plurality of servers and the user, the server and the plurality users, or the
plurality
of servers and the plurality of users is captured concurrently.

12. The system of claim 1, further comprising a playback module configured to
generate a playback environment configured to present exchanged data to a
reviewer substantially as the exchange occurred.

13. The system of claim 8, wherein the predetermined time interval comprises a
period of time during which usage of the proxy server is expected to be low.

14. The system of claim 8, wherein the predetermined time interval is based
upon an
expected interaction volume.

15. The system of claim 1, wherein visiting a site comprises communicating
with the
server.

16. The system of claim 1, wherein analysis of consumer behavior comprises
determining quality metrics associated with an interaction.



18

17. The system of claim 1, further comprising a data store configured to
receive
filtered data from the proxy server and to store the filtered data, the
filtered data
comprising a portion of the intercepted data.


18. The system of claim 17, wherein the portion of the intercepted data to be
stored
comprises data exchanged between the user and the server, and one or more of a

customer identification, a time and data stamp, resolution, interaction
length,
customer account information, contact information, interaction type, or
interaction notes.


19. The system of claim 1, wherein said at least one server comprises a chat
server
configured to enable a contact center agent to interact with a customer.


20. The system of claim 1, wherein said at least one server comprises a web
server
configured to receive universal resource locator requests, parse the requests,
and
provide a requested web pages responsive to the universal resource locator
request.


21. The system of claim 1, wherein said at least one server comprises a voice
over
internet protocol server operable to communicate packetized voice data between

an agent and a user.


22. The system of claim 1, wherein said at least one server comprises an
electronic
mail server operable to communicate electronic messages between an agent and a

user.


23. The system of claim 1, wherein the portion of the intercepted data to be
stored is
stored in a Java archive file format.


24. The system of claim 1, further comprising a firewall configured to block
malicious connection requests to the server and the proxy server.


25. The system of claim 1, wherein the exchange data is encrypted.


Description

Note: Descriptions are shown in the official language in which they were submitted.



CA 02474735 2008-12-30

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 which correspond to
U.S.
Patent No. 7,219,138, published United States Patent Application No.
US2003/0145140
and published United States Patent Application No. US2003/014122,
respectively.

BACKGROUND
The present invention is directed to a method, apparattis, 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, chen-dstry 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


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
2
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 iules. Data that satisfies the predefined
rules 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.


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
3
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 of the 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. 1B 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;


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
4
FIGS. 2A 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. 4A and 4B illustrate exemplary page tables before and after post-
processing, 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. IA, 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.


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
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
5 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
I 10
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.


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
6
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. 1B illustrates an exemplary system for capturing, recording and playing
back data according to an exemplary embodiment. Pages and other data captured


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
7
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
post-
processor 140. Alternatively, the page capture module 110 may perform this
recording. To reduce the ainount 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 inore detail
below with
reference to FIG. 1C.
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. 1B may also include other components,
e.g.,
configuration files used for processing and log files use for storing
information for
debugging, etc.


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
8
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 rules 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
rules 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 post-
processing 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.


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
9
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.,


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
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.
5 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 rule tables indicate which rule(s) were used to capture a specific page.
The page
10 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 post-

processing 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 neivly 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.


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
11
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 post-
processing.
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. 1B. 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.


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
12
The search page 600 is split into two screeiis, one of which is shown in
FIG. 6A, 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/tiine 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 rules 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.


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
13
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. 'IA
corresponds
to session "107405".
As shown in FIG. 7A, 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 amlotations, 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


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
14
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-commerce.
While the examples above primarily discuss capturing, recording, and playing
back exchanged pages, the invention is not limited to page capturing,
recording and


CA 02474735 2004-07-28
WO 03/065232 PCT/US03/02541
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
5 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.
10 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.

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2009-10-13
(86) PCT Filing Date 2003-01-29
(87) PCT Publication Date 2003-08-07
(85) National Entry 2004-07-28
Examination Requested 2007-04-13
(45) Issued 2009-10-13
Expired 2023-01-30

Abandonment History

There is no abandonment history.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $400.00 2004-07-28
Maintenance Fee - Application - New Act 2 2005-01-31 $100.00 2005-01-19
Registration of a document - section 124 $100.00 2005-07-28
Registration of a document - section 124 $100.00 2005-07-28
Registration of a document - section 124 $100.00 2005-07-28
Maintenance Fee - Application - New Act 3 2006-01-30 $100.00 2005-12-29
Maintenance Fee - Application - New Act 4 2007-01-29 $100.00 2007-01-10
Request for Examination $800.00 2007-04-13
Maintenance Fee - Application - New Act 5 2008-01-29 $200.00 2008-01-08
Maintenance Fee - Application - New Act 6 2009-01-29 $200.00 2009-01-28
Final Fee $300.00 2009-07-27
Maintenance Fee - Patent - New Act 7 2010-01-29 $200.00 2009-12-30
Maintenance Fee - Patent - New Act 8 2011-01-31 $200.00 2011-01-27
Maintenance Fee - Patent - New Act 9 2012-01-30 $400.00 2012-06-08
Maintenance Fee - Patent - New Act 10 2013-01-29 $250.00 2012-12-13
Maintenance Fee - Patent - New Act 11 2014-01-29 $250.00 2014-01-22
Maintenance Fee - Patent - New Act 12 2015-01-29 $250.00 2015-01-07
Maintenance Fee - Patent - New Act 13 2016-01-29 $250.00 2016-01-13
Maintenance Fee - Patent - New Act 14 2017-01-30 $250.00 2017-01-11
Maintenance Fee - Patent - New Act 15 2018-01-29 $450.00 2018-01-10
Maintenance Fee - Patent - New Act 16 2019-01-29 $450.00 2019-01-09
Maintenance Fee - Patent - New Act 17 2020-01-29 $450.00 2020-01-08
Maintenance Fee - Patent - New Act 18 2021-01-29 $459.00 2021-01-20
Maintenance Fee - Patent - New Act 19 2022-01-31 $459.00 2021-12-08
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
WITNESS SYSTEMS, INC.
Past Owners on Record
BOYERS, ALBERT S.
CHORAGUDI, RAM
OWEN, JOSEPH H., JR.
STRAUT, CHRISTOPHER
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Description 2008-12-30 15 762
Claims 2008-12-30 3 123
Description 2004-07-28 15 746
Drawings 2004-07-28 19 508
Claims 2004-07-28 10 434
Abstract 2004-07-28 2 67
Representative Drawing 2004-10-01 1 11
Cover Page 2004-10-01 2 51
Cover Page 2009-09-17 2 52
Representative Drawing 2009-03-30 1 9
Fees 2010-01-19 1 45
PCT 2004-07-28 16 594
Assignment 2004-07-28 3 94
Prosecution-Amendment 2007-11-14 1 31
Correspondence 2004-07-28 1 27
Correspondence 2005-07-28 10 308
Assignment 2005-07-28 68 2,492
Assignment 2004-07-28 11 318
Correspondence 2006-01-19 1 17
Correspondence 2010-03-11 1 12
Prosecution-Amendment 2007-04-13 1 42
Prosecution-Amendment 2007-09-12 1 44
Prosecution-Amendment 2008-02-07 1 33
Prosecution-Amendment 2008-03-18 1 31
Prosecution-Amendment 2008-07-02 2 55
Correspondence 2010-03-22 1 14
Fees 2010-03-12 1 44
Prosecution-Amendment 2008-12-30 7 295
Fees 2009-01-28 1 46
Correspondence 2009-07-27 1 44
Correspondence 2010-02-12 1 16
Fees 2012-06-08 2 58