软件浮动授权辅助系统的研究

2018-11-09 08:07王富强丁小梅王红涛赵军涛
重型机械 2018年5期
关键词:服务器端浮动闲置

王富强,丁小梅,王红涛,李 韬,赵军涛

(中国重型机械研究院股份公司,陕西 西安 710032)

0 前言

现在很多软件都需要授权使用,软件授权是为了让用户按照购买许可来使用软件,授权许可涉及到软件的安装份数、使用时间和功能模块等内容。对于公司来说,必需软件的使用人数会有很多,而且这样的软件也会有多种,所以根据合理的需要购买适当的软件授权十分重要。在很多公司中,现在大都采用浮动授权的方式进行计算机之间的授权转移,减轻公司用于购买软件授权的负担,充分使用每个软件授权。

一些软件已经有相对应的软件浮动授权管理系统来进行浮动授权,但很多这样的管理系统收回授权的方式都基于用户机上软件的主动退出或者管理员手动的强制下线。在这样的浮动授权管理模式下,就存在客户端上软件长期占用授权但并无操作的情况,这样便很容易造成软件授权短缺错觉。

本文提出软件浮动授权辅助系统,采用后台监控的方法来防止软件授权被长期无效占用,利用后台服务程序监测需要监控软件的CPU活动,当检测闲置时间达到一个设定值时,系统将会保存当前作业后正常关闭软件(软件正常关闭时授权才会自动收回)。采用这种方法有效地提高了软件授权的利用率,减少公司在软件授权采购上的开销。

1 系统框架

软件正常关闭一般需要对软件打开文件进行关闭保存,当软件无需要保存文件时,软件直接调用taskkill命令关闭软件;在有需要保存的文件时,软件正常关闭的一般过程如图1所示,首先界面会先弹出是否保存的确认对话框,在默认为是的情况下,接着弹出文件另存为对话框,两个对话框都使用Windows API进行自动控制,直到所有文件保存。后台监控的方法可广泛应用于无需人为干预的情况下,方便快捷并且很少出现异常情况,能够很好地自适应于很多应用中。

图1 软件正常关闭一般过程图

对于一般的C/S架构系统,都需要进行网络数据传输,将数据从客户端传输到服务器端的过程如图2所示。客户端程序会将配置文件一些信息使用Socket传输到服务器端,服务器端程序在接收到信息后,将信息处理并存储到本地数据库,当服务器端需要对数据进行操作处理时,再从本地数据库进行存取。服务器端与本地数据库进行交互操作,过程是基于ODBC驱动程序将执行操作进行转换,间接性操作数据库。

图2 数据传输过程图

2 软件浮动授权辅助系统需求分析

对于每一个系统来说,需求分析都是不可或缺的环节。它可以从总体上帮助系统开发人员确定研究方向,尽量提供系统实现功能需求的全部信息,因此要保证系统需求分析阶段与设计阶段的一致性和完整性。本系统需求分析阶段的主要工作是根据系统的目标要求以及终端用户的咨询意见确定系统的核心功能需求和其它需求。

本系统实现的目标要求为:

(1)检测目标软件是否运行;

(2)检测目标软件是否闲置,当闲置时间达到设定时间间隔正常关闭软件;

(3)对正常关闭软件收回授权的用户机进行记录。

通过详细分软件浮动授权辅助系统的目标要求,并对用户信息进行收集整理,将系统的需求分析划分为:信息需求分析、功能需求分析和方法需求分析。

本系统的信息需求分析阶段需要采集用户使用软件的种类、可接受的界面方式、一些具体参数的数值大小以及应答反馈消息,然后将这些信息提取整理和分层次结构化,获得完整的输入信息。在信息需求分析过程中,对整理过的输入信息通过一些方法(例如:过程控制方法和数据应答方法)处理依次获得中间数据信息和输出数据信息,其中输出数据信息包含闲置时间达到设定值的提示信息、软件正常关闭的反馈信息和软件关闭的记录次数信息。

系统的功能需求分析是主要基于系统的目标要求和信息需求分析,分析系统涉及的功能模块主要包括异常事件的诊断处理、系统可视化界面构建、软件正常关闭和信息反馈等。

系统的方法需求分析是分析整个系统中采用的方法,本系统涉及的方法主要有界面搭建方法、框架设计方法和过程控制方法等。系统基于C#编程语言进行系统的界面设计,其中服务器端以Windows应用程序的形式与管理员进行交互;系统使用MySQL数据库对系统服务器端数据进行管理,系统在数据库上的操作仅涉及一些存取操作,其中借助ODBC驱动实现系统服务器端对MySQL数据库的操作;对系统执行过程中产生的异常事件采用自动诊断方式,并将诊断报告记录为日志;客户端以后台服务程序的形式对系统客户端进行过程控制。

3 软件浮动授权辅助系统的设计方案

本系统是一个C/S架构的系统,包含有客户端程序和服务器端程序,系统的整体框架图如图3 所示。其中客户端程序为后台服务程序,主要执行监控目标软件、正常关闭软件并且保存文件的工作;服务器端是一个Windows应用程序,主要为管理员提供信息浏览。

图3 系统整体框架图

在系统的整体框架图中,系统的客户端采用后台监控的方法检测目标软件是否闲置,不涉及用户的交互操作。客户端采取每隔一个时间间隔执行一遍监测程序,检测每个目标软件是否闲置。如果检测到软件闲置,记录软件的连续闲置时间;否则,将闲置时间置0。当目标软件的闲置时间达到预设值时,系统判定用户机上的授权软件为长期无效占用。客户端利用后台控制程序对该授权软件进行正常关闭。在客户端授权软件正常关闭后,系统的客户端会将关闭消息发送给服务器端。系统的服务器端接收到用户IP传来的消息,将关闭的消息按照不同IP、不同计算机名对应保存在本地数据库中,管理员可以根据需要进行浏览。

4 软件浮动授权辅助系统的实现与应用效果分析

本文提出的软件浮动授权辅助系统主要针对于CAX类型软件,CAX类型软件即采用CAD、CAM、CAE、CAPP、CIM、CIMS、CAS、CAT、CAI等各项技术实现计算机辅助设计的软件,现在主要涉及的CAX类型软件主要有AutoCAD、SecoMan和Eplan。

系统的实现过程中,在用户计算机上配置客户端程序,使用后台监控的方法检测CAX软件是否长时间处于无操作占用情况,一旦检测到便要正常关闭CAX软件来进行强制下线授权操作,其中需要对CAX软件打开的相关文件进行保存,处理AutoCAD、SecoMan和Eplan软件的不同之处在于对话框的参数不同。在CAX授权软件正常关闭后,该CAX授权软件的浮动授权管理系统会自动收回用户机的软件授权。同时,软件浮动授权辅助系统的客户端会将授权收回消息记录在本地,还会通过网络传输到服务器端,服务器端通过MySQL数据库对不同用户机上不同的CAX授权软件进行管理,管理员可以通过交互界面进行浏览。

由于系统的客户端采用后台监控控制的方法设计,系统在实现中需要充分考虑安全性和可维护性。系统采用异常事件处理的方式避免出现后台程序卡死,同时将异常事件记录在错误日志中,方便进行维护。

在系统的测试阶段将CAX软件闲置时间设置为较短时间,主要对一个CAX类型软件的授权收回进行测试。将测试条件进行划分模块,采用定多变一的方法反复测试,并将多次测试过程结果进行记录,以优化本系统的应用效果。

在测试系统的过程中,测试的评估结果符合系统的目标要求,在性能方面具有一定的准确性、高效率和安全性。经过试运行,软件浮动授权辅助系统在很大程度上杜绝了用户长期无效占用软件授权的情况,提高了软件授权的使用效率,节省了在昂贵的设计类软件授权购买上的开支,从而在保障了设计软件的高效利用满足用户使用需求的同时降低了企业的运营成本。

猜你喜欢
服务器端浮动闲置
电连接器柔性浮动工装在机械寿命中的运用
数字化赋能闲置宅基地和闲置农房盘活改革
不做闲置主妇
Linux环境下基于Socket的数据传输软件设计
论资本账户有限开放与人民币汇率浮动管理
带有浮动机构的曲轴孔镗刀应用研究
CSS层叠样式表浮动与清除浮动技术研究
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
闲置集装箱船队运力已超100万TEU