За 3 недели перевели ПО на новую модель управления лицензиями, не меняя ни строки в коде

Бессрочные лицензии с привязкой к флешке как модель монетизации цифрового продукта — это надежно, но негибко. Отсутствует возможность контролировать работу программы, а пользователи могут скопировать токены с флешки и подключить ее к нескольким устройствам.
На примере кейса для строительной компании рассказываем, как можно, не меняя ни строки в коде основного ПО, убрать все риски, связанные с бессрочными лицензиями на цифровой продукт.
Задача:
перевести продукт заказчика на новую модель монетизации, реализовать контроль и управление лицензиями.
Решение:
разработали сервер лицензий с административной панелью и создали фоновую «Службу управления лицензиями».

Клиент

ООО «ПСП «Стройэкспертиза» — компания, специализирующаяся на строительном проектировании и обследовании конструкций, а также разработке программной продукции в сфере строительства.

Деятельность компании прошла лицензирование Госстроя и Гостехнадзора РФ.

Ситуация до начала проекта

Компания создает собственное программное обеспечение для выполнения расчетов в разных областях строительной практики и продает доступ к нему. ПО заказчика работало по принципу «одна лицензия — одно устройство» без возможности гибкого управления сроками доступа.

Все лицензии были бессрочными.

Существуют разные модели монетизации цифровых продуктов. Как правило, компании отталкиваются от объема средств, потраченных на привлечение клиента. Если сфера требует длительного вовлечения клиента и больших маркетинговых затрат, то разовая сделка и бессрочный доступ могут быть менее выгодны, чем продажа подписок. Важно учитывать LTV (пожизненную ценность клиента).

Клиент понял, что бессрочная модель невыгодна, поэтому обратился за проектом, который должен решить ряд проблем:

  • отсутствие возможности отслеживать актуальное число установок — без контроля нельзя понять реальное количество активных пользователей и устройств;
  • невозможность блокировать недобросовестных пользователей, которые используют программу на нескольких устройствах, скопировав токен, что приводит к потере прибыли;
  • отсутствие единого центра для управления лицензиями, где менеджеры могли бы задавать сроки действия, продлевать подписки, выпускать новые лицензии и т.д.

В итоге было принято решение создать отдельный инструмент для управления подписками, что избавит бизнес заказчика от упущенной выгоды, проблем и рисков.

Цель и задачи

Цель проекта — создать решение для управления лицензиями с периодической интернет-проверкой и сохранением существующего механизма аппаратной привязки.

Задачи:

  1. Разработать серверную систему управления лицензиями, обеспечивающую их валидацию, синхронизацию и учет устройств.
  2. Создать системную службу для управления лицензиями, где осуществляется фоновая проверка лицензии.
  3. Реализовать админ-панель управления для менеджеров с возможностью просмотра, выдачи и блокировки лицензий.
  4. Доработать поддержку разных типов лицензий: временных с указанием срока (подписка) и бессрочных.

Архитектура решения

Мы не вмешивались в исходный код клиентского ПО и не меняли его бизнес-логику, так как клиента полностью устраивал функционал, ошибок в системе не было, а проблема была только в активации подписок. Для решения этой задачи мы разработали отдельную инфраструктуру, состоящую из сервера лицензирования, разработали «Службу управления лицензиями», настроили административную панель для управления, связали все доработки между собой и клиентским ПО.

Сервер лицензирования

Так как у клиента оставался ряд корпоративных заказчиков, которые работают в закрытом информационном контуре, необходимо было сохранить возможность покупки по бессрочной лицензии. Мы создали сервер, который учитывает разные модели: лицензии с ограниченным сроком (подписки) и бессрочные лицензии. Сервер лицензирования централизованно управляет полным жизненным циклом ключей: их выпуском, активацией, продлением, блокировкой, деактивацией и детальным аудитом.

Служба управления лицензиями

Мы разработали фоновую «Службу управления лицензиями», которая работает как системный посредник между основным ПО и сервером лицензий. ПО продолжает работать в привычной логике. При запуске оно обращается к локальной службе и получает ответ о статусе лицензии.

Служба обеспечивает проверку лицензий по расписанию, поддерживает льготный офлайн-период при временном отсутствии соединения, хранит лицензионные данные в зашифрованном виде и фиксирует события.

Основное ПО взаимодействует только со службой через внутренний защищенный канал, а сама служба уже выполняет обмен с серверной инфраструктурой по защищенному соединению.

Административная панель

Для управления всей системой мы создали административную панель. При помощи ее менеджеры могут выпускать новые лицензии, задавать сроки действия, продлевать подписки, учитывать бессрочные лицензии.

Дополнительно была реализована система ролей доступа для разграничения полномочий между администраторами и менеджерами. Администратор может блокировать подозрительные активации, деактивировать ПО на устройствах и просматривать историю всех операций.

На панели наглядно представлена вся информация об активации, проверках, продлении и изменении статусов.
 

Результат

 

Проектная команда в составе менеджера, системного аналитика, программиста и тестировщика реализовала проект за 3 недели.

Создание серверной системы лицензирования и «Службы управления лицензиями» позволило заказчику реализовать новый способ монетизации продукта. Компания «Стройэкспертиза» получила полный контроль и управление лицензиями без изменений в существующем ПО. Такой подход позволил избежать дорогостоящей переработки архитектуры и обеспечить единый механизм лицензирования для Windows и Linux.

Разработанное решение позволило:

  • защитить программу от копирования, так как теперь это стало технически невозможно;
  • создать для менеджеров удобную административную панель для управления лицензиями;
  • упростить контроль за использованием лицензий за счет журналирования подключений.

Не всегда нужно переписывать код существующей программы, порой достаточно добавить отдельный модуль для решения конкретной задачи, чтобы подстроиться под новые бизнес-процессы.

Опытная команда поможет разобраться, когда без изменений ядра не обойтись, а когда можно ограничиться доработкой внешнего контура, сократив тем самым сроки и риски.

Понравился проект?
Звоните! Проконсультируем и рассчитаем стоимость проекта бесплатно!