总体设计
作者:毫末科技
邮箱:hxg@haomo-studio.com
以下内容是公司常用的内容。对于项目上不需要用到的部分,请删除
修订记录:
2017年12月30日 胡小根 初始化文档
1 系统框架结构
详见系统架构设计文档
1.1 系统业务架构图
系统业务架构图如下:
请采用OmniGraffle编写,示例文件:系统业务架构图
业务架构图说明如下:
- xxx业务模块,具有xxx功能,与其他xxx功能模块的关系是xxx
- xxx业务模块,具有xxx功能,与其他xxx功能模块的关系是xxx
- xxx业务模块,具有xxx功能,与其他xxx功能模块的关系是xxx
1.2 系统分层架构图
系统分层架构图如下:
请采用OmniGraffle编写,示例文件:系统分层架构图
系统分层架构图说明如下:
- xxx层,提供了xxx功能
- xxx层,提供了xxx功能
- xxx层,提供了xxx功能
1.3 系统技术架构图
系统技术架构图如下:
请采用OmniGraffle编写,示例文件:系统技术架构图
系统分层架构图说明如下:
- xxx模块,具有xxx功能
- xxx模块,具有xxx功能
- xxx模块,具有xxx功能
1.4 系统部署架构图
系统部署架构图如下:
请采用OmniGraffle编写,示例文件:系统部署架构图
系统部署架构图说明如下:
- xxx服务,部署方式为xxx
- xxx服务,部署方式为xxx
- xxx服务,部署方式为xxx
2 流程设计
说明:对于简单的项目,没有复杂的流程,则可以删除此章节
2.1 xxx流程说明
xxx流程流程图如下:
对于以上流程图,说明如下:
- 当从节点x流转到节点y,可能发生的情况是xxx,需要如何处理xxx
- 当从节点x流转到节点y,可能发生的情况是xxx,需要如何处理xxx
- 当从节点x流转到节点y,可能发生的情况是xxx,需要如何处理xxx
3 数据库设计
详细的数据库设计文档见:数据库设计文档
3.1 ER图设计
请使用PowerDesigner导出或截取ER图,并贴到下面,示例如下:
3.1.1 用户权限管理模块ER图
3.1.2 xxx模块ER图
3.2 数据表说明
表名 | 存储实体描述 | 类型 | 全文索引键 | 主键 |
---|---|---|---|---|
PERSONAL_RESEARCH | 个人科研情况 | 基础表 | (无) | ID |
TRADING_PRODUCT | 交易产品 | 基础表 | (无) | ID |
TRADING_TECH | 交易技术 | 基础表 | ID | |
PRODUCT | 产品 | 基础表 | ID | |
PRODUCT_ORDER | 产品&技术订单 | 基础表 | ID | |
PRODUCT_PRICE_MARKET | 产品价格市场 | 基础表 | ID | |
PRODUCT_PRICE_TYPE | 产品价格类型 | 基础表 | ID | |
PRODUCT_PRICE_ITEM | 产品价格项目 | 基础表 | ID | |
PRODUCT_INDEX_ITEM | 产品指标项目 | 基础表 | (无) | |
PRODUCT_CATEGORY | 产品类别 | 基础表 | ID | |
PRODUCT_REQUIREMENT | 产品需求 | 基础表 | (无) | |
JING_INSTITUTE | 京区单位ID | 基础表 | ID | |
SIM_TEST_SERVICE | 仿真检测服务 | 基础表 | ID | |
ENTERPRISE | 企业 | 基础表 | ID | |
DESCRIPTION | 企业介绍 | 基础表 | ID | |
CULTURE | 企业文化 | 基础表 | ID | |
ENTERPRISE_NEWS | 企业新闻 | 基础表 | ID | |
ENTERPRISE_SETTINGS | 企业设置 | 基础表 | ID | |
COMPANY | 公司 | 基础表 | ID | |
ANALYZE_ALGORITHM | 分析算法 | 基础表 | ID | |
FUNC_AUTHORITY | 功能权限 | 基础表 | ID | |
FRIENDSHIP_LINK | 友情链接 | 基础表 | ID | |
COOPERATION_PARTNER | 合作伙伴 | 基础表 | ID | |
COOPERATION_INTENTION | 合作意向 | 基础表 | ID | |
FRIENDSHIP | 好友关系 | 基础表 | ID | |
SUBJECT_INFO | 学科信息 | 基础表 | ID | |
SUBJECT_CLASSIFY | 学科分类 | 基础表 | ID |
4 接口设计
4.1 内部接口
- Swagger接口说明:Swagger接口说明
- Swagger接口发布地址:http:/api.xxx.haomo-studio.com
4.2 开放接口
- Swagger接口说明:Swagger接口说明
- Swagger接口发布地址:http:/open-api.xxx.haomo-studio.com
5 日志与系统异常处理
在项目中,日志采集使用logback日志组件采集,项目中需要收集的日志会被组件捕捉到,并且可以将DEBUG、INFO、WARN、ERROR四种类型的日志独立保存,方便于对日志的分析。
正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。
这些异常包括RuntimeException及其子类,其他的Exception类及其子类,包括自定义异常。其中RuntimeException及其子类异常的特点是这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。
这些系统中的异常需要通过try...catch捕捉,并且得到异常信息,通过logback日志组件中的功能将异常信息保存到日志文件中。这样在排查错误的时候,就可以通过日志文件,查看程序的异常信息,从而快速定位到异常位置,方便处理。
在服务器端采用Splunk和Zabbix进行监控。
Splunk是一个托管的日志管理工具,它的主要功能有:日志聚合功能、搜索功能、提取意义、可视化等功能。它可以将主机和随机源中的日志全部搜索出来,可以对大量设备的日志进行索引、报表分析、告警等操作。
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。Zabbix可以监控设备,实现CPU、内存、网络带宽等信息的收集,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
6 安全方案设计
如果没有此章节,可以删除