APP下载

智慧校园微应用系统架构设计与实现
——以某高校第二课堂系统为例

2021-07-22陶昀翔陈万顺

黑龙江科学 2021年13期
关键词:第二课堂架构服务器

陶昀翔,陈万顺 ,王 钧,吴 雷

(芜湖职业技术学院,安徽 芜湖241003)

近年来,高校信息服务建设发展迅速,多数高校都基于信息管理系统模式进行了一至两轮的数字校园建设[1]。随着业务的发展,应用需要不断迭代更新,传统的单体应用暴露出诸多问题:单体应用复杂度高,扩展能力受限,代码冗余,接口调用复杂,应用边界模糊,功能归属不明确,数据库不易重构和优化等。随着项目的扩展,从开发、测试到部署、后期运维等环节愈发困难。在顶层设计上,可以微服务架构为指导[2-3],确定高校信息化服务架构的实施支撑框架,现以某高校第二课堂系统为例对微服务系统应用进行构建。

1 系统功能需求

1.1 功能描述

第二课堂系统包括项目管理、教学管理、成绩转换等功能。可通过对学生参与第二课堂情况的记录、评价、认证来激发学生自主学习的动力,最终形成科学反映学生全面发展情况的第二课堂成绩单,为建设第二课堂育人体系提供服务。

1.2 系统建设原则

1.2.1 稳定性原则

第二课堂系统使用频繁,对服务器稳定性要求较高,尤其是大量大型报告讲座同时签到时,系统要能满足日常工作实际需求,做到合理分配任务,反应高效灵敏。

1.2.2 兼容性原则

运行环境要兼容学校服务器需求,兼容不同的操作系统(客户端、浏览器),兼容不同品牌手机移动终端,支持不同移动平台进行集成,如微信、小程序等。还要兼容学校门户信息,实现统一ID(学号或工号)登录。用户相关信息要定期同步更新,减少维护成本。

1.2.3 可扩展性原则

系统在业务流程、审核流程、架构、技术选型等方面都有着较好的扩展性。系统可随时按照不同的关键词组合产生相应的数据统计报表,形成不同维度的第二课堂成绩单大数据展示图。学校管理层面能够提供有效的决策辅助,学生层面能够体现出成长画像、学习趋势等,教师层面能够对工作量进行有效量化。

2 系统框架设计

针对上述原则需求,从微服务架构、消息队列、工作流引擎、组件化交付、接口共享化及数据报表等维度对系统进行设计,如图1所示。

图1 业务系统框架Fig.1 Business system frame

2.1 微服务技术框架

不同于单体服务架构,微服务架构的核心是将业务拆分成耦合度较高的微型服务[4-5],不同服务可以用不同语言进行开发,服务之间通过REST接口进行协作,每个服务可以有独立的数据存储,如图2所示。

图2 微服务应用模式Fig.2 Microservice application mode

第二课堂系统要求遵循平台软件的设计思路进行设计,具有开放性和可扩展性,方便与其他应用系统的集成和数据传递。系统基于企业级应用开发平台J2EE,采用B/S三层架构、SOA等技术和微服务架构模式,基于MySQL数据库管理系统进行设计开发,遵循Web Services和标准化编码等技术标准,支持二次应用扩展,满足了基础数据与业务流程可定制的系统灵活性、可扩展性需求,能实现与各应用系统的统一身份认证和单点登录应用。

2.2 消息队列设计

系统引入了高效的消息推送机制,为大批量消息推送的情景提供了保障,比如学生关注了项目库,在项目库进行项目发布后,会提醒已经关注的学生群体,能够有效保障消息推送的时效性且保证消息内容不丢失。该功能基于ActiveMQ,它是能力强劲的开源消息队列中间件,能够使用消息队列,采用异步的方式将信息写入数据库,消除高并发的流量高峰,加快平台的响应速度。

2.3 工作流引擎设计

考虑到本地系统建设中含有流程审批的业务,整个技术层面将集成工作流引擎。可通过界面化元素拖拽的方式来确定业务流程及环节审批角色,若后续流程环节及审批角色发生改变,无需再次进行代码开发,通过界面配置即可。

2.4 组件化交付设计

系统基于现有需求完成建设后,将进入运行迭代阶段。该阶段将不断收集用户改进建议和新增需求,以适应系统持续开发、快速交付的模式。系统引入了SOA技术,即基于服务的框架结构(Service-Oriented Architecture)。可利用SOA技术将各功能模块封装成一个个服务,对外提供统一访问接口。此技术构建有助于应用扩展与重组,开发效率大大提升,可以很容易实现与异构外部系统的无缝应用集成。

2.5 接口共享化设计

系统和学校现有的统一身份认证平台集成,将用户、组织机构数据通过同步的方式接入系统。系统通过Web Service/RestFul接口实现对平台内部各系统之间及与外部联动系统之间的协同应用和数据交换,以实现数据的可兼容性。平台、系统、数据库具有无关性等特点,接口实现不用关心各系统内部实现细节,大大降低了系统对接的难度,确保了系统整体架构的松耦合性和稳定性。

2.6 数据报表设计

在数据分析功能模块中,系统将通过图形报表中间件来进行报表设计。图形报表中间件提供了多种多样的图表组件,如柱状图、线形图、热点图等,可用于任何网页的脚本语言,类似于HTML、ASP.Net、JSP、PHP、ColdFusion等。可使用JSON作为数据接口,充分利用线体美丽的HTML5创建具有紧凑性、互动性的视觉逮捕图表。图形报表中间件将图表与Ajax应用程序或JavaScript模块结合起来,实现了异步刷新。同时,展示的图形报表还提供了数据钻取功能。

3 性能与安全设计

3.1 系统性能设计

系统性能会直接影响用户体验。衡量系统性能的主要指标有吞吐量、并发量、访问时间等。第二课堂系统要求支持并发10 000以上用户的同时访问,在网络稳定的情况下,访问响应时间在3 s以内,操作新增、修改、浏览一条记录的时间也要控制在3 s以内。在面对大数据量统计、查询等复杂操作时,响应时间不大于15 s。

3.2 并发设计

系统面向的群体是学生和教职工,存在着高并发的情况,需使用源地址哈希法、轮询法、随机法、加权轮询法、加权随机法、最小连接数法等负载均衡技术进行处理,把任务分摊到多个操作单元上执行。

3.3 缓存设计

在数据层和应用层之间增加数据缓存层,利用NoSQL中间件,如Redis、MongoDB存储非结构化数据和项目类别、项目标签、项目形式等,提供全局数据服务,大大减少数据库往返次数,充分利用大内存。共享内存更容易实现数据并发访问。

3.4 数据库优化

对数据库的默认配置进行调整优化,合理采用索引、存储过程、数据多级缓存技术,尽量减少关联查询、模糊查询。

3.5 系统安全设计

系统应具备良好的安全保障机制,应从系统网络环境、数据库安全、操作系统安全策略、系统自身安全技术等方面整体保障系统的安全稳定运行。要对系统数据采取加密措施,保障重要数据的安全性。

3.5.1 认证授权

保证用户的合法性和用户使用信息资源的权力,避免内部敏感信息泄漏和服务所提供的信息资源被非法访问。

3.5.2 信息保密

对于需要保密的信息采用密码技术进行加解密处理,防止信息的非授权泄漏,确保涉密信息在产生、存储、传递和处理过程中的保密性。

3.5.3 数据完整性

建立数据完整性检验机制,保证收发双方数据的一致性,防止信息被非授权修改。

3.5.4 安全审计及备份

记录应用日志,对事件进行分析并提供预警信息。可利用数据库的备份功能将平台和系统的数据备份到指定的服务器或存储系统上。

4 系统部署设计

系统部署以安全、稳定、高效为原则,采用集群方式部署应用系统,各服务器资源可实现切换,减少单点故障数量,实现集群化资源的高可用性,如图3所示。

图3 系统部署示意图Fig.3 System deployment schematic diagram

因平台用户及访问量的基数过大,一台服务器租用已经不能满足应用需求,需要多台服务器集群,使用负载均衡,配备一台或多台分布式文件系统,将系统中的文件进行转储,保证大文件传输过程中的稳定性。部署时应配备一台或多台分布式NoSQL服务器,存储平台运行中产生的非结构化数据,在数据访问量大的时候减少持久化数据层的数据读取写入压力,保证平台性能。要部署消息中间件,解决系统中应用解耦、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构。要使用多台服务器配置读写分离策略,减少数据库压力,提高性能。可与学校数据中心集成,使用ETL工具同步数据并对数据进行清洗,去除脏数据。

猜你喜欢

第二课堂架构服务器
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
01—02合刊
服务器组功能的使用
第二课堂
理解Horizon 连接服务器、安全服务器的配置
构建富有活力和效率的社会治理架构
PowerTCP Server Tool
晋江“四点钟学校” 孩子们的第二课堂
计算机网络安全服务器入侵与防御