写点什么

模块三作业

用户头像
兴爷
关注
发布于: 19 小时前

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

【作业要求】

1. 基于模块 1 第 5 课 P15 页的外包学生管理系统备选架构 1(见下 1 页),写出完整的架构设计文档;

2. 注意不是备选架构文档,而是最终落地的详细架构设计文档;

3. 无需考虑数据库表设计,因为表设计是方案设计阶段做的,不是架构设计阶段做的;

【提示】

1. 架构设计文档是完整的文档(Word 或者语雀文档之类的都可以),而不是 PPT;

2. 架构文档涵盖的内容请参考模块 3 第 4 课,细化架构设计参考模块 3 第 6 课;

3. 外包学生管理系统的业务请参考模块 1 第 5 课的课件;

4. 架构文档模板可以参考:架构实战营详细架构设计文档模板


架构设计文档:


前言

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

 

词汇表

Nginx:开源的负载均衡、反向代理服务器

Mysql:开源的关系型数据库

 

1. 业务背景

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

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

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

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

2. 约束和限制

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

2、       学生数据不能丢失

 

3. 总体架构

3.1 架构分析

高性能:学校最多几万人,性能要求并不高

高可用:短暂的系统不可用,影响比较小;但在数据需要做主备,防止学生数据丢失

可扩展:业务复杂夫比较高,需要按模块划分

成本:面向单个学校,基本没问题

安全:学生的公开信息,安全不是问题

3.2 总体架构

系统架构图:



1、       将学生管理系统拆分成三个子系统,分别为:学生子系统,课程子系统,权限子系统

2、       Nginx 根据配置反向代理到不同的子系统

3、       数据库采用 Mysql 主备模式,主数据库通过 binlog 同步数据到备数据库 

 

4. 详细设计

4.1 核心功能

4.1.1 学生选课流程



4.2 关键设计

1)学生数据存储可靠性

   为了防止学生信息丢失,学生数据存储采用 mysql 主备架构

2)业务逻辑拆解

   把学生管理系统拆解成三个子系统:学生子系统,课程子系统,权限子系统;这样利于系统扩展

4.3 设计规范

1、       Nginx 反向代理

2、       交互协议:http

3、       数据格式:JSON

4、       开发框架:使用 Spring Boot 来开发

5、       数据存储:Mysql,使用 Innodb 存储引擎

5. 质量设计

5.1 学生信息管理后台

    通过管理后台来满足可测试性,可维护性,可观测性

5.2 成本、安全

用 mysql 存储,成本大大降低,安全采用 mysql 主备,防止数据丢失

6. 演进规划

6.1 学生管理系统一期

考虑先满足一个学校的需求

6.2 学生管理系统二期

    考虑将学生管理系统做成 Saas 软件,可以给不同的学校使用


用户头像

兴爷

关注

还未添加个人签名 2020.01.17 加入

还未添加个人简介

评论

发布
暂无评论
模块三作业