写点什么

架构实战营 模块三作业

用户头像
felix
关注
发布于: 刚刚

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


前言

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

词汇表

Nginx:轻量级的高性能的 HTTP 和反向代理 web 服务器。

MySQL:最流行的关系型数据库管理系统

SpringBoot:简化配置来进一步简化了 Spring 应用搭建的

MyBatis:开源的持久层框架,它支持定制化 SQL、存储过程以及高级映射。

1. 业务背景

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

为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改

不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。

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

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



管理员:管理教师、辅导员的账号和权限分配,以及学生的学籍信息(学院、专业、班级、姓名、学号);管理课程信息及安排课程上课信息

教师:课堂考勤;批阅课堂笔记、课后作业;课程试卷上传、批阅;学生学习的评分考核

辅导员:查看管理权限下的学籍信息,设置奖惩信息

学生:账号绑定;选课;录入课堂笔记、课后作业

2. 约束和限制

1、成本不能超过 50 万

2、要求可以通过公网域名访问

3、在校学生和教辅人员的人数在 1 万人左右,支持最大在线访问人数在 3000

4、需要在 3 个月之后上线

5、数据库采用 MySQL

3. 总体架构

系统边界白盒图:

系统架构图:

3.1 架构分析

3.1.1 高性能

用户规模比较固定,并发访问量也不高,只需要做双机集群部署即可

3.1.2 高可用

应用服务故障对业务容忍度较高,不需要特别处理。但是数据需要支持高可用,保证数据不要全部丢失

3.1.3 可扩展

业务需求比较复杂,拆分成权限、课程、学籍三个业务子系统进行开发部署。

3.1.4 成本、安全

在满足业务和性能的基础上,考虑到降低综合成本,硬件资源尽可能好,从而降低开发运维的成本。由于对安全要求不高,只需要做到内外网访问隔离;对于业务安全,需要根据用户角色管控不同的菜单与数据的访问权限,用户隐私信息及账户密码需加密保存在数据库, 及时修复系统组件的安全漏洞,加强教辅人员的安全教育。

3.2 总体架构

3.2.1 总体架构图

3.2.2 部署架构图

3.2.3 架构设计说明

  1. Nginx 提供静态网页服务,区分教职人员和学生访问两个目录。

  2. Nginx 将远端服务请求代理至后端服务子系统。

  3. 数据库采用 MySQL 主备架构,主库提供 CRUD 功能,采用 binlog 日志同步复制做实时备份。

  4. 三个服务子系统共享一套 MySQL 服务。

  5. 三个服务子系统部署在一台服务器中,共在两台业务服务器中部署两组应用服务。Nginx、MySQL 主库、MySQL 备库各部署一台服务器,共需要 5 台服务器。

4. 详细设计

4.1 核心功能

核心业务场景流程图:


业务架构图:


4.2 关键设计

1) 三个应用部署在一台业务服务器中,各个业务子系统可以单独开发、测试、上线,降低耦合,具有良好的扩展性、伸缩性。

2)应用服务同时部署在两台服务器上,提供较好的可用性。

3)数据库采用 MySQL 主备架构,提供较好的灾难恢复能力,并保证较好的一致性。

4.3 设计规范

1)采用动静分离,页面采用 EasyUI 开发,使用 AJAX 调用后端服务,数据格式为 JSON;

2)静态页面、JS、图片等资源,部署在 Ngnix 上;

3) 各个子系统采用 Springboot+MyBatis 开发;

4)子系统之间通过 RESTFUL 风格 API 进行调用,参数通过 JSON 数据格式传输;

5)MySQL 数据库 Innodb 存储引擎。

5. 质量设计

5.1 可测试性

不考虑可测试性

5.2 可维护性

不考虑可维护性

5.3 可观测性

除了 Nginx、中间件和 Mysql 的系统日志外,对于重要业务操作需要记录业务日志,在管理员业务功能中增加业务统计、运行看板相关的页面。

5.4 成本

按照架构采购硬件,不再考虑单独成本压缩


6. 演进规划

6.1 一期

按照业务需求交付各个功能子系统,满足管理员、教师、辅导员、学生的日常使用。

6.2 二期

根据客户需求,可以完善系统的日志管理、业务监控功能;丰富统计报表功能;增加用户要求的新增功能。

发布于: 刚刚阅读数: 2
用户头像

felix

关注

还未添加个人签名 2018.09.08 加入

还未添加个人简介

评论

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