OpenLM provides a technology that allows companies to get more out of their existing license pool. The principal is that the license is automatically released back to the license pool when the application is not in use. OpenLM provides a ready made solution for software systems such ESRI ArcGIS and Autodesk software. Integration of OpenLM functionality into custom application based on components from these companies is easy and provides huge benefits.
How does it work
OpenLM is a modular software that was designed in several layers. The most significant layers are:
- OpenLM Server
- OpenLM Agent
- OpenLM Extension
OpeLM Server is the mastermind that holds the brains of the software. It is the coordinator between the license manager and all other components of the OpenLM application (such as easyadmin, OpenLM,Agent, OpenLM Broker etc..).
OpenLM Agent is the the agent that resides at the end-user’s workstation and it is in charge of the communicating channel with OpenLM Server. The agent connects periodically with the server and receives instructions according to the policies that were defined at the server’s console.
OpenLM Extension is a piece of software that is attached to the software that is monitored by OpenLM. An example to such software can be ESRI Desktop ArcGIS (also ArcEngine applications) or Autodesk Autocad. The extension inspects the activity of the monitored software and reports it to OpenLM Server by using OpenLM Agent communication services.
Openlm Extension reports parameters like software idleness or CPU consumption. It also responds to server originated orders like “Shut down”. When the monitored software is idle and the licence it consumes is required, The server sends shutdown command which the Extension needs to carry on.
What do I need to do in order to incorporate OpenLM’s capabilities in my software?
In order to “OpenLM enable” your software, you need to create your own Extension. It is much simpler than you may imagine since you only need to implement the top layer of the Extension.
As mentioned before, OpenLM software is modular and the Extension is also built as several layers:
- Communication layer – in charge of communication with OpenLM Agent.
- Monitoring layer – measures the software’s status (IO, CPU, idleness).
- Janitor layer – provides system data (like software name and provider names) and performs instructions that are sent from the server (such as: “Save and shutdown current state”).
The first two layers already exist. You need to implement only the Janitor layer.
In code, it is much simpler:
- Reference “OpenLM_Extension” dll.
- Create a class that implements “OpenLM.Extension.IOpenLMExtension” interface. The main function to implement is “ShutDown” function which is in charge of closing the software.
Note: the developer can override the Server’s ruling and decide against OpenLM Server advice.
- Instantiate this object on application startup.
Code samples for ESRI Desktop ArcGIS versions 9.3 and 10 (with FLEXnet FLEXlm license manager) can be found on our website downloads area.