Licensing the developer and the plugin

Terminology

In this document the term customer refers to the end user of a Trimble surveying product (eg, a surveyor), and the term developer refers to a person or organization that creates a plugin module that a customer can purchase.  In some cases, a developer may also be the customer.

Existing licensing and installation for customers

The Trimble Access installation environment for customers includes the means to purchase and install applications.  To support this is a licensing system which generates a license for each application that has been purchased for a controller.  The term "controller" includes all supported mobile devices, such as the TCU, the TSC2, the TSC3 and the Trimble Tablet, and additionally includes desktop computers.  All mobile devices and desktop computers are identified by a serial number, and each licence will apply to just one serial number/application combination.

Licensing the SDK

The same licensing system is used to license the SDK to plugin developers as well as the plugins they develop.  At run time, a plugin must register itself with Survey Core by providing a product GUID (amongst other things).  This identifier allows the plugin to be licensed in the same manner as other Trimble Access products.

The plugin must register itself with its GUID before it can be used by a customer.  If a valid licensed GUID is not registered then the plugin application will not be run.  Developers can use the any random unique GUID to get started because if the GUID is not recognised in the development environment then the developer's SDK license is used instead.  This allows developers to easily test their plugins and collaborate with other developers outside of licensing restrictions, while preventing uncontrolled plugin dll's being traded and copied between customers.

Once a GUID has been registered with Trimble as a valid product, it must not be changed in the plugin.

The licensing functionality includes:

Some notes about the above points:

The ability for the developer to choose from a variety of available versions of the SDK and install it.

Trimble Access Installation Manager (TAIM) has the ability to check for a license and offer to install any suitably licensed TA application on the device or on the desktop.  The developer SDK is included in the list of installable applications.  Customers do not see this option, unless they have purchased the SDK. 

TAIM also installs the Survey Core "emulator" to allow the developers to test their plugins.  A significant advantage is that the developer is guaranteed to have a version of the SDK which exactly matches the installed version of Survey Core - this will reduce the incidence of problems due to version mismatches.

To selectively allow developers to access both production and development builds of Survey Core

Under normal circumstances, plugin developers have access to the most recently released production build of Survey Core and the SDK that matches it.  Trimble also has the ability to create one or more "sandboxes".  A sandbox is a complete installation of some version of Trimble Access, which includes Survey Core and the SDK.  A sandbox of the same version as the current release will always be available, and other versions may be made available from time to time.

Licensing the plugin for testing

The ability of a plugin to adopt the developer's SDK licence allows any plugin written by a developer to run, so that they do not need to register their plugin with Trimble as a product in order to simply run, debug or test it.  When the plugin is finished and becomes a distributable product it would then be assigned its own license and added as a downloadable product.  A customer cannot use a developer's plugin except through official Trimble sales channels.

Obtaining license information programatically

The tsc_LicenseInformation class allows a plugin to obtain license information for any plugin or Trimble Access software product, provided the GUID of the product is known.