IP Library Granted Patent US 9,608,953
Granted Patent B1
US 9,608,953 · App. 15/196,597 · Granted Mar 28, 2017

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/25H04L67/2857
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,608,953
App. No.
15/196,597
Granted
Mar 28, 2017
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 (39)

1. A method comprising:

performing by one or more computers:

receiving at a client device a stream of messages, the stream of messages comprising a message feed rate;

determining a maximum download rate for a messaging application on the client device;

determining that the message feed rate is less than or equal to the maximum download rate and, in response, providing the stream of messages to the messaging application at the message feed rate; and

determining that the message feed rate is greater than the maximum download rate and, in response, providing the stream of messages to a buffer at the message feed rate, and providing the stream of messages from the buffer to the messaging application at a rate less than or equal to the maximum download rate.

2. The method of claim 1 , wherein the buffer resides on the client device.

3. The method of claim 1 , wherein the stream of messages corresponds to a single channel in a Pub Sub system.

4. The method of claim 1 , wherein the stream of messages corresponds to a plurality of channels in a Pub Sub system.

5. The method of claim 1 , wherein receiving the stream of messages at the client device comprises receiving messages from an MX node of a Pub Sub system.

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

7. The method of claim 1 , further comprising preserving an order of messages in the stream of messages.

8. The method of claim 1 , wherein determining that the message feed rate is greater than the maximum download rate comprises monitoring download capabilities of the messaging application and, based thereon, determining that the messaging application is unable to download the stream of messages at the message feed rate.

9. The method of claim 1 , wherein providing the stream of messages from the buffer to the messaging application comprises accumulating messages in the buffer.

10. The method of claim 1 , wherein providing the stream of message to the buffer comprises diverting the messages to the buffer.

11. The method of claim 1 , wherein the stream of messages comprises a flow of message data.

12. The method of claim 1 , wherein providing the stream of messages from the buffer to the messaging application comprises providing message data to the messaging application in an order in which the buffer received the message data.

13. A system comprising:

one or more computers programmed to perform operations comprising:

receiving at a client device a stream of messages, the stream of messages comprising a message feed rate;

determining a maximum download rate for a messaging application on the client device;

determining that the message feed rate is less than or equal to the maximum download rate and, in response, providing the stream of messages to the messaging application at the message feed rate; and

determining that the message feed rate is greater than the maximum download rate and, in response, providing the stream of messages to a buffer at the message feed rate, and providing the stream of messages from the buffer to the messaging application at a rate less than or equal to the maximum download rate.

14. The system of claim 13 , wherein the buffer resides on the client device.

15. The system of claim 13 , wherein the stream of messages corresponds to a single channel in a Pub Sub system.

16. The system of claim 13 , wherein the stream of messages corresponds to a plurality of channels in a Pub Sub system.

17. The system of claim 13 , wherein receiving the stream of messages at the client device comprises receiving messages from an MX node of a Pub Sub system.

18. The system of claim 13 , wherein the message feed rate corresponds to a rate at which messages are published in a Pub Sub system.

19. The system of claim 13 , the operations further comprising preserving an order of messages in the stream of messages.

20. The system of claim 13 , wherein determining that the message feed rate is greater than the maximum download rate comprises monitoring download capabilities of the messaging application and, based thereon, determining that the messaging application is unable to download the stream of messages at the message feed rate.

21. The system of claim 13 , wherein providing the stream of messages from the buffer to the messaging application comprises accumulating messages in the buffer.

22. The system of claim 13 , wherein providing the stream of message to the buffer comprises diverting the messages to the buffer.

23. The system of claim 13 , wherein the stream of messages comprises a flow of message data.

24. The system of claim 13 , wherein providing the stream of messages from the buffer to the messaging application comprises providing message data to the messaging application in an order in which the buffer received the message data.

25. A storage device having instructions stored thereon that when executed by one or more computers perform operations comprising:

receiving at a client device a stream of messages, the stream of messages comprising a message feed rate;

determining a maximum download rate for a messaging application on the client device;

determining that the message feed rate is less than or equal to the maximum download rate and, in response, providing the stream of messages to the messaging application at the message feed rate; and

determining that the message feed rate is greater than the maximum download rate and, in response, providing the stream of messages to a buffer at the message feed rate, and providing the stream of messages from the buffer to the messaging application at a rate less than or equal to the maximum 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 Aug 2, 2016
From: KUSHNIR, ANDREY; TEREKHIN, MAKSIM; MOSENKOV, LEONID
To: MACHINE ZONE, INC.
Reel/Frame 039317/0211 →
Continuity (1)
Continuation 14885034 · Oct 16, 2015