IP Library Granted Patent US 9,946,528
Granted Patent B2
US 9,946,528 · App. 14/244,527 · Granted Apr 17, 2018

System and method for automated customization of applications

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,946,528
App. No.
14/244,527
Granted
Apr 17, 2018
Kind
B2
Abstract

The method includes receiving, at a commercial app store system, an application including embedded customization code, publishing, by the commercial app store system, the application to a commercial app store, associating the application with a license to a private app store, the private app store being associated with the end-user computing device, installing the application on the end-user computing device, receiving an indication from the end-user computing device that the application has launched, and communicating customization data to the end-user computing device.

Claims (53)

1. A method of delivering a customized application to an end-user computing device, the method comprising:

receiving, at a commercial app store system, an application including embedded customization code as a layer of code configured to allow run-time customization of the application without accessing the source code of the application;

publishing, by the commercial app store system, the application to a commercial app store, the commercial app store being configured to publish and download the application without end-user customization;

receiving, at the commercial app store system, a request to acquire at least one license for the application from a private app store, the private app store being a tenant of a multi-tenanted application management system;

publishing, by the private app store:

the application as a customized application including customization data selected based on the at least one license and stored separately from the customized application, the customization data being retrieved by the customized application, using the layer of code, at run-time when the customized application is executed by the end-user computing device, and

a profile for the customized application in the private app store;

installing the customized application on the end-user computing device from the private app store using the license acquired by the private app store;

receiving, at the commercial app store system from the end-user computing device, an indication that the application has launched and includes end-user and tenant information;

fetching, by the commercial app store system from the private app store, the customization data based on the end-user and tenant information; and

communicating the customization data from the private app store to the end-user computing device.

2. The method of claim 1 , wherein

the end-user computing device is associated with the tenant.

3. The method of claim 2 , wherein the end-user computing device includes client software configured to provide access to the private app store and to determine an association between the end-user and the tenant.

4. The method of claim 1 , wherein code used for run-time customization includes libraries that includes at least one of a policy library and a license management library.

5. The method of claim 1 , further comprising:

determining an end-user identity and tenant with which the end-user is associated.

6. The method of claim 1 , wherein the customization data includes data related to at least one of a tenant and the end-user.

7. The method of claim 6 , wherein the customization data includes at least one of a logo and a company name.

8. The method of claim 1 , further comprising adding a layer to binary code associated with the application, the layer being configured to at least one of add features and modify functionality, without requiring changes to the application.

9. The method of claim 1 , wherein publishing the customized application to the private app store makes the customized application available for downloading to the end-user computing device.

10. An enterprise computing system comprising:

a private app store associated with at least one end-user computing device, the private app store being a tenant of a multi-tenanted application management system configured to:

receive an application including embedded customization code as a layer of code configured to allow run-time customization of the application without accessing source code of the application from a commercial app store configured to publish and download the application without end-user customization;

associate a license with the application and the at least one end-user computing device;

publish:

the application as a customized application including customization data selected based on the at least one license and stored separately from the customized application, the customization data being retrieved by the customized application, using the layer of code, at run-time when the customized application is executed by the end-user computing device, and

a profile for the customized application in the private app store;

receive, at the commercial app store system an indication of a launch of the customized application installed on the end-user computing device, and end-user and tenant information;

fetch, by the commercial app store system from the private app store, the customization data based on the end-user and tenant information; and

communicate the customization data from the private app store to the end user device.

11. The enterprise computing system of claim 10 , wherein the end-user computing device is associated with the tenant.

12. The enterprise computing system of claim 11 , wherein the end-user computing device includes:

a client configured to access the private app store and to determine an association between the end-user and the tenant; and

the customized application includes embedded customization code configured to communicate with the client and to request the customization data upon the launch of the application.

13. A non-transitory computer readable medium storing code segments, that when executed by a processor, cause the processor to perform steps comprising:

receiving, at a commercial app store system, an application including embedded customization code as a layer of code configured to allow run-time customization of the application without accessing source code of the application and configured to execute upon launch of the application on an end-user computing device;

publishing, by the commercial app store system, the application to a commercial app store, the commercial app store being configured to publish and download the application without end-user customization;

receiving, at the commercial app store system, a request to acquire at least one license for the application from a private app store, the private app store being a tenant of a multi-tenant application management system;

associating the application with a license to the private app store, the private app store being associated with the end-user computing device;

publishing, by the private app store,

the application as a customized application including customization data selected based on the at least one license and stored separately from the customized application, the customization data being retrieved by the customized application, using the layer of code, at run-time when the customized application is executed by the end-user computing device, and

a profile for the customized application in the private app store, wherein the customized application includes libraries that is used for run-time customization of the application;

installing the customized application on the end-user computing device from the private app store using the license acquired by the private app store;

receiving, at the commercial app store system an indication from the end-user computing device that the application has launched, and end-user and tenant information;

fetching, by the commercial app store system from the private app store, the customization data based on the end-user and tenant information; and

communicating the customization data from the private app store to the end-user computing device.

14. The non-transitory computer readable medium of claim 13 , wherein the end-user computing device is associated with the tenant.

15. The non-transitory computer readable medium of claim 14 , wherein the end-user computing device includes a client configured to access the private app store and to determine an association between an end-user and the tenant.

16. The non-transitory computer readable medium of claim 13 , wherein the embedded customization code includes at least one of policy and license management libraries.

17. The non-transitory computer readable medium of claim 13 , the steps further comprising:

determining an end-user identity and tenant with which an end-user is associated.

18. The non-transitory computer readable medium of claim 13 , wherein the customization data includes data related to at least one of a tenant and an end-user.

Assignments (15)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC SOFTWARE ACQUISITION, L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0181 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2016
From: BMC SOFTWARE ACQUISITION, L.L.C.
To: BMC SOFTWARE, INC.
Reel/Frame 039086/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2014
From: MAIR, GEOFF ROSS
To: BMC SOFTWARE ACQUISITION, L.L.C.
Reel/Frame 032597/0936 →