常见研发设计软件的许可管理

大型工程软件如AnsysCADFluentUnigraphProEHyperWorksUG/NXminitab等安装需要经过注册程序Flexlm才可以使用,而Flexlm中涉及到很多知识、技巧,也存在许多问题。本篇文章就是针对上述软件安装中的常见问题作一些探讨与解决。莱曼特的LMT LicManager可对CAD/CAE/EDA等研发设计软件的许可证进行集中监控管理。Lanmantech公司研发的licManager产品充分研究识别Flexlm及其他主流授权机制并利用LMT核心计算模式在不影响软件许可证本身授权机制的基础上对许可证进行闲置识别、资源调度从而提高许可证的使用率。它的解决方案已被多家世界500强企业所采用。并且可以为企业节省50%左右的许可证费用。







Flexlm 介绍常见研发设计软件的license管理

一、什么是 Flexlm

二、Flexlm 是由Flexera公司发明的软件加密方法Flexible License ManagerFlexera公司向软件厂商出售相关开发软件,软件厂商把此加密程序集成到自己的软件中。可以锁定机器的硬盘号,网卡号,使用日期,支持加密狗,以保护软件的知识产权。被80%以上的CAD/CAE/EDA等软件公司所采用,是目前最流行的研发设计软件加密方法,保护着世界上价值几百亿美元的研发设计软件。了解Flexlm可以使我们正确的安装,管理和使用多个CAD/CAE/EDA软件。
Flexlm所管理的是License文件,所以我们首先要了解License文件的结构,以便于运行Flexlm管理License文件。

三、License文件的结构
License文件由注释行,Server,Demon以及Feature行构成。注释行: 当一行的开始是"#"符号时,该行被License Manager(lmgr32xx)认为是注释行,有时候"|"也可以作为注释行的开始。
Server Server行用来标识一台特定的主机,其格式是:
SERVER nodename id port-number 
     TCP
端口号, 27000

      主机的ID,Win95/98/NT平台下通常是网卡物理地址   
      
主机的名称,win95/98/NT下可以用ipconfig命令看到 
      Server
行开头的关键字,标识该行为Server,不能更改例如:SERVER hostname 000012345678 TCP:27000  
Daemon(
Vendor)行:Deamon行是用来标识不同的卖主, 或者说是用来标识不同的软件商吧。其常见格式是:
DAEMON daemon_name daemon_path 
daemon
的路径 
daemon
的名字 
Deamon
行的关键字,FLEXlm6.0以后的版本也支持用VENDOR 例如
DAEMON cdslmd c:\cdslic\bin\cdslmd.exe 
Cadence License Daemon
的路径 
Daemon
的名字为cdslmd (Cadence License Manager Daemon 的简称)
 Feature
行: Feature行是用来对软件特定的功能进行限制的,其常见的格式为:
FEATURE name vendor version expiration_date n Key "Vendor_String" hostID 
    
版本号     过期时间                 主机ID,可省略
    厂商标识                       厂商定义的字符串
    Feature名称             20个字节的密码
    Feature行的关键字               许可的终端用户个数

例如 FEATURE CADV_256SUPUC_ALL cdslmd 8.000 1-jan-0 9 2884F2781DB8 "J" 
         Vendor string
         
密码 
         
允许9个终端用户 
          0
11日过期,0年表示永久有效 
          
版本8.0,可以是时间,也可以是版本号.
          
厂商标识
          Feature名称 ,即允许开通的功能详细的FLEXlm文件格式可以参考FLEXlmEnd-User-Manual. 又如:
FEATURE maxplus2 alterad 2001.12 25-sep-2002 uncounted E71125CEA376 \HOSTID=GUARD_ID=T000072362
 FEATURE
:关键字
 maxplus2 FEATURE
 alterad:厂商标识
 2001.12:版本标记
 25-sep-2002 2002925日超期,如:是permanent0,表示永不过期
 uncounted:使用人数限制
 E71125CEA376:密码
 HOSTID=GUARD_ID=T000072362 :运行机器的特征, 只有检测到存在T000072362的加密狗时,软件才可以使用。这里也可以指定硬盘号,网卡号等等

四、Flexlm License manger工具的安装一些软件并不需要安装专门工具来管理license,如:MaxplusII等。但更多研发设计软件需要专门工具进行管理。安装很多研发设计软件的时候会有一个安装License Server的选项安装完成后会在控制面板中发现一个FLEXlm License Manager的工具.

五、Flexlm License manger工具的使用点击Flexlm License manger,出现如下窗口中,找到相应lmgrd.exe,并指定license.如果有多个License文件,要用分号隔开。有的研发设计软件没有License Server安装选项.但软件本身就自带FLEXlm License Manager,  Leonado Spectrum程序组下可以找到FLEXlm Manager这个程序,用鼠标点击运行就会出现上面提到的那个管理窗口。 Win95/98下还需要在autoexec.bat中加入如下一行:
- SET LM_LICENSE_FILE=c:\flexlm\license.dat
如果有多个License文件,可以用分号隔开,:
- SET LM_LICENSE_FILE=c:\flexlm\license1.dat ; d:\altera\license2.dat
Win2000
NT,则需要在系统环境变量中设定这些参数。设置完以后需要重新启动计算机

注意事项
 不要随意更改系统时间!
- Flexlm加密系统会监测系统文件的时间
 更改系统时间导致的常见错误信息:
- Flexlm error, system clock has been set back
 
解决方法
查找C:\windows\下所有时间不正确的系统文件文件,在正常的系统时间下将其修改保存
应用专用文件时间管理软件修改文件时间,我们可以在互联网上下载这类软件,我已经下载了一个这样的软件
重装系统如需了解关于FLEXLM更详细的资料请参考FLEXlmEnd-User-Manual或浏览:
http://www.flexera.com

设置环境变量以下都是针对Win95/98以及NT来说的
   
一般说来,License Manager需要在设置一个环境变量才能找到License文件. (有的软件不需要设置环境变量,只需将license文件放置到它的某个目录下面就可以了Active VHDL3.3,只需将license.dat放在它的dat目录下.) 通常环境变量名称是LM_LICENSE_FILE, 大小写无关,Win95/98下的设置方法是在autoexec.bat中加入一行: (不包括下面那些说明
SET LM_LICENSE_FILE=c:\flexlm\mylicense.dat 
          
环境变量路径该例是License文件的名称及路径 
          
变量名称 如果有多个License文件,可以用分号隔开,
SET LM_LICENSE_FILE=c:\flexlm\license1.dat;d:\flexlm\license2.dat 
应用软件的License Manager会自动遍历环境变量指定的所有License文件查找它所需要的Feature, 不同License文件路径的先后次序无关只有WorkviewOffice7.5比较特殊,必须将它的环境变量放在第一个才能工作,否则它就不工作:
SET LM_LICENSE_FILE=c:\WVO75\license.dat;c:\flexlm\mylicense.dat除了LM_LICENSE_FILE这个环境变量名称外有些软件还使用自己特定的环境变量名称安装软件的时候安装程序会一般会自动添加这些环境变量Specctra8.0使用CDS_LIC_FILE环境变量名称
SET CDS_LIC_FILE=c:\cdsLic\license.dat 
MentorGraphicsRenoir
以及ModelSimEE如果安装的时候选择Mentor Graphics License Manager, 软件会使用MGLS_LICENSE_FILE环境变量
SET MGLS_LICENSE_FILE=c:\flexlm\license.dat 
如果License是由Server提供的那么环境变量的路径应该给出Server的名称以及端口而非License文件的路径以及名称
SET LM_LICENSE_FILE=1234@www.myhost.edu.cn 
License Managerwww.myhost.edu.cn1234端口获取License 
WinNT
下设置环境变量需要在控制面板里面添加格式相同.
License
文件使用技巧这次想解决的问题是 -- License文件多了怎么办?不知道为什么FLEXlm很流行机器里面装得EDA软件多了会有若干个 License.dat.由于环境变量只是告诉Lmgr(license manager)从哪儿找它所需要的license文件所以:
 
第一个解决办法是可以将License.dat换个名字,pwpcb.Lic, cct80.Lic等等,然后用设置多个License文件环境变量的办法将每一个文件的路径添加到环境变量中:
SET LM_LICENSE_FILE=c:\flexlm\pwpcb.Lic;c:\flexlm\cct80.Lic 
License
文件的名称/后缀可以任意选取,只要保证变量设置正确以及License文件有效即可。还可以这么做: ---- 不推荐使用 只设置一个环境变量设置:   SET LM_LICENSE_FILE=c:\flexlm\license.dat,然后把所有的License文件都 copyFLEXlm目录下为了便于区分取比较容易记的名字,例如PowerPCB2.1.Lic, ModelSimEE5.2e.Lic,  Specctra8.0.Lic,等等,需要用哪个软件的时候把相应的License文件copy一份然后改名为license.dat即可。 Copy, Rename, Copy, Rename...太麻烦了于是采用第二种解决办法--合并License.(:仅用于没有 Server LineLicense文件,且软件用的环境变量名为LM_LICENSE_FILE) 前面介绍过License文件的格式,  License文件的内容不再是陌生的了,可以用文本编辑器打开所有的License文件,把它们的内容统统copy&paste license.dat里面然后只设置一个环境变量:   SET LM_LICENSE_FILE=c:\flexlm\license.dat 
FLEXlm Server
方式的License应该如下设置
License.dat 
文件放在主机中主机运行Server提供License服务客户端的环境变量设置为 SET LM_LICENSE_FILE=[TCP/IP端口]:[主机名称], 其中端口和主机名称应该和主机的License文件中的Server Line一致前面已经简单介绍过这里便不再赘述。启动Server的方式有两种一是Dos命令行方式二是Windoz的窗口方式 
1. Dos 
方式 c: \flexlm目录下可以找到一个Lmgrd.exe文件---License Manager Daemon, 这个Daemon FLEXlm ServerLicense.dat文件需要和Daemon文件放在同一个目录下,启动 license server,可在 c:\ flexlm 目录下执行:c:\flexlm\lmgrd -app -c ;关闭 license server,可在 c:\flexlm 目录下执行:c:\flexlm\lmutil lmdownlmutil.exeLicense Manager Utility.
2. Windoz
的窗口方式安装某些软件的时候会有一个安装License Server的选项选中它安装完成后会在控制面板中发现一个 FLEXlm License Manager的小工具FLEXlm License Manager SetupTAB里可以择 Daemon, License文件,以及输出的日志文件; ControlTAB中可以启动/关闭Server以及查看Server状态另外几个 TAB还提供了一些其它辅助功能。
Windows下的这个FLEXlm License Manager要比命令行方式的方便一些至少它可以浏览以选取Daemon/License文件不过有时候发现控制面板里面找不到事实上它是一个控制面板的扩展应用程序如在PowerPCB目录下可以找到FLEXlm.cpl这个文件用鼠标双击它就运行出上面提到的那个管理窗口。没有研究过解决一个主机运行多个Server分别对应不同的软件的问题。
1.设定环境变量(控制面板--->系统-->环境)LM_LICENSE_FILE,多数软件都使用这个变量,这也是冲突根源。但也有一些软件用别的名称,如:
UG--------->UGII_LICENSE_FILE=12345@CAD
ESRD------->ESRD5_LICENSE_FILE=F:\ESRD\STRESSCHECK5
以下变量由软件安装时或第一次设定后自动保存在注册表里:
MASTERCAM----->MCFLEX_LICENSE_FILE=F:\MILL72\LICENSE
COSMOS
系列---->BRNI_LICENSE_FILE=F:\COSMOSM\LICENSE\FLEXLM\LICENSE.DAT
MSC
系列------->MSC_LICENSE_FILE=F:\MSC\FLEXLM\LICENSES\LICENSE.DAT
MAPLE6-------->MAPLELMG_LICENSE_FILE=F:\MAPLE 6\LICENSE\LICENSE.DAT
注意事项:
1. 没有设好会出现错误如:
I-DEASETECTED LOSS OF COMMUNICATION WITH I-DEAS LICENSE DAEMON
2. RO/E好像不用设定LM_LICENSE_FILE安装自动设@7788;
3. LM_LICENSE_FILE
变量可设置多个路径如:
F:\FEMAP80\LICENSE.DAT;F:\MARC\security\license.dat;中间用";"格开
4. 若是I-DEAS和别的软件冲突可在\IDEAS\MS7\bin\setup_varbs.cmd中加set LM_LICENSE_FILE=%SDRC_INSTL%\sec\license.dat
5. MASTERCAM7.2B安装后好像应清除LM_LICENSE_FILE设置,软件第一次运行时会让你查找LICENSE.DAT,然后自动保存在注册表里。
6. FEMAP8.0ALICENSE.DAT应设在路径最前面,否则会出现以下错误INVALID LICENSE INFO,可能是它采用FLEXLM7.1b的原因。
7. :若设定多个LM_LICENSE_FILE路径有问题,可先设一个调试,确定是否是LM_LICENSE_FILE的原因。
8. 在控制面板-->FLEXLM LICENSE MANAGER-->SETUP中设SERVICE NAME,

9.  若控制面板没有FLEXLM LICENSE MANAGER可从\PTC\FLEXLM\OBJ OR\UG160\UGFLEXLM拷贝一个 FLEXLM.CPL\WINNT\SYSTEM32,当然对FLEXLM7.0可直接用LMTOOLS.EXE,但是其 START/STOP SERVER和查询SERVER STATUS不在一组内我感觉不如6.1方便,也可到控制面板-->服务中查询 SERVER STATUS,更加直观。
10. SERVICE NAME有时要手工设定,这取决于安装时选SERVERCLIEN,详细可看.NFO文件,SERVICE NAME最好取与软件及版本相关如:I-DEAS8.0,因为软件安装时可能自动取相同的SERVICE NAME
11.  PTC Pro/EUG设一个SERVICE NAME就可以了,因为其高版本LICENSE可用于低版本,PTC PRO/E2000i FLEXLM6.1不用UNINSTALL,可直接用于代替PRO/E2000i2 FLEXLM7.0,对于UGPACKAGElicense得用 UG FLEXlm Licensing选择不同PACKAGE好像最多只能选两个。
12. MSCCOSMOS(SRAC)系列可能要合并LICENSE,设一个SERVICE NAME并用最新的LMGRD.EXEDAEMON(MSC.EXE,SRAC.EXE),对于NASTRAN FOR WIN4.6还要多设一个FEAMAP7
13. 若是对同一软件设多个SERVICE NAME,会使LMGRD.EXE不断调用DAMON,系统会很慢,CPU100%,REMOVE一个SERVICE NAME
14. 
有些软件不用设SERVICE NAME。如:IMAGWARE SURF,ESRD STRESSCHECK,MASTERCAMMAPLE6直接COPY LICENSE.DAT到安装目录或C:\FEXLM,不知道是何原因?
15. 要查看LICENSE是否正确可STOP SERVER,START SERVER再看Debug.log信息。

  • 23
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
smart-license是一款用于安全加固的开源项目。主要服务于非开源产品、商业软件、具备试用功能的付费软件等,为软件提供授权制的使用方式。smart-license适用场景非开源产品、商业软件、收费软件。 限制产品的传播性,每个客户拥有专属 License。 同一款软件发行包根据 License 的不同提供不同的服务能力。 限定软件授权时效smart-license特色开源,代码完全公开,License的生成原理是透明的。 易用,提供二进制包,直接基于命令行生成 License。 安全,生成的 License 在一定程度上具备防篡改能力,破解难度大。 安全加固,采用非对称加密方式对 License源数据 进行预处理,防止伪造License。smart-license使用方式生成License 1、下载smart-license.tar.gz包,解压 2、进入bin目录执行以下命令,例如:./license.sh 1d HelloWorld。 1d:表示授权效期1天,即一天后该License便过期。支持的效期格式包括: h,1h:1小时; 2h:2小时 d,1d:1天; 10d:10天 y,1y:1年; 2y:2年 HelloWorld:表示待加密的license内容。 实际场景下可以通过license授权不同的产品功能和有效期,例如:./license.sh 1y features_1:on;features_2:off; 如果待授权license内容为文件,可以采用同样的命令,例如:./license.sh 1y config.properties 3、执行成功后,会在当前目录下生成 License:license.txt以及 License源文件:source.txt。 注意:license.txt是提供给客户的授权文件;而source.txt是由软件提供方持有,其中包含加密私钥,需要妥善保使用License 1、引入Maven依赖 org.smartboot.license license-client 1.0.0-SNAPSHOT 2、载入License。如若License已过期,则会触发异常。 public class LicenseTest { public static void main(String[] args) throws Exception { File file=new File("license.txt"); License license = new License(); LicenseConfig licenseConfig=license.loadLicense(file); System.out.println(licenseData.getOriginal()); } } 3、获取licenseData并以此配置启动软件。smart-license截图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值