ILS - Insite License and Support
For a list of typical use cases, click here.
1. Overview
insite GmbH is a software development company. Beside working and developing explicitly for customers, insite develops and sells applications that are highly customizable and can be used to solve a wide range of automation tasks for different purposes and customers. These applications or products are copy-protected by ILS - the "Insite License and Support" system. As the name suggests ILS is not only intended for licensing but also offers support to a customer which means downloading of new software releases and creating issues as a feedback to insite if the customer encounters any problems with a product. The focus of this document is licensing.
2. Components of the ILS
The entire ILS is made out of several parts and applications.
2.1 ILS database
All data regarding products, accounts, users, devices, licenses and their assignment to devices, users and accounts are stored here. The ILS database is running on a server that is accessible via internet.
2.2 ILSClient.dll
This dll is part of every ILS-protected insite application and/or component. It acts as an interface between the licensed application and it's licensing data that is supplied by the ILSService.
2.3 ILSServer
This is the middleware, that handles and hides all the details of the ILS database. Furthermore, the ILSServer defines the web-interface to access the licensing data via a web-based graphical user interface ("WebGUI"). The access to certain functions is limited by the system user role. To add e.g. products and accounts one must be a member of the administrator role. Customers are members of the standard user role and therefore have only limited access sufficient to manage the customer's accounts, members and licenses. The ILSServer runs on a server that is accessible via internet. By the time of writing the URL is
https://ilsserver.azurewebsites.net
Don't confuse ILSServer (runs remotely on the web) and ILSService (runs on the customer's computers).
2.4 ILSService
The ILSService must be installed and running on each computer, that runs a licensed insite application. ILSService manages the licenses and supplies the necessary information to the application and it's components regarding their license state and other license attributes. Just like ILSServer, the ILSService also implements a WebGUI that can be used by the customer for certain functions (e.g. adding a device to the customer's account).
2.5 ILSDesktop
Like ILSService, ILSDesktop is installed on every computer that runs a licensed insite application. It shows the state of ILSService and has a special function to backup and restore licenses from/to the computer. ILSDesktop resides in the system tray, normally located in the lower right corner of the Windows main window's status bar. When right-clicking on the icon, a context menu opens.
2.6 ILSCli
ILSCli offers a command line interface to allow the customer to interact with ILSService, ILSServer and ILSDesktop from within an interactive shell or a shell script.
See
ILSCli - ILS Command Line Interface
for details.
2.7 IlsConfig.json
All applications, that run on the customer's computer (ILSService, ILSDesktop, ILSCli) get their configuration information from this file. The URL of the ILSServer, ILSService and many more settings are stored in this file. During the installation of the ILSService you will call
ILSService.exe configure <PathToTheConfig\IlsConfig.json>
from a command line. This call sets up an environment variable:
IlsConfig=<PathToTheConfig\IlsConfig.json>
Whenever one of the ILS apps needs some information (e.g. the URL of ILSServer), it will look up the IlsConfig.json with the following strategy:
- Read the environment variable IlsConfig. If the variable is defined and the config file can be opened at the specified location, this file is used. If not, proceed with step 2.
- Try to locate the file in the directory '%PROGRAMFILES%\ILS' (%PROGRAMFILES% is a Windows environment variable that normally evaluates to C:\Program Files). If the file is found at this location, use this file. Else process with step 3.
- Lookup IlsConfig.json in the current working directory.
If no file is found at either location, an error will be thrown.
See Example of IlsConfig.json for an overview.
3. Operation principles of the ILS
3.1 Licenses and accounts
A customer buys licenses for a certain insite application and optional components of it. For a new customer, insite creates an account and sets up at least one member that is able to manage users and licenses. For a returning customer this account may already exist, though the customer could also ask insite to manage certain licenses via a different (sub-)account - e.g. for a different division in the same company.
3.2 License activation
An active license is bound to a device - normally a customer's computer or a USB stick (for portable licenses). The customer adds a device to it's account on the ILSServer and assigns one or more licenses to a device. If the target computer is connected to the internet and the ILSServer can be reached by the ILSService, this can be done by clicking a few buttons on the respective WebGUIs. For offline licensing, the customer has to transfer files between ILSServer and ILSService.
See the use case for running a licensed product for a detailed description.
4. Preconditions supplied by insite
4.1 Creation of .ilsproduct-files
- insite GmbH creates a .ilsproduct file that describes the application that will be managed via ILS. This is normally done by a programmer or a programming team at insite GmbH.
- The .ilsproduct-file may be modified or extended by a product manager or a member of the sales team at insite GmbH.
An application is divided into one or more components. The main component is the basic application itself. The application may use further components for different product features that can be licensed individually.
Example: insite's INAXcore supports different optional components e.g. for PLC-access or reading/writing from/to excel files and much more. A customer may buy a basic license for the main application INAXcore. He or she can extend the application by buying further licenses for optional components (e.g. PLCaccess, EXCELaccess, ...), depending on her or his needs.
.ilsproduct-files may also contain attributes that control ILS in a certain way.
Example: An non-licensed application may be allowed to be used for a certain amount of time before it's getting terminated by ILS. This time setting could be one of these attributes (e.g. "UnlicensedRunTime=3600").
4.2 Adding products to the ILS database
- An employee of insite GmbH adds a product to the insite license database. This is done by selecting the product's .ilsproduct-file from within a license management application.
4.3 Adding accounts to the ILS database
- An employee of insite GmbH adds a customer's account to the insite license database. According to the customer's information, a data record is created that contains data like the name of the account, the company name and a description.
4.4 Inviting an initial member to an account
- An employee of insite GmbH invites the initial member to the new account by entering an email address and a member type (see below). The initial member receives an invitation mail and is activated after acknowledging the member ship via a supplied link.
Each member of an account has a certain membership type that limits the access to the account data:
Membership type | Main use | Restrictions |
---|---|---|
Use | view licensing state | can view and download everything, but no changes are allowed |
Operate | activate licenses | same as Use, but is allowed to add new devices and active them |
Maintain | add members | can do everything except changing the account information |
Admin | account management | none, unlimited access |
For a more detailed list, click here.
This is not be confused with the system role. The system role of customers is generally "User".
4.5 Adding licenses
- A sales employee of insite GmbH adds licenses for products and their components to an account. The customer can now assign these licenses to devices.