Challenge

GABOS Software SP. z o. o. as a healthcare software manufacturer faced the problem of how to license products and automate system updates on our clients’ environments together with an increasing number of clients.

This meant the preparation of mechanisms operating both on the side of the infrastructure of GABOS Software SP. z o. o. as well as the clients themselves. It was necessary to prepare software solutions that would allow for easy and real-time control of licenses and system version updates.

The beginning of works

  • At the beginning of the work, it was assumed that the solution must allow unlimited control of new licenses at every stage of product development and allow unique identification of licenses within clients
  • An additional difficulty was that clients within the meaning of signed contracts have many locations that may differ in available licenses. At the stage of analysis, we assumed that an additional solution will be required to control both the general access to modules and their subsequent updates.
  • Licenses should be secured so that they are not transferable between clients and enable licensing of modules per client or per job position.
  • Another aspect of the solution was the preparation of a platform that would make it possible to provide customers with modules available to them based on licenses. Analyzing the solutions available on the market that enable licensing software, we have not found any solutions that meet the criteria set by us.

Realization

We started the task by modifying the database of the medical system so that the key tables for the operation of the system contain information that enables unambiguously linking the client with the license. This solution secured us from transferring licenses between clients. The use of another client’s license that could allow the unauthorized use of redundant module licenses resulted in a disruption to the integrity of the client’s data.

On the basis of these solutions, a dedicated application was created, which, launched at the client’s, allows you to download information about available licenses by connecting to GABOS Software sp. z o. o. systems. Each time the client’s system is launched, it sends to GABOS Software sp. z o. o. systems information about the client’s version and verifies the licenses. In the event of disabling a license for a client or adding a new application, it updates this information directly on the client’s system and enables or disables the availability of modules. Additionally, the medical system itself, based on current license information, verifies and validates the number of licenses for a given module that can be launched at a given time. After exceeding the allowed number of licenses, the user is informed about it and the module cannot be started.

The update application downloads available versions of modules from the infrastructure of Software sp. z o. o. and prepares the system for updating the system at the client’s. The customer can decide when to perform the update due to the fact that sometimes it is necessary to stop the system. The update process itself is automatic. During the update, the necessary changes to the database structures are made and the required dictionaries are loaded. The effect of the update is placing a ready version of the system in the client’s structure that can be automatically distributed.

As part of the expansion of the license-based system, over time, we added the ability for customers to report problems and development topics, as well as download and manage printouts dedicated to the customer.

Over time, the application created for the purpose of licensing was connected to the customer notification system and the software development supervision system.

As a result, a complete system was created where we can both control customer licenses and updates and record customer requests. Decision makers can verify customer information at any time, from licenses through contracts to the status of customer requests. The system has been subject to ISO audits several times and has always been highly rated as a tool for monitoring customer relations.