基于Redis缓存的高并发干部测评Web系统的设计
2022-10-15黄祖皓赵彦喆谢毓武郑庆华
黄祖皓,赵彦喆,谢毓武,郑庆华
(广西科技大学 电气电子与计算机科学学院,广西 柳州 545616)
0 引 言
干部测评是高校对干部的管理、监督、选拔、任用时进行的必要考评管理工作。科学、精确的对被测对象的客观评价,关系到干部的选拔、任用和培养。然而各高校在干部民主测评的方法、流程却存在着很大差异。
之前的干部测评采用手工测评方式进行,存在着工作周期长、工作量大、一般只统计总分、很难展现投票细节等一系列的问题,容易导致测评不到位,测评结果不能反映干部工作的真实水平,无法给领导干部更为细致的反馈。本文研究的内容是:针对我校使用传统方式在干部测评中存在的问题,设计开发一个Web测评系统,极大地提高我校干部测评的工作效率和效果。
1 项目功能
本项目以VUE、MySQL、Axios、Redis等多项技术开发一个干部测评系统,实现一个在线测评管理、用户管理、数据处理系统,对干部德、能、绩、廉等各个方面进行测评,并对测评指标赋予权重化,然后再根据转换公式计算出不同被测领导干部的得分,并把结果呈现给用户。
测评系统的用户分为三类:系统管理员,干部,测评人员。系统管理员负责基础数据的维护,包括职工数据、测评表、测评任务。干部负责提交述职报告和测评。测评人员只负责测评。测评进行中以及结束后,管理员可查看统计分析结果。
整个系统的大致流程如图1所示。
图1 干部测评系统流程
(1)系统管理员创建职工数据后,干部和测评人员方能登录测评系统。
(2)系统管理员创建测评表,创建测评任务,把测评任务分配给干部作为被测评对象、分配给群众作为测评人员。
(3)干部登录后,可管理自己的述职报告。但要在分配到测评任务后,方能给测评任务提交述职报告。
(4)在测评任务的开始时间之后,干部和测评人员开始测评。
(5)测评的起始时间内,管理员可查看测评完成情况,通知未测评的人员及时测评。
(6)测评结束后,管理员可查看测评的统计分析结果,并下载相关信息存档。
1.1 职工数据管理
职工数据主要是测评者和被测评者的个人基本信息,该模块主要的内容就是对这些信息进行管理,包括上传职工信息表、查询职工的基本信息、修改个人登录密码、删除职工信息等各项内容。导入的数据文件为Excel格式,首行为(工号,姓名,部门,职务)。由职务来区分干部和群众:职务为空的为群众(测评人员)。
1.2 测评表及测评任务管理
该模块主要对测评表进行管理和测评任务进行设定,如图2所示。测评表管理包括测评表上传、浏览测评表、删除测评表、修改测评表基本信息。
图2 测评表及测评任务预设定
测评表可由下面格式的文本文件上传(导入)生成。由方括号[]区分各个测评小节,在每个测评小节中,每一行对应一个测评项。具体示例如下:
[思想政治建设]
#注释与说明(#开头,不会出现在最终测评表中):考察德品
贯彻民主集中制 议事决策规则健全
班子团结,分工合作
[领导能力]
工作目标和规划 工作思路和举措
攻坚克难、开拓进取 管理效率与水平
……
最终生成的测评界面如图3所示。
图3 测评表预览
测评表创建完成后,可以创建相应的测评任务。测评任务分为3类:一般任务、部门内任务、班子测评。一般任务需要分配被测评对象和测评人;部门内的测评仅需分配被测评对象,测评人默认为测评对象所在部门的所有人员(包括领导干部和群众);如果测评任务的类型为班子测评,则被测评对象,每个部门只能选择1人,由他代表整个班子进行述职报告的提交。
1.3 干部述职
干部述职模块主要包括干部述职报告的上传、提交、查看、删除,如图4所示。干部拥有提交、查看、删除报告权限。测评人员仅可以查看述职报告和删除测评。管理员拥有全部权限。管理员、干部、测评人员对于述职报告的权限。
图4 操作对象与干部述职表的关系图
干部可以用 1 份上传的述职报告提交给多个测评任务。在提交述职报告时,干部也可以看到对应的测评表内容,以便有针对性地陈述自己的工作。
1.4 测评
测评模块主要包括查看述职报告、查看测评任务和测评开展,如图5所示。
图5 职工测评模块功能预设
测评的界面如图6所示。
图6 测评界面效果,上方显示测评任务,左侧为述职报告,右侧为测评项
1.5 报表统计
该模块主要是通过数据采集和数据管理来进行测评结果的统计和展示。在对处级干部进行考核中,被测评者的客观评价,通过对各个指标赋予相应的测评权重,然后再根据统计公式计算出最终得分。通过多个报表展示测评的各个方面结果。
(1)所有部门的测评完成率。可在此处查看未完成测评任务的部门及个人,以便及时通知。
(2)群众测评情况。从群众的角度来展示测评结果,可以按部门看到每个测评人对所有测评对象的评分情况。从中群众间的对比中分析/发现群众对领导干部的极端意见。
(3)领导测评结果。从领导干部的角度来展示测评结果,可以按部门看到每个被测评对象的评分情况。从领导间的对比中分析/发现领导干部之间的差异。
(4)领导测评分项详情。对比部门内领导间在各个测评细项上的结果差异,从各等级票数/分数来分析/发现领导在各方面的差异,便于总结对领导的评价意见,有利于提升该领导的表现。
(5)班子测评结果。对比单位内各部门的班子得分,用于比较部门间的班子得分。
(6)班子测评分项详情。比较各个班子在班子测评细项中的差异。
(7)所有测评任务分数。显示各个任务中各被测对象的分数。
(8)计算成绩。此处列出了每个领导所对应的测评任务,按任务组进行划分,有相同任务的领导放在一个表格中,指定各任务的权重后,可计算出领导的测评总分。此功能也可以在分配完任务后检查领导的测评任务是否正确。
(9)输出最终结果。此功能可查看领导的最终得分,并可以导出Excel文件。还可以进入领导的界面,查看他们的述职报告、被测评任务。还可以打包下载所有领导的述职报告,以便存档。
2 关键技术
2.1 技术路线
系统采用主流的Web前后端分离进行开发实现,便于团队开发与维护。前端以Vue和Element-ui框架为基础,实现用户数据的输入以及结果的展示。后端以Java语言为主,采用Spring Boot/Jersey等框架,为前端提供Restful风格的访问接口,实现数据的存储、处理等功能。
2.1.1 前端界面设计
整个界面风格如图7所示,分为3个部分:上方为功能导航区,列出系统的功能类别。上方右侧为个人信息区域,提供密码修改和退出登录功能。中部左侧为每个功能所提供的操作项目。中间部分为数据展示及操作区。
图7 前端界面的统一风格
2.1.2 软件模块设计图
软件开发分为基础数据维护、测评表及测评任务设定、干部述职、职工测评、报表统计五大部分,为后端设计了如图8所示的类图。
2.1.3 restful api设计
为适应不同客户端应用,系统的前后端接口采用restful api风格,部分接口如表1所示。
表1 restfulapi示例
图8 后端系统的主要类图
2.2 高并发缓存设计
Redis不仅是一个高性能的key-value存储系统,还是一个NOSQL类型数据库,拥有强大的消息队列,为高并发等一系列的问题提供一个缓存方案。Redis作为缓存的作用,能够减少对数据库的访问压力。它位于数据库的前端,访问数据时,首先从Redis中查看该数据是否存在:若无,则从数据库中提取到Redis缓存;如果有,则从Redis缓存中读取,不访问数据库了。如图9所示。
图9 Redis缓存原理图
2.3 数据的安全性和保密性
系统从2个层面来保证数据的安全性与保密性:系统层与应用层。
2.3.1 系统安全设计
(1)服务器系统安全。系统运行的操作系统为Ubuntu 18.04,数据库为Redis4.0,运行环境OpenJDK-JRE-8.0,Web服务器为Nginx。
述职报告存储在本地文件系统中,目录权限设置为用户本身可访问,其他用户均不可访问,由操作系统来保障数据的安全。
系统仅开放80(HTTP)和443(HTTPS)端口,关闭其他所有的端口,限制所有用户的远程登录,确保服务器的安全运行。
(2)数据库安全设计。基础数据存在本地数据库中,禁止远程访问,设置数据库用户的复杂登录密码,确保只有应用程序能够访问数据库。设计相应的机制,防止数据库的注入攻击。
(3)传输安全。根据用户的网络情况,支持 HTTPS 安全传输协议,使数据在用户端浏览器和服务器之间的数据传输能够加密进行,极大提高数据的保密性。
如果仅在用户的内网使用,则无法使用HTTPS协议,chrome之类的浏览器会在地址栏提示“不安全”。这只是chrome浏览器暗示所有网站都应该使用HTTPS而已,对于无法访问Internet的内部网络,可适当降低传输方面的要求。
2.3.2 应用安全设计
(1)密码。用户输入的密码,在用户端即进行了加密处理,使用的方法为 SHA256,在目前的条件下,解密仍是不可逆的,保证了用户的原始密码。
(2)访问控制(access control)。用户登录后,使用令牌(Token)代替用户来进行资源的访问,保护了用户的信息。
为了确保令牌的安全,设计了相应的签名机制,确保用户的令牌不被其他用户冒用。
(3)认证(authenticate)。对于所有的系统基础信息(用户信息、测评表、测评任务、统计报表等),每次访问都要验证令牌是否是系统管理员所有,防止信息泄露。
对于所有的用户资源(述职报告、测评任务等),每次访问都要进行认证,确保用户的令牌与用户本身一致,防止信息的盗用。
(4)鉴权(authorize)。系统管理员把测评任务分配给相关的领导干部和测评人员后,相应对象才拥有对这些任务及测评表的访问权限。
领导干部给测评任务提交述职报告后,相关的测评人员对该述职报告才有访问权限。
对于所有的测评表、测评任务、述职报告,每次访问都要对用户进行鉴权,判断用户是否拥有相应的权限,防止信息的泄露。
3 结 论
本文从理论和技术实现两个方面,对基于缓存与消息队列的高并发Web处级干部测评系统的设计与实现过程进行了详细的介绍。本系统有以下3个特点:
(1)无纸化在线测评,使得整个测评过程及结果都可以清晰可见、并且匿名化适当保护测评者隐私。通过细致的分析各项测评细节、综合客观科学地反映处级干部各方面能力,为组织部选用人才提供可靠参考。
(2)设计符合安全要求的数据传输及访问授权机制,确保测评信息的保密性。由于系统部署在校园内网,暂时无法采用安全的HTTPS协议进行数据的传输,因此,在不安全的HTTP协议上实现可信的测评是本系统的一个创新点。
(3)设计一套高并发框架,以适应测评的高突发特性。测评通知下发后,我校数千职工可能会带来一些访问尖峰。借鉴一些缓存、消息队列等方案,提高系统吞吐率并进行削峰处理,沉稳应对可能的高并发访问。