IP Library Granted Patent US 11,126,417
Granted Patent B2
US 11,126,417 · App. 16/947,075 · Granted Sep 21, 2021

System and method for application plug-in distribution

Inventors: Mathew Levac (Ottawa, CA); Fleming Shi (Scotts Valley, CA)
Assignee: Barracuda Networks, Inc.
G06F8/61G06F8/71G06F11/302G06F11/3495G06F16/2455G06F21/53G06F9/44526G06F2221/033
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,126,417
App. No.
16/947,075
Granted
Sep 21, 2021
Kind
B2
Abstract

A new approach is proposed that contemplates systems and methods to support a sandboxed application plug-in distribution framework. An installation package containing a monitoring plug-in, a display plug-in, and/or third part components is received by a first application running on a first computing device. The first application installs the display plug-in and saves the monitoring plug-in to a centralized database. The first application sends an instruction to a second application running on a second computing device to retrieve the monitoring plug-in from the database and install the monitoring plug-in on the second computing device. Upon receiving a user request, the display plug-in of the first application sends a query to the monitor plug-in of the second application. In response to the query, the monitoring plug-in sends the requested monitored data collected by the second application to the display plug-in, which then formats and presents the monitored data to the user.

Claims (83)

1. A system to support application plug-in distribution, comprising:

a first computing device comprising a processor and running a first application configured to

accept a user request to monitor data on a second computing device;

provide a command to the second computing device to retrieve a monitoring plug-in from a centralized database, wherein the monitoring plug-in is configured to collect and monitor data on the second computing device;

accept the data monitored and collected by the monitoring plug-in on the second computing device;

generate and present one or more pages of the monitored data to a user via a display plug-in;

said second computing device comprising a processor and running a second application configured to

retrieve and install the monitoring plug-in from the centralized database upon receiving the command from the first computing device if the monitoring plug-in has not been installed on the second computing device;

monitor and collect data on the second computing device via the monitoring plug-in;

transmit the monitored data collected by the monitoring plug-in to the first application.

2. A system to support application plug-in distribution, comprising:

a first computing device comprising a processor and running a first application configured to

accept a user request to monitor data on a second computing device;

transmit a monitoring plug-in to the second computing device, wherein the monitoring plug-in is configured to collect and monitor data on the second computing device;

accept the data monitored and collected by the monitoring plug-in on the second computing device;

generate and present one or more pages of the monitored data to a user via a display plug-in;

said second computing device running a second application configured to

accept and install the monitoring plug-in on the second computing device if the monitoring plug-in has not been installed on the second computing device;

monitor and collect data on the second computing device via the monitoring plug-in;

transmit the monitored data collected by the monitoring plug-in to the first application.

3. The system of claim 1 , wherein:

the second computing device is located remotely from the first computing device and accessible over a network.

4. The system of claim 1 , wherein:

the first computing device is configured to upload the monitoring plug-in to the centralized database.

5. The system of claim 1 , wherein:

the monitoring plug-in is deployed dynamically from the centralized database to the second computing device at runtime.

6. The system of claim 1 , wherein:

the first computing device is configured to populate and/or customize the one or more pages generated by the display plug-in with the monitored data collected by the monitoring plug-in.

7. The system of claim 1 , wherein:

the first computing device is configured to accept the monitoring plug-in and/or the display plug-in in a form of a plug-in package from a plug-in source configured to package one or more plug-ins into the plug-in package and provide the plug-in package to the first computing device.

8. The system of claim 7 , wherein:

the plug-in package further includes one or more of a manifest containing a description of contents of the plug-in package, a common component to be shared by the display plug-in and the monitoring plug-in, one or more external libraries to be referenced by any of the display plug-in, monitoring plug-in, and the common component.

9. The system of claim 7 , wherein:

the first computing device is configured to upload the plug-in package to the centralized database and the second computing device is configured to download the plug-in package upon receiving the command from the first computing device.

10. The system of claim 1 , wherein:

the second computing device is configured to implement a polling interface, wherein the polling interface is called periodically by the first application running on the first computing device to obtain the monitored data collected by the monitoring plug-in.

11. The system of claim 1 , wherein:

the second computing device is configured to sandbox and isolate the monitoring plug-in from the second application running on the second computing device.

12. The system of claim 11 , wherein:

the second computing device is configured to extract and install the monitoring plug-into a local folder structure for execution on the second computing device.

13. The system of claim 12 , wherein:

the second computing device is configured to utilize the local folder structure to create isolation between the monitoring plug-in and the second application running on the second computing device, wherein the monitoring plug-in is loaded into a separate plug-in domain and runs within the context of the associated folder structure to sandbox the plug-ins.

14. The system of claim 13 , wherein:

the second computing device is configured to restrict the plug-in domain to load only runtime assemblies that are present within its folder in the local folder structure.

15. A method to support application plug-in distribution, comprising:

accepting a user request for monitored data on a second computing device;

providing a command to the second computing device to retrieve a monitoring plug-in from a centralized database, wherein the monitoring plug-in is configured to collect and monitor data on the second computing device;

retrieving and installing the monitoring plug-in from the centralized database upon receiving the command from a first application if the monitoring plug-in has not been installed on the second computing device;

monitoring and collecting data on the second computing device via the monitoring plug-in;

transmitting the monitored data collected by the monitoring plug-in to the first application;

accepting at a first computing device the monitored data from the monitoring plug-in on the second computing device;

generating and presenting one or more pages of the monitored data to a user via a display plug-in.

16. A method to support application plug-in distribution, comprising:

accepting a user request for monitored data on a second computing device;

transmitting a monitoring plug-in to the second computing device, wherein the monitoring plug-in is configured to collect and monitor data on the second computing device;

accepting and installing the monitoring plug-in on the second computing device if the monitoring plug-in has not been installed on the second computing device;

monitoring and collecting data on the second computing device via the monitoring plug-in;

transmitting the monitored data collected by the monitoring plug-in to a first application;

accepting at a first computing device the monitored data from the monitoring plug-in on the second computing device;

generating and presenting one or more pages of the monitored data to a user via a display plug-in.

17. The method of claim 15 , wherein:

the second computing device is located remotely from the first computing device and accessible over a network.

18. The method of claim 15 , further comprising:

uploading the monitoring plug-in to the centralized database.

19. The method of claim 15 , further comprising:

deploying the monitoring plug-in dynamically from the centralized database to the second computing device at runtime.

20. The method of claim 15 , further comprising:

populating and/or customizing the one or more pages generated by the display plug-in with the monitored data collected by the monitoring plug-in.

21. The method of claim 15 , further comprising:

accepting the monitoring plug-in and/or the display plug-in in a form of a plug-in package from a plug-in source configured to package one or more plug-ins into the plug-in package and provide the plug-in package to the first computing device.

22. The method of claim 21 , further comprising:

uploading the plug-in package from the first computing device to the centralized database;

downloading the plug-in package to the second computing device upon receiving the command from the first computing device.

23. The method of claim 15 , further comprising:

implementing a polling interface via the second computing device, wherein the polling interface is called periodically by the first application running on the first computing device to obtain the monitored data collected by the monitoring plug-in.

24. The method of claim 15 , further comprising:

sandbox and isolate the monitoring plug-in from a second application running on the second computing device.

25. The method of claim 24 , further comprising:

extracting and installing the monitoring plug-into a local folder structure for execution on the second computing device.

26. The method of claim 25 , further comprising:

utilizing the local folder structure to create isolation between the monitoring plug-in and the second application running on the second computing device, wherein the monitoring plug-in is loaded into a separate plug-in domain and runs within the context of the associated folder structure to sandbox the plug-ins.

27. The method of claim 26 , further comprising:

restricting each plug-in domain to load only runtime assemblies that are present within its folder in the local folder structure.

Assignments (7)
SECURITY INTEREST Recorded Mar 17, 2025
From: BARRACUDA NETWORKS, INC.
To: OAKTREE FUND ADMINISTRATION, LLC, AS COLLATERAL AGENT
Reel/Frame 070529/0123 →
SECURITY INTEREST Recorded Sep 3, 2022
From: BARRACUDA NETWORKS, INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 061377/0208 →
SECURITY INTEREST Recorded Sep 3, 2022
From: BARRACUDA NETWORKS, INC.
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 061377/0231 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN IP RECORDED AT R/F 054260/0746 Recorded Aug 16, 2022
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: BARRACUDA NETWORKS, INC.
Reel/Frame 061521/0086 →
RELEASE OF SUPPLEMENTAL FIRST LIEN SECURITY INTEREST IN IP RECORDED AT R/F 054260/0605 Recorded Aug 16, 2022
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: BARRACUDA NETWORKS, INC.
Reel/Frame 061179/0896 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 30, 2020
From: BARRAUDA NETWORKS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 054260/0746 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT Recorded Oct 30, 2020
From: BARRAUDA NETWORKS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 054260/0605 →