APP下载

基于微服务架构的高校社区离退休管理系统设计

2022-05-30曹婷婷于晨邹恒华王红罡许维胜

电脑知识与技术 2022年28期

曹婷婷 于晨 邹恒华 王红罡 许维胜

摘要:为了提升高校离退休人员管理的便捷度,文章提出一种基于微服务架构的离退休管理系统,主要依赖Spring Cloud框架和Docker容器的基础能力来搭建整个微服务平台。根据微服务原则,将系统划分为可独立开发、可单独部署的功能模块,降低了系统的耦合性,提高了系统的稳定性和可扩展性,使管理退休人员的流程更加智能。

关键詞:微服务架构;离退休管理系统;Spring Cloud;Docker

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2022)28-0030-04

随着社会发展,人口老龄化问题也变得越来越严重,在社会发展过程中,高校的规模也在不断壮大,随之而来的高校离退休人员也越来越多,相关数据显示在2016年教育部直属单位和高校的离退休人数已接近50万[1],笔者所在的单位截至2021年离退休人数已达到近八千人。中组部在《关于进一步加强新形势下离退休干部工作的意见》的通知(中组发[2008]10号文件)中,明确了做好离退休干部工作的重要性。如何做好离退休人员的管理和服务工作,是离退休管理工作者面临的一个重要课题。

以往通过线下手工录入或者Excel统计的方式已经无法再满足现有离退休工作的需求了,将如何打造精准、规范的离退休服务,尽可能把方便留给老同志,让信息和数据多跑路,让老同志和管理人员少跑路,让老同志老有所学作为我们的工作目标。基于微服务架构的离退休管理系统设计坚持以离退休人员为中心,并将这个思想贯穿于系统设计过程中,在补齐高校离退休教职工管理信息化建设短板的基础上,通过与学校有关部门紧密合作,努力实现高校离退休工作业务“一网通办、一网好办、一次办好”的工作目标,加快离退休业务从“能办”到“好办”转变。

1 当前高校离退休工作中存在的问题

目前高校离退休工作中主要存在以下几方面的问题:

一是人员信息准确度低。目前大多离退休人员的信息都是通过手工记录或者Excel表格记录的,离退休人员数量众多、信息繁杂,需要经常进行增删查改,在没有系统的情况下,离退休人员的信息不准确,工作人员无法提供良好的主动服务和精准帮扶。

二是国家相关制度一直在不断完善和变化。改革开放以来,我国机关事业单位养老制度经历了三个重要阶段[2],每个阶段的养老金核算发放方式都有不同,相应的算法需要及时变化,所以设计具有灵活架构的信息系统尤为重要。

三是负责离退休工作的老师普遍年龄偏大且计算机使用能力偏弱[3],管理系统的老师人数较少但日常工作内容又很多。

四是离退休人员数量较多,且管理老师每天都需要处理离退休人员的相关信息,另外老年大学模块有业务期,亟须系统稳定,系统不稳定会大大增加管理老师的工作量,也会影响老年大学报名、付款、退课、退款等一系列流程的用户体验。

五是信息没有和校内其他系统对接。目前离退休人员信息只存在于离退办负责老师的表格中,没有和校内其他系统共享数据,造成了离退办和校内其他部门比如人事处数据不一致,进而造成对离退休人员的管理和服务不到位的问题。

2 离退休系统的总体需求

高校离退休系统是实现高校离退休工作数字化转型的关键,系统需达到对离退休人员的信息精准管理,提高管理工作者效率,降低离退休人员使用系统难度,为离退休人员提供主动服务,为特殊人员提供重点帮扶等目标,并需要满足灵活性和稳定性。目前很多高校没有独立完备的离退休管理系统,基于调研的离退休管理需求及上述目标,该系统需要满足以下五大方面功能:

一是数据准确性要高。为保证离退休人员基本数据准确,需要对接人事系统中的人员基本信息数据,离退休人员的姓名、工号、身份证号等基本信息取自人事系统,并存到人员信息表中,保证人员基本信息的准确度;对于退休单位、是否健在、紧急联系人等需要管理员维护的信息也存储在人员信息表中,进而系统可以通过相应字段判断是否需要发放补贴及补贴等级、是否需要发放抚恤金等。

二是系统易扩展、易配置。离退休管理系统基础功能中需要涵盖数据统计、权限管理、人员管理、财务管理、抚恤金管理等多个模块,另外由于各项补贴情况未来可能会发生变化,所以系统需要易扩展,金额也可能随着政策变化,所以需要灵活易配置能力。

三是系统操作简便。由于用户的信息化能力一般,在设计系统时,要考虑操作简单,界面清晰明了,能直观了解各个模块的功能。

四是系统要稳定。系统模块比较多,每个模块之间都是关联的,为了防止某个模块宕机导致整个系统不可用,在设计系统时采用微服务架构,降低模块之间的耦合性,提高系统鲁棒性。

五是能信息共享给校内其他系统,为其他相关业务提供数据支持。目前大部分高校没有离退休管理系统,系统建设好之后,该系统中的离退休人员数据是最全的,为了管理的方便,需要将离退休管理系统存储的部分重要字段共享到人事等相关系统,比如人员是否健在、人员退休管理单位等信息,人事管理部门可以掌握全校教职工相关信息进而将这些信息共享给校内其他相关部门,比如信息化办公室可以通过这些信息管理离退休人员的统一身份认证、一卡通、邮箱等基础信息,在为离退休人员提供相关服务的同时,也可以减少网络安全、一卡通被盗取、邮箱被盗取等风险的发生。

3 基于微服务架构的离退休管理系统设计

3.1 微服务系统的特点

微服务系统是一个分散的系统,由多个相互独立的微服务组成,服务间通过轻量级机制进行通信,每个服务是可以相互独立开发的,在编程语言、技术、部署和开发团队上都是相互独立的[4-5],构建和发布是自动化持续交付的[6]。这些特点使整个发布过程非常便捷,还可以通过日志查看构建过程中的问题、业务报错问题等,提高排查问题的效率。

微服务是一种新兴的软件架构设计方式,旨在克服基于单体应用架构的系统的低扩展性、维护困难等问题。考虑到系统的易用性、易扩展性、稳健性等特点,本文提出基于微服务架构的离退休管理系统,微服务架构的核心原则就是松耦合、高内聚[6]。根据文献[7],微服务系统最重要的属性就是扩展性高、易维护、独立部署等,这也是高校离退休管理系统比较关注的属性。

3.2 系統功能设计

整个离退休管理系统的业务结构如图1所示,主要包括数据统计、权限管理、人员管理、财务管理、抚恤金管理、老年大学以及活动中心七大模块。每个模块设计为一个单独的微服务,独立开发、单独部署。

人员管理中主要管理离退休人员的姓名、工号、身份证号等不可编辑的基本信息以及是否健在、紧急联系人等可以编辑的信息,数据是非常重要的,其他模块的人员信息数据都是从人员管理中获取的,整个数据流程如图2所示,通过数据交换获取人事系统中离退休人员的基本信息,T+1更新到离退休人员数据库,离退休人员的是否健在、紧急联系人等其他字段是管理员通过数据录入或者批量导入的方式更新的,更新好的离退休人员信息可以回传给人事系统中,补齐基本信息外的其他信息,财务管理等其他模块也是调用离退休人员数据库的数据进行逻辑判断的;财务管理中包含医疗补助、困难补助、节假日慰问金等财务相关信息;抚恤金管理中主要维护离退休人员去世后申报、抚恤金预约等信息;老年大学中为老年群体创建了兴趣课程,让老年群体老有所学、老有所乐;活动中心用于离退休人员预约活动场地;权限管理主要用于分配管理员权限,可以给不同的角色分配不同权限,二级部门或三级部门可以管理自己的离退休人员,达到权限分离、提高数据的精准度、提高离退办工作人员工作效率的目的。

3.3 基于微服务的离退休管理系统设计

离退休管理系统是高校逐步在落地建设的系统,目前大部分高校没有独立完善的离退休管理系统,在系统建设时应考虑易扩展、运维和部署都简易、性能要稳定及易用性要高等特点。为满足这些特点,主要基于Spring Cloud和Docker容器的基础能力来设计微服务架构,各服务间通过Restful轻量级协议来满足服务之间的通信[8]。Spring Cloud可以大大简化微服务架构基础设施的开发,包括服务注册中心Eureka和负载均衡器Ribbon等重要组件[9]。所有单独的模块依赖于不同的运行环境,Java版本也可能不同,为了使各服务之间没有兼容性问题,我们使用Docker容器来分离各个服务[10]。为了更加方便地管理和运维微服务组件,设计应用时结合了DevOps平台使持续集成和交付变得简便可靠。系统设计整体划分为基础服务、接入服务、统一门户、公共服务及业务服务五个部分,如图3所示,为整个微服务应用平台总体框架图,每个部分的各个服务都单独部署在一个Docker容器中,整体设计实现如下:

1) 基础服务设计与实现

基础服务主要包括服务注册、配置等,服务注册依赖Spring Cloud Eureka组件实现的,服务启动时会将需发布的服务注册到服务注册中心,系统中微服务之间则是通过微服务容器内部简单的负载均衡模式进行调用的。配置中心主要基于Spring Cloud Config组件实现的,各应用的配置都由开发者在配置中心中更新,应用自身无须再单独管理,多个微服务都能得到实时的配置更新。

2) 接入服务设计与实现

网关是对外暴露的唯一服务网关,主要负责与Web端和移动端集成,对前端请求进行鉴权并转发;统一安全认证是基于Spring Security结合Oauth2.0作为安全令牌进行统一安全认证和鉴权的,使每个微服务之间能够按需隔离和安全互通。在请求后端的微服务时需要对请求进行验证,首次访问会根据对应的授权凭证进行鉴权,若鉴权成功则会根据加密规则生成Token串,下次请求时鉴权服务会对该Token串进行解密校验。

3) 统一门户设计与实现

统一门户主要是各项监控,微服务系统的监控比较复杂,主要分为容器和宿主机的监控、Application Programming Interface(API) 监控、调用链监控及应用本身的监控等。监控可采用Prometheus等开源产品来配置,开发统一管理门户对各项监控进行管理。

4) 公共服务设计与实现

公共服务主要用于支撑整个系统,分布式缓存、关系型数据库等服务都是该系统的基础公共服务。

5) 业务应用融合层设计与实现

离退休管理系统需要有稳定和易用的特点,整体采用Spring Cloud框架,通过其基础能力对整个系统进行微服务设计,每个服务部署在一个Docker容器中,服务之间通过Restful进行通信,离退休管理系统的每个业务作为单独的微服务,使用上功能分离清晰,更易于业务人员使用,部署上独立,减少模块间的耦合,保证系统的稳健性。

4 实践效果

以同济大学为例,同济大学离退休管理系统是基于Spring Cloud微服务架构设计的,系统设计上将离退休管理系统按业务模块划分成多个微服务,每个微服务独立开发单独部署在Docker容器上,既满足了系统稳健性又满足了系统易用性,还提高了开发的工作效率。整个平台除业务应用微服务外,接入服务、统一门户、基础服务等平台级服务一起为业务系统的稳定提供保障。

目前同济大学离退休管理系统已经服务了上千名离退休教职工。如图4所示,统计了从1990年以来每年的离退休人员的数量。原来手工记录的数据也都录入到系统中,该系统全面地管理了同济大学近30年离退休教职工信息,并从财务、抚恤金、老年大学等多个维度管理离退休人员。如图5所示,系统统计了须重点关注的困难人员,针对重点关注人员会在系统人员信息中标注,学校会定时发放补贴慰问来减轻离退休人员的困难。如图6所示,针对有兴趣爱好的人员创建了老年大学来丰富大家的晚年生活等。该系统的上线完善了同济大学“一网通办”的体系,补齐了人事系统缺失的离退休人员数据。

5 总结

随着高校规模的逐步扩大,高校离退休工作的任务也越来越繁重,信息化系统的设计对提升高校离退休工作效率越发重要,将信息化建设服务于离退休工作也是必然的模式。考虑到系统需要保证稳定性、易用性、易扩展及高可靠性等特点,本文提出一种基于微服务架构的离退休管理系统设计方案,并为基础业务以及微服务平台设计给出详细设计方案,为高校离退休工作的数字化转型奠定了基础。在信息化的时代中,数据需要共享利用才能发挥最大价值,在下一步工作中,基于本文的研究成果,将采用人工智能技术研究数据共享机制,发挥离退休人员数据的价值。

参考文献:

[1] 杨光.现代高校离退休工作信息化管理系统的设计与实现[J].现代营销(下旬刊),2018(1):192.

[2] 曹原,张丹.高校离退休人员管理信息系统的设计与应用[J].东华大学学报(自然科学版),2020,46(4):668-674.

[3] 何刚.新时代下如何做离退休管理工作[J].产业科技创新,2020,2(36):82-84.

[4] Francesco P D,Malavolta I,Lago P.Research on architecting microservices:trends,focus,and potential for industrial adoption[C]//2017 IEEE International Conference on Software Architecture(ICSA). IEEE, 2017: 21-30..

[5] Amaral M,Polo J,Carrera D,et al.Performance evaluation of microservices architectures using containers[C].2015 IEEE 14th International Symposium on Network Computing and Applications . IEEE, 2015: 27-34.

[6] Dragoni N,Giallorenzo S,Lafuente A L,et al.Microservices:yesterday,today,and tomorrow[J]. Present and ulterior software engineering, 2017: 195-216..

[7] Alshuqayran N,Ali N,Evans R.A systematic mapping study in microservice architecture[C].2016 IEEE 9th International Conference on Service-Oriented Computing and Applications(SOCA). IEEE, 2016: 44-51.

[8] Huang L M,Zhang C C,Zeng Z H.Design of a public services platform for university management based on microservice architecture[J].Microsystem Technologies,2021,27(4):1693-1698.

[9] Loukides M K.What is DevOps?[M].Sebastopol,Calif.:O'Reilly Media,2012.

[10] Miao K H,Li J,Hong W X,et al.A microservice-based big data analysis platform for online educational applications[J].Scientific Programming,2020(239):1-13.

【通聯编辑:王力】