论文部分内容阅读
摘要:石油公司每年投入大量资金采购各类专业软件,为掌握软件许可证的真实需求,建立了石油专业软件许可证监测系统,实现在公司范围内软件集中管理和统一监控,节约软件投资成本。该研究提出了软件许可证监测系统的设计思路和整体架构,论述了数据库以及各个子系统的详细设计与实现方法,形成了跨操作系统、跨软件厂商的软件许可证数据采集统一解决方案。目前系统采集的监测数据已成功为软件规划采购提供数据支撑,达到了降本增效的目标。
关键词:石油专业软件;许可证;统一监测;数据分析;flexlm
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)36-0229-03
1背景
石油勘探开发科研软件在石油工业的快速发展中发挥了重要的作用,已成为科研生产不可缺少的技术研究手段[1]。在石油勘探领域中,有大量的解释专业软件被频繁使用,在地震资料解释过程中,经常遇到解释软件不够用的情况,因此需要多个二级单位共同使用、互通有无,提高许可的使用效率[2]。
科研软件许可证是公司投入巨额资金采购的重要资源,然而由于缺少数据监测工具,不掌握各分公司许可证的使用情况和真实需求,只能依据工作量和人员数量来估算,造成需求计划不准确。另一方面,一套软件中的功能模块之间依赖关系及许可证配比关系复杂,仅凭经验很难精准确定每个模块的需求数量,缺少有效的评估及预测工具,无法确定软件配置方案合理性,难于与厂商开展有效的沟通与谈判。
随着科研生产工作量和人员数量的增加,科研软件需求数量不断增加,采购资金逐年增长。公司从降本增效高度出发,提出了“科研软件集中管理、统一监控、科学规划”的要求,建立了科研软件许可证监测系统。
2设计思路
本系统的设计目标是全面监测各分公司科研软件的使用情况,为软件采购方案提供数据支持。在系统建设中,应遵循以下原则。
2.1数据可视化
目前在用的科研软件共有100余款,包含模块数千个,许可证分布在北京、天津、深圳、湛江、上海等地的多个分公司,随着时间的累积,监测数据量将达千万条。因此,将海量的监测数据可视化,以图表的形式展现十分重要。同时,在设计时应从多个不同维度的查看软件的应用情况,例如同一款软件不同分公司使用的峰谷情况、各分公司需求软件模块配比情况,本地、共享中心许可的使用情况等。
2.2系统易扩展
系统的扩展性体现为:第一是监测软件的扩展性,公司每年会根据业务需要采购新的科研软件,系统应支持多种操作系统、多种许可管理模式的许可证监测;第二是监测目标的扩展性,公司的整合重组可能要求对更多的分公司进行软件许可证监测,因此要求能够灵活配置监测目标,支持横向扩展。
2.3数据易维护
系统应时刻保证监测数据的完整性和准确性,否则统计的报表价值将大打折扣,这就要求系统具有良好的数据维护性。监测数据一旦发现不完整或是存在不合理值,应及时发送告警给各分公司管理员,以保障监测数据的完整可靠。
3总体架构
系统按功能划分为监测子系统、管理子系统和统计分析子系统,各个子系统之间保持松耦合关系,相互独立部署、独立运行,采用WebService技术通信。
监测子系统是整个系统的核心,负责实时采集各分公司的软件许可证使用信息,并将其写人数据库形成历史数据;管理子系统用于录入科研软件的静态基础数据,包括模块、许可服务配置、合同等信息;统计分析子系统负责将科研软件的使用情况可视化,以图形控件和Excel输出两种形式进行有效呈现。
4系统的设计与实现
4.1数据库设计
数据库的主要实体集有许可证中心、许可服务、软件、模块和监测结果,ER图如下所示。
根据ER图,设计数据库表,分别为:许可证中心(ID、名称、编码)、软件(ID、厂商、描述)、软件模块分类(ID、软件ID、模块名称、License名称、描述)、模块数量(ID、模块ID、许可证中心ID、数量、更新时间)、许可服务(ID、许可证中心ID、软件ID、IP、端口、主机名)、监测结果(ID、模块ID、时间、使用数、部署数)。
4.2监测子系统
License是由软件厂商创建的数字许可证,它规定了哪些用户可以合法使用哪些软件,以及使用软件的哪部分功能,浮动Llcense是一种适用于网络用户的License使用模式,多个用户可以同时使用软件,直到同时使用人数达到License规定的上限[3]。国内外不同厂商的科研软件采用不同的许可证管理工具,包括FlexLM、SafeNet以及白研管理工具,其中80%以上的软件使用FlexLM。针对这种现状,开发两种数据采集接口:一种面向FlexLM,另一种面向非FlexLM。
4.2.1 FlexLM管理模式
FlexLM是当前软件业中应用最为广泛的软件使用许可证管理软件[4],在全球获得了超过2000个软件商的广泛支持[5],使用FlexLM的最大优点是可通过网络来实现软件使用许可的授权。FlexLM提供了很多许可证管理工具,其中,Imstat命令可以监控所有网络许可活动的状态,具体用法为:
Imstat [-a] [-c license_file_list] [-f’ [feature]] [-i [feature]] [-s[server]] [-S [vendor]][-t timeout_value]
這里我们主要使用Imstat -a -e port@IP来获取指定许可证的实时使用状态,其中port为端口号,IP为许可证服务器lP地址。Imstat命令的返回结果示例见下图,从返回的字符串中我们可以得到该软件所有模块的使用数、部署数、正在使用软件的账号名、主机名、开始时间等信息,编写程序将返回的字符串整理并写入数据库,即可形成许可证的监测历史数据。 4.2.2非FlexLM管理模式
除了FlexLM,一些软件还会使用其他的许可证管理工具,这些管理工具一般没有提供许可证监控工具。为统一监测数据格式、便于系统的后续运维工作,我们要求软件厂商提供许可证监测接口,通过http协议访问返回JSON格式字符串,JSON格式示例如下:
[
{"featureName":"featurel ","version":" 1.O","licenseNum”:”6”,”usedNum": "1", "usageList": [{"userName": "userl", "hostName":“hostnamel ","ip":"192.168.0.1”, "startTime":"2019-10-10 15:1l:29”,”use(lNum”:”1”)]),
{ "featureName":"feature2","version":" 1.O","licenseNum":"8”,”useclNum": "I", "usageList": [{"userName": "user2", "hostName":”hostname2", "ip":”192.168.0.2", "startTime": "2019-10-10 13:23:42”,”usedNum”:”1”}]}”
]
返回值为一个JSON对象数组,JSON对象中的featureName为模块名,version为版本号,licenseNum为部署数,usedNum为使用数,usageList为使用人员列表(包括用户名、主机名、IP.开始时间,使用数),然后编写统一的JSON解析程序完成监测数据入库。
4.3管理子系统
管理子系统主要维护科研软件的静态基础数据,包括许可证中心、许可服务、软件和模块等信息,具体功能如下:
4.3.1许可服务管理
许可服务管理是系统管理员与监控子系统的交互界面,管理员通过浏览器即可添加、更新、删除监测的软件列表(服务器主机名、IP地址、端口号),并白动和监控子系统联动,实现软件的监测[6]。
4.3.2软件模块管理
管理员通过软件模块管理功能可以查看某款软件包含的模块清单,以及分布在各个分公司的许可数量,支持同一多个版本间的模块购买记录查询及对比。支持软件模块动态释放功能,对特定机器使用不同策略,识别终端闲置情况,动态释放激活软件许可[7]。
4.3.3系统告警
当许可证服务出现异常(如许可证过期、进程中止),监测程序无法取得软件的使用情况时,系统会通过邮件、短信方式自动发送告警至各分公司系统管理员。告警信息包括发生时间、许可证中心、软件名称、IP、主机名、端口以及错误信息等。
4.4统计分析子系统
统计分析子系统是系统的核心功能,是各分公司管理员查看软件使用情况的交互平台,共包含三部分功能:实时应用监测、历史数据查询和白动生成软件使用报表[8]。
4.4.1实时应用监测
实时应用监测可以查看各个软件所有模块的实时使用状态,包括部署数量、使用数量以及当前使用的用户信息(用户名、登录主机、开始时间等)。
4.4.2历史数据查询
历史数据查询可查看某个模块的历史使用趋势,便于系统管理员快速查看软件及模块的历史使用情况,同时支持多许可证中心对比、多模块对比等功能,白动过滤工作日使得统计结果更接近真实情况。
4.4.3自动生成軟件使用报表
每年在采购科研软件时需提交软件的使用报表,此功能支持批量生成报表,自动计算各个模块的历史使用峰值和移动平均峰值。
监测系统采集到的许可证使用情况是一组组离散数据,其30天移动平均曲线能很好反映用户应用趋势,能够消除异常数值十扰。移动平均的计算公式如下:
Ft= (At-I At-2 At-3 … At-3 0)/n,
·Ft代表预移动平均值;
·n代表移动平均的时期个数;
·At-l代表前期实际值;
·At-2,At-3和At-n分别表示前两期、前三期直至前n期的实际值。
5结束语
石油专业软件许可证监测系统实现了有限公司范围内科研软件的全面监测,共收集监测数据9000多万条,精准掌握各单位许可证使用情况和应用峰谷规律,许可证需求量明显降低,为科研软件配置方案优化奠定了基础。基于监测数据,利用概率统计学原理快速预测各模块的需求数量,使科研软件配置方案更具合理性。
参考文献:
[1]张云飞,李志刚,韩庆时,等.石油勘探开发专业软件共享技术研究与应用[J].网络安全技术与应用,2018(11):91-92.
[2]杨显峰,毛承国,张进铎,等.地震勘探解释软件远程共享的构建方法探讨[J].计算机时代,2014(5):28-30.
[3]付伟,肖侬,卢锡城.网格环境中基于浮动License的软件资源共享[J].计算机工程与科学,2008,30(8):120-123.
[4]陈军.FLEXlm对多个CAD系统License的管理[J].CAD/CAM与制造业信息化,2001(10):48-49.
[5]章泳健.FLEXlm许可证管理的工作原理及使用方法[J].福建电脑,2002(10):10-11,13.
[6]杨显峰,毛承同,陈翔,等.软件远程共享管理平台的设计与实现[J].计算机时代,2016(9):42-44.
[7]邓莉,范德军,孙胤航.大型专业软件集中管控技术探索与实践[J].中国管理信息化,2014(22):93-94.
[8]仝维维,贾宁,高超,等.基于研发设计软件的License资源共享平台研究[J].计算机与网络,2018,44(10):65-68.
【通联编辑:谢媛媛】
收稿日期:2019-10-29
作者简介:孙超(1987-),男,北京市人,工程师,硕士,主要研究方向为石油勘探开发软硬件架构设计;张云飞(1962-),男,高级工程师,本科;韩庆时(1963-),男,高级工程师,本科;刘锐(198 7-),男,工程师,硕士。
关键词:石油专业软件;许可证;统一监测;数据分析;flexlm
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)36-0229-03
1背景
石油勘探开发科研软件在石油工业的快速发展中发挥了重要的作用,已成为科研生产不可缺少的技术研究手段[1]。在石油勘探领域中,有大量的解释专业软件被频繁使用,在地震资料解释过程中,经常遇到解释软件不够用的情况,因此需要多个二级单位共同使用、互通有无,提高许可的使用效率[2]。
科研软件许可证是公司投入巨额资金采购的重要资源,然而由于缺少数据监测工具,不掌握各分公司许可证的使用情况和真实需求,只能依据工作量和人员数量来估算,造成需求计划不准确。另一方面,一套软件中的功能模块之间依赖关系及许可证配比关系复杂,仅凭经验很难精准确定每个模块的需求数量,缺少有效的评估及预测工具,无法确定软件配置方案合理性,难于与厂商开展有效的沟通与谈判。
随着科研生产工作量和人员数量的增加,科研软件需求数量不断增加,采购资金逐年增长。公司从降本增效高度出发,提出了“科研软件集中管理、统一监控、科学规划”的要求,建立了科研软件许可证监测系统。
2设计思路
本系统的设计目标是全面监测各分公司科研软件的使用情况,为软件采购方案提供数据支持。在系统建设中,应遵循以下原则。
2.1数据可视化
目前在用的科研软件共有100余款,包含模块数千个,许可证分布在北京、天津、深圳、湛江、上海等地的多个分公司,随着时间的累积,监测数据量将达千万条。因此,将海量的监测数据可视化,以图表的形式展现十分重要。同时,在设计时应从多个不同维度的查看软件的应用情况,例如同一款软件不同分公司使用的峰谷情况、各分公司需求软件模块配比情况,本地、共享中心许可的使用情况等。
2.2系统易扩展
系统的扩展性体现为:第一是监测软件的扩展性,公司每年会根据业务需要采购新的科研软件,系统应支持多种操作系统、多种许可管理模式的许可证监测;第二是监测目标的扩展性,公司的整合重组可能要求对更多的分公司进行软件许可证监测,因此要求能够灵活配置监测目标,支持横向扩展。
2.3数据易维护
系统应时刻保证监测数据的完整性和准确性,否则统计的报表价值将大打折扣,这就要求系统具有良好的数据维护性。监测数据一旦发现不完整或是存在不合理值,应及时发送告警给各分公司管理员,以保障监测数据的完整可靠。
3总体架构
系统按功能划分为监测子系统、管理子系统和统计分析子系统,各个子系统之间保持松耦合关系,相互独立部署、独立运行,采用WebService技术通信。
监测子系统是整个系统的核心,负责实时采集各分公司的软件许可证使用信息,并将其写人数据库形成历史数据;管理子系统用于录入科研软件的静态基础数据,包括模块、许可服务配置、合同等信息;统计分析子系统负责将科研软件的使用情况可视化,以图形控件和Excel输出两种形式进行有效呈现。
4系统的设计与实现
4.1数据库设计
数据库的主要实体集有许可证中心、许可服务、软件、模块和监测结果,ER图如下所示。
根据ER图,设计数据库表,分别为:许可证中心(ID、名称、编码)、软件(ID、厂商、描述)、软件模块分类(ID、软件ID、模块名称、License名称、描述)、模块数量(ID、模块ID、许可证中心ID、数量、更新时间)、许可服务(ID、许可证中心ID、软件ID、IP、端口、主机名)、监测结果(ID、模块ID、时间、使用数、部署数)。
4.2监测子系统
License是由软件厂商创建的数字许可证,它规定了哪些用户可以合法使用哪些软件,以及使用软件的哪部分功能,浮动Llcense是一种适用于网络用户的License使用模式,多个用户可以同时使用软件,直到同时使用人数达到License规定的上限[3]。国内外不同厂商的科研软件采用不同的许可证管理工具,包括FlexLM、SafeNet以及白研管理工具,其中80%以上的软件使用FlexLM。针对这种现状,开发两种数据采集接口:一种面向FlexLM,另一种面向非FlexLM。
4.2.1 FlexLM管理模式
FlexLM是当前软件业中应用最为广泛的软件使用许可证管理软件[4],在全球获得了超过2000个软件商的广泛支持[5],使用FlexLM的最大优点是可通过网络来实现软件使用许可的授权。FlexLM提供了很多许可证管理工具,其中,Imstat命令可以监控所有网络许可活动的状态,具体用法为:
Imstat [-a] [-c license_file_list] [-f’ [feature]] [-i [feature]] [-s[server]] [-S [vendor]][-t timeout_value]
這里我们主要使用Imstat -a -e port@IP来获取指定许可证的实时使用状态,其中port为端口号,IP为许可证服务器lP地址。Imstat命令的返回结果示例见下图,从返回的字符串中我们可以得到该软件所有模块的使用数、部署数、正在使用软件的账号名、主机名、开始时间等信息,编写程序将返回的字符串整理并写入数据库,即可形成许可证的监测历史数据。 4.2.2非FlexLM管理模式
除了FlexLM,一些软件还会使用其他的许可证管理工具,这些管理工具一般没有提供许可证监控工具。为统一监测数据格式、便于系统的后续运维工作,我们要求软件厂商提供许可证监测接口,通过http协议访问返回JSON格式字符串,JSON格式示例如下:
[
{"featureName":"featurel ","version":" 1.O","licenseNum”:”6”,”usedNum": "1", "usageList": [{"userName": "userl", "hostName":“hostnamel ","ip":"192.168.0.1”, "startTime":"2019-10-10 15:1l:29”,”use(lNum”:”1”)]),
{ "featureName":"feature2","version":" 1.O","licenseNum":"8”,”useclNum": "I", "usageList": [{"userName": "user2", "hostName":”hostname2", "ip":”192.168.0.2", "startTime": "2019-10-10 13:23:42”,”usedNum”:”1”}]}”
]
返回值为一个JSON对象数组,JSON对象中的featureName为模块名,version为版本号,licenseNum为部署数,usedNum为使用数,usageList为使用人员列表(包括用户名、主机名、IP.开始时间,使用数),然后编写统一的JSON解析程序完成监测数据入库。
4.3管理子系统
管理子系统主要维护科研软件的静态基础数据,包括许可证中心、许可服务、软件和模块等信息,具体功能如下:
4.3.1许可服务管理
许可服务管理是系统管理员与监控子系统的交互界面,管理员通过浏览器即可添加、更新、删除监测的软件列表(服务器主机名、IP地址、端口号),并白动和监控子系统联动,实现软件的监测[6]。
4.3.2软件模块管理
管理员通过软件模块管理功能可以查看某款软件包含的模块清单,以及分布在各个分公司的许可数量,支持同一多个版本间的模块购买记录查询及对比。支持软件模块动态释放功能,对特定机器使用不同策略,识别终端闲置情况,动态释放激活软件许可[7]。
4.3.3系统告警
当许可证服务出现异常(如许可证过期、进程中止),监测程序无法取得软件的使用情况时,系统会通过邮件、短信方式自动发送告警至各分公司系统管理员。告警信息包括发生时间、许可证中心、软件名称、IP、主机名、端口以及错误信息等。
4.4统计分析子系统
统计分析子系统是系统的核心功能,是各分公司管理员查看软件使用情况的交互平台,共包含三部分功能:实时应用监测、历史数据查询和白动生成软件使用报表[8]。
4.4.1实时应用监测
实时应用监测可以查看各个软件所有模块的实时使用状态,包括部署数量、使用数量以及当前使用的用户信息(用户名、登录主机、开始时间等)。
4.4.2历史数据查询
历史数据查询可查看某个模块的历史使用趋势,便于系统管理员快速查看软件及模块的历史使用情况,同时支持多许可证中心对比、多模块对比等功能,白动过滤工作日使得统计结果更接近真实情况。
4.4.3自动生成軟件使用报表
每年在采购科研软件时需提交软件的使用报表,此功能支持批量生成报表,自动计算各个模块的历史使用峰值和移动平均峰值。
监测系统采集到的许可证使用情况是一组组离散数据,其30天移动平均曲线能很好反映用户应用趋势,能够消除异常数值十扰。移动平均的计算公式如下:
Ft= (At-I At-2 At-3 … At-3 0)/n,
·Ft代表预移动平均值;
·n代表移动平均的时期个数;
·At-l代表前期实际值;
·At-2,At-3和At-n分别表示前两期、前三期直至前n期的实际值。
5结束语
石油专业软件许可证监测系统实现了有限公司范围内科研软件的全面监测,共收集监测数据9000多万条,精准掌握各单位许可证使用情况和应用峰谷规律,许可证需求量明显降低,为科研软件配置方案优化奠定了基础。基于监测数据,利用概率统计学原理快速预测各模块的需求数量,使科研软件配置方案更具合理性。
参考文献:
[1]张云飞,李志刚,韩庆时,等.石油勘探开发专业软件共享技术研究与应用[J].网络安全技术与应用,2018(11):91-92.
[2]杨显峰,毛承国,张进铎,等.地震勘探解释软件远程共享的构建方法探讨[J].计算机时代,2014(5):28-30.
[3]付伟,肖侬,卢锡城.网格环境中基于浮动License的软件资源共享[J].计算机工程与科学,2008,30(8):120-123.
[4]陈军.FLEXlm对多个CAD系统License的管理[J].CAD/CAM与制造业信息化,2001(10):48-49.
[5]章泳健.FLEXlm许可证管理的工作原理及使用方法[J].福建电脑,2002(10):10-11,13.
[6]杨显峰,毛承同,陈翔,等.软件远程共享管理平台的设计与实现[J].计算机时代,2016(9):42-44.
[7]邓莉,范德军,孙胤航.大型专业软件集中管控技术探索与实践[J].中国管理信息化,2014(22):93-94.
[8]仝维维,贾宁,高超,等.基于研发设计软件的License资源共享平台研究[J].计算机与网络,2018,44(10):65-68.
【通联编辑:谢媛媛】
收稿日期:2019-10-29
作者简介:孙超(1987-),男,北京市人,工程师,硕士,主要研究方向为石油勘探开发软硬件架构设计;张云飞(1962-),男,高级工程师,本科;韩庆时(1963-),男,高级工程师,本科;刘锐(198 7-),男,工程师,硕士。