基于微服务架构的“数智学工”系统的设计
2023-01-11徐小华胡忠旭
徐小华,胡忠旭,常 凤
(昭通学院网络信息中心,昭通 657000)
0 引言
随着《教育信息化中长期规划(2021—2035)》《教育信息化“十四五”》[1]等相关文件的出台与实施,教育信息化必将带动教育理念的创新和教学管理模式的变革,各高校都热衷于将信息化手段用于各项管理中,所以,“数智学工”也成为“数智”校园的重要管理信息系统之一。
目前,对学工的系统架构,相关的学者和工程师开发了多种方法。如李宏志等[2]设计了基于BUI和SSH框架的学工系统;汤义和[3]设计了基于.NET技术的学工信息管理系统;董萍[4]提出了基于SSH框架的学工管理系统。上述架构大多采用单体式或SOA架构,单体架构或SOA架构可以快速满足业务的简单诉求,然而随着项目规模的扩大、业务模块的耦合,导致单体架构冗余而数量庞大的代码越来越无法适应学工系统灵活应对变化的需求。主要表现在以下几个方面:
(1)以业务划分,数据难共享和复用
传统模式下大部分学工系统以业务划分为依据,而且都按一定的权限管理着各阶段学生信息。各自为阵、各司其职的现象比较普遍,没有设置明确的部门来实现学生信息管理的系统化,以至学生数据管理混乱、分散、资源浪费,最终导致基础数据失真,结果数据难以复用,过程数据失去意义。
(2)灵活性不足,功能调整响应慢
因国家政策和学校制度的修改,导致学工的功能经常需要进行调整,而在传统模式下的学工系统灵活性不足,功能的调整工作量非常大,成本非常高。
(3)互动性不足,不能服务学生
传统模式下大部分学工系统大多立足于管理,很少面向学生服务和考虑到学生的需求。
鉴于此,面对传统学工系统的多种问题和系统框架问题,本文提出了一种基于微服务架构的“数智学工”管理系统,它把“应用建设”转向“服务建设”,学生和高校已经呈现双向选择之态。以学生为视角,基于学生从进校到离校全过程服务的理念,涵盖招生管理、迎新管理、学生日常行为管理、学生公寓管理等主要内容,系统有效地整合各类学生事务,为学生提供符合实际的业务访问通道和事务办理通道,最大限度地满足学生管理工作需要。
1 总体设计
1.1 微服务架构
微服务(MicroService)架构是指,将系统的业务功能划分为极小的独立微服务,每个微服务只关注于完成某个小的任务[5]。系统中的单个微服务可以独立地部署和扩展,各个微服务之间是高内聚、松耦合的。服务与服务之间采用轻量级的通信协议,相互协调、相互配合。它在应对需求的变化、容错处理、服务复用及扩展、提升开发效率方面等有明显的优势。
1.2 容器化技术
容器化技术(container)重新定义了应用程序在不同环境中的移植和运行形式。应用系统采用容器技术和微服务架构相结合使得系统开发变得更为简单、维护更为方便。Docker是目前最为流行的容器平台,几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,它们不依赖于任何语言、框架包括系统[6]。图1为架构全景图。
图1 架构全景图
1.3 系统架构体系
基于微服务架构的“数智学工”系统,结合了软件架构的三层设计和微服务的架构进行搭建。系统选用最为基础的,主流的开源软件环境,在云计算的框架下,结合容器技术进行设计。首先,按照微服务界限上下文的拆分原则,确定服务之间的交互共享模型和行为接口,将系统拆分为一些小的微服务,如学生的招生管理微服务,就业管理微服务等。并把这些服务放在系统的业务层,使用eureka集群方式部署。用户使用不同的终端访问前端界面,并向后台发送相关的访问请求,这些请求使用Nginx为负载均衡,所有请求通过api网关zuul组件访问内部服务,该组件提供流量控制、身份鉴别、负载均衡等安全防护功能。网关请求后,消费者从注册中心得到服务提供者的注册信息列表,注册中心采用eureka集群方式部署。为避免访问集中,客户端使用负载均衡组件ribbon,客户得到具体的地址信息后,通过声明式组件feign,将远程restful调用封装成接口调用。为避免某个服务宕机后引起服务雪崩,以及服务失败后快速响应,采用服务熔断组件和阶级机制hystrix,其中turbine可以监控服务间的调用和相关指标。引入spring cloud bus组件,提供统一的配置信息管理。最后在数据访问层中,使用orcal集群,采用Redis缓存技术提高数据处理能力。系统结构如图2所示。
图2 系统结构
1.4 系统功能结构
基于微服务的“数智学工”系统有三类用户群体,学生群体记录学生在校期间的表现,主要功能有请假、资助申请、学生综合表现等;学生管理群体提供对学生在校期间的学生管理一条线的管理工作、运行维护等,主要功能有信息维护、迎新管理、公寓管理、缴费管理、学生综合测评等;系统管理员群体负责对系统进行维护。整个“数智学工”涵盖了学生从入学到毕业的所有学生管理工作。包括了招生管理、迎新管理、学生资助、心理咨询、就业管理、离校管理等主要服务。系统以“移动优先、多端融合;成长引导、智慧决策”为设计理念,其系统功能架构如图3所示。
图3 系统功能架构
1.5 系统实现
基于微服务的“数智学工”系统的环境,以学生为中心的业务场景服务,从学校进行招生开始的招生服务,到迎新服务、公寓管理。到学生入校后的资助模块、请假等日常管理服务,直到学生毕业离校就业的离校服务、就业服务,实现全生命周期、全业务场景的学生工作管理。
操作系统采用开源的CentOS 7.6为运行环境,容器调度使用KUbernets。面向学生处、院系教职人员、学生学业导师和全体学生,从业务处理流程的整合角度出发,整合各系统中与学生相关的信息。对学校学生相关数据资产进行全面摸底,对学生数据从生产、存储、流动到使用的全过程进行调研,识别出学工业务内部、业务之间的业务流程和数据应用关系,梳理绘制各科室及相关部门业务边界,明确各业务运转及数据需求。构建业务流程的线上办理中心。系统由基础支撑服务(学生信息管理服务、学工队伍管理服务、资格鉴定服务、流程服务、表单服务)来构建基础支撑平台:学生信息管理服务用于学生综合数据的管理;学工队伍服务围绕对教职工数据管理,部门、专业、班级数据管理,职务及数据权限管理;流程服务、表单服务用于学生事务办理表单填写及流程构建的支撑;资格鉴定服务用于对各类业务办理规则的限定。
以学生为中心的各类业务场景服务实现前端应用;通过H5构建的移动学工服务实现移动端应用。通过与大数据中心对接,实现校内数据标准的统一,数据的互联互通。
2 结语
基于微服务的“数智学工”系统采用轻架构、系统重构的设计理念,坚持管理与服务、管理与技术分离的原则,满足了不同使用对象的需求。在安全性、兼容性、稳定性、扩展性、灵活性方面满足了学生工作管理业务。“数智学工”实现了“以服务于人”为导向,系统围绕“学生成长”形成了服务闭环,是一个学生能力成长融合管理服务系统。并对学生进行科学化、网络化的管理,已成为高校学生信息管理的发展趋势。