Домашняя страничка Стефурак П.Б. Система контроля и анализа использования лицензий на программное обеспечение, использующее Macrovision LMTOOLS (AutoDESK AutoCAD, CSOFT и др.).
 
     Домашняя Промзона Спальный район  

Промзона \ Контроль и анализ использования лицензий на ПО.
Система контроля и анализа использования лицензий на программное обеспечение, использующее Macrovision LMTOOLS (AutoDESK AutoCAD, CSOFT и др.).

 

  На предприятии, где я сейчас тружусь, используется много всякого ПО (все лицензионное!) и в частности AutoDESK AutoCAD и несколько продуктов компании Consistent Software (CSOFT).
  Сетевые лицензии на данное ПО контролируются Macrovision LMTOOLS, который установлен на сервере, к которому (к серверу) с одной стороны привязан лицензионный файл AutoDESK для AutoCAD и с другой - ключ аппаратной защиты и лицензионной файл продуктов компании Consistent Software. Конфигурация стандартная, кроме того факта, что таких серверов 2 (в разных городах) и списки ПО и соответственно лицензий на них не совпадают.
  С некоторого времени пользователи стали жаловаться на недоступность сетевых лицензий.
  Штатная оснастка Macrovision LMTOOLS (LMTOOLS.exe) дает необходимую информацию, но уж очень скучно и некрасиво.
  Кроме того, выяснилось, что бывает ситуация, когда лицензируемые продукты не возвращают занятые лицензии по разным причинам и чтобы с этим бороться есть разные способы (опция установки тайм-аута возврата лицензии при неактивности или перезапуск сервера лицензирования).
  Взвесив "за" и "против", я решил написать свое решение для:
  • наглядного представления информации об используемых лицензиях;
  • хранения истории использования лицензий;
  • выполнения автоматических действий по событиям, связанным с лицензированием ПО.
     
    Release.

      Система состоит из 2х частей:
  • ПО, опрашивающее сервера лицензирования, и сохраняющее данные в БД;
  • web-приложение, позволяющее визуализировать данные о лицензируемом ПО.
      Первая часть системы - программа, осуществляющая опрос серверов лицензий: lmtool_lic_view.zip.
      После запуска, она периодически опрашивает сервера лицензий, и (при наличии настроек):
  • Записывает данные о лицензиях в БД (скрипт создания таблицы находится в файле Lic_used.sql архива);
  • Записывает полный ответ сервера лицензирования в БД (скрипт создания таблицы находится в файле Lic_LogFiles.sql архива);
  • При определенных условиях, посылает серверу лицензирования сигнал на перезагрузку (пример, с использованием PsService - Service information and configuration utility Copyright (C) 2001-2010 Mark Russinovich, в файле CSOFT_nls_restart.bat архива).
      Настройки ПО хранятся в INI файле, который должен располагаться в том же каталоге, что и exe файл:
    Секция [System]
    timerInterval= - интервал опроса, в мин;
    db_connection_string= - строка подключения к серверу БД, вида "Provider=SQLOLEDB.1;User ID=User; Password=User_password;Persist Security Info=True;Initial Catalog=main_db; Data Source=db_server_name;Use Procedure for Prepare=1;Auto Translate=True;". Если данная переменная не заполнена, или она ссылается на несуществующий сервер БД, то никакие операции с БД не выполняются;
    write_logfile_to_DB= - если 1, то в таблицу Lic_LogFiles базы данных main_db сервера db_server_name будут сохраняться оригинальные полные отчеты сервера лицензирования. Любое другое значение - запись отчетов не выполняется;
    temppath= - путь к временной папке, например c:\temp.
    Секции описания серверов лицензирования [ServerN] (N=номер 1..99)
    name= - полное имя сервера лицензирования;
    komment= - комментарий, в моем случае - город, где расположен сервер лицензирования;
    adskflex=AutoDESK, CSOFT=CSOFT - "расшифровка" имен "демонов" сервера лицензирования;
    CSOFT_restart_cmd=cmd.exe /c CSOFT_nls_restart.bat - команда, выполняемая для рестарта службы "демона" лицензирования (в данном случае - CSOFT, для AutoDESC будет выглядеть например так: adskflex_restart_cmd=cmd.exe /c AutoDESC_nls_restart.bat);
    85730ACD_2012_0F=AutoCAD 2012, Spds=СПДС 7, EnergyCS_UR=EnergyCS УР, EnergyCS_TKZ=EnergyCS ТКЗ, и т.д. - расшифровка названий программных продуктов, на сервере лицензирования;
    Алгоритм работы (повторяется с периодичностью "timerInterval" для каждого сервера, описанного в "[ServerN]"):
    1. Запрос к серверу лицензирования, через утилиту "lmutil";
    2. Если "write_logfile_to_DB"=1 и "db_connection_string"<>"", запись ответа в таблицу "Lic_LogFiles" БД "main_db" сервера "db_server_name";
    3. Анализ ответа сервера лицензирования:
        3.1. определение "демона";
        3.2. определение лицензии и ее показателей (всего, использовано);
        3.3. запись в таблицу "Lic_used" БД "main_db" сервера "db_server_name" данных о лицензии;
        3.4. если для данного "демона" данного сервера определена команда на перезапуск, проверка "всего"=="использовано". Если "да", выполнение команды перезапуска "демона".

      Вторая часть системы - web приложение, позволяющее визуализировать данные о лицензируемом ПО.
      Возможности:
  • Сводный график и таблица использования лицензий на ПО в течении дня, на определенную дату:
       
       
  • Произвольная фильтрация отображаемых лицензий, серверов, "демонов", дат и т.д.:
       
  • Просмотр ответов серверов лицензирования в исходном виде:
       

      Теперь всегда, на любую дату, есть информация о том, кто, какую лицензию использовал, как в целом по предприятию, так и персонально.
     
      lmtool_lic_view.zip    PsService - Service information and configuration utility Copyright (C) 2001-2010 Mark Russinovich
       
     
  •