Dynamically optimizing applications within a deployment server
First Claim
1. A computerized method for optimizing applications within a deployment server in an on-demand application deployment environment, the method comprising:
- performing a first plurality of application optimizations;
following performance of the first plurality of application optimizations, receiving by the deployment server a request from a client for an application;
dynamically analyzing capabilities of a device upon which the client is hosted;
identifying a generic version of the requested application from a generic application data store that stores at least one generic application written in a device-independent fashion;
determining whether a client-optimized application exists for the identified generic version of the requested application and the device upon which the client is hosted;
upon determining that a client-optimized application does not exist for the identified generic version of the requested application and the device upon which the client is hosted, performing the following steps;
matching the client with at least one device profile stored in a profile data store in the deployment server, the matching being based at least in part upon the capabilities of the device upon which the client is hosted;
determining attributes specific to the client based upon the matching device profile; and
dynamically generating at runtime a client-optimized application based upon the determined attributes and the identified generic version of the requested application by building a plurality of scripts based upon the determined attributes, processing the plurality of scripts within an optimizer engine configured to remove unneeded classes, methods, and fields from the identified generic version of the requested application, and iteratively executing the plurality of scripts to perform a second plurality of application optimizations;
identifying at least one software routine that is to be bundled with the client-optimized application so that the client is able to execute the client-optimized application, and creating a bundle including the identified at least one software routine and the client-optimized application, the bundle adhering to any formatting restriction specified by the client; and
conveying the client-optimized application to the client via the bundle.
1 Assignment
0 Petitions
Accused Products
Abstract
A deployment server can include a profile data store, a generic application data store, and an optimizer. The profile data store can contain a plurality of attributes for devices and associate different optimization parameters or optimization routines to each of the stored attributes. The generic application data store can contain at least one generic application written in a device independent fashion. The optimizer can receive application requests from an assortment of different requesting devices and can dynamically generate device-specific applications responsive to received requests. For each requesting device, the optimizer can determine attributes of a requesting device, utilize the profile data store to identify optimization parameters or optimization routines for the requesting device, and generate a device-specific application based upon data from the profile data store and based upon a generic application retrieved from the generic application data store.
21 Citations
19 Claims
-
1. A computerized method for optimizing applications within a deployment server in an on-demand application deployment environment, the method comprising:
-
performing a first plurality of application optimizations; following performance of the first plurality of application optimizations, receiving by the deployment server a request from a client for an application; dynamically analyzing capabilities of a device upon which the client is hosted; identifying a generic version of the requested application from a generic application data store that stores at least one generic application written in a device-independent fashion; determining whether a client-optimized application exists for the identified generic version of the requested application and the device upon which the client is hosted; upon determining that a client-optimized application does not exist for the identified generic version of the requested application and the device upon which the client is hosted, performing the following steps; matching the client with at least one device profile stored in a profile data store in the deployment server, the matching being based at least in part upon the capabilities of the device upon which the client is hosted; determining attributes specific to the client based upon the matching device profile; and dynamically generating at runtime a client-optimized application based upon the determined attributes and the identified generic version of the requested application by building a plurality of scripts based upon the determined attributes, processing the plurality of scripts within an optimizer engine configured to remove unneeded classes, methods, and fields from the identified generic version of the requested application, and iteratively executing the plurality of scripts to perform a second plurality of application optimizations; identifying at least one software routine that is to be bundled with the client-optimized application so that the client is able to execute the client-optimized application, and creating a bundle including the identified at least one software routine and the client-optimized application, the bundle adhering to any formatting restriction specified by the client; and conveying the client-optimized application to the client via the bundle. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer program product including machine-readable storage having a set of instructions intended to cause a system having an information processing capability to perform an operation for optimizing applications within a deployment server in an on-demand application deployment environment, the operation comprising:
-
performing a first plurality of application optimizations; following performance of the first plurality of application optimizations, receiving by the deployment server a request from a client for an application; dynamically analyzing capabilities of a device upon which the client is hosted; identifying a generic version of the requested application from a generic application data store that stores at least one generic application written in a device-independent fashion; determining whether a client-optimized application exists for the identified generic version of the requested application and the device upon which the client is hosted; upon determining that a client-optimized application does not exist for the identified generic version of the requested application and the device upon which the client is hosted, performing the following steps; matching the client with at least one device profile stored in a profile data store in the deployment server, the matching being based at least in part upon the capabilities of the device upon which the client is hosted; determining attributes specific to the client based upon the matching device profile; and dynamically generating at runtime a client-optimized application based upon the determined attributes and the identified generic version of the requested application by building a plurality of scripts based upon the determined attributes, processing the plurality of scripts within an optimizer engine configured to remove unneeded classes, methods, and fields from the identified generic version of the requested application, and iteratively executing the plurality of scripts to perform a second plurality of application optimizations; identifying at least one software routine that is to be bundled with the client-optimized application so that the client is able to execute the client-optimized application, and creating a bundle including the identified at least one software routine and the client-optimized application, the bundle adhering to any formatting restriction specified by the client; and conveying the client-optimized application to the client via the bundle. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A deployment server in an on-demand application deployment environment, the deployment server comprising:
-
a profile data store configured to store a plurality of attributes for devices and associate different optimization parameters or optimization routines to each of the stored plurality of attributes; a generic application data store configured to store at least one generic application written in a device independent fashion; and an optimizer configured to perform a first plurality of application optimizations, receive a request from a requesting device for an application following performance of the first plurality of application optimizations, and, upon determining that no device-specific application exists for the requesting device, determine attributes of the requesting device, utilize the profile data store to identify optimization parameters or optimization routines associated with the attributes of the requesting device, and dynamically generate a device-specific application based upon data from the profile data store and based upon a generic version of the requested application retrieved from the generic application data store by building and processing a plurality of optimization scripts, wherein unneeded classes, methods, and fields are removed from the generic version of the requested application when generating the device-specific application, and wherein the plurality of optimization scripts are executed iteratively such that a second plurality of application optimizations are performed; an analyzer configured to dynamically analyze capabilities of the requesting device, wherein the analyzed capabilities are translated into the attributes of the requesting device; and a bundler configured to identity machine-readable code to be bundled with the device-specific application in order for the device-specific application to be executable upon the requesting device, and subsequently create a bundle including the identified machine-readable code and the device-specific application, wherein the bundle adheres to any formatting restriction specified by the requesting device, and wherein the bundle is conveyed to the requesting device in response to the request. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification