Non-invasive metering system for software licenses
First Claim
1. A computer-implemented method for metering use of software, the method comprising:
- establishing an application usage account for a user, the application usage account having an account balance;
receiving, from a third-party software publisher, an unmodified executable for a third-party application of the third-party software publisher;
receiving configuration information specifying runtime properties of the third-party application, the specified runtime properties comprising a runtime behavior of the third-party application in response to an absence of a network connection of the third-party application with a remote metering server;
producing an encrypted executable by encrypting the unmodified executable;
generating a secure application package for distributing the third-party application, the secure application package comprising;
the encrypted executable,the received configuration information, anda loader separate from the encrypted executable that when executed on a computing device;
allocates, within memory of the computing device, a template process with an empty code segment;
decrypts the encrypted executable into the empty code segment within the memory of the computing device, without storing the decrypted executable to durable storage of the computing device; and
launches a shell application for controlling metering of the third-party application at runtime;
providing to a remote computing device of the user, the secure application package and the shell application;
receiving from the shell application executing on the remote computing device an authentication request including credentials of the application usage account of the user;
verifying the received credentials;
responsive to verifying the received credentials, providing an indication to the shell application that it may enable use of the third-party application on the remote computing device by decrypting the encrypted executable;
receiving, at periodic intervals from the shell application executing on the remote computing device and controlling execution of the third-party application on the remote computing device using the configuration information of the secure application package, an indication of usage time of the third-party application by the user; and
responsive to receiving the indications of usage time from the shell application, tracking time of use of the third-party application and deducting a corresponding amount from the account balance of the user based on the time of use.
1 Assignment
0 Petitions
Accused Products
Abstract
A non-invasive metering system enables on-demand, metered usage licensing of software applications. A packaging module generates a secure application package for an original, unmodified application authored by a software publisher. The software publisher need not directly modify the code of the original application. Rather, the packaging module includes, within the secure application package but separate from the code of the application itself, a shell application that controls runtime aspects of the application, such as metering of the application. The secure application package is made available to users wishing to use the application on a metered basis. When users use the secure application package, a specialized loader process extracts from the secure application package executable code for the application and for the shell application, and executes the shell application, which in turn authenticates the user and executes the application the using the executable code extracted from the secure application package.
-
Citations
20 Claims
-
1. A computer-implemented method for metering use of software, the method comprising:
-
establishing an application usage account for a user, the application usage account having an account balance; receiving, from a third-party software publisher, an unmodified executable for a third-party application of the third-party software publisher; receiving configuration information specifying runtime properties of the third-party application, the specified runtime properties comprising a runtime behavior of the third-party application in response to an absence of a network connection of the third-party application with a remote metering server; producing an encrypted executable by encrypting the unmodified executable; generating a secure application package for distributing the third-party application, the secure application package comprising; the encrypted executable, the received configuration information, and a loader separate from the encrypted executable that when executed on a computing device; allocates, within memory of the computing device, a template process with an empty code segment; decrypts the encrypted executable into the empty code segment within the memory of the computing device, without storing the decrypted executable to durable storage of the computing device; and launches a shell application for controlling metering of the third-party application at runtime; providing to a remote computing device of the user, the secure application package and the shell application; receiving from the shell application executing on the remote computing device an authentication request including credentials of the application usage account of the user; verifying the received credentials; responsive to verifying the received credentials, providing an indication to the shell application that it may enable use of the third-party application on the remote computing device by decrypting the encrypted executable; receiving, at periodic intervals from the shell application executing on the remote computing device and controlling execution of the third-party application on the remote computing device using the configuration information of the secure application package, an indication of usage time of the third-party application by the user; and responsive to receiving the indications of usage time from the shell application, tracking time of use of the third-party application and deducting a corresponding amount from the account balance of the user based on the time of use. - View Dependent Claims (2, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15)
-
-
6. A computer program product comprising instructions stored on a non-transitory computer-readable medium, the instructions configured to cause a processor to perform a method comprising:
-
establishing an application usage account for a user, the application usage account having an account balance; receiving, from a third-party software publisher, an unmodified executable for a third-party application of the third-party software publisher; receiving configuration information specifying runtime properties of the third-party application, the specified runtime properties comprising a runtime behavior of the third-party application in response to an absence of a network connection of the third-party application with a remote metering server; producing an encrypted executable by encrypting the unmodified executable; generating a secure application package for distributing the third-party application, the secure application package comprising; the encrypted executable, the received configuration information, and a loader separate from the encrypted executable that when executed on a computing device; allocates, within memory of the computing device, a template process with an empty code segment; decrypts the encrypted executable into the empty code segment within the memory of the computing device, without storing the decrypted executable to durable storage of the computing device; and launches a shell application for controlling metering of the third-party application at runtime; providing to a remote computing device of the user, the secure application package and the shell application; receiving from the shell application on the remote computing device an authentication request including credentials of the application usage account of the user; verifying the received credentials; responsive to verifying the received credentials, provide an indication to the shell application to enable use of the third-party software application on the remote computing device by decrypting the encrypted executable; receiving, at periodic intervals from the shell application executing on the remote computing device and controlling execution of the third-party application on the remote computing device using the configuration information of the secure application package, an indication of usage time of the third-party application by the user; and responsive to receiving the indications of usage time from the shell application, tracking time of use of the third-party application and deducting a corresponding amount from the account balance of the user based on the time of use. - View Dependent Claims (7, 8, 16, 17, 18, 19, 20)
-
Specification