Предложить шаблон или архитектуру для механизма регистрации и проверки лицензии на программное обеспечение - PullRequest
6 голосов
/ 06 февраля 2012

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

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

Могу ли я получить некоторые сильные архитектурные паттерны для построения этого проекта?

Ответы [ 3 ]

8 голосов
/ 21 сентября 2012

Создание концепции закрытого ключа и открытого ключа.

Пусть ваше хост-приложение имеет один предопределенный ключ, и тот же ключ будет с потребительским продуктом.

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

Вы получите код для реализации вышеуказанного потока по следующей ссылке:

Реализация механизма лицензирования программного обеспечения

А для более подробного обсуждения лицензии вы можете перейти по ссылке ниже:

http://www.otc.utexas.edu/SoftwareAndCopyrights.jsp

1 голос
/ 21 сентября 2012

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

В частности:

  • Система лицензирования не контролирует поведение приложения. Он просто предоставляет информацию о состоянии лицензии и оставляет приложение, чтобы решить, что делать с этой информацией. Это позволяет приложению быть более или менее снисходительным в применении лицензии.
  • Система открытых / закрытых ключей означает, что лицензия криптографически надежна, по крайней мере, теоретически. Конечно, реальность такова, что сила также зависит от реализации. Документация определяет различные модели угроз, чтобы вы могли решить, какие из них соответствуют вашей ситуации.
  • Система лицензирования учитывает несколько типичных поведений и требований клиентов.
  • Система лицензирования очень расширяема.
1 голос
/ 07 февраля 2012

Взгляните на рамки провайдера услуг.

...