IP Library Granted Patent US 9,397,973
Granted Patent B1
US 9,397,973 · App. 14/885,034 · Granted Jul 19, 2016

Systems and methods for transferring message data

Inventors: Andrey Kushnir (Sunnyvale, CA); Maksim Terekhin (Ulyanovsk, RU); Leonid Mosenkov (Ulyanovsk, RU)
Assignee: Machine Zone, Inc.
H04L51/14G06Q10/107H04L47/25
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,397,973
App. No.
14/885,034
Granted
Jul 19, 2016
Kind
B1
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, are described for providing messages to client devices. In certain examples, a stream of messages is provided to a messaging application on a client device at a desired message feed rate. A message download rate of the stream of messages by the messaging application is monitored. A determination is made that the message download rate is less than the desired message feed rate. In response, the stream of messages is provided to a buffer on the client device at the desired message feed rate, and the stream of messages is sent from the buffer to the messaging application at the message download rate. A determination is made that the message download rate is greater than the desired message feed rate and, in response, a stored quantity of messages on the buffer is allowed to decrease. A determination is made that the stored quantity of messages on the buffer is zero and, in response, the stream of messages is provided to the messaging application at the desired message feed rate.

Claims (57)

1. A method comprising:

performing by one or more computers:

receiving at a client device a stream of messages from a sender;

providing the stream of messages to a messaging application on the client device at a desired message feed rate associated with the sender;

monitoring a message download rate of the stream of messages by the messaging application;

determining that the message download rate is less than the desired message feed rate and, in response,

providing the stream of messages to a buffer on the client device at the desired message feed rate, and

sending the stream of messages from the buffer to the messaging application at the message download rate;

determining that the message download rate is greater than the desired message feed rate and, in response, allowing a stored quantity of messages on the buffer to decrease; and

determining that the stored quantity of messages on the buffer is zero and, in response, providing the stream of messages to the messaging application at the desired message feed rate.

2. The method of claim 1 , wherein the stream of messages corresponds to a single channel in a PubSub system.

3. The method of claim 1 , wherein the stream of messages corresponds to a plurality of channels in a PubSub system.

4. The method of claim 3 , wherein the buffer comprises a plurality of buffers, each buffer corresponding to one channel in the plurality of channels.

5. The method of claim 1 , wherein the sender comprises an MX node in a PubSub system.

6. The method of claim 1 , wherein the desired message feed rate corresponds to a rate at which messages are published in a PubSub system.

7. The method of claim 1 , wherein the download rate corresponds to a maximum rate at which the messaging application is able to download messages.

8. The method of claim 1 , wherein sending the stream of messages from the buffer to the client device comprises sending messages in an order in which the messages were received by the buffer.

9. The method of claim 1 , wherein the stored quantity of messages on the buffer increases when the desired message feed rate is greater than the message download rate.

10. The method of claim 1 , wherein the stored quantity of messages on the buffer decreases when the desired message feed rate is less than the message download rate.

11. A system comprising:

a non-transitory computer readable medium having instructions stored thereon; and

a data processing apparatus configured to execute the instructions to perform operations comprising:

receiving at a client device a stream of messages from a sender;

providing the stream of messages to a messaging application on the client device at a desired message feed rate associated with the sender;

monitoring a message download rate of the stream of messages by the messaging application;

determining that the message download rate is less than the desired message feed rate and, in response,

providing the stream of messages to a buffer on the client device at the desired message feed rate, and

sending the stream of messages from the buffer to the messaging application at the message download rate;

determining that the message download rate is greater than the desired message feed rate and, in response, allowing a stored quantity of messages on the buffer to decrease; and

determining that the stored quantity of messages on the buffer is zero and, in response, providing the stream of messages to the messaging application at the desired message feed rate.

12. The system of claim 11 , wherein the stream of messages corresponds to a single channel in a PubSub system.

13. The system of claim 11 , wherein the stream of messages corresponds to a plurality of channels in a PubSub system.

14. The system of claim 13 , wherein the buffer comprises a plurality of buffers, each buffer corresponding to one channel in the plurality of channels.

15. The system of claim 11 , wherein the sender comprises an MX node in a PubSub system.

16. The system of claim 11 , wherein the desired message feed rate corresponds to a rate at which messages are published in a PubSub system.

17. The system of claim 11 , wherein the download rate corresponds to a maximum rate at which the messaging application is able to download messages.

18. The system of claim 11 , wherein sending the stream of messages from the buffer to the client device comprises sending messages in an order in which the messages were received by the buffer.

19. The system of claim 11 , wherein the stored quantity of messages on the buffer increases when the desired message feed rate is greater than the message download rate.

20. The system of claim 11 , wherein the stored quantity of messages on the buffer decreases when the desired message feed rate is less than the message download rate.

21. A computer program product stored in one or more non-transitory storage media for controlling a processing mode of a data processing apparatus, the computer program product being executable by the data processing apparatus to cause the data processing apparatus to perform operations comprising:

receiving at a client device a stream of messages from a sender;

providing the stream of messages to a messaging application on the client device at a desired message feed rate associated with the sender;

monitoring a message download rate of the stream of messages by the messaging application;

determining that the message download rate is less than the desired message feed rate and, in response,

providing the stream of messages to a buffer on the client device at the desired message feed rate, and

sending the stream of messages from the buffer to the messaging application at the message download rate;

determining that the message download rate is greater than the desired message feed rate and, in response, allowing a stored quantity of messages on the buffer to decrease; and

determining that the stored quantity of messages on the buffer is zero and, in response, providing the stream of messages to the messaging application at the desired message feed rate.

22. The computer program product of claim 21 , wherein the stream of messages corresponds to a single channel in a PubSub system.

23. The computer program product of claim 21 , wherein the stream of messages corresponds to a plurality of channels in a PubSub system.

24. The computer program product of claim 23 , wherein the buffer comprises a plurality of buffers, each buffer corresponding to one channel in the plurality of channels.

25. The computer program product of claim 21 , wherein the sender comprises an MX node in a PubSub system.

26. The computer program product of claim 21 , wherein the desired message feed rate corresponds to a rate at which messages are published in a PubSub system.

27. The computer program product of claim 21 , wherein the download rate corresponds to a maximum rate at which the messaging application is able to download messages.

28. The computer program product of claim 21 , wherein sending the stream of messages from the buffer to the client device comprises sending messages in an order in which the messages were received by the buffer.

29. The computer program product of claim 21 , wherein the stored quantity of messages on the buffer increases when the desired message feed rate is greater than the message download rate.

30. The computer program product of claim 21 , wherein the stored quantity of messages on the buffer decreases when the desired message feed rate is less than the message download rate.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 19, 2020
From: COMERICA BANK
To: SATORI WORLDWIDE, LLC
Reel/Frame 052707/0769 →
RELEASE OF SECURITY INTEREST Recorded May 19, 2020
From: MGG INVESTMENT GROUP LP, AS COLLATERAL AGENT
To: MACHINE ZONE, INC.; SATORI WORLDWIDE, LLC; COGNANT LLC
Reel/Frame 052706/0917 →
SECURITY INTEREST Recorded May 22, 2018
From: SATORI WORLDWIDE, LLC
To: COMERICA BANK
Reel/Frame 046215/0159 →
NOTICE OF SECURITY INTEREST -- PATENTS Recorded Feb 2, 2018
From: MACHINE ZONE, INC.; SATORI WORLDWIDE, LLC; COGNANT LLC
To: MGG INVESTMENT GROUP LP, AS COLLATERAL AGENT
Reel/Frame 045237/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2017
From: MACHINE ZONE, INC.
To: SATORI WORLDWIDE, LLC
Reel/Frame 044428/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: KUSHNIR, ANDREY; TEREKHIN, MAKSIM; MOSENKOV, LEONID
To: MACHINE ZONE, INC.
Reel/Frame 038764/0283 →