# US 12,182,763 B2 · Systems and methods for multi-party distributed active co-browsing

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

- Number: US 12,182,763 B2
- Document ID: US12182763B2
- Status: Granted
- Kind: B2
- Application number: 18/492,581
- Filed: 2023-10-23
- Published: 2024-02-15
- Granted: 2024-12-31
- Earliest claimed: 2021-07-08
- Assignees: Bluescape Buyer LLC
- Applicants: Bluescape Buyer LLC
- Inventors: Robert Elsner; Krzysztof Palacz; Yingtao Jiang; Oleg Sidorkin; Rupen Chanda
- Web page: https://patentgrep.com/patent/US12182763B2

## CPC

- G06Q 10/10: Office automation; Time management
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 3/04815: Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object
- G06F 3/0485: Scrolling or panning
- G06F 16/954: Navigation, e.g. using categorised browsing
- G06F 16/955: using information identifiers, e.g. uniform resource locators [URL]
- H04L 12/1813: {for computer conferences, e.g. chat rooms (instant messaging H04L51/04; protocols for multimedia communication H04L65/1101; arrangements for multi-party communication H04L65/403; telephonic conference arrangements H04M3/56; television conference systems H04N7/15)}
- H04L 12/1822: {Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission}
- H04L 65/4015: {where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference}
- 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
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods are provided for collaborative session including co-browsing in a virtual workspace. The system includes a server-side network node including logic to access a web application using a uniform resource locator (URL) of the web application. The server-side network node includes logic to generate a first model of the web application corresponding to the current state of the web application. The server-side network node includes logic to provide a spatial event map identifying events in the virtual workspace, the events identified by the spatial event map are related to the first model of the web application. The system includes logic to create a second model of the web application as a result of updates to the current state of the web application. The system includes logic to generate an update patch using a difference between the second model and the first model of the web application.

## Claims

### Claim 1

A method of hosting a collaborating session between client nodes, the method comprising:
generating a first model of an accessed web application, the first model corresponding to a current state of the web application;
providing, to the client nodes, at least a portion of a spatial event map (i) identifying a log of events in a virtual workspace and (ii) including respective locations of digital assets related to the events in the virtual workspace, wherein the web application is a digital asset of a plurality of digital assets related to the events, and wherein the portion of the spatial event map allows for display, on a display of each of the client nodes, of the first model of the web application in a co-browsing session between the client nodes;
receiving an input event including an input from at least one client node and applying the received input to the current state of the web application;
creating a second model of the web application as a result of, at least, an update to the current state of the web application in dependence upon the received input; and
updating the portion of the spatial event map at respective client nodes to include an update event identifying a difference between the first model and the second model, wherein the updated portion of the spatial event map allows display, on the display of each of the client nodes, of the second model of the web application corresponding to the updated state of the web application.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first model and the second model of the web application respectively include a plurality of elements of the web application served by a web server serving the web application.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
retrieving, from the web server serving the web application, at least one element from the plurality of elements of the web application; and
storing the at least one element of the web application in a database,
wherein the first model of the web application corresponding to the current state of the web application includes the at least one element of the web application queried from the plurality of elements of the web application stored in the database.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
retrieving, from the web server serving the web application, each element of the plurality of elements of the web application; and
storing each retrieved element of the plurality of elements of the web application in the database,
wherein the first model of the web application corresponding to the current state of the web application includes at least one element of the plurality of elements of the web application stored in the database.

### Claim 5 (depends on 2)

The method of claim 2, further comprising:
generating a filtered model of the web application corresponding to the first model of the web application by filtering out one or more elements from the plurality of elements from the first model of the web application, wherein the elements of the web application include one or more of (i) a script, (ii) a document object model (DOM) comprising a plurality of document object model elements, (iii) a style, (iv) an image and (v) a video; and
providing, to the client nodes, the portion of the spatial event map identifying events in the virtual workspace, the events identified by the portion of the spatial event map being related to the filtered model of the web application.

### Claim 6 (depends on 5)

The method of claim 5, further comprising generating an update patch using the difference between the second model and the first model includes using a web-extension component running in a web browser in which the web application is executing and determining changes in states, between the second model and the first model, of the elements of the web application including at least the elements of the document object model of the web application.

### Claim 7 (depends on 6)

The method of claim 6, further comprising periodically creating a new model of the web application to capture updates to the current state of the web application, wherein the current state of the web application is captured by a previous model,
wherein the generating of the update patch uses a difference between the new model of the web application and the previous model of the web application.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
receiving an input event from a client node to authenticate login credentials for the web application in the co-browsing session in the virtual workspace; and
sending of the update event including the update patch to the client node,
wherein the sending is performed without sending the update patch to other client nodes,
wherein the portion of the spatial event map, at the client node, receives the update event and allows rendering, in a display space on a display of the client node, the second model of the web application,
wherein the second model of the web application includes a user interface for providing the login credentials, and
wherein the displays at the other client nodes display the first model of the web application without including the user interface for providing the login credentials.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
receiving a pause browse request message from the client node to pause the co-browsing session; and
discontinuing a subsequent sending of the update event including the update patch to the other client nodes other than the client node.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
receiving respective input events including inputs from at least two client nodes; and
applying the inputs received in the respective input events to the web application,
wherein the second model of the web application is created as a result of updates to the web application in dependence upon application of the inputs received in the respective input events to the web application, and
wherein the sending of the update event including the update patch to the client nodes includes sending the update event to at least two client nodes.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
determining respective locations of the respective input events from the at least two client nodes within the virtual workspace, wherein the respective input events include respective locations of input events in the virtual workspace,
wherein the portion of the spatial event map, at respective client nodes, receives the update event and allows rendering, in the display space on the display of each of the client nodes, of one or more of the digital assets corresponding to inputs provided by at least two client nodes within the virtual workspace, the one or more digital assets respectively identifying actions performed on the second model of the web application at the at least two client nodes respectively.

### Claim 12 (depends on 1)

A server node of a collaboration system hosting a collaboration session between client nodes, the server node including one or more processors configured with logic to implement the method of claim 1.

### Claim 13 (depends on 1)

A non-transitory computer-readable recording medium having computer instructions recorded thereon, the computer instructions, when executed by one or more processors, causing the one or more processors to perform the method of claim 1.

### Claim 14

A method for hosting a collaboration session between client nodes, the method comprising:
sending a request message to a server node to start a co-browsing session in a virtual workspace, wherein the request message identifies a web application;
receiving, from the server node, at least a portion of a spatial event map (i) identifying a log of events in a virtual workspace and (ii) including respective locations of digital assets related to the events in the virtual workspace, wherein the web application is a digital asset of a plurality of digital assets related to the events, and wherein the portion of the spatial event map allows for display, on a display of each of the client nodes, of a first model of the web application in a co-browsing session between the client nodes;
sending, to the server node, an input event, wherein the input event includes an input to the first model of the web application;
receiving, from the server node, an update event including an update patch, wherein the update patch identifies changes to elements of the first model of the web application and wherein the portion of the spatial event map is updated to include the update event; and
rendering, using the update event and in a display space on a display of a client node, a second model of the web application showing updates that are applied to the first model of the web application in dependence on the input to the first model of the web application.

### Claim 15 (depends on 14)

The method of claim 14, wherein the input in the input event can be at least one of a text input, a menu item selection input, a voice input, an image input, a page scroll input and an annotation input.

### Claim 16 (depends on 14)

The method of claim 14, further comprising:
rendering, using a first input event, in the display space on the display of the client node, an updated view of the second model of the web application in dependence on a first scroll operation, wherein the first input event identifies the first scroll operation for the second model of the web application; and
rendering, using a second input event, in the display space on the display of a second client node, an updated view of the second model of the web application in dependence on a second scroll operation, wherein the second input event identifies the second scroll operation for the second model of the web application, wherein the second scroll operation is different from the first scroll operation.

### Claim 17 (depends on 14)

The method of claim 14,
wherein the input event identifies an annotation operation performed on the second model of the web application,
wherein the update patch includes the annotation operation performed on the second model of the web application, and
wherein the rendering includes rendering, in the display space on the display of the client node, an updated view of the second model of the web application including the annotation operation in response to the input event.

### Claim 18 (depends on 14)

The method of claim 14,
wherein the input event identifies an operation of attaching a note card to the second model of the web application,
wherein the update patch includes the note card attached to the second model of the web application, and
wherein the rendering includes rendering, in the display space on the display of the client node, an updated view of the second model of the web application including the note card in response to the input event.

### Claim 19 (depends on 14)

A non-transitory computer-readable recording medium having computer instructions recorded thereon, the computer instructions, when executed by one or more processors, causing the one or more processors to perform the method of claim 14.

### Claim 20 (depends on 14)

A collaboration system hosting a collaboration session, the collaboration system comprising a plurality of client-side network nodes including one or more processors configured with logic to implement the method of claim 14.
