IP Library Granted Patent US 10,135,938
Granted Patent B2
US 10,135,938 · App. 14/687,727 · Granted Nov 20, 2018

Publish-subscribe system

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,135,938
App. No.
14/687,727
Granted
Nov 20, 2018
Kind
B2
Abstract

A publish-subscribe system publishes events associated with one or more objects represented by files within a file system. The files may be accessed using a file system application programming interface by both publishers and subscribers. Each file may contain an identifier and a plurality of attributes and each attribute may have a name and a value. The files and the associated objects may be persisted to compensate for restarts and failures of a computing platform hosting the system for publish-subscribe.

Claims (65)

1. A system comprising:

a distributed computer architecture configured to service publish-subscribe events through file system commands, the distributed computer architecture including:

a processor configured to invoke a first file open function in a file system application programming interface in response to a publisher application that causes the processor to prepare to publish one or more attributes of an object associated with a publish-subscribe file;

the processor configured to invoke a file write function in the file system application programming interface that causes the processor to write or delete the one or more attributes of the object associated with the publish-subscribe file in response to data elements that accompany the file write function;

the processor configured to invoke a second file open function in the file system application program interface in response to a subscriber application that causes the processor to establish a subscription to the publish-subscribe file identified by the subscriber application;

the processor configured to invoke a notification to the subscriber application in response to the invocation of the file write function executed by the file system; and

the processor configured to, in response to the notification to the subscriber application that includes an identifier of the publish-subscribe file, invoke a file read function in the file system application programming interface that causes the processor to publish the one or more attributes of the object associated with the publish-subscribe file that changed since a prior invocation of the file read function.

2. The system of claim 1 , where the processor is configured to create a publish-subscribe file associated with the object when the first file open function is invoked and the publish-subscribe file does not exist.

3. The system of claim 1 , where the processor is configured to open, in a write-mode, the publish-subscribe file associated with the object when the first file open function is invoked.

4. The system of claim 1 , where the processor is configured to open, in a read-mode, the publish-subscribe file associated with the object when the second file open function is invoked.

5. The system of claim 1 , where the processor is programmed to execute the file read function as a non-blocking event and returns from the file read function when no events associated with the object have been published since the prior invocation of the file read function.

6. The system of claim 1 , where the processor is programmed to execute the read function as a blocking event and defers returning from the file read function when no events associated with the object have been published since a prior invocation of the file read function, until at least one event associated with the object is published.

7. The system of claim 1 , where the file system application programming interface comprises a POSIX compliant interface.

8. The system of claim 1 where:

the processor is configured to invoke a third file open function in a file system application programming interface in response to a second publisher application that causes the processor to prepare to publish a second object associated with a second publish-subscribe file named by the second publisher application; and

the processor configured to invoke a further file write function in the file system application programming interface that causes the processor to write or delete one or more attributes of the second object associated with the second publish-subscribe file in response to data elements that accompany the further file write invocation.

9. The system of claim 8 , further comprising:

the processor configured to invoke a fourth file open function in the file system application program interface in response to a second subscriber application that the causes the processor to establish a second subscription to the second publish-subscribe file identified by the subscriber application;

the processor configured to invoke a second notification to the second subscriber application in response to the invocation of the fourth file write function executed by the file system; and

the processor configured to, in response to the second notification to the second subscriber application that includes an identifier of the second publish-subscribe file, invoke a second file read function in the file system application programming interface that causes the processor to publish the one or more attributes of the second object associated with the second publish-subscribe file that changed since a prior invocation of the file read function.

10. The system of claim 1 , where the one or more attributes of the object associated with the publish-subscribe file comprises a quality parameter.

11. The system of claim 10 where the one or more attributes is written or deleted only when the quality parameter is equal to or greater than a prior quality parameter.

12. A system comprising:

a computer architecture configured to provide publish-subscribe functionality through file system commands, the computer architecture including:

a processor configured to invoke a first file open function in a file system in response to a publisher application that causes the processor to prepare to publish one or more attributes of an object associated with a publish-subscribe file;

the processor configured to invoke a file write function in the file system that causes the processor to write or delete the one or more attributes of the object associated with the publish-subscribe file in response to data elements that accompany the file write invocation;

the processor configured to invoke a second file open function in the file system in response to a subscriber application that causes the processor to establish a subscription to the publish-subscribe file identified by the subscriber application;

the processor configured to invoke a notification to the subscriber application in response to the invocation of the file write function executed by the file system; and

the processor configured to, in response to the notification to the subscriber application that includes an identifier of the publish-subscribe file, invoke a file read function in the file system that causes the processor to publish the one or more attributes of the object associated with the publish-subscribe file that changed since a prior invocation of the file read function.

13. The system of claim 12 , where the processor is configured to create a publish-subscribe file associated with the object when the first file open function is invoked and the publish-subscribe file does not exist.

14. The system of claim 12 , where the processor is configured to open, in a write-mode, a publish-subscribe file associated with the object when the first file open function is invoked.

15. The system of claim 12 , where the processor is configured to open, in a read-mode, a publish-subscribe file associated with the object when the second file open function is invoked.

16. The system of claim 12 , where the processor is programmed to execute the file read function as a non-blocking event and returns from the file read function when no events associated with the object have been published since the prior invocation of the file read function.

17. The system of claim 12 , where the processor is programmed to execute the read function as a blocking event and defers returning from the file read function, when no events associated with the object have been published since a prior invocation of the file read function, until at least one event associated with the object is published.

18. The system of claim 12 , where the file system application programming interface comprises a POSIX compliant interface.

19. The system of claim 12 where:

the processor is configured to invoke a third file open function in a file system in response to a second publisher application that causes the processor to prepare to publish an object associated with a second publish-subscribe file identified by the second publisher application; and

the processor configured to invoke a further file write function in the file system that causes the processor to write or delete one or more attributes of a second object associated with the second publish-subscribe file in response to data elements that accompany the further file write invocation.

20. The system of claim 19 , further comprising:

the processor configured to invoke a fourth file open function in the file system in response to a second subscriber application that the causes the processor to establish a second subscription to the second publish-subscribe file identified by the subscriber application;

the processor configured to invoke a second notification to the second subscriber application in response to the invocation of the fourth file write function executed by the file system; and

the processor configured to, in response to the second notification to the second subscriber application that includes an identifier of the second publish-subscribe file, invoke a second file read function in the file system that causes the processor to publish the one or more attributes of the second object associated with the second publish-subscribe file, invoke a second file read function in the file system that changed since a prior invocation of the file read function.

21. A non-transitory machine readable medium encoded with machine-executable instructions executable in a computer architecture configured to provide publish-subscribe functionality through file system commands, the instructions when executed causing a processor to perform operations comprising;

invoking a first file open function in a file system in response to a publisher application that causes the processor to prepare to publish one or more attributes of an object associated with a publish-subscribe file;

invoking a file write function in the file system that causes the processor to write or delete the one or more attributes of the object associated with the publish-subscribe file in response to data elements that accompany the file write invocation;

invoking a second file open function in the file system in response to a subscriber application that causes the processor to establish a subscription to the publish-subscribe file identified by the subscriber application;

invoking a notification to the subscriber application in response to the invocation of the file write function executed by the file system; and

in response to the notification to the subscriber application that includes an identifier of the publish-subscribe file, invoking a file read function in the file system that causes the processor to publish the one or more attributes of the object associated with the publish-subscribe file that changed since a prior invocation of the file read function.

22. The non-transitory machine readable medium as defined in claim 21 , wherein the operations further comprise creating a publish-subscribe file associated with the object when the first file open function is invoked and the publish-subscribe file does not exist.

23. The non-transitory machine readable medium as defined in claim 21 , wherein the operations further comprise opening, in a write-mode, the publish-subscribe file associated with the object when the first file open function is invoked.

24. The non-transitory machine readable medium as defined in claim 21 , wherein the operations further comprise opening, in a read-mode, the publish-subscribe file associated with the object when the second file open function is invoked.

25. The non-transitory machine readable medium as defined in claim 21 , wherein the operations further comprise executing the file read function as a non-blocking event and returns from the file read function when no events associated with the object have been published since the prior invocation of the file read function.

26. The non-transitory machine readable medium as defined in claim 21 , wherein the operations further comprise executing the read function as a blocking event and defers returning from the file read function when no events associated with the object have been published since a prior invocation of the file read function, until at least one event associated with the object is published.

27. The non-transitory machine readable medium as defined in claim 21 , wherein the file system comprises a POSIX compliant interface.

28. The non-transitory machine readable medium as defined in claim 21 , wherein the operations further comprise:

invoking a third file open function in a file system in response to a second publisher application that causes the processor to prepare to publish a second object associated with a second publish-subscribe file named by the second publisher application; and

invoking a further file write function in the file system that causes a writing or deletion of one or more attributes of the second object associated with the second publish-subscribe file in response to data elements that accompany the further file write invocation.

29. The non-transitory machine readable medium as defined in claim 28 , wherein the operations further comprise:

invoking a fourth file open function in the file system in response to a second subscriber application that the causes the processor to establish a second subscription to the second publish-subscribe file identified by the subscriber application;

invoking a second notification to the second subscriber application in response to the invocation of the fourth file write function executed by the file system; and

in response to the second notification to the second subscriber application that includes an identifier of the second publish-subscribe file, invoking a second file read function in the file system appl that causes the processor to publish the one or more attributes of the second object associated with the second publish-subscribe file that changed since a prior invocation of the file read function.

30. The non-transitory machine readable medium as defined in claim 21 , wherein the one or more attributes of the object associated with the publish-subscribe file comprises a quality parameter.

31. The non-transitory machine readable medium as defined in claim 21 , wherein the one or more attributes is written or deleted only when the quality parameter is equal to or greater than a prior quality parameter.

32. The non-transitory machine readable medium as defined in claim 21 , wherein the non-transitory machine readable medium is part of a distributed computer architecture.

33. The non-transitory machine readable medium as defined in claim 21 , wherein the file system comprises a file system application program interface or a file system application.

Assignments (8)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
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 Dec 7, 2018
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 047703/0634 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2018
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 047703/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2018
From: DODGE, DAN
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 046387/0238 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE CORPORATE IDENTIFIER INADVERTENTLY LISTED ON THE ASSIGNMENT AND COVERSHEET AS "LIMITED" PREVIOUSLY RECORDED ON REEL 035700 FRAME 0845. ASSIGNOR(S) HEREBY CONFIRMS THE IDENTIFIER SHOULD HAVE STATED "INC.". Recorded May 27, 2015
From: QNX SOFTWARE SYSTEMS LIMITED
To: 2236008 ONTARIO INC.
Reel/Frame 035785/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2015
From: QNX SOFTWARE SYSTEMS LIMITED
To: 2236008 ONTARIO LIMITED
Reel/Frame 035700/0845 →