Professional Documents
Culture Documents
This document provides an overview of the Etelos licensing models for all Etelos products.
Additional licensing models may apply to specific applications. For any additional information
regarding Etelos application licensing, contact Etelos Customer Service at info@etelos.com,
or visit the Etelos website at www.etelos.com.
Applications built in the EDE, EAS, or EASE environments and hosted through the Etelos
Marketplace need to be licensed prior to distribution. This guide will help determine the right kind
of license for your application.
Once you've built your application, you know what it's going to do, how it's going to work, and you
know exactly who will use it. But do you know how you're going to set it so your audience can use
your application? The EDE environment makes it easy for you to determine exactly who can use
your application, how they can use it, and how. The idea is to make it easy as possible for you to
determine the licensing for your product.
Etelos has two levels of application licensing. All licensing code for Etelos products is built into
the application as it is packaged for release in the Etelos Marketplace. The two types of
application licensing supported under the current licensing agreements are:
Simple Licensing
Full Application Licensing
You may require different levels of licensing for different versions of your application. Simple
licensing has a single model of licensing, while Full Application Licensing has several options.
The right option will depend on your application's intended usage.
Licensing Prerequisites
All licensed applications must be hosted on a licensed or owned Etelos application server, or on a
hosting account purchased separately on the Etelos Marketplace store. See
www.etelos.com/marketplace or click here for more information. It is also helpful to have
your application ready to compile – often, licensing the application is one of the final steps in
releasing your application to the Etelos Marketplace.
The developer of the application can choose any kind of licensing agreement with any number of
users, licenses. Your application can have an infinite number of licenses or be limited to a per
application-use license structure – there's no difference in the pricing structure for the type of
license you happen to choose. The complexity of the licensing is up to you.
That depends on what you want to do with your application. The idea behind simple
licensing is that it's, well, simple. The license is applied globally; the application will be usable by
a set number of individuals. When the licenses for an application run out, the customer purchases
a new license. Simple. Full licensing allows the programmer to develop exactly what kind of
licensing you want embedded in the code. If you want to license per account, you can do that. If
you want to license specific privileges within the application, you can do that too. Full licensing
gives you flexibility to make the choices on how your product is used, and gives a wide range of
options for your application's use.
At this point in time, there isn't a model for re-licensing your application without
redeveloping it in the OpenDev packaging software. You can develop and create a new
application that has many of the same features, programs, and application notes with a different
licensing feature, but at this time no simple relicensing exists. You'll have to repackage and re-
release your application to change it.
The royalties, pricing, and development costs are the same whether you choose simple
or full licensing for your application. At this moment in time, there are no plans to increase or
decrease the price based on the type of licensing you choose.
Simple Licensing:
Simple Licensing is the most basic licensing system. A Simple License allows the user to license
the application per user/ per month, with no cap in the number of users. No API functionality is
provided with this level of licensing. This level of licensing is ideal for the simple applications or
small applications built under the Etelos development environment, or for applications that do not
require bandwidth, user access, or download limitations.
Example: After finding the right program, John Q. Burner finds a program and downloads it.
Under the simple licensing model of the application, John can use the application without
limitation up to a preset limit of users (usually ten). If John or his company needs another license
for another user, he goes back to the store to purchase another license. The simple licensing
process is the most simple version of licensing, because it requires the user to purchase more
licenses for the application once the limit has been reached.
Simple Licensing
Allows:
Per user/usage per month (no cap)
No API
Good for basic applications with limited complexity for user needs.
Per Account
Per Account licensing sets full licensing privileges to the application. There are
no access limitations to the application. Per account licensing has no optional
variables to the licensing model for the developer. Per Account licensing permits
full access to the application and allows full functionality without variables or
limitations to the app.
Per Account licensing is the best option for applications that are used directly or
do not share information over a network. The Per Account license is good for
stand-alone applications, for internal business applications that have a high
volume of usage by a single account or user.
Per User licensing allows for a maximum number of users to be licensed, but
also permits scalability of the number of users. One advantage of a Per User
licensing system is that additional users are calculated separately from the base
cost of the application licensing.
Per User Licensing is best for applications that are distributed over a wide array
of users, for applications that require login access, or applications linked to a user
database.
Per User licensing allows the selection of a maximum allowed usage, but also
permits for scalability of the number of use access. Licenses for the usage of the
application can be added from the application. Additional usage charges are
configured separately from the base cost, allowing for scalable access to the
application.
Allows
Included allowance of usage entries (projects, documents, etc)
A maximum allowed usage setting
Additive licenses
Additional usage charge configured separately from base cost
Activate and deactivate usage records without deleting them
Full PHP and EASE API
Etelos Application Licensing Code
EASE API CODE
The following is the specific code necessary to place the application licensing into your
applications. It is important to make sure the code written complies with the examples below to
prevent any conflicts with the application licensing and release.
QUERIES:
Allowed Users: EASE block replaced by number of users allowed including all additive
licenses, the allow additional users flag. If the license type is not Per user or if the allow
additional users flag is set this will return the string “no limit”.
<# query allowedUsers for application "ACME CORP PROJECT MANAGEMENT SOLUTION" . #>
Allowed Usage Entries: EASE block replaced by number of usage entries allowed
including all additive licenses, the allow additional usage flag. If the license type is not
Per usage or if the allow additional usage flag is set this will return the string “no limit”.
<# query allowedUsage for application "ACME CORP PROJECT MANAGEMENT SOLUTION" . #>
Current Users: EASE block replaced by number of current active users on the
application.
<# query currentUsers for application "ACME CORP PROJECT MANAGEMENT SOLUTION" . #>
Current Usage: EASE block replaced by number of current active usage entries on the
application.
<# query currentUsage for application "ACME CORP PROJECT MANAGEMENT SOLUTION" . #>
App Version: Return the version string configured in the application license.
<# query version for application "ACME CORP PROJECT MANAGEMENT SOLUTION" . #>
App License Expiration: Return the longest expiration date for all licenses for the
application specified. If there is no expiration date set this will return the string “none”.
<# query expiration for application "ACME CORP PROJECT MANAGEMENT SOLUTION" . #>
App Status: Returns the status of the application (taking into account both status and
expiration).
<# query status for application "ACME CORP PROJECT MANAGEMENT SOLUTION" . #>
LICENSING:
The general form for licensing requests through EASE form actions format is as follows:
USING DATA: The using data section includes all of the various data fields which are
required for user and usage requests.
NOTE: Using extra data fields in licensing requests will not cause failure. The
tables listed below indicate the mum required data fields for each action.
USER LICENSING ACTIONS
Add Delete Update Activate Deactivate
Last name X X X X X
First name X X X X X
Email X X X X X
Phone X X
Company name X X
User_type X
New_first O
New_last O
New_email O
Count O O O O O
USAGE LICENSING ACTIONS
Add Delete Update Activate Deactivate
Object_id X X X X X
Object_name X X
Count O O O O O
Note that the parameter “Count” is optional in all cases. If this parameter is used, it
should be sent as the current count of users or usage entries prior to your licensing
action. Should this number differ from the billing information on the Etelos licensing
server, this provides the developer with an alert that there is a discrepancy with one of
your customer licenses. If you do not use this parameter to send in the current
user/usage counts, the discrepancy alert will always be “on”.
QUERIES
License Query Full: Returns all the data about a license in a parseable format.
EASLicQueryLicenseFull("ACME CORP PROJECT MANAGEMENT SOLUTION");
Return:
action_success: users allowed: [25] usage allowed: [no limit] current users: [7]
current usage: [13] expire date: [none] status: [active] version: [professional]
License Query State: Returns either true or false based on if the license is active AND
not expired.
Return:
true
License Query Version: Returns a string that is simply the license version.
EASLicQueryLicenseVersion("ACME CORP PROJECT MANAGEMENT SOLUTION");
Return:
professional
License User Action: Accepts a user licensing action and returns a string containing
“action_success” or “action_failure”. On a failure, the return string also includes the error
message.
Parameters:
EASLicUserAction(action: add, delete, update, activate, or deactivate
app_name: developer designated application name
count*: count of active users prior to this licensing action
first, last, email, company, phone: users data
user_type: allows two values, user or admin.
*If you are not using the out-of-sync warning, pass 0 for count.
Example:
EASLicUserAction('add', "ACME CORP PROJECT MANAGEMENT SOLUTION",
'0','john','doe','john@etelos.com','Etelos',
'206-999-1111','user');
Return:
action_success: user_added_on_store
action_failure: attempt_to_add_non_unique_user
License Usage Action: Accepts a usage licensing action and returns a string containing
“action_success” or “action_failure”. On failure the return string also includes the error
message.
Parameters:
EASLicUsageAction(action: add, delete, update, activate, or deactivate
app_name: developer designated application name
count*: count of active users prior to this licensing action
object_name: user friendly name for the usage entry
object_id**: unique usage id
* If you are not using the out-of-sync warning, pass 0 for count.
** The Usage ID only needs to be unique in the specific installation of the application it is running in, not across
all installations or servers.
Example:
EASLicUserAction('add', "ACME CORP PROJECT MANAGEMENT SOLUTION",
'0','Project to Manage Printing','ab28d97');
Return:
action_success: usage_added_on_store
action_failure: attempt_to_add_non_unique_usage