架构实战营模块三作业
外包学生管理系统架构方案
目录
前言
本文是外包学生管理系统的详细架构设计文档,用于指导外包学生管理系统后续的开发、测试和运维。
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2. 约束和限制
1. 成本不能超过 200 万。
2. 必须在 3 个月内完成。
3. 数据库采用 mysql。
3. 总体架构
系统边界:
系统主要有三类用户,学生、教师和管理员。
学生主要是维护个人信息、选择课程、查询成绩。
教师主要是维护学生信息、安排课程、登记学生成绩。
管理员主要是配置用户和设置相关权限等。
系统内部关系:
系统整体考虑使用 nginx 作为静态资源的部署,并利用 nginx 实现负载功能,后端根据服务边界划分为学生子系统、课程子系统和权限子系统。存储使用 mysql 主备架构。
3.1 架构分析
3.1.1 可扩展
考虑到功能扩展性,对整个系统进行了服务拆分,分为学生子系统、课程子系统、权限子系统,方便后续的扩展。
3.1.2 高可用
对于学生管理系统中的信息管理比较重要,尤其是成绩等重要信息的管理,由于成绩信息不是每天都有,变化频率不是很高,采用 mysql 主备方案,进行每天备份来保证数据的高可用。
3.2 总体架构
系统整体考虑使用 nginx 作为静态资源的部署,并利用 nginx 实现负载功能,后端根据服务边界划分为学生子系统、课程子系统和权限子系统。存储使用 mysql 主备架构。
4. 详细设计
4.1 核心功能
4.1.1 学生选课流程
1.学生登录
2.选择要选择的课程名称
3.查看课程可选择的时间
4.确认选课信息
5.提交课程选择
4.2 关键设计
1.系统功能
学生主要是维护个人信息、选择课程、查询成绩。
教师主要是维护学生信息、安排课程、登记学生成绩。
管理员主要是配置用户和设置相关权限等。
2.安全性
整个系统由于提供外网访问,网站使用 https 方式进行访问,同时通过增加 filter 方式来防止 sql 注入和 xss 攻击等常见的攻击方式。
3.可扩展
通过对业务分析,对系统进行拆分,拆分三个子系统,便于整体系统的维护和后续的功能扩展。
4.3 设计规范
开发框架使用 spring cloud 框架开发。
通讯采用 http 协议。
数据包采用 json 格式。
服务调用使用 feign client 方式进行调用。
Mysql 使用 innodb 存储引擎。
5. 质量设计
暂不涉及
版权声明: 本文为 InfoQ 作者【michael】的原创文章。
原文链接:【http://xie.infoq.cn/article/c14931bbc4e6b9cc9a6432482】。文章转载请联系作者。
评论