IP Library Granted Patent US 10,942,792
Granted Patent B2
US 10,942,792 · App. 15/765,486 · Granted Mar 9, 2021

Event driven subscription matching

Inventor: Philip Allan George Aston (Maidenhead, GB)
Assignee: PUSH TECHNOLOGY LIMITED
G06F9/542G06F9/44G06Q10/107H04L67/26H04L67/42
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 10,942,792
App. No.
15/765,486
Granted
Mar 9, 2021
Kind
B2
Abstract

A data distribution system server uses an event-driven matching approach for matching subscription requests with topics on the data distribution system server. Threads from multiple client session are received and assigned to a multiplexer for processing. Each multiplexer determines a topic value and status information for multiple subscriptions to a topic corresponding to the topic value. The multiplexer identifies subscriptions added to one of the client sessions, receives a topic update for the topic, and broadcasts the topic update to the added subscriptions.

Claims (48)

1. A method comprising:

receiving one or more threads, each thread comprising a plurality of received messages from a subset including two or more client sessions of a plurality of client sessions, and the plurality of received messages in each thread describing topic values and subscription information for the subset of client sessions in the thread;

assigning a unique multiplexer of a plurality of multiplexors to process each thread, each multiplexer processing the plurality of received messages from the subset of client sessions in the thread to which it is assigned;

routing received messages to their assigned multiplexor of the plurality of multiplexors according to previously resolved topic subscriptions of client sessions in the thread assigned to each multiplexor; and

for each multiplexer of the plurality of multiplexors, processing received messages in its assigned thread independently from other multiplexors in the plurality of multiplexors by:

determining, from the received messages included in the thread, a topic value and subscription information for a plurality of subscriptions to a topic corresponding to the topic value,

identifying, at the multiplexor, using the subscription, information determined from the received messages, one or more new subscriptions matching the topic from the plurality of subscriptions, the one or more new subscriptions added to one or more client sessions in the subset of client sessions,

receiving a topic update for the topic, and

broadcasting the topic update to the one or more client sessions adding the new subscriptions matching the topic.

2. The method of claim 1 , wherein the subscription information for the plurality of subscriptions specifies which client sessions of the subset of client sessions are subscribed to the topic.

3. The method of claim 1 , further comprising assigning each multiplexor to a unique processor of a plurality of processors, wherein each multiplexor processes its assigned thread using its assigned processor.

4. The method of claim 1 , wherein each multiplexer stores information about subscriptions for the subset of client sessions in its assigned thread that match the topic.

5. The method of claim 1 , wherein each multiplexer stores information about the topic for the subset of client sessions, assigned to the multiplexer.

6. The method of claim 1 , wherein each multiplexer stores information about topic values corresponding to the one or more new subscriptions added to the one or more client sessions assigned to the multiplexer.

7. The method of claim 1 , wherein the topic values represent a current state of data related to the corresponding topic.

8. The method of claim 1 , wherein the topic values represent a change in a current state of data related to the corresponding topic.

9. A computer program product comprising a non-transitory computer-readable storage medium having encoded thereon:

instructions that when executed by a processor, cause the processor to:

receive one or more threads, each thread comprising a plurality of received messages from a subset including two or more client sessions of a plurality of client sessions, and the plurality of received messages in each thread describing topic values and subscription information for the subset of client sessions in the thread;

assign a unique multiplexer of a plurality of multiplexors to process each thread, each multiplexer processing the plurality of received messages from the subset of client sessions in the thread to which it is assigned;

route received messages to their assigned multiplexor of the plurality of multiplexors according to previously resolved topic subscriptions for the subset of client sessions in the thread assigned to each multiplexor; and

for each multiplexer of the plurality of multiplexors, process received messages in its assigned thread independently from other multiplexors in the plurality of multiplexors by executing instructions that farther causing the processor to:

determine, from the received messages included in the thread, a topic value and subscription information for a plurality of subscriptions to a topic corresponding to the topic value,

identify, at the multiplexor, using the subscription information determined from the received messages, one or more new subscriptions matching the topic from the plurality of subscriptions, the one or more new subscriptions added to one or more client sessions in the subset of client sessions, receive a topic update for the topic, and

broadcast the topic update to the one or more client sessions adding the new subscriptions matching the topic.

10. The computer program product of claim 9 , wherein the subscription information for the plurality of subscriptions specifies which client sessions of the subset of client sessions are subscribed to the topic.

11. The computer program product of claim 9 wherein the instructions, when executed, further cause the processor to assign each multiplexor to a unique processor of a plurality of processors, wherein each multiplexor processes its assigned thread using its assigned processor.

12. The computer program product of claim 9 , wherein each multiplexer stores information about subscriptions for the subset of client sessions in its assigned thread that match the topic.

13. The computer program product of claim 9 , wherein each multiplexer stores information about the topic for the subset of client sessions assigned to the multiplexer.

14. The computer program product of claim 9 , wherein each multiplexer stores information about topic values corresponding to the one or more new subscriptions added to the one or more client sessions assigned to the multiplexer.

15. The computer program product of claim 9 , wherein the topic values represent a current state of data, related to the corresponding topic.

16. The computer program product of claim 9 , wherein the topic values represent a change in a current state of data related to the corresponding topic.

17. A system comprising:

a computer processor for executing computer program instructions; and

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

receiving one or more threads, each thread comprising a plurality of received messages from a subset including two or more client sessions of a plurality of client sessions, and the plurality of received messages in each thread describing topic values and subscription information for the subset of client sessions in the thread,

assigning a unique multiplexer of a plurality of multiplexors to process each thread, each multiplexer processing the plurality of received messages from the subset of client sessions in the thread to which it is assigned,

routing received messages to their assigned multiplexor of the plurality of multiplexors according to previously resolved topic subscriptions for the subset of client sessions in the thread assigned to each multiplexor; and

for each multiplexer of the plurality of multiplexors, processing received messages in its assigned thread independently from other multiplexors in the plurality of multiplexors by:

determining, from the received messages included in the thread, a topic value and subscription information for a plurality of subscriptions to a topic corresponding to the topic value,

identifying, at the multiplexor, using the subscription information determined from the received messages, one or more new subscriptions matching the topic from the plurality of subscriptions, the one or more new subscriptions added to one or more client sessions in the subset of client sessions,

receiving a topic update for the topic, and

broadcasting the topic update to the one or more client sessions adding the new subscriptions matching the topic.

18. The system of claim 17 , wherein the subscription information for the plurality of subscriptions specifies which client sessions of the subset of client sessions are subscribed to the topic.

19. The system of claim 17 , further comprising, assigning each multiplexor to a processor of a plurality of processors, wherein each multiplexor processes its assigned thread using its assigned processor.

20. The system of claim 17 , wherein each multiplexer stores information about subscriptions for the subset of client sessions in its assigned thread that match the topic.

21. The method of claim 1 , further comprising:

responsive to adding the one or more new subscriptions matching the topic to one or more client session in the subset of client sessions, routing received messages corresponding to the one or more new subscriptions to the multiplexor assigned to process the subset of client sessions newly subscribing to 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 Jul 5, 2018
From: ASTON, PHILIP ALLAN GEORGE
To: PUSH TECHNOLOGY LIMITED
Reel/Frame 046274/0388 →
Continuity (2)
Provisional Application 62242208 · Oct 15, 2015
Related Publication 20180307546A1 · Oct 25, 2018