软件License许可设计思路

销售license是商业软件的贯用商业模式。用户向商家购买软件安装盘搭载license许可,用户才可以使用该系统。我们作为一个软件开发者,为了保护自身的版权,在软件开发过程中也不可避免的会设计license管控机制。下面就讲一下设计一个基础的license控制机制需要考虑的方方面面。

license管控方式

license管控的方式可简称为认证和鉴权。认证是指用户身份认证,鉴权是检验用户是否具备使用软件某些功能的权限。

1. 通过软件的认证机制可以判断用户身份的合法性,只有身份合法的用户才可以使用软件。认证机制可以防止黑客或者竞争对手使用系统,研究仿制,维护产品的原创性和竞争力。

2. 鉴权是控制用户能使用软件的哪些功能,是能使用软件的功能全集呢还是只能使用一个子集。鉴权方式有两种:功能有无的鉴权-有权限的用户能操作功能界面使用软件,无权限的用户功能入口屏蔽;功能受限使用-根据用户购买的license规格限制用户的使用次数或者使用软件处理的数据规模。

3.license使用期限的限制,超过期限后软件不允许再使用。需要申请延期或者重新申请license。

License实现方案

下面讲一下License控制中认证和鉴权的常用处理方式。

1.前面说了认证的目的是识别用户是否为合法用户,对于在线系统通常的做法是设计一个登陆认证机制,通过用户名和密码登录,登录成功的用户即是合法用户。离线单机工具一般是通过绑定软件安装的机器或者发放序列号的方式控制.如果是绑定软件安装的机器需要在license申请前采集机器指纹(含CPU、硬盘、MAC地址等一种或者几种信息的加密数据)。机器指纹的加密算法一般是采用不可逆的加密算法,如MD5等。

2. 对于鉴权而言,需要将控制的功能项编码和受限使用的控制信息加密后放到license文件中,在系统运行过程中实时检测。鉴权信息一般是通过可逆的加密算法加密,如RSA非对称加密算法。

3.license发放的时候用公钥加密,软件运行时通过私钥解密。

License管理流程

既然License是一种管控系统使用的凭证,那么肯定就有申请凭证、审核申请的过程。涉及的角色也包括申请人、审批人、用户。常规流程如下:

上面只是一个最简易的license管理流程,实际设计中需要根据具体的业务来,例如上面的审核人是几级,如何设置等,不同的组织结构是不一样的。有的license管理还需要考虑升级、延期的处理;毕竟升级旧的license和新申请一个license在商务价格上是不一样的。

原文地址:https://www.cnblogs.com/elon/p/8546870.html

时间: 2024-10-18 01:01:38

软件License许可设计思路的相关文章

软件License资产——LicManager许可资产管理系统

软件license资产作为无形物的管理是件相当复杂的工作,毋庸置疑将会增加管理体制的整顿和营运等组织上的负担.在此,就管理的意义和目的,即为何不得不实施如此负担较大的软件资产管理这一问题进行简单的说明. 一般来说,随着组织的发展和从业人员的增加,从业人员的管理和设备的管理负担也会随之较以前增加.如果将从业人员和设备这些资源看做广义上的组织的资产,组织的资产增加,也就自然会导致资产管理负担的增加.任何资产如果不进行有效管理的话,就无法有效利用.这是无法回避的必然趋势. 软件资产管理并不是仅仅作为避

流程管理中WEB表单开发服务需求分析及设计思路

在流程管理应用中,BPM产品所提供的表单设计工具,主要是面向开发人员的.而一些办公系统产品所提供的表单设计工具,受自身平台限制,无法在大型定制化应用中使用.在此通过对用户需求分析,提出WEB表单开发服务设计思路. 一.需求分析 现如今,在创新与改革社会环境推动下,办公管理系统的管理需求变化已经是常态了,如何让信息系统快速响应支撑管理需求的多变,已经成为使信息化建设和运维人员头痛的事情.特别是在一些大型企事业单位,快速支撑需求更突出.而原有信息系统很难适应这样的需求,必须走创新的路来解决这些需求,

这一设计思路显然降低了新 DBMS 部署方案

数据库管理系统(简称 DBMS)无疑是任何数据密集型应用程序当中最为重要的组成部分,其肩负着处理大量数据以及高复杂性工作负载的重任.然而,数据库管理系统本身却往往难于管理,因为其中通常包含数百种配置"旋钮",用于控制诸如缓存内存分配量以及存储介质数据写入频率等要素.各类企业一般需要聘请专业人士以协助相关调配工作,但对于大多数企业而言,此类专业人才的开价亦相当高昂.而实际上,DBA所面临的挑战还远不止这些. 而今天一则名为"OtterTune"的机器学习DBMS系统刷

测试用例的设计思路

在结对项目中,我负责测试用力的设计以及执行.在设计测试用例的过程中,我运用到了以下思路. 良好测试用例的特征: 可以最大程度地找出软件隐藏的缺陷 可以最高效率的找出软件缺陷 可以最大程度地满足测试覆盖要求既不过分复杂.也不能过分简单 使软件缺陷的表现可以清楚的判定 测试用例包含期望的正确的结果待查的输出结果或文件必须尽量简单明了 不包含重复的测试用例 测试用例内容清晰.格式一致.分类组织 测试用例的几种设计思路: 对于白盒测试: 1. 语句覆盖:设计若干个测试用例,使程序中的每个可执行语句至  

二、 面向云的.net core开发框架的主要设计思路

为满足性能.扩展性.业务快速交付等方面的要求,新.net core云开发框架改造的主要思想是:高内聚.低耦合,即进一步实现纵向和横向分层,提高可伸缩性和可扩展性,实现弹性部署: 采用领域驱动设计进行架构横向分层,同时业务功能纵向分割 在代码和数据库设计上充分考虑云架构要素,提高可伸缩性.可扩展性.高性能性和安全性 采用诸如分布式缓存.分布式存储.并行数据库.消息队列.ESB等多种可伸缩技术实现松耦合 采用上述设计思路后的新架构搭建的综合业务管理系统如下图.其中HL.HB等是外部系统,通过ESB与

数据库水平切分的原理探讨、设计思路--数据库分库,分表,集群,负载均衡器

本文转载:http://www.cnblogs.com/olartan/archive/2009/12/02/1615131.html 第1章  引言 数据量巨大时,首先把多表分算到不同的DB中,然后把数据根据关键列,分布到不同的数据库中.库分布以后,系统的查询,io等操作都可以有多个机器组成的群组共同完成了.本文主要就是针对,海量数据库,进行分库.分表.负载均衡原理,进行探讨,并提出解决方案. 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每

unity3D 游戏开发之工程代码框架设计思路MVC

unity3D 游戏开发之工程代码框架设计思路MVC 设计目的 1.使工程结构更规范. 2.提高代码可读性,封装性,拓展性 3.提高工作效率. 正文内容: 1.Frame的组成结 (1)视图层(View) (2) 控制层(Control) (3)数据层(Model) 整个Frame是由这三个部分组成,每一层管理属于自己的逻辑,核心思想是游戏逻辑和UI 逻辑独立开.目前遇到的项目工程大多数View和Control逻辑都写在一起,这样后期修改 和维护效率会很低,因为耦合性很高而View又是经常要修改

企业CAX软件License资产管理的困局

内容摘要:莱曼特的LicManager架构图,通过与LicManager与License服务器之间的交互,有效的读取License 服务器的信息,并对客户端和License服务器之间的进行一系列的操作,实现客户端和License服务器的问题的解决.某知名汽车企业采用了一整套的License管理解决方案,极大的提高了某知名汽车企业在使用License方面的效率,使某知名汽车企业在管理信息化和提高昂贵资产使用效率走在了业界的前列. 一.写在前面的话 国内的工业化正在深度的进行中,而当前最具代表的行业

互联网数据库架构设计思路

一 .58同城数据库架构设计思路 (1)可用性设计 解决思路:复制+冗余 副作用:复制+冗余一定会引发一致性问题 保证"读"高可用的方法:复制从库,冗余数据,如下图   带来的问题:主从不一致 解决方案:见下文 保证"写"高可用的一般方法:双主模式,即复制主库(很多公司用单master,此时无法保证写的可用性),冗余数据,如下图   带来的问题:双主同步key冲突,引不一致 解决方案: a)方案一:由数据库或者业务层保证key在两个主上不冲突 b)方案二:见下文 5