写点什么

架构实战营 - 学生管理系统架构设计

作者:π
  • 2022-10-26
    广东
  • 本文字数:1642 字

    阅读完需:约 5 分钟

架构实战营 - 学生管理系统架构设计

前言

本文是学生管理系统详细架构设计文档,用于指导系统后续的开发、测试和运维。

修订历史

词汇表

MVC:一般指 MVC 框架。 经典 MVC 模式中,M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是将 M 和 V 的实现代码分离,从而使同一个程序可以使用不同的表现形式。

Nginx:(engine x) 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。

WAF:Web 应用防护系统(Web Application Firewall),是通过执行一系列针对 HTTP/HTTPS 的安全策略来专门为 Web 应用提供保护的一款产品。

1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。

本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。

2. 约束和限制

1.必须在 2022.12.30 号前一次性交付

2.成本不能超过 12 万

3.数据库采用 MySQL

4.开发语言用 Java

3. 总体架构


3.1 架构分析

3.1.1 高可用

学生、课程、选课、考试成绩数据对于学校来说都是非常重要的,若出现大量数据丢失影响严重,数据恢复需要人工一条一条手工补录,恢复时间长,因此在数据高可用这块需要保障,系统层面若发生故障对学校的正常教学影响不大,所以系统高可用不需要过多考虑。

3.1.2 高性能

因为用户数量不多,整体性能也不需要过多要求。

3.1.3 可扩展

选课业务流程和场景相对清晰稳定,可以不考虑可扩展性。

3.1.4 可维护性

软件一次性交付完成后交由专门的人员进行运维,需要具备一定的可维护性。

3.1.5 安全性

考虑到学生的信息私密性、学生成绩不能造篡改以及考试题目不能泄露,系统要考虑防攻击措施,保证数据安全。

3.1.6 成本

学校非营利性组织,需要政府拨款,无太多预算。


综合来看,系统首要需要满足数据的高可用和安全性,其次满足成本、可维护性、高可用、高性能的要求。

3.2 总体架构

1)采用 B/S 架构,客户端使用浏览器;

2)前置采用 Nginx 作为入口网关,部署单个实例,域名解析至单台 Nginx 服务器;

3)为了防御一般性攻击 Nginx 前配置公有云 WAF,来保障安全性;

4)子系统间通过 RPC 调用;

5)服务端拆采用 MVC 框架 Java 实现;

6)数据存储层采用 MySQL,Innodb 作为存储引擎,部署一主一备,主备复制,以达到高可靠目标。

4. 详细设计

4.1 核心功能

4.1.1 学生选课

4.1.2 学生考试

4.2 关键设计

1)信息存储可靠性

信息存储在 MySQL 中,一主一备两台 MySQL 服务器,MySQL 服务器之间复制消息以保证信息存储高可用。如果主备间出现复制延迟,恰好此时 MySQL 主服务器宕机导致数据无法恢复,则部分消息会永久丢失,这种情况不做针对性设计,管理员需要对主备间的复制延迟进行监控,当复制延迟超过 1 分钟的时候需要及时告警并进行处理。

2)信息安全

为了防御一般性攻击 Nginx 前配置公有云 WAF,来保障安全性。

4.3 设计规范


1)学生管理服务器使用 Spring Boot 开发

2)MySQL 使用 Innodb 存储引擎

5. 质量设计

5.1 可测试性

各个子系统独立测试。

5.2 可维护性

记录系统日志以便分析追踪问题。

5.3 可观测性

不涉及

5.4 成本

  1. 人力成本:拆分成多个子系统可独立进行开发测试,降低开发成本,但增加了一定的运维成本。

  2. 设备成本:一台业务服务器,两台 MySQL 服务器,成本可控。

6. 演进规划

整体功能已比较清晰,未来业务也不会有大的变化,一次交付即可。


用户头像

π

关注

还未添加个人签名 2019-01-31 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 - 学生管理系统架构设计_#架构实战营_π_InfoQ写作社区