IP Library › Granted Patent US 9,170,800
Granted Patent B2
US 9,170,800 · App. 14/055,078 · Granted Oct 27, 2015

Application wrapping for application management framework

Inventors: Zhongmin Lang (Parkland, FL); Gary Barton (Boca Raton, FL); James Robert Walker (Deerfield Beach, FL); Vipin Aravindakshan (Bangalore, IN)
Assignee: Citrix Systems, Inc.
G06F8/65G06F8/52G06F8/72G06F8/76G06F9/45504G06F9/45516
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 9,170,800
App. No.
14/055,078
Granted
Oct 27, 2015
Kind
B2
Abstract

Methods and systems for developing, modifying, and distributing software applications for enterprise systems are described herein. A software component, such as a native mobile application or a template application, may be modified into a managed mobile application, and metadata associated with the managed mobile application may be generated. The managed application and associated metadata may be provided to one or more application stores, such as public application stores and/or enterprise application stores. Managed applications and/or associated metadata may be retrieved by computing devices from public application stores and/or enterprise application stores, and may be executed as managed applications in an enterprise system.

Claims (74)

1. A method, comprising:

modifying, by a computing system, an unmanaged application into a managed application configured for execution within an application-management agent of an application-management framework, by inserting, into a software component of the unmanaged application, information configured to control execution of the software component when executed within the application-management agent of the application-management framework;

generating, by the computing system, metadata identifying a public application store from which the unmanaged application can be downloaded; and

providing, by the computing system, the metadata to an enterprise application store associated with the application-management framework.

2. The method of claim 1 , wherein the unmanaged application comprises a native application, the method comprising:

receiving, by the computing system, the native application;

determining, by the computing system, a structure of the native application;

inserting, by the computing system and into the structure of the native application, code configured to allow the application-management framework to control the native application; and

rebuilding the native application into the managed application.

3. The method of claim 2 , comprising:

deriving, by the computing system and using a software tool, information from the native application;

providing, by the computing system and to a user, a user interface prompting the user to input additional information regarding the native application; and

generating, by the computing system and based on the information from the native application and the additional information regarding the native application, the metadata.

4. The method of claim 1 , comprising:

receiving, by the computing system, user input identifying an application type of the managed application; and

retrieving, by the computing system and based on the user input, an application template for the application type.

5. The method of claim 1 , wherein the software component comprises a web-application template, the method comprising:

retrieving, by the computing system, the web-application template;

receiving, by the computing system, user input corresponding to one or more uniform resource locators (URLs);

receiving, by the computing system, user input corresponding to a customized user interface for the managed application; and

building, by the computing system and using the web-application template, the managed application, the managed application comprising a web application configured to support a set of websites corresponding to the one or more URLs and provide the customized user interface.

6. The method of claim 1 , wherein the software component comprises a hosted-enterprise-application template, the method comprising:

retrieving, by the computing system, the hosted-enterprise-application template;

receiving, by the computing system, user input corresponding to a customized user interface for the managed application; and

building, by the computing system and using the hosted-enterprise-application template, the managed application, the managed application comprising a customized hosted enterprise application configured to provide the customized user interface.

7. The method of claim 1 , comprising:

generating, by the computing system, a bundle comprising the managed application and the metadata; and

transmitting, by the computing system and to the enterprise application store, the bundle.

8. The method of claim 1 , comprising

providing by the and to the public application store, the managed application.

9. The method of claim 1 , wherein the managed application is configured to run in an unmanaged execution mode when the application-management agent is not present and to run in a managed execution mode when the application-management agent is present.

10. The method of claim 1 , comprising:

parsing, by the computing system, code of the software component to identify one or more calls corresponding to an operating system (OS) application program interface (API) call; and

replacing, by the computing system, the one or more calls with a reference to a stub for a proxy of the OS API call.

11. One or more non-transitory computer-readable media comprising instructions that when executed by a computing system cause the computing system to:

modify an unmanaged application into a managed application configured for execution within an application-management agent of an application-management framework, by inserting, into a software component of the unmanaged application, information configured to control execution of the software component when executed within the application-management agent of the application-management framework;

generate metadata identifying a public application store from which the unmanaged application can be downloaded; and

provide the metadata to an enterprise application store associated with the application-management framework.

12. The one or more non-transitory computer-readable media of claim 11 , wherein the unmanaged application comprises a native application, and wherein the instructions, when executed by the computing system, cause the computing system to:

receive the native application;

determine a structure of the native application;

insert, into the structure of the native application, code configured to allow the application-management framework to control the native application; and

rebuild the native application into the managed application.

13. The one or more non-transitory computer-readable media of claim 12 , wherein the instructions, when executed by the computing system, cause the computing system to:

derive, using a software tool, information from the native application;

provide, to a user, a user interface prompting the user to input additional information regarding the native application; and

generate, based on the information from the native application and the additional information regarding the native application, the metadata.

14. The one or more non-transitory computer-readable media of claim 11 , wherein the instructions, when executed by the computing system, cause the computing system to:

receive user input identifying an application type of the managed application; and

retrieve, based on the user input, an application template for the application type.

15. The one or more non-transitory computer-readable media of claim 11 , wherein the software component comprises a web-application template, and wherein the instructions, when executed by the computing system, cause the computing system to:

retrieve the web-application template;

receive user input corresponding to one or more uniform resource locators (URLs);

receive user input corresponding to a customized user interface for the managed application; and

build, using the web-application template, the managed application, wherein the managed application comprises a web application configured to support a set of websites corresponding to the one or more URLs and provide the customized user interface.

16. The one or more non-transitory computer-readable media of claim 11 , wherein the software component comprises a hosted-enterprise-application template, and wherein the instructions, when executed by the computing system, cause the computing system to:

retrieve the hosted-enterprise-application template;

receive user input corresponding to a customized user interface for the managed application; and

build, using the hosted-enterprise-application template, the managed application, wherein the managed application comprises a customized hosted enterprise application configured to provide the customized user interface.

17. A system comprising:

at least one processor; and

a memory storing instructions that when executed by the at least one processor cause the system to:

insert, into a software component of an unmanaged application, information configured to control execution of the software component when executed within a management agent of an application-management framework;

generate metadata identifying a public application store from which the unmanaged application can be downloaded; and

communicate, to an enterprise application store associated with the application-management framework, data comprising the software component and the metadata.

18. The system of claim 17 , wherein the software component comprises a web-application template, and wherein the instructions, when executed by the at least one processor, cause the system to:

receive user input corresponding to one or more uniform resource locators (URLs) and a customized user interface; and

build, using the web-application template, a managed version of the unmanaged application, the managed version comprising a web application configured to support a set of websites corresponding to the one or more URLs and provide the customized user interface.

19. The system of claim 17 , wherein the software component comprises a hosted-enterprise-application template, and wherein the instructions, when executed by the at least one processor, cause the system to:

receive user input corresponding to a customized user interface; and

build, using the hosted-enterprise-application template, a managed version of the unmanaged application, the managed version comprising a hosted enterprise application configured to provide the customized user interface.

20. The system of claim 17 , wherein the instructions, when executed by the at least one processor, cause the system to:

parse code of the software component to identify one or more calls corresponding to an operating system (OS) application program interface (API) call; and

replace the one or more calls with a reference to a stub for a proxy of the OS API call.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2013
From: LANG, ZHONGMIN; BARTON, GARY; WALKER, JAMES ROBERT; ARAVINDAKSHAN, VIPIN
To: CITRIX SYSTEMS, INC.
Reel/Frame 031433/0924 →
Continuity (3)
Provisional Application 61714469 · Oct 16, 2012
Provisional Application 61825384 · May 20, 2013
Related Publication 20140109078A1 · Apr 17, 2014