摘要:全球车辆的增多导致了车辆定位系统的广泛使用,由此产生了大量的通信数据,而当前的定位系统中大多使用XML、二进制流等数据协议来处理数据进行网络通信,而目前常规的数据协议在处理海量通信数据时显得力不从心,处理数据速度慢,数据编码后体积大,造成了通信速度慢、数据传输容量小等问题,导致了定位数据的实时性差与精确度较低。
为了优化这些缺陷,在本文中使用了谷歌开发的Protocol buffer数据协议来处理车辆数据。在Linux环境下创建客户端使用XML、JSON和Protocol buffer这三种协议对相同的车辆数据进行序列化和反序列化,通过Java库中的socket类建立数据通道,用输入输出流来进行数据传输,然后在建立的服务端中解析出数据包,对比三种协议处理此过程的速度。最后得出的结论是:Protocol buffer 序列化与反序列化大量数据时的速度明显比XML、JSON协议快,对数据进行编码后的体积比较小,使用它来替代常规的数据协议能够提高车辆定位数据的通信速度和数据传输的容量。
关键词 linux;xml;json;protocol buffer;序列化与反序列化;数据传输
目录
摘要
Abstract
1 绪论-1
1.1 设计背景介绍-1
1.2 研究现状-1
1.3 设计的目的和意义-1
1.4 主要内容与实现思路-2
2设计相关技术介绍-3
2.1 目前常用的数据传输协议介绍-3
2.2 数据传输通道的实现-3
2.3 C/S交互模式的建立-4
3 数据传输协议的设计与优化-7
3.1 XML协议的语法规则-7
3.2 基于 XML的序列化与反序列化-8
3.3 JSON的语法规则-10
3.4 基于JSON的序列化与反序列化-10
3.5 Protocol buffer的使用-10
3.5.1 Protocol buffer语法规则-10
3.5.2 使用 Protocol buffer 编译文件-12
3.5.3 Protocol buffer的优势详解-13
3.6 基于Protocol buffer对车辆数据序列化与反序列化-16
3.7 三种协议的性能对比-19
结论-22
致谢-23
参考文献-24