IP Library Granted Patent US 11,144,613
Granted Patent B2
US 11,144,613 · App. 15/720,715 · Granted Oct 12, 2021

Platform-independent publish-subscribe

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,144,613
App. No.
15/720,715
Granted
Oct 12, 2021
Kind
B2
Abstract

A system and method connects multiple diverse publish-subscribe systems and a platform-independent interface that exchanges messages between publishers and subscribers. The system and method connects a software application and the platform-independent interface and exchanges multiple messages between two or more diverse publish-subscribe systems and the software application. The two or more diverse publish-subscribe systems run concurrently.

Claims (64)

1. A method, comprising:

connecting a plurality of independent and diverse publish-subscribe messaging service systems and a platform-independent interface that is configured to exchange messages between publishers and subscribers via the plurality of diverse publish-subscribe messaging service systems, the platform-independent interface integrating a session layer, a presentation layer, and an application layer;

connecting a software application and the platform-independent interface, wherein the software application comprises a client of the platform-independent interface and the platform-independent interface is configured to encapsulate the plurality of diverse publish-subscribe messaging service systems from the software application and the publishers and subscribers;

exchanging, through the platform-independent interface, a plurality of messages between two or more of the diverse publish-subscribe messaging service systems and the software application, the exchanging including:

translating by the presentation layer messages from the software application into different formats of the respective two or more of the diverse publish-subscribe messaging service systems;

translating by the presentation layer messages from the two or more of the diverse publish-subscribe messaging service systems into a format of the software application;

receiving by the software application requests for data from the subscribers of the two or more of the diverse publish-subscribe messaging service systems; and

in response to receiving by the software application requests from the subscribers, dispatching by the software application the requested data to the subscribers of the two or more diverse publish-subscribe messaging service systems;

controlling by the session layer connections between the software application and the two or more of the diverse publish-subscribe messaging service systems; and

assigning, by the platform-independent interface, an affinity status to one or more of the plurality of diverse publish-subscribe messaging service systems in response to a prior publish-subscribe message exchange with the software application;

wherein the two or more publish-subscribe messaging service systems run concurrently.

2. The method of claim 1 , wherein the software application executes a plurality of threads.

3. The method of claim 1 , wherein the software application is included in a multimedia system.

4. The method of claim 1 , wherein the software application is included in a vehicle and the software application controls the vehicle's operation.

5. The method of claim 1 , wherein the application layer assigns the affinity status.

6. The method of claim 1 , wherein the affinity status is assigned during an initialization of the platform-independent interface.

7. The method of claim 1 , wherein the platform-independent interface manages topics, publications, and namespaces remote from the plurality of diverse publish-subscribe messaging service systems.

8. The method of claim 1 , wherein the platform-independent interface comprises a publish-subscribe stub.

9. The method of claim 1 , wherein a processor accessing a memory executes the connections and the exchange of a plurality of messages.

10. A publish-subscribe system, comprising:

a processor configured to:

connect a plurality of independent and diverse publish-subscribe messaging service systems and a platform-independent interface that is configured to exchange messages between publishers and subscribers via the plurality of diverse publish-subscribe messaging service systems, the platform-independent interface integrating a session layer, a presentation layer, and an application layer;

connect a software application and the platform-independent interface, wherein the software application comprises a client of the platform-independent interface and the platform-independent interface is configured to encapsulate the plurality of diverse publish-subscribe messaging service systems from the software application and the publishers and subscribers;

exchange, through the platform-independent interface, a plurality of messages between two or more of the diverse publish-subscribe messaging service systems and the software application, wherein the exchange includes configuring the processor to:

translate by the presentation layer messages from the software application into different formats of the respective two or more of the diverse publish-subscribe messaging service systems;

translate by the presentation layer messages from the two or more of the diverse publish-subscribe messaging service systems into a format of the software application;

receive by the software application requests for data from the subscribers of the two or more of the diverse publish-subscribe messaging service systems; and

in response to receiving by the software application requests from the subscribers, dispatch by the software application the requested data to the subscribers of the two or more diverse publish-subscribe messaging service systems;

control by the session layer connections between the software application and the two or more of the diverse publish-subscribe messaging service systems; and

assign, by the platform-independent interface, an affinity status to one or more of the plurality of diverse publish-subscribe messaging service systems in response to a prior publish-subscribe message exchange with the software application;

wherein the two or more publish-subscribe messaging service systems run concurrently.

11. The system of claim 10 , wherein the software application executes a plurality of threads.

12. The system of claim 10 , wherein the software application is included in a multimedia system.

13. The system of claim 10 , wherein the software application is included in a vehicle and the software application controls the vehicle's operation.

14. The system of claim 10 , wherein the application layer assigns the affinity status.

15. The system of claim 10 , wherein the affinity status is assigned during an initialization of the platform-independent interface.

16. The system of claim 10 , wherein the platform-independent interface manages topics, publications, and namespaces remote from the plurality of diverse publish-subscribe messaging service systems.

17. The system of claim 10 , wherein the platform-independent interface comprises a publish-subscribe stub.

18. The system of claim 10 , wherein the processor accessing a memory executes the connections and the exchange of a plurality of messages.

19. A non-transitory machine-readable medium encoded with processor-executable instructions, wherein the processor-executable instructions, when executed by the processor, are to cause the processor to:

connect a plurality of independent and diverse publish-subscribe messaging service systems and a platform-independent interface that is configured to exchange messages between publishers and subscribers via the plurality of diverse publish-subscribe messaging service systems, the platform-independent interface integrating a session layer, a presentation layer, and an application layer;

connect a software application and the platform-independent interface, wherein the software application comprises a client of the platform-independent interface and the platform-independent interface is configured to encapsulate the plurality of diverse publish-subscribe messaging service systems from the software application and the publishers and subscribers;

exchange, through the platform-independent interface, a plurality of messages between two or more of the diverse publish-subscribe messaging service systems and the software application, the exchange including causing the processor to:

translate by the presentation layer messages from the software application into different formats of the respective two or more of the diverse publish-subscribe messaging service systems;

translate by the presentation layer messages from the two or more of the diverse publish-subscribe messaging service systems into a format of the software application;

receive by the software application requests for data from the subscribers of the two or more of the diverse publish-subscribe messaging service systems; and

in response to receiving by the software application requests from the subscribers, dispatch by the software application the requested data to the subscribers of the two or more diverse publish-subscribe messaging service systems;

control by the session layer connections between the software application and the two or more of the diverse publish-subscribe messaging service systems; and

assign, by the platform-independent interface, an affinity status to one or more of the plurality of diverse publish-subscribe messaging service systems in response to a prior publish-subscribe message exchange with the software application;

wherein the two or more publish-subscribe messaging service systems run concurrently.

20. The method of claim 1 , wherein at least one of the exchanged messages is sent by the software application and includes a unique identifier of a recipient end-point for use by an end-point to filter data samples.

21. The system of claim 10 , wherein at least one of the exchanged messages is sent by the software application and includes a unique identifier of a recipient end-point for use by an end-point to filter data samples.

22. The method of claim 1 , wherein the affinity status includes a preference that causes the platform independent interface to route future publish-subscribe requests to the one or more of the plurality of diverse publish-subscribe messaging service systems.

23. The system of claim 10 , wherein the affinity status includes a preference that causes the platform independent interface to route future publish-subscribe requests to the one or more of the plurality of diverse publish-subscribe messaging service systems.

24. The method of claim 1 , further comprising:

registering one or more of the plurality of diverse publish-subscribe messaging service systems with the platform independent interface;

receiving, through the platform-independent interface, a request for a list of registered publish-subscribe messaging service systems; and

in response to the request, providing the list of registered publish-subscribe messaging service systems.

25. The system of claim 10 , the processor further configured to:

register one or more of the plurality of diverse publish-subscribe messaging service systems with the platform independent interface;

receive, through the platform-independent interface, a request for a list of registered publish-subscribe messaging service systems; and

in response to the request, provide the list of registered publish-subscribe messaging service systems.

26. The method of claim 1 , wherein assigning, by the platform-independent interface, the affinity status includes assigning, by the application layer of the platform-independent interface, the affinity status.

27. The method of claim 1 , wherein the format of the messages from the software application is different from the different formats of the messages from the respective two or more diverse publish-subscribe messaging service systems.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2019
From: QNX SOFTWARE SYSTEMS LIMITED
To: 2236008 ONTARIO INC.
Reel/Frame 048571/0321 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2017
From: PERRON, MARC; FRY, DARRIN KENNETH JOHN
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 043805/0546 →