架构实战训练营 - 模块 3- 作业
作业内容
写出外包学生管理系统的架构文档
【作业要求】
1. 基于模块 1 第 5 课 P15 页的外包学生管理系统备选架构 1(见下 1 页),写出完整的架构设计文档;
2. 注意不是备选架构文档,而是最终落地的详细架构设计文档;
3. 无需考虑数据库表设计,因为表设计是方案设计阶段做的,不是架构设计阶段做的;
【提示】
1. 架构设计文档是完整的文档(Word 或者语雀文档之类的都可以),而不是 PPT;
2. 架构文档涵盖的内容请参考模块 3 第 4 课,细化架构设计参考模块 3 第 6 课;
3. 外包学生管理系统的业务请参考模块 1 第 5 课的课件;
4. 架构文档模板可以参考:架构实战营详细架构设计文档模板
答
业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范
化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。
约束 &限制
无
总体架构设计
 
 详细架构设计
Role &Relation
客户端 Role 设计
- 客户端端采用 VU,H5 开发,支持手机浏览和 PC 浏览 
服务器 Role 设计
1.服务器基于 Java 语言,采用SpringBoot 2.2
2.基于 Spring MVC,开发 restful 接口
3.基于Mybatis,操作 MySQL 数据库
4.服务器依托于nginx作为反向代理
5.服务间调用,采用OpenFeign
6.采用阿里云 OSS 存储,图片,文件等资源。
客户端与服务器的 Relation 设计
- 客户端与服务器,采用 HTTPS 交互,采用 JSON 传递数据 
- 图片文件等资源,经过阿里云 CDN 进行访问 
MySQL 的 Role 和 Relation 设计
- 采用 MySQL 的主从同步 
- 每个服务,有独立的库 
- 数据最多保存 3 年,三年以外数据存储在冷备份。 
- 3 年内直接用 MySQL 的主从复制来实现数据的复制。 
- 3 年以外数据,由定时程序进行迁移。 
Rule 设计
学生学籍管理
- 学生子系统,依托于权限子系统设计 2 种角色,管理员和学生,每个角色都有唯一的名称。 
- 学生子系统,从权限子系统获取权限 
- 管理员角色可以批量添加,修改学生学籍。 
- 学生角色,仅能查看自己的学籍角色。 
课程管理
- 课程管理系统,依托于权限子系统设计 3 中角色,管理员,授课老师,学生,每个角色都有唯一的名称。 
- 课程管理系统,从权限管理系统获取权限,向学生子系统同步学生成绩。 
- 管理员可以修改任意课程的开课时间,学时等信息。 
- 授课老师可以修改自己负责的课程的信息,并对选课学生考试进行评分。 
- 学生可以选课,查看自己选课的内容。 
权限管理
1.权限子系统,基于 RBAC,其他子系统对于权限的要求。
系统边界图
 
 架构质量设计
可测试性
Sonar 扫描工具,强制单元测试覆盖率超过 50%
安全
渗透性测试,尽可能找出系统的漏洞。
规范
使用 Spring Boot + Mybatis+SpringMVC
MySQL 使用 Innodb 存储引擎
代码规范参考 Alibaba Coding Guide Line
架构演进
无
版权声明: 本文为 InfoQ 作者【温安适】的原创文章。
原文链接:【http://xie.infoq.cn/article/532f511d58ce3c3cac9425fff】。
本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明。











 
    
评论