写点什么

模块三作业

用户头像
Mr.He
关注
发布于: 3 小时前

1. 业务背景

随着学校招生规模的扩大,学生数量逐年递增。同时,为了响应学生全面发展的需求,课程多样性也增长迅速。但是,由此而产生的大量学生选课请求和课程信息的更新也成了教职员工身上极大的负担。为提高教职员工的工作效率,提升学生选课的体验,学生管理系统应运而生。


2. 约束和限制

开发人数只有 3 位学生;

开发语言以 Java 为主;

硬件成本不宜过高;

不可接受数据全部丢失,但可接受小部分丢失。


3. 总体架构

3.1 架构分析

  • 高性能:学校人数在万人左右,但是并发需求不高。高性能需求不强烈。

  • 高可用:

服务高可用:系统能接受数小时宕机。可搭建服务器集群,减少宕机时间。

数据高可用:采用 MySql 主备模式实现数据高可用。

  • 可扩展:学校人数变化不大,可扩展需求不强烈。

  • 成本:5 台服务器可支撑系统运行。

  • 安全:防止隐私信息泄露。系统部署在校内,泄露风险较低。

3.2 总体架构

系统架构图如下所示。


  • 使用 Nginx 达到负载均衡的目的。

  • 考虑到系统的开发和运维,将系统拆分为 3 个模块。在实际部署时,可根据服务器成本考虑,将三个子系统部署到一台服务器上,并部署多台服务器,实现高可用。

  • 数据库使用主备模式。主库可读可写,备库同步主库。


4. 详细设计

4.1 核心功能

选课应用场景流程图,如下所示。


教职员维护课程信息流程图,如下所示。


4.2 关键设计

  • 信息存储:学生、教职员工和课程的信息分表存储。

  • 信息存储可靠:使用 MySql 主备结构,保证信息存储的可靠性。满足数据高可用性。


4.3 设计规范

  • 开发框架:使用 Spring Boot 来开发;

  • 数据存储:MySql,使用 Innodb 存储引擎;

  • 交互协议:各个子系统对外暴露的接口,基于 http 协议并符合 restful 标准;

  • 数据格式:JSON


5. 质量设计

5.1 高可用

  • 服务高可用:实际系统可接受数小时宕机。可通过冗余部署服务,达到高可用的目的。

  • 数据高可用:通过 MySql 主备模式满足数据高可用。

5.2 高性能

学校人数较少,并发量需求不强烈。

 5.3 可扩展

增加服务器数量,可水平扩展系统服务。

5.4 成本

目前估算 5 台服务器可满足当前使用需求。两台数据库服务器,两台业务服务器,一台 Nginx 和网站部署。

5.5 安全

系统部署在校内局域网,泄露风险较低。亦可使用 https 安全链接或引入 token 验证模式等手段达到系统安全的要求。

5.6 可维护性

Java 和 MySql 技术方案成熟,易于维护。

5.7 权限设置后台系统

对权限进行增删改查等操作。

5.8 日志管理后台系统

 查看管理日志。可根据日志追踪异常等。

6. 演进规划

6.1 学生管理系统一期

完成各个子系统的方案设计。

6.2 学生管理系统二期

完成权限子系统及其后台系统的基本功能,含增删改查、登录验证等。

6.3 学生管理系统三期

完成学生子系统基本功能,含选课、查课等。

6.4 学生管理系统四期

完成课程子系统基本功能,含增删改查等。

6.5 学生管理系统五期

完成三个子系统测试环境的部署与联调。

6.6 学生管理系统六期

解决联调中的问题,并继续联调测试。达到上线的要求。

6.7 学生管理系统七期

生产环境中部署系统,并测试。达到试运行的要求。

发布于: 3 小时前阅读数: 5
用户头像

Mr.He

关注

还未添加个人签名 2018.04.27 加入

还未添加个人简介

评论

发布
暂无评论
模块三作业