The Main Features
Run on your own server
Keep all your data on your own server, 100% private and under your own control, and running completely independently.
Shared hosting is fine, either Linux or Windows – all you need is to be able to run PHP and MySQL.
Backup, download, modify, use and control your MySQL database of licensing data in any way you like.
Either monthly leasing or own the whole system outright.
Free upgrades and support – we won’t try to squeeze more money out of you.
Use the system for any number of products sold by your company.
The only restriction is that you can use the licensing system from one domain only.
Use with any Platform
. . .
TrackMySoftware is platform independent and can be used with any operating system and programming language.
Can be used with Smartphones, tablets, laptops, desktops, and any operating system.
License details and unique DeviceIDs are stored on the server, not on the local machine
Use it via a simple http:// interface. If you can open a URL from your application and read the result, in either plain text, XML, or JSON (your choice), then you can use TrackMySoftware.
See also Requirements
Strong public-key encryption
TrackMySoftware uses strong, uncrackable public-key encryption for client-side encryption and storage of variables. This is initially only available on Windows, but will be available on other platforms later.
1024-bit RSA encryption with OAEP padding scheme
You can also use your own client-side system for storing variables, or on platforms where the client-side encryption module is not yet available.
- Variables need to be stored on the user’s machine in case your application has no internet access, or internet access is blocked.
- If your application has internet access, then it can determine the registration / license status from the server each time it is run.
Easy to use
The system has been designed with ease of use as a priority.
The API has been kept as simple as possible, with all the complexity handled automatically on the server. There is a very small learning curve.
In your application there is one important API call to make to the web server: GetStatus.
This tells you whether the user should be allowed unrestricted access to the application or not.
- Changes of status and licensing are set on the server via an interface not available to the user.
Trial / Register
Easily create a trial version of your application with a time limitation and/or limited features. Users will only get one trial period on a specific computer, even if they uninstall the application and install it again.
You will see tracking data in the online database every time a user installs your application.
Then let the user register and purchase a license:
You create the license on the server, either manually or through the API.
The details of the license, such as status, type, options, etc. are set on the server.
Send the License Key to the user, and he enters it in the application.
The application then requests the status using the License Key, and picks up the new status.
The application checks the status on the server each time it runs, and if you change the license it will pick up any changed status.
An offline encrypted license file with a timeout is also created, so that if the user is temporarily offline he can still run the application.
Unique cross-device licensing
This is a unique and useful licensing feature available with TrackMySoftware. It is optional – one of several different ways of using the system.
The TrackMySoftware system can limit the number of simultaneous users of a license.
If a license is for one user only, then only one copy of the application using that license can be active at a time.
So the user can close the application on his desktop and then run it on his laptop on the same license. It doesn’t matter what machine he is using – the only restriction is that only one copy can be active at a time using that license.
How does it work?
- The application checks with the server when it starts up, and notifies the server when it closes.
- If it is not closed properly, or if there is no online access when it closes, then there is a timeout mechanism, and the situation is handled elegantly.
- The server tracks usage of the license using the unique DeviceIDs of the devices it runs on.
- Often users today have more than one machine – desktops, laptops, tablets, smartphones, work machines, home machines. If they have purchased a license for the application they will be able to use it on any device, as long as only one copy is active at a time.
- Nothing has to be manually changed or moved from one machine to another. It’s all completely automatic.
- If they give the license details to anyone else, their own usage will be blocked if someone else is using that license.
You can revoke or change licenses any time.
It is simple to implement in your application, as almost all the logic is handled automatically on the server.
You can also issue one license for a whole site or company.
You specify the maximum number of simultaneous users of the application, and the system will not allow more users than that on that license.
This works in exactly the same way as the Cross-device Licensing described on the previous tab, except that the maximum number of simultaneous users is greater than one.
This makes it simple to issue a license to a company – and ensure that they do not exceed the maximum number of users they are licensed for.
Single device licensing
If you want to, you can tie a license to a specific machine (using a unique DeviceID), so that it can’t be used on any other computer.
This may be useful in some cases, but it means that if the user buys a new machine, or if he wants to use use your application on another machine he owns, then he will have to contact you to change the license.
Change / revoke license
Do you want to change the license of a specific user?
No problem, just change it on the server. They will see the change the next time they run the application – without having to do anything from their side.
Problems with a license?
You can revoke it so that it won’t work any more.
You can also specify a string with any license options or any other information you like, which will be sent to your application to be used in any way you choose.
Custom license options
For each user you can specify an arbitrary string with additional license options.
This will be sent to the application when you check the license status. It can be modified only from the back end, either manually or through the API.
This gives you you the flexibility to turn features on or off according to which license options the user has registered for.
User feedback / info
User feedback can be sent from your application to your online database.
For example, when a user uninstalls a trial version, you can ask them to enter a reason. Or, if there is a bug or a problem, the user can report it from within the application.
The user’s name and email address can optionally be submitted, as well as the feedback text.
Feedback can optionally be emailed to you as soon as it is sent by the user (as well as
being stored in the database).
Each product can have a different email address.
Every time anyone installs your application, you will be able to see the location –
Country, Region and City – as well as a unique DeviceID, your application version, and customizable info fields which can be used for any other information you like.
You can optionally specify that an email will be sent to you each time a copy of your application is installed or uninstalled. Each product can have a different email address.
Secure back-end admin
The secure database on your server contains all license information and user data. You can log in to this back-end database to view and edit any data manually, or use the Developer API to generate licenses and add users as part of an automatic registration process.
The User API or license checking system is completely separate from this, so that no information which could possibly be used to generate or change a license is ever distributed with an application.
You can create users and user groups with limited rights in the admin database, so that some functions can be delegated to staff.