写点什么

模块三作业

用户头像
bob
关注
发布于: 4 小时前

前言

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

词汇表

Nginx:是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存少,并发能力强。


MySQL:是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。


JWT:JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。

1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。


为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。


因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。


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


系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。

2. 约束和限制

  • 项目一期需要在一个半月内完成。

  • 采用 Spring Boot 2.5.6 + Spring Cloud 2020.0.4

  • 数据库采用 mysql。

  • 服务器统一采购阿里云。

  • 质量标准符合 ISO9001-XXXX。

  • 可用性 99%。

  • 成本不能超过 500 万。

  • 可支持 5 万学生同时在线。

3. 总体架构

3.1 架构分析

高性能

假设学校有 5 万人,100 个人抢课或 1000 个人抢课对系统性能的要求并不高。

高可用

学生管理系统短时间挂掉影响不大,学校的其他管理并不完全依赖于学生管理系统;学生信息是人工录入或者学生注册的,因此对于信息丢失有非常严格的要求,允许丢失少量学生信息,但不可丢失全部。

可扩展

从业务需求来看,系统具有一定的复杂度。

成本

单个学校成本不是问题。

安全

不涉及证券、金融、资金以及个人隐私。


结论:

可扩展:业务需求比较复杂;

数据高可用:机房故障或磁盘出问题,数据不要全部丢失。


3.2 总体架构



如上图所示架构包括三层:接入层、业务层、数据层。

1)接入层:Nginx 负责请求接入,经过其反向代理将请求分发到具体的业务子系统。

2)业务层:包含学生子系统、课程子系统及权限子系统三大业务子系统,其中考试由课程子系统实现,老师由权限子系统实现。

3)数据层:采用 MySQL 主从备份,由于系统访问不大,读写均由主库负责。


4. 详细设计

4.1 核心功能

学生选课流程



4.2 关键设计

1)信息存储可靠性

消息存储在 MySQL 中,采用一主一备两台 MySQL 服务器,MySQL 服务器之间复制消息以保证消息存储高可用。

2)请求访问的安全性

利用 JWT 实现授权功能,用户发起的每一次请求均需携带 JWT,验证合法后,具体子系统再对请求做合理的响应。

4.3 设计规范

1)采用 Spring Boot + Spring Cloud 开发。

2)MySQL 使用 Innodb 存储引擎。

3)java 开发需遵从《阿里巴巴开发规范》。

4)使用 git 进行代码分支和版本管控。

5)所有返回前端的 response 必须是 HttpResult<T>类。

5. 质量设计

可测试性:

  • http 接口建立 postman 测试用例。

可维护性:

  • 超级管理员具有超级权限,可对系统的异常数据进行管理。

  • mysql 可通过运维控制台进行管理。

可观测性:

  • 通过系统运行日志查看系统运行状态。

  • 业务数据可以通过管理员账户登录查看。

成本:

  • 对于单所学校的学生管理系统,研发投入成本以及服务器成本并不高。

6. 演进规划

6.1 学生管理系统一期

  • 完成学生管理、课程管理以及权限管理

6.2 消息队列二期

  • 实现考试管理以及一期部分功能的完善

用户头像

bob

关注

go get it 2020.07.06 加入

......

评论

发布
暂无评论
模块三作业