Method of generating and distributing a computer application
First Claim
1. A method for producing custom computer applications, comprising the steps of:
- storing in an application distribution system specifications of the computer applications in a platform-independent language;
receiving signals at the application distribution system from a remote client device comprising a request for delivery of a specified application for execution on the remote client device by a customer;
interrogating the remote client device to construct a device configuration thereof, defining characteristics and capabilities of the remote client device, wherein interrogating the remote client device to construct the device configuration comprises;
running benchmark and application tests in order to discover characteristics of the remote client device; and
invoking a device fingerprinting subsystem to analyze results of the benchmark and application tests to identify device characteristics of the remote client device and responsively to the device characteristics to determine whether the remote client device can be associated with a known device configuration in a device repository; and
in an event that the device repository lacks the device configuration of the remote client device, adapting the device repository to the device configuration by storing the device configuration of the remote client device therein;
obtaining a user configuration of the customer, the user configuration comprising personal preferences of the customer;
establishing a compilation configuration according to the device configuration and the user configuration;
applying the compilation configuration to the platform-independent language of the specified application so as to create or modify a compiled application comprising user-specific and device-specific code in a binary format that is adapted to run on the remote client device and includes customized content compliant with the personal preferences expressed in the user configuration; and
downloading the compiled application to the remote client device.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor is operative to store specifications of computer applications in a platform-independent language. A remote client device requests delivery of a specified application for execution thereon. The processor interrogates the remote client device to construct a device configuration, comprising characteristics and capabilities of the remote client device. The processor also obtains a user configuration, and establishes a compilation configuration according to the device configuration and the user configuration. A compiled application in binary format is produced using the compilation configuration and the platform-independent language of the specified application. The compiled application includes customized content and is adapted to run on the remote client device. The processor causes the compiled application to be downloaded to the remote client device.
83 Citations
27 Claims
-
1. A method for producing custom computer applications, comprising the steps of:
-
storing in an application distribution system specifications of the computer applications in a platform-independent language; receiving signals at the application distribution system from a remote client device comprising a request for delivery of a specified application for execution on the remote client device by a customer; interrogating the remote client device to construct a device configuration thereof, defining characteristics and capabilities of the remote client device, wherein interrogating the remote client device to construct the device configuration comprises; running benchmark and application tests in order to discover characteristics of the remote client device; and invoking a device fingerprinting subsystem to analyze results of the benchmark and application tests to identify device characteristics of the remote client device and responsively to the device characteristics to determine whether the remote client device can be associated with a known device configuration in a device repository; and in an event that the device repository lacks the device configuration of the remote client device, adapting the device repository to the device configuration by storing the device configuration of the remote client device therein; obtaining a user configuration of the customer, the user configuration comprising personal preferences of the customer; establishing a compilation configuration according to the device configuration and the user configuration; applying the compilation configuration to the platform-independent language of the specified application so as to create or modify a compiled application comprising user-specific and device-specific code in a binary format that is adapted to run on the remote client device and includes customized content compliant with the personal preferences expressed in the user configuration; and downloading the compiled application to the remote client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An application distribution system for producing custom computer applications, comprising:
-
a processor; a memory accessible to the processor storing programs and data objects therein, wherein the programs and data objects further comprise a device repository comprising configurations of known types of remote devices and a device fingerprinting subsystem, wherein execution of the programs causes the processor to perform the steps of; storing specifications of the computer applications in a platform-independent language; receiving signals from a remote client device comprising a request for delivery of a specified application for execution on the remote client device by a customer; interrogating the remote client device to construct a device configuration thereof, comprising characteristics and capabilities of the remote client device, wherein interrogating the remote client device to construct the device configuration comprises; running benchmark and application tests in order to discover characteristics of the remote client device; and invoking the device fingerprinting subsystem to analyze results of the benchmark and application tests to identify device characteristics of the remote client device and responsively to the device characteristics to determine whether the remote client device can be associated with a known device configuration in the device repository in an event that the device repository lacks the device configuration of the remote client device, adapting the device repository to the device configuration by storing the device configuration of the remote client device therein; obtaining a user configuration of the customer, the user configuration comprising personal preferences of the customer; establishing a compilation configuration according to the device configuration and the user configuration; applying the compilation configuration to the platform-independent language of the specified application so as to create or modify a compiled application comprising user-specific and device-specific code in a binary format that is adapted to run on the remote client device and includes customized content compliant with the personal preferences expressed in the user configuration; and downloading the compiled application to the remote client device. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer software product for producing custom computer applications, including a non-transitory computer storage medium in which computer program instructions are stored, which instructions, when executed by a computer, cause the computer to perform the steps of:
-
storing in an application distribution system specifications of the computer applications in a platform-independent language; receiving signals at the application distribution system from a remote client device comprising a request for delivery of a specified application for execution on the remote client device by a customer; interrogating the remote client device to construct a device configuration thereof, defining characteristics and capabilities of the remote client device; maintaining a device repository comprising configurations of known types of remote devices, wherein interrogating the remote client device to construct the device configuration comprises; executing a device fingerprinting subsystem operative for running benchmark and application tests in order to discover characteristics of the remote client device; and invoking the device fingerprinting subsystem to analyze results of the benchmark and application tests to identify device characteristics of the remote client device and responsively to the device characteristics to determine whether the remote client device can be associated with a known device configuration in the device repository; in an event that the device repository lacks the device configuration of the remote client device, adapting the device repository to the device configuration by storing the device configuration of the remote client device therein; obtaining a user configuration of the customer, the user configuration comprising personal preferences of the customer; establishing a compilation configuration according to the device configuration and the user configuration; applying the compilation configuration to the platform-independent language of the specified application so as to create or modify a compiled application comprising user-specific and device-specific code in a binary format that is adapted to run on the remote client device and includes customized content compliant with the personal preferences expressed in the user configuration; and downloading the compiled application to the remote client device. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification