食堂就餐卡系统设计文档
1. 设计概述
食堂就餐卡系统是一个用于食堂就餐卡消费及管理的一个系统。
1.1功能概述
系统功能主要包括:
l 就餐卡注册
l 就餐卡充值
l 就餐卡消费
l 就餐卡注销
l 就餐卡余额查询
l 就餐卡消费充值统计分析
使用者主要包括:
l 消费者
l 就餐卡管理员
l 服务员
功能用例图如下:
1.2非功能概述
l 支持用户量< 10000
l 高可用 99.99%,单次故障5min内完成切换
l 性能
单次平均查询时间<100ms
95%查询时间 < 200ms
Qps > 500
l 可扩展
模块化设计,易于后期功能持续迭代
l 可伸缩
在遇到性能或容量瓶颈时,可进行快速横向伸缩
l 安全
认证鉴权,私有协议
WEB防注入,防渗
数据安全性保障
2 系统部署图与整体设计
WEB SERVER提供给管理员注册,查询统计等功能。APP SERVER提供和刷卡机交互的私有TCP服务功能。DB采用mysql提供数据持久化,双主数据同步部署。
上线部署预计使用2台物理机设备,考虑到资源使用量不大,web server,app server,DB部署在同一设备上。两台设备做高可用部署,切换依靠切换域名的DNS,TTL设置60s。考虑到故障发现及Local DNS缓存,故障预计可在5分钟内完成切换。
系统模块图如下:
系统主要包含以下四个模块:
l 用户管理,提供用户新增(注册),删除(注销),查询,修改等功能
l 费用管理,提供用户费用的管理,涉及到充值,消费,查询等功能。
l 终端管理,提供终端设备的信息管理,接入管理等
l 统计分析,提供各种维度的统计查询分析功能,依赖用户管理及费用管理模块
l 消费模块,提供刷卡机消费功能,需要和刷卡机对接。依赖费用管理和用户管理模块及终端管理模块
以下以消费模块作为模块设计的详细分析,其他模块不做赘述。
3 系统模块/组件设计
3.1 消费模块设计
消费模块整体可分为三个子模块:
l 认证鉴权子模块:针对终端过来的链接,先调用加解密子模块进行信息加解密。然后进行认证,是否是已注册的终端过来的链接。同时进行鉴权,是否有权限进行该用户的消费行为。
l 信息加解密子模块:考虑到传输信息的敏感度,需要对所有消息进行基于TCP层面的加解密。
l 费用计算子模块:针对消费信息,调用费用管理子模块进行真正的消费操作。
针对消费场景的序列图如下:
针对消费场景,终端请求进来后,先对信息进行解密,然后进行认证,认证需要取得链接的终端信息,以及当前已管理的终端进行匹配认证,通过后,再进行鉴权。
鉴权主要是取得当前的终端及当前消费的用户进行权限比对,看此终端是否有消费此用户的权限。
认证,鉴权都通过后,才会进行真正的消费,需要调用费用管理模块,对当前的用户进行费用的扣除,同时记录日志信息等。
所有的都操作完后,会将返回信息进行加密后传输给终端。
评论