IP Library Granted Patent US 9,842,093
Granted Patent B2
US 9,842,093 · App. 15/262,604 · Granted Dec 12, 2017

Method and apparatus for intelligent capture of document object model events

Inventors: Travis Spence Powell (San Francisco, CA); Nadav Caspi (San Francisco, CA); Ashwin Singhania (San Francisco, CA); Robert I. Wenig (San Francisco, CA)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F17/2247G06F17/2211G06F17/30011G06F17/30896G06Q30/0241H04L67/02H04L67/142H04L41/00H04L43/028
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,842,093
App. No.
15/262,604
Granted
Dec 12, 2017
Kind
B2
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 (100)

1. A computer program product comprising a computer readable storage medium having computer program code embodied therewith, the computer program code executable by a processing device to cause the processing device to:

monitor for changes in a webpage during a web session;

identify some of the changes in the webpage that can be represented by associated content identifiers that represent information in known Document Object Model (DOM) items, wherein the changes in the webpage comprise Document Object Model (DOM) events;

capture the webpage by representing the identified changes in the webpage with the associated content identifiers;

reference a table during replaying of the web session, the content identifiers being used to index the table to identify associated text; and

display, during the replaying, the identified associated text within the webpage.

2. The computer program product of claim 1 , wherein the computer program code is further configured to cause the processing device to:

configure an agent to monitor for the changes in the webpage; and

configure the agent to send the content identifiers representing the identified changes in the webpage to an archive server.

3. The computer program product of claim 1 , wherein the computer program code is further configured to cause the processing device to:

identify the changes in the webpage that cannot be represented by associated content identifiers;

capture the Document Object Model (DOM) events for the changes in the webpage that cannot be represented by associated content identifiers; and

capture the webpage by combining the DOM events with the content identifiers.

4. The computer program product of claim 1 , wherein the computer program code is further configured to cause the processing device to:

identify actions, time stamps, and locations associated with the content identifiers; and

archive the actions, times, and locations with the associated content identifiers.

5. The computer program product of claim 1 , wherein the computer program code is further configured to cause the processing device to:

identify Document Object Model (DOM) subtrees for the changes in the webpage;

identify DOM values in the DOM subtrees for the changes in the webpage; and

use the content identifiers to represent some of the DOM values.

6. The computer program product of claim 1 , wherein the computer program code is further configured to cause the processing device to:

use a Domsubtree Modified JavaScript message to identify the changes in the webpage.

7. The computer program product of claim 1 , wherein the computer program code is further configured to cause the processing device to:

identify a sequence and timing of Document Object Model (DOM) events for a web session; and

determine which changes in the webpage to capture and archive based on the sequence and timing of the DOM events.

8. The computer program product of claim 1 , wherein the computer program code is further configured to cause the processing device to:

identify metadata for the webpage; and

determine which changes in the webpage to capture and archive based on the metadata for the webpage.

9. The computer program product of claim 1 , wherein the computer program code is further configured to cause the processing device to:

identify a checkpoint event; and

capture a Document Object Model (DOM) state for the webpage in response to identifying the checkpoint event.

10. The computer program product of claim 9 , 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.

11. The computer program product of claim 1 , wherein the computer program code is further configured to cause the processing device to:

identify network events for a web session;

identify websites associated with the network events; and

capture the changes in the webpage based on the websites associated with the network events.

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

13. A computer program product comprising a computer readable storage medium having computer program code embodied therewith, the computer program code executable by a processing device to cause the processing device 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 some of the changes in the webpage that can be represented by associated content identifiers that represent known DOM items;

capture the webpage of a captured web session by representing the identified changes in the webpage with associated content identifiers;

reference a table during replaying of the web session, the content identifiers being used to index the table to identify associated text; and

display, during the replaying, the identified associated text within the webpage.

14. The computer program product of claim 13 , wherein the computer program code is further configured to cause the processing device to:

identify actions, times, and locations associated with the content identifiers; and

archive the actions, times, and locations with the associated content identifiers.

15. The computer program product of claim 13 , wherein the computer program code is further configured to cause the processing device to use a DOMSUBTREE MODIFIED JavaScript object to identify values in the subtrees for the changes in the DOM.

16. The computer program product of claim 13 , wherein the computer program code is further configured to cause the processing device 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.

17. The computer program product of claim 13 , wherein the computer program code is further configured to cause the processing device to:

identify a checkpoint event for the web session; and

capture a DOM state for the webpage in response to identifying the checkpoint event.

18. The computer program product of claim 13 , wherein the computer program code is further configured to cause the processing device 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.

19. The computer program product of claim 13 , wherein the computer program code is further configured to cause the processing device to:

monitor DOM events for an original web session;

send the DOM events to a session analyzer;

receive a control message back from the session analyzer, wherein the control message is based on the DOM events; and

capture the changes in the DOM based on the control message.

20. A computer program product comprising a computer readable storage medium having computer program code embodied therewith, the computer program code executable by a processing device to cause the processing device to:

receive a webpage captured from a web session;

receive Document Object Model (DOM) changes in the webpage from the web session;

identify changes in the webpage that can be represented by associated content identifiers, the associated content identifiers representing known DOM items;

archive at least a portion of the webpage and the content identifiers for subsequent replaying of the web session;

referencing a table during replaying of the web session, the content identifiers being used to index the table to identify associated text; and

displaying, during the replaying, the identified associated text within the webpage.

21. The computer program product of claim 20 , wherein the computer program code is further configured to cause the processing device to:

archive the content identifiers instead of the associated DOM changes.

22. The computer program product of claim 20 , wherein the computer program code is further configured to cause the processing device to:

monitor DOM events during the web session;

identify which DOM changes in the webpage to capture based on the DOM events; and

send a control message directing an agent to capture the identified DOM changes.

23. The computer program product of claim 20 , wherein the computer program code is further configured to cause the processing device to:

receive metadata for the webpage;

identify which DOM changes in the webpage to capture based on the metadata; and

send a control message directing an agent to capture the identified DOM changes.

24. The computer program product of claim 20 , wherein the computer program code is further configured to cause the processing device to:

receive actions, timestamps, and locations associated with the DOM changes;

archive the actions, timestamps, and locations associated with the DOM changes for subsequent replaying of the web session.

25. The computer program product of claim 20 , wherein the computer program code is further configured to cause the processing device to:

monitor DOM events during the web session;

identify a checkpoint based on the DOM events; and

initiate capture of an entire state of the webpage in response to identifying the checkpoint.

26. The computer program product of claim 20 , wherein the computer program code is further configured to cause the processing device to:

send an artificial stimulation of the DOM to the webpage;

receive DOM events in response to the artificial stimulation of the DOM; and

initiate capture of additional DOM events or generating a status message in response to the received DOM events.

27. The computer program product of claim 13 , wherein the computer program code is further configured to cause the processing device 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.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Oct 19, 2022
From: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P.
To: ACOUSTIC, L.P.
Reel/Frame 061713/0942 →
SECURITY INTEREST Recorded Oct 19, 2022
From: ACOUSTIC, L.P.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 061720/0361 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: ACOUSTIC, L.P.
Reel/Frame 049964/0263 →
SECURITY INTEREST Recorded Jun 28, 2019
From: ACOUSTIC, L.P.
To: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P.
Reel/Frame 049629/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2016
From: POWELL, TRAVIS SPENCE; CASPI, NADAV; SINGHANIA, ASHWIN; WENIG, ROBERT I.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039703/0187 →
Continuity (9)
Continuation 14226378 · Mar 26, 2014
Division 13419179 · Mar 13, 2012
Continuation In Part 12904356 · Oct 14, 2010
Continuation In Part 13337905 · Dec 27, 2011
Continuation 11616616 · Dec 27, 2006
Continuation In Part 12191585 · Aug 14, 2008
Provisional Application 61332498 · May 7, 2010
Provisional Application 60806443 · Jun 30, 2006
Related Publication 20160378731A1 · Dec 29, 2016