Руководящие функции на основе лицензии для [закрытого] приложения C++

Вы можете попытаться использовать оператор UNION, чтобы получить ПЕРВЫЙ и ВТОРОЙ лучшие города в регионе. Чтобы получить второе по величине значение, я использую этот SO ответ

SELECT  C.region, C.city, C.id, MAX(N.rating) as rating
FROM   cities C
INNER JOIN nightlife N
ON         C.ID = N.cityID 
GROUP BY C.region
UNION 
SELECT  C.region, C.city, C.id, MAX(N.rating) as rating
FROM   cities C
INNER JOIN nightlife N
ON         C.ID = N.cityID 
WHERE N.rating < (SELECT MAX(rating) 
                  FROM   nightlife 
                  INNER JOIN cities 
                  ON cities.ID = nightlife.cityID 
                  WHERE region = c.region)
GROUP BY C.region
ORDER BY region,rating desc,city

Это рабочее решение Fiddle

8
задан Peter Mortensen 24 February 2013 в 09:20
поделиться

8 ответов

Необходимо ли действительно "позвонить домой"?

Я видел относительно безболезненную систему лицензии, через которую пользователю предоставили XML-файл, который описал период, лицензия была действительна, дополнительный IP-адрес и список "разблокированных" функций. Цифровая подпись была сгенерирована с помощью закрытого ключа поставщика, который был повторно вставлен в файл лицензии. При запуске приложение читало лицензию, проверяя его, проверяя IP и разблокировав функции соответственно.

Поставщик может предоставить более новые лицензии клиенту при необходимости.

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

4
ответ дан 5 December 2019 в 14:06
поделиться

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

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

Мы использовали аппаратный ключ HASP в прошлом и в то время как они defnitely работают и предоставляют решение, я не думаю, что они - то, что Вы хотите, поскольку они программируются однажды, и это - это. Например, Вы не смогли бы обновить ключ HASP для закрытия пробного периода.

4
ответ дан 5 December 2019 в 14:06
поделиться

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

0
ответ дан 5 December 2019 в 14:06
поделиться

Это - такой Дилберт-esque способ сделать вещи. Просто скажите "нет".

Хотя ненавидится, это - стандартная функция в высокопроизводительном специализированном программном обеспечении, которое стоит десятки тысяч долларов. Думайте 3D сканеры и материал CNC.

1
ответ дан 5 December 2019 в 14:06
поделиться

FLEXnet (раньше известный как FLEXlm) является пакетом лицензирования, который является наиболее часто используемым высокопроизводительными или специализированными пакетами программного обеспечения, например, на рынке автоматизации электронного проектирования. Можно заблокировать лицензию на единственную машину (размещенным, обычно MAC-адрес Ethernet) или к портативному аппаратному аппаратному ключу, или иметь дескриптор сетевого сервера, совместно использующий ограниченный пул параллельных лицензий на клиенты, запускающие программное обеспечение. Лицензии могут быть выданы на ограниченный срок или постоянно и также могут быть ограничены номером версии. Файл лицензии описывает функции, которые лицензируются.

FLEXnet включает несколько API для интеграции с Вашим приложением, включая одно для C++. Я предполагаю, что это использует шифрование с открытым ключом некоторого вида. Обычно приложение с помощью FLEXnet только "звонит домой", когда Вы спрашиваете это к посредством Вашего использования API. Много приложений проверяют лицензию однажды, при запуске, или резервируют лицензию от пула на время времени выполнения приложения.

Вы платите ежегодный лицензионный сбор, конечно, для использования FLEXnet в продуктах, запускающихся выше 1 тысячи долларов США. Сбор варьируется доходом Вашей компании, и количеством платформ (комбинация ОС/ЦП) Вы хотите свое лицензирование плана смочь работать.

Я сказал бы, что это не стоит того для использования чего-то как FLEXnet, если продукт продает меньше чем за несколько тысяч долларов США на рабочее место. Это обременительно для использования (источник хорошего процента обращений за поддержкой для нашей компании), но корпоративные клиенты могут уже быть знакомы с использованием его, в зависимости от рынка.

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

1
ответ дан 5 December 2019 в 14:06
поделиться

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

2
ответ дан 5 December 2019 в 14:06
поделиться

Общее программное обеспечение лицензирования является flexlm. Однако я думал бы дважды, введу ли я эти ограничения для своих пользователей. Многим пользователям не нравятся они; особенно от среды FOSS/Linux.

0
ответ дан 5 December 2019 в 14:06
поделиться

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

0
ответ дан 5 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: