IP Library › Granted Patent US 10,761,911
Granted Patent B2
US 10,761,911 · App. 15/431,404 · Granted Sep 1, 2020

Asynchronous application interactions in distributed systems

Inventors: Vinod Gupta (Fremont, CA); Abhijit S. Khinvasara (Los Altos, CA)
Assignee: Nutanix, Inc.
G06F9/546G06F8/60
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,761,911
App. No.
15/431,404
Filed
Feb 13, 2017
Granted
Sep 1, 2020
Kind
B2
Art Unit
2194
USPC
719/314
Abstract

Systems and methods for managing communication between applications (e.g., apps) in a host computing environment. Apps are published to a globally-accessible site. Upon download of an app to a host computing environment, apps can register themselves with a communication gateway as being discoverable and permissive to inter-app communications. Message queues are created to facilitate asynchronous communications between apps. After registration, any of the apps can send and receive messages using the communication gateway. The messages can be directed to any other app that is registered with the communication gateway. Using the message queues, the communication gateway facilitates asynchronous app interactions such that any app can communicate with any other discoverable and permissive app. Aspects of operation, discoverability and other attributes can be codified in an application manifest that is processed by the communication gateway. Discoverability, source of origination, payload contents, permissions and other attributes are carried in the application manifest.

Claims (38)

1. A method for facilitating dynamic application discovery and inter-application communications for applications, the method comprising:

downloading, from a repository of applications, a second application to a host computer, said host computer hosting a first application, wherein the first application and the second application comprising applications that have been isolated from each other by assigning separate resources to the first application and the second application;

facilitating asynchronous discoverability between the first application and the second application based on at least a discoverability specification described in a first discoverability object, wherein the first discoverability object is provided for the first application and a second discoverability object is provided for the second application and the first application receives a notification of availability of the second application on a first message queue corresponding to the first application, and wherein the notification is based on a determination that the first discoverability object identifies the second application as discoverable for exchanging communications with the first application and the second discoverability object identifies the first application as discoverable for exchanging communications with the second application; and

using a messaging data structure to facilitate communications between the second application and the first application by:

posting, to the first message queue, a message from the second application addressed to the first application; and

receiving, by the first application, at least a portion of the message from the second application.

2. The method of claim 1 , wherein the messaging data structure stores at least an application identifier corresponding to the first application.

3. The method of claim 1 , wherein the first application comprises a first containerized application and the second application comprises a second containerized application different from the first containerized application.

4. The method of claim 1 , wherein the second application is associated with a file on the repository of applications corresponding to registration for communication with the one or more other applications.

5. The method of claim 1 , wherein the message comprises a first application identifier corresponding to the first application or a second application identifier corresponding to the second application.

6. The method of claim 1 , wherein the first discoverability object or the second discoverability object comprises at least one of, a discoverability indicator, an application identifier, a vendor identifier, or a discovery type.

7. The method of claim 1 , wherein the portion of the message comprises a payload from the second application for processing by the first application.

8. A non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor performs a set of acts for facilitating dynamic application discovery and inter-application communications for applications, the set of acts comprising:

downloading, from a repository of applications, a second application to a host computer, said host computer hosting a first application, wherein the first application and the second application comprising applications that have been isolated from each other by assigning separate resources to the first application and the second application;

facilitating asynchronous discoverability between the first application and the second application based on at least a discoverability specification described in a first discoverability object, wherein the first discoverability object is provided for the first application and a second discoverability object is provided for the second application and the first application receives a notification of availability of the second application on a first message queue corresponding to the first application, and wherein the notification is based on a determination that the first discoverability object identifies the second application as discoverable for exchanging communications with the first application and the second discoverability object identifies the first application as discoverable for exchanging communications with the second application; and

using a messaging data structure to facilitate communications between the second application and the first application by:

posting, to the first message queue, a message from the second application addressed to the first application; and

receiving, by the first application, at least a portion of the message from the second application.

9. The computer readable medium of claim 8 , wherein the first application comprises a first containerized application and the second application comprises a second containerized application different from the first containerized application.

10. The computer readable medium of claim 8 , wherein the second application is associated with a file on the repository of applications corresponding to registration for communication with the one or more other applications.

11. The computer readable medium of claim 8 , wherein the first discoverability object or the second discoverability object comprises at least one of, a discoverability indicator, an application identifier, a vendor identifier, or a discovery type.

12. The computer readable medium of claim 8 , wherein the messaging data structure stores at least an application identifier corresponding to the first application.

13. The computer readable medium of claim 8 , wherein the message comprises a first application identifier corresponding to the first application or a second application identifier corresponding to the second application.

14. The computer readable medium of claim 8 , wherein the portion of the message comprises a payload from the second application for processing by the first application.

15. The computer readable medium of claim 8 , wherein the set of acts further comprise presenting an aspect of the second application in a user interface based at least in part on a registered discoverability.

16. A system for facilitating dynamic application discovery and inter-application communications for applications, system comprising:

a storage medium having stored thereon a sequence of instructions; and a processor that executes the sequence of instructions to perform a set of acts comprising:

downloading, from a repository of applications, a second application to a host computer, said host computer hosting a first application, wherein the first application and the second application comprising applications that have been isolated from each other by assigning separate resources to the first application and the second application;

facilitating asynchronous discoverability between the first application and the second application based on at least a discoverability specification described in a first discoverability object, wherein the first discoverability object is provided for the first application and a second discoverability object is provided for the second application and the first application receives a notification of availability of the second application on a first message queue corresponding to the first application, and wherein the notification is based on a determination that the first discoverability object identifies the second application as discoverable for exchanging communications with the first application and the second discoverability object identifies the first application as discoverable for exchanging communications with the second application; and

using a messaging data structure to facilitate communications between the second application and the first application by:

posting, to the first message queue, a message from the second application addressed to the first application; and

receiving, by the first application, at least a portion of the message from the second application.

17. The system of claim 16 , wherein the messaging data structure stores at least an application identifier corresponding to the first application.

18. The system of claim 16 , wherein the message comprises a first application identifier corresponding to the first application or a second application identifier corresponding to the second application.

19. The system of claim 16 , wherein the portion of the message comprises a payload from the second application for processing by the first application.

20. The system of claim 16 , wherein the first application comprises a first containerized application and the second application comprises a second containerized application different from the first containerized application.

21. The system of claim 16 , wherein the second application is associated with a file on the repository of applications corresponding to registration for communication with the one or more other applications.

22. The system of claim 16 , wherein the first discoverability object or the second discoverability object comprises at least one of, a discoverability indicator, an application identifier, a vendor identifier, or a discovery type.

Assignments (2)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2017
From: GUPTA, VINOD; KHINVASARA, ABHIJIT S.
To: NUTANIX, INC.
Reel/Frame 041242/0430 →
Continuity (1)
Related Publication 20200026587A1 · Jan 23, 2020
Cited By (1)
US 12,688,057