IP Library Granted Patent US 11,568,144
Granted Patent B2
US 11,568,144 · App. 17/083,628 · Granted Jan 31, 2023

Calculating structural differences from binary differences in publish subscribe system

Inventor: Philip Allan George Aston (Maidenhead, GB)
Assignee: Push Technology Limited
G06F40/284G06F40/169G06Q10/107H04L12/185H04L12/1859H04L51/00H04L51/216H04L67/55H04L12/1804
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 11,568,144
App. No.
17/083,628
Granted
Jan 31, 2023
Kind
B2
Abstract

A method for more efficient structural parsing of binary representations of text based objects within a data distribution system. Clients subscribe to a topic maintained by the data distribution system server that publishers can publish to. Clients receive an original binary representation of a text based object describing the state of the topic to which the client is subscribed. In response to the state of the topic changing at the data distribution system server, clients receive a binary delta representing the change of the state of the topic. Based on the received binary representation and the binary delta, clients calculate an updated binary representation of the text based object. Using the original binary representation, the updated binary representation, and the binary delta, the client generates a structural delta representing the structural differences between data structures of the original text based object and data structures of the updated text based object.

Claims (68)

1. A method for publishing topic updates to a client device, the method comprising:

maintaining, at a data distribution system server, a data structure describing a plurality of topics to which a client can subscribe and a publisher can publish;

transmitting, to the client from the data distribution system server, a first binary representation of a data object describing a topic value of a topic of the plurality of topics to which the client is subscribed; and

responsive to receiving a changed topic value of the topic within the data structure from the publisher at the data distribution server, publishing a binary delta to the client that represents a difference between the first binary representation and a second binary representation of a second data object describing the changed topic value of the topic,

wherein the client is adapted to:

receive the published binary delta,

calculate the second binary representation from the binary delta and the first binary representation,

generate a structural delta from the first binary representation, the second binary representation, and the binary delta, the structural delta representing a structural difference between data structures of the first text-based object and data structures of the second text-based object, and

determine the changed topic value of the topic from the structural delta.

2. The method of claim 1 , further comprising:

receiving, at the data distribution system server from the client, a subscription to the topic of the plurality of topics; and

updating the data structure describing the plurality of topics responsive to the received subscription.

3. The method of claim 2 , wherein transmitting the first binary representation of the first data object describing the topic value to the client is in response to receiving the subscription to the topic from the client.

4. The method of claim 1 , further comprising:

responsive to receiving the changed topic value of the topic from the publisher at the data distribution server, calculating the binary delta between the changed topic value of the topic and the topic value of the topic.

5. The method of claim 1 , wherein the data structure maintained by the data distribution server comprises a topic tree maintaining topic values for each of the plurality of topics as binary representations, and the method further comprises:

updating the topic value of the topic in the topic tree to the changed topic value using the binary delta.

6. The method of claim 1 , wherein maintaining the data structure describing a plurality of topics to which the client can subscribe and the publisher can publish further comprises:

storing information detailing a most recent binary delta transmitted to the client; and

storing a most recent binary representation of the topic value of the topic transmitted to the client.

7. The method of claim 6 , wherein a subsequent binary delta published to the client is based on the most recent binary delta and the most recent binary representation of the topic value of the topic transmitted to the client.

8. The method of claim 1 , further comprising:

receiving, at the data distribution system server from the client, an unsubscription request to the topic of the plurality of topics; and

wherein responsive to receiving an additional changed topic value of the topic from the publisher at the data distribution server, the data distribution system does not publish a new binary delta to the client that represents a difference between the additional changed topic value of the topic and the changed topic value of the topic.

9. A non-transitory computer-readable storage medium storing computer program instructions for publishing topic updates to a client device, the computer program instructions executable by a computer processor to perform operations comprising:

maintaining, at a data distribution system server, a data structure describing a plurality of topics to which a client can subscribe and a publisher can publish;

transmitting, to the client from the data distribution system server, a first binary representation of a data object describing a topic value of a topic of the plurality of topics to which the client is subscribed; and

responsive to receiving a changed topic value of the topic within the data structure from the publisher at the data distribution server, publishing a binary delta to the client that represents a difference between the first binary representation and a second binary representation of a second data object describing the changed topic value of the topic,

wherein the client is adapted to:

receive the published binary delta,

calculate the second binary representation from the binary delta and the first binary representation,

generate a structural delta from the first binary representation, the second binary representation, and the binary delta, the structural delta representing a structural difference between data structures of the first text-based object and data structures of the second text-based object, and

determine the changed topic value of the topic from the structural delta.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the instructions are executable to perform further operations comprising:

receiving, at the data distribution system server from the client, a subscription to the topic of the plurality of topics; and

updating the data structure describing the plurality of topics responsive to the received subscription.

11. The non-transitory computer-readable storage medium of claim 9 , wherein transmitting the first binary representation of the first data object describing the topic value to the client is in response to receiving the subscription to the topic from the client.

12. The non-transitory computer-readable storage medium of claim 9 , wherein the instructions are executable to perform further operations comprising:

responsive to receiving the changed topic value of the topic from the publisher at the data distribution server, calculating the binary delta between the changed topic value of the topic and the topic value of the topic.

13. The non-transitory computer-readable storage medium of claim 9 , wherein the data structure maintained by the data distribution server comprises a topic tree maintaining topic values for each of the plurality of topics as binary representations, and the instructions are executable to perform further operations comprising:

updating the topic value of the topic in the topic tree to the changed topic value using the binary delta.

14. The non-transitory computer-readable storage medium of claim 9 , wherein maintaining the data structure describing a plurality of topics to which the client can subscribe and the publisher can publish further comprises:

storing information detailing a most recent binary delta transmitted to the client; and

storing a most recent binary representation of the topic value of the topic transmitted to the client.

15. The non-transitory computer-readable storage medium of claim 14 , wherein a subsequent binary delta published to the client is based on the most recent binary delta and the most recent binary representation of the topic value of the topic transmitted to the client.

16. The non-transitory computer-readable storage medium of claim 9 , wherein the instructions are executable to perform further operations comprising:

receiving, at the data distribution system server from the client, an unsubscription request to the topic of the plurality of topics; and

wherein responsive to receiving an additional changed topic value of the topic from the publisher at the data distribution server, the data distribution system does not publish a new binary delta to the client that represents a difference between the additional changed topic value of the topic and the changed topic value of the topic.

17. A system for publishing topic updates to a client device, the system comprising:

a publisher configured to publish topic updates;

a client configured to subscribe to topic updates; and

a data distribution server comprising:

a computer processor; and

non-transitory computer-readable storage medium storing computer program instructions, the computer program instructions executable by a computer processor to perform operations comprising:

maintaining, at the data distribution system server, a data structure describing a plurality of topics to which a client can subscribe and a publisher can publish;

transmitting, to the client from the data distribution system server, a first binary representation of a data object describing a topic value of a topic of the plurality of topics to which the client is subscribed; and

responsive to receiving a changed topic value of the topic within the data structure from the publisher at the data distribution server, publishing a binary delta to the client that represents a difference between the first binary representation and a second binary representation of a second data object describing the changed topic value of the topic; and

wherein the client is adapted to:

receive the published binary delta,

calculate the second binary representation from the binary delta and the first binary representation,

generate a structural delta from the first binary representation, the second binary representation, and the binary delta, the structural delta representing a structural difference between data structures of the first text-based object and data structures of the second text-based object, and

determine the changed topic value of the topic from the structural delta.

18. The system of claim 17 , wherein the instructions are executable to perform further operations comprising:

receiving, at the data distribution system server from the client, a subscription to the topic of the plurality of topics; and

updating the data structure describing the plurality of topics responsive to the received subscription.

19. The system of claim 17 , wherein transmitting the first binary representation of the first data object describing the topic value to the client is in response to receiving the subscription to the topic from the client.

20. The system of claim 17 , wherein the instructions are executable to perform further operations comprising:

responsive to receiving the changed topic value of the topic from the publisher at the data distribution server, calculating the binary delta between the changed topic value of the topic and the topic value of the topic.

Assignments (2)
CHANGE OF NAME Recorded Sep 12, 2023
From: PUSH TECHNOLOGY LIMITED
To: DIFFUSIONDATA LIMITED
Reel/Frame 064875/0050 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2021
From: ASTON, PHILIP ALLAN GEORGE
To: PUSH TECHNOLOGY LIMITED
Reel/Frame 057402/0989 →
Continuity (4)
Continuation 16087999
Provisional Application 62315170 · Mar 30, 2016
Provisional Application 62314642 · Mar 29, 2016
Related Publication 20210049325A1 · Feb 18, 2021