1.前言
为了满足客户端应用程序大强度,自动化发送电文。特此做此电文发收模块设计。
该模块的设计满足以下条件:
○ 电文的发收是可追溯的
○ 电文的发收是异步的
○ 所有的电文是保存的
○ 电文的发收和应用之间是低耦合的
这个项目是C/S体系,用的不是Java。我一开始的想法是,在Java中如果想达到这样的报文发送强度,可以直接用JMS和MQ。
但是如果不是Java技术的话,那么可以考虑模拟出JMS和MQ相同的效果。
2.模块设计图

3. 报文收发的时序图
| 客户端应用程序 | 电文发收服务器 | 服务器端后台应用程序 | ||||||||||
| 1.1客户端第一次启动,测试Stock长连接 | 1.2反馈Stock长连接状况 | |||||||||||
| 2.1客户端发送电文 | 2.2先将电文保存到发送队列表中,反馈客户端成功消息 | |||||||||||
| 2.3发送进程自动查询发送队列,发送给服务器 | 2.4 服务器端接收电文,反馈发送消息 | |||||||||||
| 2.3.1 服务器给予发送成功消息之后,更新该电文状态 | ||||||||||||
| 2.3.2 如果服务器反馈发送失败消息,置该电文为未发送 | ||||||||||||
| 2.3.3 如果服务器无应答,置该电文为未发送 | ||||||||||||
| 3.2 保存电文到接收队列中,反馈服务器成功消息 | 3.1 服务器端发送电文 | |||||||||||
| 3.3 推送电文线程自动查询接收列表,发送给客户端 | ||||||||||||
| 3.3.1 客户端给予接收成功消息之后,更新该电文状态 | ||||||||||||
| 3.3.2 如果客户端反馈发送失败消息,置该电文为未发送 | ||||||||||||
| 3.3.3 如果客户端无应答,置该电文为未发送 | ||||||||||||
| 4.1 监控心跳线程轮询测试客户端,服务器端的长连接现状 | ||||||||||||
| 4.1.1 如果发现连接失效,则重置Stock长连接 | ||||||||||||
| 4.1.2 在重置之后,调用发送线程,将未发送电文批量发送 | ||||||||||||
| 4.1.2 自动发邮件通知负责人 | ||||||||||||
注明:以上不全
4. 发收报文列表数据结构
| 发送报文队列数据结构 | |||
| 电文内容 | 电文级别 | 电文编号 | |
| 接收电文队列 | |||
| 电文内容 | 发送的电文编号 | ||
以上#
本文介绍了一种非Java技术实现的电文收发模块设计方案,确保电文发送与接收的自动化、异步及可追溯性。通过客户端与服务器端交互实现电文的可靠传递,并在连接异常时提供恢复机制。
3473

被折叠的 条评论
为什么被折叠?



