专业软件许可证监测系统的设计与实现

摘要:整车企业每年投入大量资金采购各类专业软件,为掌握软件许可证的真实需求,建立了专业软件许可证监测系统,实现在公司范围内软件集中管理和统一监控,节约软件投资成本。该研究提出了软件许可证监测系统的设计思路和整体架构,论述了数据库以及各个子系统的详细设计与实现方法,形成了跨操作系统、跨软件厂商的软件许可证数据采集统一解决方案。目前系统采集的监测数据已成功为软件规划采购提供数据支撑,达到了降本增效的目标。

1. 背景

   专业工具软件在汽车行业的快速发展中发挥了重要的作用,已成为生产中不可缺少的技术研究手段。在汽车制造领域中,有大量的专业软件被频繁使用,在汽车研发过程中,经常遇到某些软件不够用的情况,因此需要多个部门共同使用、互通有无,提高许可的使用效率。

   专业软件许可证是公司投入巨额资金采购的重要资源,然而由于缺少数据监测工具,不掌握各分公司许可证的使用情况和真实需求,只能依据工作量和人员数量来估算,造成需求计划不准确。另一方面,一套软件中的功能模块之间依赖关系及许可证配比关系复杂,仅凭经验很难精准确定每个模块的需求数量,缺少有效的评估及预测工具,无法确定软件配置方案合理性,难于与厂商开展有效的沟通与谈判。

 随着研发生产工作量和人员数量的增加,工具软件需求数量不断增加,采购资金逐年增长。公司从降本增效高度出发,提出了“工具软件集中管理、统一监控、科学规划”的要求,建立了工具软件许可证监测系统。

2. 设计思路

本系统的设计目标是全面监测各部门工具软件的使用情况,为软件采购方案提供数据支持。在系统建设中,应遵循以下原则。

2.1 数据可视化

目前在用的工具软件共有100余款,包含模块数千个,许可证分布在北京、上海等地的多个分公司,随着时间的累积,监测数据量将达千万条。因此,将海量的监测数据可视化,以图表的形式展现十分重要。同时,在设计时应从多个不同维度的查看软件的应用情况,例如同一款软件不同分公司使用的峰谷情况、各分公司需求软件模块配比情况,本地、共享中心许可的使用情况等。

2.2 系统易扩展

系统的扩展性体现为:第一是监测软件的扩展性,公司每年会根据业务需要采购新的工具软件,系统应支持多种操作系统、多种许可管理模式的许可证监测;第二是监测目标的扩展性,公司的整合重组可能要求对更多的分公司进行软件许可证监测,因此要求能够灵活配置监测目标,支持横向扩展。

2.3 数据易维护

系统应时刻保证监测数据的完整性和准确性,否则统计的报表价值将大打折扣,这就要求系统具有良好的数据维护性。监测数据一旦发现不完整或是存在不合理值,应及时发送告警给各分公司管理员,以保障监测数据的完整可靠。

3. 总体架构

 系统按功能划分为监测子系统、管理子系统和统计分析子系统,各个子系统之间保持松耦合关系,采用WebService技术通信。

 监测子系统是整个系统的核心,负责实时采集各分公司的软件许可证使用信息,并将其写入数据库形成历史数据;

 管理子系统用于录入工具软件的静态基础数据,包括模块、许可服务配置、合同等信息;

 统计分析子系统负责将工具软件的使用情况可视化,以图形控件和Excel输出两种形式进行有效呈现。

4. 系统的设计与实现

4.1 数据库设计

数据库的主要实体集有许可证中心、许可服务、软件、模块和监测结果。

设计数据库表,分别为:许可证中心(ID、名称、编码)、软件(ID、厂商、描述)、软件模块分类(ID、软件ID、模块名称、License名称、描述)、模块数量(ID、模块ID、许可证中心ID、数量、更新时间)、许可服务(ID、许可证中心ID、软件ID、IP、端口、主机名)、监测结果(ID、模块ID、时间、使用数、部署数)。

4.2 监测子系统

License是由软件厂商创建的数字许可证,它规定了哪些用户可以合法使用哪些软件,以及使用软件的哪部分功能,浮动License是一种适用于网络用户的License使用模式,多个用户可以同时使用软件,直到同时使用人数达到License规定的上限。国内外不同厂商的工具软件采用不同的许可证管理工具,包括FlexLM、SafeNet等管理工具。

4.3 管理子系统

管理子系统主要维护工具软件的静态基础数据,包括许可证中心、许可服务、软件和模块等信息,具体功能如下:

l 许可服务管理

许可服务管理是系统管理员与监控子系统的交互界面,管理员通过浏览器即可添加、更新、删除监测的软件列表(服务器主机名、IP地址、端口号),并自动和监控子系统联动,实现软件的监测。

l 软件模块管理

管理员通过软件模块管理功能可以查看某款软件包含的模块清单,以及分布在各个分公司的许可数量,支持同一多个版本间的模块购买记录查询及对比。支持软件模块动态释放功能,对特定机器使用不同策略,识别终端闲置情况,动态释放激活软件许可。

l 系统告警

当许可证服务出现异常(如许可证过期、进程中止),监测程序无法取得软件的使用情况时,系统会通过邮件、短信方式自动发送告警至各分公司系统管理员。告警信息包括发生时间、许可证中心、软件名称、IP、主机名、端口以及错误信息等。

l 统计分析子系统

统计分析子系统是系统的核心功能,是各分公司管理员查看软件使用情况的交互平台,共包含三部分功能:实时应用监测、历史数据查询和自动生成软件使用报表。

实时应用监测:可以查看各个软件所有模块的实时使用状态,包括部署数量、使用数量以及当前使用的用户信息(用户名、登录主机、开始时间等)。

历史数据查询:可查看某个模块的历史使用趋势,便于系统管理员快速查看软件及模块的历史使用情况,同时支持多许可证中心对比、多模块对比等功能,自动过滤工作日使得统计结果更接近真实情况。

自动生成软件使用报表:每年在采购工具软件时需提交软件的使用报表,此功能支持批量生成报表,自动计算各个模块的历史使用峰值和移动平均峰值。

5. 结束语

专业软件许可证监测系统实现了有限公司范围内工具软件的全面监测,共收集监测数据上亿条,精准掌握各部门许可证使用情况和应用峰谷规律,许可证需求量明显降低,为工具软件配置方案优化奠定了基础。基于监测数据,利用概率统计学原理快速预测各模块的需求数量,使工具软件配置方案更具合理性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图解 微信开发者工具 小程序源码 调试、断点标记方法 , 微信小程序调试器,真机调试断点调试方法,小程序网络API请求调试方法 总结

在我们使用微信开发者工具进行微信小程序开发的时候,在这个微信开发者工具的代码编辑框里面我们是无法像使用vscode, idea等IDE工具时那样直接对代码打断点进行调试, 原因是小程序实际上他就是一个web浏览器应用的包装, 在其内部使用的还是类似chrome的…

塔吊识别数据集 yolo格式 共5076张图片 已划分好训练验证 txt格式 yolo可直接使用

塔吊识别数据集 yolo格式 共5076张图片 已划分好训练验证 txt格式 yolo可直接使用。 类别:塔吊(Tower-crane) 一种 训练数据已划分,配置文件稍做路径改动即可训练。 训练集: 4724 (正面3224 负面1500) 验证集&#xf…

若依框架生成多个sheet的Excel方法

步骤: 1,创建一个Excel的sheet的实体类 package com.XXX.common.utils.poi; import java.util.List;public class ExcelExp {private String fileName;// sheet的名称private String[] handers;// sheet里的标题private List dataset;// sheet里的数据集…

C#实现Punycode编码/解码

测试代码 string word "我爱你"; string idn "我爱你.中国"; string wordCode PunyCode.Encode(word); string punycode PunyCode.IDN2Punycode(idn);Console.WriteLine(word); Console.WriteLine(wordCode); Console.WriteLine(PunyCode.Decode(word…

Docker:容器化技术的革命力量

Docker:容器化技术的革命力量 在当今的软件开发和部署领域,Docker 无疑是一颗璀璨的明星。它以其独特的魅力和强大的功能,改变了我们构建、交付和运行应用程序的方式。本文将深入探讨 Docker 的方方面面,带你领略它的魅力所在。 …

c语言链表实现

&#xff08;注意事项都已经在代码中标注&#xff09; 1.链表相关函数的头文件 #define _CRT_SECURE_NO_WARNINGS #pragma once #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <errno.h> #include <string.h> typede…

vscode写markdown插入图片视频并放在指定目录

目录 前言正文 前言 各种云文档非常好用&#xff0c;但是当你想把这些资料保存在本地时&#xff0c;markdown我觉得是最好的选择 markdown编辑器也有很多&#xff0c;但我还是觉得vscode最好用&#xff0c;直接粘贴文件就可以插入也类似云文档的使用体验&#xff0c;但是想要…

外卖点餐系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;外卖员管理&#xff0c;餐厅管理&#xff0c;用户管理&#xff0c;菜品分类管理&#xff0c;菜品信息管理&#xff0c;外卖订单管理&#xff0c;订单配送管理 微信端账号功能包括&#xff1a;系统首页…

OKHTTP 如何处理请求超时和重连机制

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。 &#x1f60a; 座右铭&#xff1a;不…

Linux下Docker方式Jenkins安装和配置

一、下载&安装 Jenkins官方Docker仓库地址&#xff1a;https://hub.docker.com/r/jenkins/jenkins 从官网上可以看到&#xff0c;当前最新的稳定版本是 jenkins/jenkins:lts-jdk17。建议下在新的&#xff0c;后面依赖下不来 所以&#xff0c;我们这里&#xff0c;执行doc…

VS+QT 自定义插件变成动态库加载及使用

一、前言 有个界面需要重复使用某个自定义的控件&#xff0c;希望自定义控件能够像动态库文件那样&#xff0c;添加引用lib就能使用&#xff0c;经过多次太坑后&#xff0c;总结如下 二、实现方式 ① 新建项目&#xff0c;选择"Qt Designer Custom Widget" 创建自定…

Kubernetes(k8s) 与 docker 间 镜像导入

docker 导出&#xff0c;k8s 导入 docker 镜像导出 查看镜像 docker images结果 REPOSITORY TAG IMAGE ID CREATED SIZE openjdk jz23 092ed76962fb 3 hours ago 694MB导出镜…

python爬虫 - 进阶正则表达式

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、匹配中文 &#xff08;一&#xff09;匹配单个中文字符 &#xff08;二…

JavaEE-进程与线程

1.进程 1.1什么是进程 每个应⽤程序运⾏于现代操作系统之上时&#xff0c;操作系统会提供⼀种抽象&#xff0c;好像系统上只有这个程序在运 ⾏&#xff0c;所有的硬件资源都被这个程序在使⽤。这种假象是通过抽象了⼀个进程的概念来完成的&#xff0c;进程可 以说是计算机科学…

【动态规划】子数组系列(上)

1. 最大子数组和 53. 最大子数组和 状态表示&#xff1a;以 i 位置为结尾时的所有子数组中的最大和 状态转移方程&#xff1a; i 位置为结尾的子数组又可以分为长度为 1 的和大于 1 的&#xff0c;长度为 1 就是 nums[i] &#xff0c;长度不为 1 就是 dp[i - 1] nums[i]&…

Javascript笔试题目(三)

1.如何使用JS实现setTimeout功能来模拟setlnterva请写出具体代码 在JavaScript中&#xff0c;setTimeout 和 setInterval 是两个常用的定时器函数&#xff0c;但它们的行为有所不同。setTimeout 用于在指定的延迟后执行一次代码&#xff0c;而 setInterval 则用于每隔指定的时…

Ubuntu中vscode如何选择ROS版本

Ubuntu中可能安装了多个ROS版本&#xff0c;比如ROS1 noetic&#xff0c; ROS2 foxy, humble等。有时候需要在vscode中对ROS程序进行debug&#xff0c;一般会先安装ROS插件。当电脑上有多个ROS版本时&#xff0c;选择Debug中选择ROS&#xff1a;Launch ROS:Attach(ROS1)或者ROS…

Prometheus + Grafana 监控 MySQL 数据库

文章目录 1、前置介绍2、搭建流程2.1、安装 Docker2.2、安装 MySQL2.3、安装 MySQL Exporter2.4、安装 Prometheus2.5、安装 Grafana 1、前置介绍 本次监控平台搭建&#xff0c;我使用2台阿里云服务器来完成本次的搭建部署操作&#xff0c;配置如下&#xff1a; 阿里云ECS1&am…

【宝可梦】游戏

pokemmo https://pokemmo.com/zh/ 写在最后&#xff1a;若本文章对您有帮助&#xff0c;请点个赞啦 ٩(๑•̀ω•́๑)۶

Word文档功能快捷键大全

以下是 Microsoft Word 的全面快捷键大全&#xff0c;涵盖了文档操作、文本编辑、格式化、导航等多种功能&#xff0c;帮助你提高工作效率。 Word 全面快捷键和快捷方式表 功能类别快捷键/快捷方式功能描述基本文档操作Ctrl N新建文档Ctrl O打开文档Ctrl S保存文档F12另存…