Статьи

OpenSource License Manager

Что такое менеджер лицензий?

Менеджеры лицензий используются для обеспечения соблюдения лицензионных прав или, по крайней мере, для поддержки реализации. Когда вы разрабатываете программу с открытым исходным кодом, вам не нужно или не нужно ничего делать для обеспечения соблюдения лицензионных прав. Код есть, и если кто-то просто хочет злоупотребить программой, нет ничего технического, что могло бы их остановить. Программы с закрытым исходным кодом разные. (Являются ли они?) В этом случае исходный код не доступен для клиента. Невозможно изменить программу так, чтобы она обошла код исполнения лицензии, и, таким образом, существует реальная роль в обеспечении соблюдения лицензионных прав.

Но это не так.

Правда в том, что между закрытым и открытым исходным кодом в этом отношении нет принципиальной разницы. Закрытые исходные коды также могут быть изменены. В конце концов, конечный «источник» исполнения — машинный код. Существуют инструменты, которые помогают анализировать и декодировать двоичный файл в более или менее понятный человеку формат и, таким образом, можно обойти управление лицензиями. Это возможно, и для этого есть отличный источник примеров. На некоторых сайтах, размещенных в некоторых странах, вы можете просто скачать взломанную версию практически любого программного обеспечения. Я не рекомендую делать это, и не только по этическим причинам. Вы просто никогда не знаете, какой из сайтов финансируется секретными службами или преступниками (если есть какая-либо разница), и вы никогда не знаете, устанавливаете ли вы шпионское программное обеспечение на свой компьютер, используя взломанную версию.

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

Ответ следующий. Эта компания прекрасно знает, что управление лицензиями не должно предотвращать несанкционированное использование. Его можно использовать таким образом, но он будет иметь два основных эффекта, которые разрушат ваш бизнес:

  • Написание кода управления лицензиями вы тратите свое время на непроизводительный код.
  • Управление лицензиями (таким образом) работает против вашего клиента.

Никогда не применяйте управление лицензиями против вашего клиента.

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

Set<User> != Set<Customer>

Примите во внимание сказанную правду: всегда будут люди, которые используют ваше программное обеспечение, не платя за это. Они не ваши клиенты. Они крадут у тебя? Не обязательно. Если есть кто-то, кто не покупает ваше программное обеспечение, он не является вашим клиентом.

Если вы знаете, что они не смогут заплатить за программное обеспечение, и вы сами решали, хотите ли вы использовать программное обеспечение или использовать программное обеспечение вашего конкурента, что бы вы выбрали? Я полагаю, вы хотели бы, чтобы ваше программное обеспечение использовалось для получения большей обратной связи и знаний даже в области, не связанной с клиентами. Люди, использующие ваше программное обеспечение, могут стать вашим клиентом чаще, чем люди, не использующие его. Вот почему крупные компании продают образовательные лицензии университетам и другим академическим учреждениям.

Должны ли мы использовать управление лицензиями вообще в этом случае? Является ли управление лицензиями плохим во всех аспектах? Мой ответ таков: это не так. Существует правильный вариант использования для управления лицензиями, даже если программное обеспечение с открытым исходным кодом (но не бесплатное, как продукты Atlassian). Чтобы найти и понять этот вариант использования, нужно понять одну важную вещь:

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

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

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

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

Инструмент управления лицензиями: license3j

Много лет назад я искал библиотеку управления лицензиями и обнаружил, что не существует ни одного открытого источника. Я хотел создать приложение с открытым исходным кодом (но не бесплатно), и требовалось, чтобы управление лицензиями также было открытым. То, что я обнаружил, было также завышено с учетом нашего бюджета, который был нулевым для программного обеспечения для стартапов с частичной занятостью (что на самом деле провалилось в бизнесе, но это другая история). По этой причине я создал License3j, который неожиданно стал одной из наиболее используемых библиотек моих проектов ОС.

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

1
2
3
4
5
<dependency>
    <groupId>com.verhas</groupId>
    <artifactId>license3j</artifactId>
    <version>1.0.4</version>
</dependency>

Не стесняйтесь использовать его, если хотите.

Ссылка: OpenSource License Manager от нашего партнера JCG Питера Верхаса из блога Java Deep .