食堂就餐卡系统设计
1,设计概述
食堂就餐卡系统是一个提供给食堂接入的消费、记账管理系统,满足日常就餐消费、账目管理任务。
1.1 功能概述
系统主要功能包括账号注册、就餐卡充值、刷卡消费、账目管理4个主要功能。使用者包括注册卡用户、食堂工作人员、食堂账目管理人员。
1.2 非约束功能
系统预计注册用户一个月内达到5w人规模,日订单量9w左右。
1. 查询性能目标:平均响应时间<300ms,95%响应时间<500ms,单机TPS>100;
2.下单性能目标:平均响应时间<800ms,95%响应时间<1000ms,单机TPS>30;
3.数据持久化目标:>99.99999%。
4.系统安全性目标: 加密使用非对称加密、token验证,https协议。
5.系统核心功能可用性目标:>99.97%;
2,系统部署图与整体设计
系统上线时预计部署2台物理机,2个子系统,和外部第三方微信/支付宝支付系统交互。
2.1 系统部署图
业务子系统功能职责为处理充值扣费等业务逻辑,部署两台机器,依赖数据库和第三方支付系统,实现注册、充值、消费、记录日志等功能。
财务系统用于用于账目的管理,部署到一台机器,依赖数据库。实现账单查询、统计等功能。
2.2 充值场景子系统时序图
用户刷卡请求业务系统充值,业务系统请求第三方支付
第三方支付处理后返回扣费结果
业务系统请求财务系统,记录充值结果(可能扣费成功或失败)和日志
返回结果
2.3 消费场景子系统时序图
用户请求业务系统消费
业务系统请求财务系统获取充值信息
业务系统返回充值信息
业务系统判断是否能扣费,请求财务系统记录扣费信息
返回结果
2.4 消费场景子系统活动图
如图所示:
用户刷卡,客户端发送扣费信息
业务系统请求账务系统获取用户余额信息
如果余额不足,返回提示并结束;如果余额充足,请求账务系统扣费和记账
返回账户当前资金信息
3 业务系统设计
业务系统主要功能职责是处理解密验证、充值扣费、操作提示、记录账单等,其中主要包含解密组件、通信组件、扣费组件、第三方支付组件。
3.1 业务系统组件图
扣费模块组件主要负责充值扣费、账单记录。需要依赖加解密模块完成请求验证、依赖第三方支付组件完成账户充值、依赖通信模块和其他模块通信。是业务子系统的核心组件。用户充值、扣费请求主要通过它完成。
通信模块主要负责所有的网络通信的接收和发送。是业务子系统的重要组件。
加解密模块组件主要负责消息的解密验证和发送时的加密。是业务子系统的重要组件。
第三方支付组件主要负责第三方支付的接入。需要依赖通信模块发送通信请求。是业务子系统的重要组件。用户充值请求主要通过它来完成。
3.1.1 消费场景组件时序图
对于消费场景,通信模块收到用户消息后,调用PraseHttp接收请求。然后调用加解密模块的Decrypt解密。扣费模块根据解密出的消息,调用DealBillPay()方法处理这次消费,最后分别调用加解密模Encrypt、通信模块的SendHttp返回结果。
3.1.2 消费场景组件活动图
在消费场景中,首先通信组件收到http消息,调用PraseHttp开始处理。返回加密组件调用Decrypt解密消息,然后判断是否能正确解密,如果为false,那么调用通信组件的SendHttp返回错误结果;如果为true,那么扣费组件执行DealBillPay处理账单。账单处理完后,调用Encrypt加密返回内容,调用SendHttp发送结果给客户。
4 用例图
版权声明: 本文为 InfoQ 作者【GalaxyCreater】的原创文章。
原文链接:【http://xie.infoq.cn/article/f94cc192b3a818567ebddb4ff】。文章转载请联系作者。
评论