IP Library Granted Patent US 9,401,973
Granted Patent B2
US 9,401,973 · App. 13/921,164 · Granted Jul 26, 2016

Systems and methods for transmitting data

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,401,973
App. No.
13/921,164
Granted
Jul 26, 2016
Kind
B2
Abstract

A server is in communication with a plurality of clients being executed by a host. The server is configured to receive a message from a first client of the plurality of clients. The message indicates that the first client currently has focus, wherein the message is transmitted by the first client with a first cookie. The server is configured to identify that a second client of the plurality of clients utilizes a second cookie that matches the first cookie, wherein the second client is currently receiving data from the server using a low-latency update mechanism. The server is also configured to downgrade the second client from the low-latency update mechanism to a high-latency update mechanism, wherein the high-latency update mechanism is configured to enable the second client to conduct a poll of the server periodically for updates.

Claims (39)

1. A system comprising a server computer in communication with a plurality of web clients running on one or more remote terminal devices, said server being configured to:

receive a message at the server computer from a first web client of the plurality of clients, the message indicating that the first client currently has focus, wherein the message is transmitted by the first client with a first cookie;

transmit updates to the first web client using a low-latency update mechanism in response to receiving the message indicating that the first client has focus;

determine whether the first cookie matches a cookie received by one or more other web clients of the plurality of web clients;

in response to determining that a second cookie received from a second web client of the plurality of web clients matches the first cookie, determine whether the second web client is currently receiving data from the server computer using the low-latency update mechanism; and

in response to determining that the second web client is currently receiving data from the host using the low-latency update mechanism, downgrade the second web client from the low-latency update mechanism to a high-latency update mechanism that provides updates less frequently than the low-latency update mechanism, wherein applying the high-latency update mechanism includes transmitting a message to the second web client that directs the second web client to conduct a poll of the server computer periodically for updates;

wherein code on the server computer responsible for the downgrading is abstracted such that underlying code responsible for providing updated data to the first and second web clients is unaware of whether the respective first and second web clients are receiving data using the low latency update mechanism or the high latency update mechanism.

2. The system of claim 1 , wherein each web client corresponds to a respective web browser instance.

3. The system of claim 1 , wherein:

the server computer is further configured to receive an additional message from a third web client of the plurality of web clients, the additional message from the third web client indicating that the third web client currently has focus, and wherein the additional message is transmitted by the third web client with a third cookie that matches the first cookie and the second cookie; and

the server computer is further configured to downgrade the first web client from the low-latency update mechanism to the high-latency update mechanism based on the additional message.

4. The system of claim 3 , wherein the server computer is further configured to maintain the second web client in the high-latency update mechanism when the first web client is downgraded from the low-latency update mechanism to the high latency update mechanism.

5. At least one non-transitory computer-readable storage medium having computer-executable instructions embodied thereon, wherein, when executed by at least one processor, the computer-executable instructions cause the at least one processor to:

receive a message at a server from a first web client of a plurality of web clients running on one or more remote terminal devices, the message indicating that the first client currently has focus, wherein the message is transmitted by the first client with a first cookie;

transmit updates to the first web client using a low-latency update mechanism in response to receiving the message indicating that the first client has focus;

determine whether the first cookie matches a cookie received by one or more other web clients of the plurality of web clients;

in response to determining that a second cookie received from a second web client of the plurality of web clients matches the first cookie, determine whether the second web client is currently receiving data using the low-latency update mechanism; and

in response to determining that the second web client is currently receiving data from the host using the low-latency update mechanism, downgrade the second web client from the low-latency update mechanism to a high-latency update mechanism that provides updates less frequently than the low-latency update mechanism, applying the high-latency update mechanism includes transmitting a message to the second web client that directs the second web client to conduct a poll of the server periodically for updates;

wherein the computer-executable instructions provides an abstraction layer such that underlying code responsible for providing updated data to the first and second web clients is unaware of whether the respective first and second web clients are receiving data using the low latency update mechanism or the high latency update mechanism.

6. The at least one computer-readable storage medium of claim 5 , wherein each web client corresponds to a respective web browser instance.

7. The at least one computer-readable storage medium of claim 5 , wherein the computer-executable instructions further cause the at least one processor to:

receive an additional message from a third web client of the plurality of web clients, the additional message from the third web client indicating that the third web client currently has focus, the additional message being transmitted by the third web client with a third cookie that matches the first cookie and the second cookie; and

downgrade the first web client from the low-latency update mechanism to the high-latency update mechanism based on the additional message.

8. The at least one computer-readable storage medium of claim 7 , wherein the computer-executable instructions further cause the at least one processor to maintain the second web client in the high-latency update mechanism when the first web client is downgraded from the low-latency update mechanism to the high latency update mechanism.

9. A method for transmitting data, said method comprising:

receiving a message at a server from a first web client of a plurality of web client running on one or more remote terminal devices, the message indicating that the first client currently has focus, wherein the message is transmitted by the first client with a first cookie;

transmitting updates to the first web client using a low-latency update mechanism in response to receiving the message indicating that the first client has focus;

determining whether the first cookie matches a cookie received by one or more other web clients of the plurality of web clients;

in response to determining that a second cookie received from a second web client of the plurality of web clients matches the first cookie, determining whether the second web client is currently receiving data using the low-latency update mechanism; and

in response to determining that the second web client is currently receiving data from the host using the low-latency update mechanism, downgrading the second web client from the low-latency update mechanism to a high-latency update mechanism that provides updates less frequently than the low-latency update mechanism, wherein applying the high-latency update mechanism includes transmitting a message to the second web client that directs the second web client to conduct a poll of the server periodically for updates;

wherein the server provides an programming interface to underlying code such that the underlying code responsible for providing updated data to the first and second web clients is unaware of whether the respective first and second web clients are receiving data using the low latency update mechanism or the high latency update mechanism.

10. The method of claim 9 , wherein each web client corresponds to a respective web browser instance.

11. The method claim 9 , further comprising:

receiving an additional message from a third web client of the plurality of web clients, the additional message from the third web client indicating that the third web client currently has focus, the additional message being transmitted by the third web client with a third cookie that matches the first cookie and the second cookie; and

downgrading the first web client from the low-latency update mechanism to the high-latency update mechanism based on the additional message.

12. The method of claim 11 , further comprising maintaining the second web client in the high-latency update mechanism when the first web client is downgraded from the low-latency update mechanism to the high latency update mechanism.

13. The method of claim 9 , further comprising:

in response to determining that a fourth cookie received from a fourth web client of the plurality of web clients does not match the first cookie, the server computer does not change how updates are transmitted to the fourth web client.

14. The method of claim 13 , wherein the fourth web client is located on a different remote terminal than the first web client.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2013
From: CLARK, JONATHAN; FENG, JI
To: VMWARE, INC.
Reel/Frame 030638/0729 →