IP Library › Granted Patent US 10,740,078
Granted Patent B2
US 10,740,078 · App. 15/665,728 · Granted Aug 11, 2020

Dynamic plugin(s) for cloud application(s)

Inventors: Phillip M. Hoff (Duvall, WA); Anthony Lavel Crider (Mill Creek, WA); Sung Hon Wu (Bellevue, WA); Lubomir I. Birov (Redmond, WA); John A. Cunningham (Kirkland, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/61G06F9/45529
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,740,078
App. No.
15/665,728
Granted
Aug 11, 2020
Kind
B2
Abstract

Techniques are described herein that are capable of dynamically installing plugin(s) for application(s). An agent plugin is caused to run in a deployment of a specified application (e.g., across multiple machines in a cloud environment or “on premises”). The specified application is packaged to include the agent plugin. The agent plugin is used to install designated plugin(s) dynamically based on configuration information regarding the specified application. The configuration information indicates that the designated plugin(s) are to be installed in response to the specified application being deployed.

Claims (69)

1. A system comprising:

memory; and

one or more processors coupled to the memory and configured to:

identify configuration information regarding a specified application, the configuration information indicating that at least one designated plugin of a plurality of designated plugins is to be installed in response to the specified application being deployed;

access a package that includes the specified application and that further includes an agent plugin, which is to be used to install the at least one designated plugin of the plurality of designated plugins to add one or more capabilities to the specified application that is included in the package that includes the agent plugin, to cause the agent plugin to run in a first deployment of the specified application;

use the agent plugin to install the at least one designated plugin of the plurality of designated plugins based at least in part on the configuration information in response to the agent plugin being caused to run in the first deployment of the specified application, wherein the agent plugin dynamically understands a topology of a network on which the specified application is installed, including what machines are associated with the specified application;

cause the agent plugin to run in a subsequent deployment of the specified application that is initiated after initiation of the first deployment in response to a determination that the specified application is to be restarted based at least in part on at least one of one or more software factors or one or more hardware factors; and

use the agent plugin to install at least one different designated plugin of the plurality of designated plugins on-the-fly while the specified application is running based at least in part on the configuration information as a result of the specified application being restarted and the agent plugin identifying a change in the topology of the network on which the specified application is installed by dynamically re-understanding the topology.

2. The system of claim 1 , wherein the one or more processors are configured to:

identify a state of a first execution of the at least one designated plugin that is performed during the first deployment of the specified application; and

use the agent plugin to initiate a second execution of the at least one designated plugin in the state of the first execution in response to the at least one designated plugin being re-installed.

3. The system of claim 1 , wherein the one or more processors are configured to use the agent plugin to install one or more dependencies of the at least one designated plugin on-the-fly while the specified application is running based at least in part on the configuration information.

4. The system of claim 3 , wherein the agent plugin is configured to use a predetermined feed to install a predetermined set of products from the predetermined feed; and

wherein the one or more processors are configured to use the agent plugin to install the one or more dependencies as one or more default products based at least in part on no dependencies being specified by the predetermined feed.

5. The system of claim 1 , wherein the agent plugin is configured to use a predetermined feed to install a predetermined set of products from the predetermined feed; and

wherein the one or more processors are configured to use the agent plugin to install the at least one designated plugin as at least one default product based at least in part on no plugins being specified by the predetermined feed.

6. The system of claim 1 , wherein the at least one of the one or more software factors or the one or more hardware factors includes at least one of the following:

(a) a determination that a machine on which the target application is deployed is to be restarted or has been restarted,

(b) detection of a hardware malfunction with regard to the machine on which the target application is deployed,

(c) detection of a malfunction with regard to the target application,

(d) a determination that an operating system associated with the target application is to be upgraded,

(e) a determination that a platform on which the target application is running has requested that the target application be restarted.

7. The system of claim 1 , wherein the agent plugin understands what the machines that are associated with the specified application include.

8. A method comprising:

identifying configuration information regarding a specified application, the configuration information indicating that at least one designated plugin of a plurality of designated plugins is to be installed in response to the specified application being deployed;

accessing a package that includes the specified application and that further includes an agent plugin, which is to be used to install the at least one designated plugin of the plurality of designated plugins to add one or more capabilities to the specified application that is included in the package that includes the agent plugin, to cause the agent plugin to run in a first deployment of the specified application;

using the agent plugin to install the at least one designated plugin of the plurality of designated plugins based at least in part on the configuration information in response to the agent plugin being caused to run in the first deployment of the specified application, wherein the agent plugin dynamically understands a topology of a network on which the specified application is installed, including what machines are associated with the specified application;

causing the agent plugin to run in a subsequent deployment of the specified application that is initiated after initiation of the first deployment in response to a determination that the specified application is to be restarted based at least in part on at least one of one or more software factors or one or more hardware factors; and

using the agent plugin to install at least one different designated plugin of the plurality of designated plugins on-the-fly while the specified application is running based at least in part on the configuration information as a result of the specified application being restarted and the agent plugin identifying a change in the topology of the network on which the specified application is installed by dynamically re-understanding the topology.

9. The method of claim 8 , further comprising:

identifying a state of a first execution of the at least one designated plugin that is performed during the first deployment of the specified application; and

using the agent plugin to initiate a second execution of the at least one designated plugin in the state of the first execution in response to the at least one designated plugin being re-installed.

10. The method of claim 9 , wherein the at least one of the one or more software factors or the one or more hardware factors includes at least one of the following:

(a) a determination that a machine on which the specified application is deployed is to be restarted or has been restarted,

(b) detection of a hardware malfunction with regard to the machine on which the specified application is deployed,

(c) detection of a malfunction with regard to the specified application,

(d) a determination that an operating system associated with the specified application is to be upgraded,

(e) a determination that a platform on which the specified application is running has requested that the specified application be restarted.

11. The method of claim 8 , further comprising:

using the agent plugin to install one or more dependencies of the at least one designated plugin on-the-fly while the specified application is running based at least in part on the configuration information.

12. The method of claim 11 , wherein the agent plugin is configured to use a predetermined feed to install a predetermined set of products from the predetermined feed; and

wherein using the agent plugin to install the one or more dependencies comprises:

using the agent plugin to install the one or more dependencies as one or more default products based at least in part on no dependencies being specified by the predetermined feed.

13. The method of claim 8 , wherein operation of the agent plugin mimics behavior of a bootstrapper process of a platform that runs the at least one designated plugin.

14. The method of claim 8 , wherein the agent plugin is configured to use a predetermined feed to install a predetermined set of products from the predetermined feed; and

wherein using the agent plugin to install the at least one designated plugin comprises:

using the agent plugin to install the at least one designated plugin as at least one default product based at least in part on no plugins being specified by the predetermined feed.

15. A computer program product comprising a computer-readable storage medium having instructions recorded thereon for enabling a processor-based system to perform operations, the operations comprising:

identify configuration information regarding a target application, the configuration information indicating that at least one designated plugin of a plurality of designated plugins is to be installed in response to the target application being deployed;

cause an agent plugin, which acts as an agent for the target application that is packaged to include the agent plugin, to run in a first deployment of the target application;

use the agent plugin to install the at least one designated plugin of the plurality of designated plugins based at least in part on the configuration information in response to the agent plugin being caused to run in the first deployment of the target application, wherein the agent plugin dynamically understands a topology of a network on which the target application is installed, including what machines are associated with the target application;

cause the agent plugin to run in a subsequent deployment of the target application that is initiated after initiation of the first deployment in response to a determination that the target application is to be restarted based at least in part on at least one of one or more software factors or one or more hardware factors; and

use the agent plugin to install at least one different designated plugin of the plurality of designated plugins on-the-fly while the target application is running based at least in part on the configuration information as a result of the target application being restarted and the agent plugin identifying a change in the topology of the network on which the target application is installed by dynamically re-understanding the topology.

16. The computer program product of claim 15 , wherein the operations comprise:

identify a state of a first execution of the at least one designated plugin that is performed during the first deployment of the target application; and

use the agent plugin to initiate a second execution of the at least one designated plugin in the state of the first execution in response to the at least one designated plugin being re-installed.

17. The computer program product of claim 15 , wherein the operations comprise:

use the agent plugin to install one or more dependencies of the at least one designated plugin on-the-fly while the target application is running based at least in part on the configuration information.

18. The computer program product of claim 17 , wherein the agent plugin is configured to use a predetermined feed to install a predetermined set of products from the predetermined feed; and

wherein the operations comprise:

use the agent plugin to install the one or more dependencies as one or more default products based at least in part on no dependencies being specified by the predetermined feed.

19. The computer program product of claim 15 , wherein the agent plugin is configured to use a predetermined feed to install a predetermined set of products from the predetermined feed; and

wherein the operations comprise use the agent plugin to install the at least one designated plugin as at least one default product based at least in part on no plugins being specified by the predetermined feed.

20. The computer program product of claim 15 , wherein the at least one of the one or more software factors or the one or more hardware factors includes at least one of the following:

(a) a determination that a machine on which the target application is deployed is to be restarted or has been restarted,

(b) detection of a hardware malfunction with regard to the machine on which the target application is deployed,

(c) detection of a malfunction with regard to the target application,

(d) a determination that an operating system associated with the target application is to be upgraded,

(e) a determination that a platform on which the target application is running has requested that the target application be restarted.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2017
From: HOFF, PHILLIP M.; CRIDER, ANTHONY LAVEL; WU, SUNG HON; BIROV, LUBOMIR I.; CUNNINGHAM, JOHN A.
To: MICROSOFT CORPORATION
Reel/Frame 043154/0711 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2017
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 043154/0790 →
Continuity (3)
Continuation 14880270 · Oct 11, 2015
Continuation 13431131 · Mar 27, 2012
Related Publication 20170329592A1 · Nov 16, 2017
Cited By (2)
US 12,717,570 US 12,737,191