跨JAVA WEB工程远程数据传输方案设计
2010-09-12 00:21
387 查看
跨JAVA WEB工程远程更新方案设计
版本:V0.1作者:CG
背景
需要在JAVA跨WEB工程,基于HTTP协议可靠的传输大规模数据。原因:在使用数据库远程连接的时候由于远程数据库连接本身的不可靠性(服务器端经常断开与JDBC的连接),而造成事务不断回滚而造成数据始终无法传递。所以需要设计一个可靠的、通用的远程更新方案。
方案流程
技术选型及实验结果
l 序列化、反序列化实验使用第三方JAVA包xstream-1.3.1。
此包支持将数据进行XML格式的序列化、反序列化。
实验结果:
1. 该工具支持JAVA数据对象的序列化、反序列化。
2. 该工具支持JAVA容器对象的序列化、反序列化。
完全满足数据传输需求。
l 文件压缩实验
使用JAVA基本类库的java.util.zip工具,可以正确的将不包含中文字符的文件、目录打包。
满足本方案需求。
l 文件传输实验
上传方使用 commons-httpclient-3.1 工具模拟进行文件POST方法。
接收方使用 commons-fileupload-1.2.1 工具接收文件上传。
可以正确的传输文件,满足本方案需求。
l 数据实验
模拟实际数据,在一个任务批次下进行以上序列化、压缩。情况如下:
使用topv3库,模拟传输应用到的数据量。
数据记录如下:
表名 | tasked | 记录条数 | 序列化后文件大小 |
Display_top | 8257568 | 774 | 89KB |
display_top_url | 8257568 | 15024 | 1967KB |
video_information | all | 997 | 392KB |
总计数据库记录条数:16795
总计文件大小:2.38MB
压缩之后大小:223KB
序列化、反序列化、压缩和解压时间忽略不计,按文件传输时间为瓶颈估算一个批次时间:
假设上传速度为10KB/S(实际情况应该更快), 一共需要22秒,可以接受。
流程保证
l 客户端
1. 客户端的序列化、打包在本地运行,调试完成之后处理静态数据一般不会出错(若出错则报告管理员),此处不再赘述。
2. HTTP传输过程中,若本地超时(包括连接不到服务器)、或者服务器返回超时、失败信息,则中止当次传输任务,等待若干秒(需结合实际情况调整),再进行连接。
3. 若始终任务未成功(重试次数范围内未传输成功),则发邮件报警通知管理员。
4. 若服务器端解压缩、反序列化失败,立即返回任务失败。
客户端流程
l 服务器端
1. 接受到上传任务,则立即将当前任务清空。
2. 处理上传过程中,若遇到数据超时、失败,则立即给客户端返回相应信息。
3. 在解压、反序列化过程中若异常,则发邮件报警通知管理员。并返回给客户端失败。
服务器端流程
最终流程及选型汇总
相关文章推荐
- 以XML为数据传输格式的Web service设计方案示列
- 以XML为数据传输格式的Web service设计方案
- 将备份数据传输到远程服务器
- 通过花生壳、SSH远程端口转发,远程登录和传输数据
- Android基于WIFI实现电脑和手机间数据传输的技术方案研究
- 中奖数据表设计方案
- shell远程执行脚本、传输数据
- FPGA数据传输模块设计
- 基于 SSH 的远程操作以及安全,快捷的数据传输
- 基于HTTP在互联网传输敏感数据的消息摘要、签名与加密方案
- JSON 数据传输 与调用远程接口
- 数据库同步中差异数据捕获方案设计与实现
- ssh,telnet远程AIX以及数据传输问题
- 水利水电工程施工导截流方案辅助设计系统DivClose软件功能
- JSON 数据传输 与调用远程接口
- 设计数据密集型应用-第六章-备份机制(多节点存储一份数据中的问题和方案)
- 基于VB的单片机温度数据采集与传输系统设计 下位机程序
- 写行政区划数据方案设计系列有感
- 51单片机-PC数据传输 温度 距离 监控系统设计
- 数据字典项 设计实现方案