概述
为什么采用flexlm
Flexlm支持软件过期日期,软件授权机器数量,软件按模块授权,最重要的是支持浮动的license的管理,在网络的任何地方都可以使用软件许可证,而无需固定绑定在某一台计算机上。通过在网络上共享许可证,用户可以减少许可证使用量,并更有效地使用它们。
Flexlm license语法
下面是一个简单的浮动license文件
SERVER lulu 17007ea8
VENDOR sampled
FEATURE f1 sampled 1.00 1-jan-2005 2 SIGN=signature1
FEATURE f2 sampled 1.00 1-jan-2005 6 SIGN=signature2
FEATURE f3 sampled 1.00 1-jan-2005 1 SIGN=signature3
SERVER是代表使用FLEXlm的客户的server端,“lulu”是hostname,“17007ea8”是HOSTID,一般采用计算机的MAC地址。
VENDOR是类似供应商开发的软件的名称,因为有很多软件采用flexlm,VENDOR是区分不同软件提供商的,因为一个server上可以有多个采用flexlm的软件(VENDOR),“sampled”是vendor name。
FEATURE是license的核心,我们可以把feature理解为一个软件中的各个模块,f1,f2,f3代表不同的模块,“1.00”是软件版本。“1-jan-2005”是过期日期,而后面的一个字段是代表可以授权的count。最后“SIGN”是对HOSTID和FEATURE行的签名,用来防止HOSTID和FEATURE的各个字段被修改。另外有时候会有USER_SERVER行,这个是指定client的HOST的
以及INCRENMENT行,这个是将多个软件的FEATURE添加到一个license file中时使用的
Flexlm的组件分析
Flexlm包括client端和server端,client端上安装要使用的供应商的软件,server端控制此软件的license的分配和管理。
我们把client端上供应商的软件叫做FLEXenable应用程序
Server端包括许可证服务器管理器lmgrd和供应商守护进程vendor deamon
因此Flexlm的组件主要包括以下几个部分:
1.FLEXenable应用程序
针对节点锁定的方式,这部分需要license的解析模块,包括license的获取属性接口,license的签名算法。针对浮动许可的方式,需要与server端的获取license授权的通信的功能。
2.Lmgrd
由flexlm提供,处理与FLEXenable软件的初始连接,还用来启动vendor deamon,以及指定使用的license文件路径等。
3.Vendor deamon
处理license的分配管理以及与client端的通信,license的解析
4.License文件
以下是各个组件之间的关系
另外还有一些输出的日志文件,调试信息文件,lmutil工具等
Flexlm许可证的请求过程
1.FLEXenable应用程序的许可证模块根据LM_LICENSE_FILE环境变量查找许可证文件,
(LM_LICENSE_FILE可以是一个license文件的完整路径,也可能是包含多个license的目录。还可能是port@host,即在网络上。节点锁定许可证采用前两种,浮动许可证采用port@host。
着重讲解浮动许可证)。
2.FLEXenable应用程序通过port@host与lmgrd建立连接,并通知它需要与其对话的vendor deamon。
3.Lmgrd确定vendor与FLEXenable对话的TCP/IP端口,并将其发送给FLEXenable应用程序。(这个端口可能是license中VENDOR 字段的端口,如果wendor部分没有端口描述的话,可能lmgrd会指定一个合法端口)
4.FLEXenable与VENDOR建立连接,获取lisence请求
5.VENDOR检查是否有可用的license,授权或者拒绝FLEXenable
6.FLEXenable的许可证模块根据接受的授权或者拒绝来启动或者终止FLEXenable应用程序
许可证请求流程图
注:vendor在查询是否有空闲license的时候,也会对license文件做数字签名校验和判断过期日期等等。
集成flexlm要做的工作
由于lmgrd和lmutil这些可以直接使用,集成flexlm主要要做的工作如下
1.license文件的定制化
2.License生成工具,其中包括对hostid和feature部分的签名算法或者加密算法。
3.集成client端到我们的软件中,主要是与server端通信的接口,获取license属性的接口
4.实现server端的VENDOR部分,主要是license的管理
最后
以上就是生动小刺猬为你收集整理的flexlm license许可证管理的全部内容,希望文章能够帮你解决flexlm license许可证管理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复