封面
1.导言
本章对该文档的目的、功能范围、术语、相关文档、参考资料、版本更新进行说明。
1.1目的
本文档的目的旨在推动软件工程的规范化,使设计人员遵循统一的概要设计书写规范,节省制作文档的时间,降低系统实现的风险,做到系统设计资料的规范性与全面性,以利于系统的实现、测试、维护、版本升级等。
1.2范围
本文档用于软件设计阶段的概要设计,它的上游是《需求分析规格书》,下游是《详细设计说明书》,并为《详细设计说明书》提供测试的依据。
软件概要设计的范围是:软件系统总体结构设计、全局数据库和数据结构设计、外部接口设计、主要部件功能分配设计、部件之间的接口设计等方面的内容。该范围应覆盖《需求规格说明书》中的功能点列表、性能点列表、接口列表。
1.3命名规则
变量对象命名规则:申明全局变量、局部变量对象的命名规则。
数据库对象命名规则:申明数据库表名、字段名、索引名、视图名等对象的命名规则。
1.4术语定义
表1术语定义或解释表
1.5参考资科
[l]需求规格说明书
[2]软件开发合同
[3]数据库设计规范
[4]命名规范
1.6相关文档
[1]源程序清单
[2]测试计划及报告
[3]《用户使用手册》
1.7版本更新记录
版本更新记录格式,如表2所示。
表2版本更新记录
2.总体设计
2.1总体结构设计
2.1.1系统总体拓扑结构
系统总体拓扑结构如下图所示:
2.1.2功能模块图
2.1.3技术架构
本项目基于BladeX框架进行开发,BladeX是由一个商业级项目升级优化而来的SpringCloud微服务架构,采用Java8API重构了业务代码,完全遵循阿里巴巴编码规范。采用SpringBoot2、SpringCloudHonxton、Mybatis等核心技术,同时提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS微服务系统平台。具体如下:
·基于SpringBoot2、SpringCloudHoxton、Mybatis构建核心架构
·采用Oauth2协议进行统一的Token下发与鉴权,保证系统安全性
·使用Gateway进行网关的统一转发,生产环境采用Traefik代理
·微服务统一注册至Nacos,Nacos担任注册中心与配置中心的角色
·采用Feign进行远程调用,Ribbon进行负载,Hystrix进行熔断
·采用Sentinel进行限流,保障系统整体的性能
2.1.4主要特性
采用前后端分离的模式,前端Saber(基于Vue、Element-UI)
后端采用SpringCloud全家桶,并同时对其基础组件做了高度的封装,单独开源出一个框架:BladeTool
BladeTool已推送至Maven中央库,直接引入即可,减少了工程的臃肿,也可更注重于业务开发
集成Sentinel从流量控制、熔断降级、系统负载等多个维度保护服务的稳定性。
注册中心、配置中心选型Nacos,为工程瘦身的同时加强各模块之间的联动。
使用Traefik进行反向代理,监听后台变化自动化应用新的配置文件。
极简封装了多租户底层,用更少的代码换来拓展性更强的SaaS多租户系统。
借鉴OAuth2,实现了多终端认证系统,可控制子系统的token权限互相隔离。
借鉴Security,封装了Secure模块,采用JWT做Token认证,可拓展集成Redis等细颗粒度控制方案。
稳定生产了两年,经历了从Camden-Hoxton-的技术架构,也经历了从fatjar-docker-k8s+jenkins的部署架构
项目分包明确,规范微服务的开发模式,使包与包之间的分工清晰。
2.2开发环境
JDK:1.8
Maven:3.3+
MySql:5.7+
Redis:4.0+
Nacos:1.3.2
Sentinel:1.5.0+
NodeJs:10.15.0+
Npm:5.6.0+
IDE插件
LombokPlugin(必装)
MybatisXPlugin(idea选装)
推荐IDE
后端使用IntelliJIDEA
前端使用IntelliJWebStorm
2.3运行环境设计
该软件系统的运行环境:
硬件平台:
(1)服务器的最低配置要求
4核/16G/64位/1T
(2)工作站的最低配置要求
2核/8G/G
(3)外设的要求
鼠标、键盘
软件平台:
(1)服务器操作系统
centos7.8
(2)数据库管理系统
Mysql5.7+
(3)中间件
Redis4.0+
(4)客户端的操作系统
window7+
(5)客户端的平台软件
下列浏览器之一
Chrome版本.0..54(正式版本)(64位)
firefox更新时间:-05-05版本号:.0
edge版本.0..39(正式版本)(64位)
网络平台:
(1)通信协议