本文提出一种基于微服务架构的一体化教务系统架构并研究其关键问题,结合一体化教务理念,分析单块架构运行缺陷,给出教务系统向微服务架构转型的方案,研究微服务粒度与划分原则,并对新老教务系统迁移过程提出平滑过渡方法。
:面对新形势下高校教学业务改革以及本研一体化教务融合趋势,传统教务系统采用的单块架构已无法应对日益增长且快速变化的新需求。本文提出一种基于微服务架构的一体化教务系统架构并研究其关键问题,结合一体化教务理念,分析单块架构运行缺陷,给出教务系统向微服务架构转型的方案,研究微服务粒度与划分原则,并对新老教务系统迁移过程提出平滑过渡方法。最后通过同济大学教务系统实际案例,具体展示微服务架构转型实践中的实施方案。
一、引言
围绕创建世界一流大学的目标,高校教学改革日新月异,如:人才分类培养模式、本科新生导师制、本研课程互选、拔尖学生培养实验计划、大类招生改革、国际交流合作创新等。同时,目前高校的本科生、研究生教务管理仍处于相对分散独立的状态,且相应的教务管理系统大多采用传统的单块架构或SOA架构。这导致教务管理系统的需求响应速度已赶不上高校业务需求变化速度,且无法支撑实现充分的教育资源共享。
微服务(Microservices)架构作为当下流行的一种云原生的软件架构风格,能够以更加灵活、轻便、松耦合的方式来构建复杂的应用[3],为传统教务系统单块架构的转型,提供了可行的技术路线。本文基于微服务架构对传统单块型教务系统的架构转型进行研究,按照微服务架构思想,拆分一体化教务系统为多个小而自治、协同工作的服务实体,化大而复杂为小而简单,有效降低系统业务逻辑之间的耦合,提升系统的灵活性与扩展性,使其能够有效支撑本研业务融合与一体化教务系统建设工作。
二、一体化教务理念
1.理念思想
一体化教务理念涵盖对本科生、研究生的统一教务管理思想,追求本、硕、博教学资源的统一调配与共享。整体规划本研教学业务,以一体化教学模型和数据为基础,一体化服务和管理为导向,以稳定开放的平台为运行支撑,借助弹性灵活的系统架构,搭建柔性伸缩应用,打通高校各部门业务,实现跨部门业务融合与数据共享,构建一体化教学服务平台,实现本研教育贯通式培养[1]。
2.具体表现形式
(1)模型数据一体化。整体构建教学业务模型数据,综合设计本研学生的一体化数据结构,利用数据交换引擎实现数据集成、共享,构建统一教学数据库。采用连续信息模型,实现数据分段式管理,按需组装,能够展现学生教学信息全貌与全生命周期下的教学事件节点等。划分业务模型,包含资源类与功能类。资源类模型包含教学业务实体,相对独立,不相互依赖,属于下层模型,包括人员全生命周期、课程等;功能类模型依赖于资源类模型,属于上层模型,其与教务业务紧密结合,包括学籍管理、培养方案、排课、选课、考试、成绩等。
(2)服务管理一体化。基于一体化教务整体规划,突出学生培养模式和教学管理个性化特点,对本研教务从顶层设计角度进行业务融合,形成整套一体化教学管理与服务系统。采用灵活的微服务架构,建设服务中心,实现教学服务注册、管理、发布、监控等。构建优质、稳定、高效的信息化教学服务体系,为教职工、学生提供“一站式”的教学服务,提供服务搜索、收藏、定制功能以及跨终端的服务体验。
(3)教学资源一体化。统一管理本、硕、博的课程、教师、教室、设备等教学资源,合理调配师生教学业务运行过程中的资源流转,实现资源共享与资源利用率最优化。
(4)应用开发一体化。构建校园教学服务应用的基础支撑平台,打造应用开发生态圈,提供应用服务全生命周期管理。面向校内应用开发者、体验者全面开放平台,提供标准接口。支持与公共数据平台、校园卡等其它业务系统无缝对接。
(5)界面入口一体化。提供统一的本科生、研究生访问入口,集成高校内部统一身份认证,支持和其它校内系统之间的SSO单点登录,面向不同身份用户提供风格一致的界面效果和使用体验。
(6)报表统计一体化。提供一体化的报表统计功能,对本、硕、博学生和教职工等各项评价、监控指标提供丰富的报表统计功能,提供师生学习效果和教学质量等信息,为学校调整人才培养方案提供决策支持。[2]
三、微服务架构简介
1.微服务架构定义
微服务架构是当下流行的软件架构风格。[3]该架构将复杂的单块应用分解成一组小而专一、耦合度低、高度自治的服务;每个服务围绕各自业务功能确定服务边界,独立开发、测试、部署;每个服务都是单独的应用,运行于独立进程中;使用和语言无关的轻量级通信机制,相互协同工作实现完整系统功能;每个服务仅关注和完成某个特定功能,一个功能代表一个小的业务能力。
2.微服务架构优势
微服务架构通过有效拆分复杂单块应用,降低系统耦合度,从而实现应用敏捷开发和灵活扩展。越是在规模庞大的软件项目中,微服务架构优势就越明显。[4]首先体现在独立性方面,每个服务都是松散耦合的,有明确的业务边界,低耦拆分的服务在开发、测试、部署阶段都能带来更高效率,使业务变更成本与风险更低。其次是技术选择更为灵活,由于微服务采用语言无关的API进行相互通信,因而不同服务可以针对业务特性和团队技能使用不同语言框架进行开发,使得技术转型成本降低。再次是系统复用性和伸缩性更强,微服务能将已有代码、对象和模块的复用转变为服务的复用,降低项目成本,并可针对特定服务独立伸缩。最后是服务容错性更高,微服务通常使用Docker容器独立部署,进程隔离,每个服务独立运行,某个服务出现故障也不会影响其它服务正常工作。[5]
四、微服务架构在一体化教务系统中的应用
1.传统教务系统架构与缺陷
高校传统教务系统由于架构形成时期较早,因此大多采用单块架构,如图1所示。系统仅以实现业务功能为目的,将所有功能集中在同一工程内部,业务逻辑耦合紧密。随着教学业务改革,单块架构下的教务系统缺点也愈发明显:①需求变更困难。无法满足新业务需求快速上线,难以在原有复杂工程上开发新功能。②扩展性差。只能基于整个系统扩展,无法针对特定功能模块按需扩展。③可靠性差。某个模块故障会导致整个系统宕机,影响其它正常模块运行。④维护成本高。只有原开发者才理解工程结构和实现,新成员难以维护工程。