# US 2014/0208200 A1 · Method and apparatus for intelligent capture of document object model events

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0208200 A1
- Document ID: US20140208200A1
- Status: Published application
- Kind: A1
- Application number: 14/226,378
- Filed: 2014-03-26
- Published: 2014-07-24
- Earliest claimed: 2006-06-30
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Travis Spence Powell; Nadav Caspi; Ashwin Singhania; Robert I. Wenig
- Web page: https://patentgrep.com/patent/US20140208200A1

## CPC

- G06F 40/143: Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
- G06F 16/93: Document management systems
- G06F 16/986: {Document structures and storage, e.g. HTML extensions}
- G06F 40/194: Calculation of difference between files
- G06Q 30/0241: Advertisements
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/142: Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
- H04L 41/00: Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L 43/028: by filtering
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A monitoring system intelligently captures Document Object Model (DOM) events. The DOM events may provide state information that may not usually be captured during a web session. To reduce processing bandwidth, content identifiers may be used to represent some DOM events. Checkpoints may be identified during the web session and a current state of the webpage may be captured to provide replay synchronization. Different data may be captured based on a sequence and timing of the DOM events during the original web session. Data exchanged with third party websites also may be selectively captured to provide a more through simulation of the original web session.

## Claims

### Claim 1

A method, comprising:
monitoring, by a processing device, for changes in a webpage;
identifying, by the processing device, some of the changes in the webpage that can be represented by associated content identifiers, wherein the changes in the webpage comprise Document Object Model (DOM) events; and
capturing, by the processing device, the webpage by representing the identified changes in the webpage with the associated content identifiers.

### Claim 2

(canceled)

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
configuring an agent to monitor for the changes in the webpage; and
configuring the agent to send the content identifiers representing the identified changes in the webpage to an archive server.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
identifying the changes in the webpage that cannot be represented by associated content identifiers;
capturing the Document Object Model (DOM) events for the changes in the webpage that cannot be represented by associated content identifiers; and
capturing the webpage by combining the DOM events with the content identifiers.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
identifying actions, time stamps, and locations associated with the content identifiers; and
archiving the actions, times, and locations with the associated content identifiers.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
identifying Document Object Model (DOM) subtrees for the changes in the webpage;
identifying DOM values in the DOM subtrees for the changes in the webpage; and
using the content identifiers to represent some of the DOM values.

### Claim 7 (depends on 1)

The method of claim 1 further comprising using a Domsubtree Modified JavaScript message to identify the changes in the webpage.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
identifying a sequence and timing of Document Object Model (DOM) events for a web session; and
determining which changes in the webpage to capture and archive based on the sequence and timing of the DOM events.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
identifying metadata for the webpage; and
determining which changes in the webpage to capture and archive based on the metadata for the webpage.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
identifying a checkpoint event; and
capturing a Document Object Model (DOM) state for the webpage in response to identifying the checkpoint event.

### Claim 11 (depends on 10)

The method of claim 10, wherein identifying the checkpoint event comprises:
identifying a normal sequence of events for a web session;
monitoring an actual sequence of events for the web session; and
capturing the DOM state for the web page based on a comparison of the normal sequence of events for the web session with the actual sequence of events for the web session.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
identifying network events for a web session;
identifying websites associated with the network events; and
capturing the changes in the webpage based on the websites associated with the network events.

### Claim 13 (depends on 12)

The method of claim 12, wherein the websites comprise a primary website providing the webpage and third party websites providing content for the webpage.

### Claim 14

An apparatus, comprising:
logic circuitry configured to:
monitor a Document Object Model (DOM) for a webpage;
detect changes in the DOM for the webpage;
locate subtrees in the DOM containing the changes in the DOM;
identify values in the subtrees for the changes in the DOM; and
capturing the values as part of a captured web session

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the logic circuit is further configured to:
identify actions, times, and locations associated with the values; and
archive the actions, times, and locations with the associated values.

### Claim 16 (depends on 14)

The apparatus of claim 14 wherein the logic circuitry is further configured to use a DOMSUBTREE MODIFIED JavaScript object to identify the values in the subtrees for the changes in the DOM.

### Claim 17 (depends on 14)

The apparatus of claim 14, wherein the logic circuitry is further configured to:
identify a sequence of events for the web session; and
determine which changes in the DOM to capture based on the sequence of events for the web session.

### Claim 18 (depends on 14)

The apparatus of claim 14, wherein the logic circuitry is further configured to:
identify a checkpoint event for the web session; and
capture a DOM state for the webpage in response to identifying the checkpoint event.

### Claim 19 (depends on 14)

The apparatus of claim 14, wherein the logic circuitry is further configured to:
identify the changes in the DOM that can be represented by associated content identifiers; and
capture the content identifiers as part of the captured web session.

### Claim 20 (depends on 19)

The method of claim 19, wherein the logic circuitry is further configured to:
identify the changes in the DOM that cannot be represented by associated content identifiers;
capture content from the webpage for the changes in the DOM that cannot be represented by associated content identifiers; and
combine the content from the webpage with the content identifiers as the captured web session.

### Claim 21 (depends on 14)

The apparatus of claim 14, wherein the logic circuitry is further configured to:
monitor DOM events for an original web session;
send the DOM events to a session analyzer;
receive a control message back from session analyzer, wherein the control message is based on the DOM events; and
capture the changes in the DOM based on the control message.

### Claim 22

A method, comprising:
receiving, by a processing device, a webpage captured from a web session;
receiving, by the processing device, Document Object Model (DOM) changes in the webpage from the web session; and
archiving, by the processing device, the webpage and the DOM changes for subsequent replaying of the web session.

### Claim 23 (depends on 22)

The method of claim 22, further comprising:
receiving content identifiers associated with some of the DOM changes; and
archiving the content identifiers instead of the associated DOM changes.

### Claim 24 (depends on 22)

The method of claim 22, further comprising:
monitoring DOM events during the web session;
identifying which DOM changes in the webpage to capture based on the DOM events; and
sending a control message directing an agent to capture the identified DOM changes.

### Claim 25 (depends on 22)

The method of claim 22, further comprising:
receiving metadata for the webpage;
identifying which DOM changes to in the webpage to capture based on the metadata; and
sending control message directing an agent to capture the identified DOM changes.

### Claim 26 (depends on 22)

The method of claim 22, further comprising:
receiving actions, timestamps, and locations associated with the DOM changes;
archiving the actions, timestamps, and locations associated with the DOM changes for subsequent replaying of the web session.

### Claim 27 (depends on 22)

The method of claim 22, further comprising:
monitoring DOM events during the web session;
identifying a checkpoint based on the DOM events; and
initiating capture of an entire state of the webpage in response to identifying the checkpoint.

### Claim 28 (depends on 22)

The method of claim 22, further comprising:
sending an artificial stimulation of the DOM to the webpage;
receiving DOM events in response to the artificial simulation of the DOM; and
initiating capture of additional DOM events or generating a status message in response to the received DOM events.

### Claim 29 (depends on 14)

A method of claim 14, wherein the logic circuitry is further configured to:
identify browser requests to third party websites;
filter payloads and Uniform Resource Locators for the browser requests;
log the filtered browser requests; and
transmit the logged browser requests to an archive server to provide context to the DOM changes identified in the web session.
