Open topic with navigation
Defining Licensing Requirements
Before beginning source code integration, it is important to define the application's licensing requirements. Several questions are listed below, which are designed to help you establish a list of requirements for each of your applications.
Basic Requirements
- What types of licenses and restrictions must be applied for your application? Some examples include:
- Evaluation (also known as trial, demo, or shareware)
- Periodic (also known as lease or subscription)
- Non-expiring
- For each type of license which may be issued, should the license expire, and if so, why and when should this occur? Here are some arbitrary examples:
- Evaluation licenses should expire after 30 days.
- Evaluation licenses should expire after 10 uses, or 7 days, whichever occurs first.
- Subscriptions may be purchased, which last 90 days. After 90 days, a subscription renewal may be purchased to extend the license subscription an additional 90 days.
- How reliable is Internet connectivity for your users? Contributing factors which can impact this includes (but is not limited to):
- Internet connection speed and quality. Mobile, dial-up, and satellite connections may be slower or less reliable than other types of connections.
- Personal firewall software, which may block individual applications, and require users to occasionally configure an exception.
- Network firewall configurations may be configured with very restrictive policy.
- Proxy servers sometimes require additional configuration by the end-user, and may also be configured with very restrictive policy.
- Will activation be supported or required? If so...
- Will Internet connectivity be required on the system being activated.
- If Internet connectivity is not available on the system being activated, is it practical to use another system which has Internet access to activate the target system? (This is possible to do by transferring files via removable media, like a USB drive.)
- If Internet connectivity is not available, how else should users be able to activate? (For example, telephone, fax, etc...)
Advanced Requirements
- Will your application allow users to electronically manage their licenses? This can include actions such as deactivating or transferring activated licenses, is only supported when activation is used, and works best with Internet connectivity.
- Will status checking, or phoning-home, be supported or required? (This should be required if users are allowed to deactivate or transfer activated licenses.)
- How often will your application try to perform status checking?
- How often will your application require status checking?
- Does your application have modules and/or features that need to be licensed as well? If so...
- Does each share the application's license? If so, do they only need to be toggled (enabled/disabled) conditionally?
- Does each instead have its own license (meaning these questions should be asked separately for each applicable module or feature)?
- Does your application consist of a suite of applications? (This can be similar to the modules and/or features described above.)
- Does your application run in a networked environment, where a group or groups of users share a single license?
- Does your application need to support pay-per-use restrictions, and require reactivation after each use or several uses?