写点什么

架构实战营 - 模块三作业

作者:危险游戏
  • 2021 年 11 月 11 日
  • 本文字数:1094 字

    阅读完需:约 4 分钟

外包学生管理系统架构文档

前言

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


词汇表

Nginx:一种代理服务器。

MySQL:一种开源关系型数据库。

OAuth2:认证框架。

Vue :前端开发框架。

1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,具体如下:

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

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

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


2. 约束和限制

3. 总体架构


3.1 架构分析

3.1.1 高性能

一个学校的内部系统,总用户数量一般在几千到几万,对性能要求不高,没有特别的高性能设计。

3.1.2 高可用

学生管理系统的可用性要求并不高,对系统不可用的容忍度比较大,但应该避免数据丢失带来的损失。所以应该采用主从结构,从库用作备份,也可缓解部分查询压力。

3.1.3 可扩展

业务简单,适当考虑可扩展性。

3.1.4 成本

无。

3.1.5 安全

无。


3.2 总体架构

 Nginx 用作代理,把请求转发到各个子系统。

 学生子系统负责学生管理业务。

 课程子系统负责课程管理业务。

权限子系统负责权限管理。

所有子系统位于同一个 mysql 实例,建立不同的数据库。

学生子系统和课程子系统需要调用权限子系统用于鉴权。

学生子系统需要调用课程子系统用于选课。

 MySQL 数据库采用主备架构,主库用于写入和查询,备库可用作查询。


4. 详细设计


4.1 核心功能


4.2 关键设计

1 权限系统

系统用于“认证”和“授权”,采用 RBAC0 权限模型,OAuth2 作为认证框架,JWT 作为授权协议。

基于 Spring Security 开发。

2 使用 mysql 数据库主从复制策略。


4.3 设计规范

1 系统后端使用 Spring Cloud 开发。

2  系统前端使用 Vue 。

3  系统提供 restful 接口,数据传输使用 json。


5. 质量设计

5.1 成本

无。

5.2 可测试性

无。

5.3 可维护性

提供设计文档和帮助文档。

5.4 可观测性

无。


6. 演进规划

第一阶段:核心功能,学生管理,权限管理,选课,成绩查询

第二阶段:统计功能,学生成绩统计,选课统计等

用户头像

危险游戏

关注

还未添加个人签名 2019.04.11 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 - 模块三作业