APP下载

ProtocolBuffers在即时通讯系统中的应用研究

2014-03-12田源潘晨光丁杰

现代电子技术 2014年5期
关键词:即时通讯消息

田源 潘晨光 丁杰

摘 要: 即时通讯系统已经广泛应用在人们的生活中,随着用户数量的增长,计算机设备在网络中传输的数据量越来越大。由于网络中的数据传输是非结构化的,因此需要数据的序列化与逆序列化方法来实现网络数据到可读数据的转换。基于即时通讯系统对于数据的实时性需求,提出了使用Protocol Buffers作为系统的序列化与逆序列化的手段,并且将Protocol Buffers与目前几种比较主流的数据序列化方法进行了对比。

关键词: Protocol Buffers; 即时通讯; 数据序列化; 消息

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2014)05?0032?03

0 引 言

随着移动互联网的不断发展,即时通讯工具已经成为人们生活中不可或缺的一部分。几乎大部分的用户都在不同的社交网络中注册账号,因此即时通讯软件就是连接社交网络中每个个体的重要纽带。这里的通讯软件特指基于Internet研发的,用于日常通讯的软件。通讯方式包括语音、图像、文本等。即时通讯软件由于使用费用低廉、覆盖范围广、用户体验良好等优点,迅速在全世界流行。目前,人们对于即时通讯软件的依赖已经远远超过了对于传统的语音通话服务,固定电话的使用率更是逐年下降。由此可见,基于互联网的即时通讯将是未来发展的趋势,并且拥有巨大的潜力。

现有的即时通讯软件中,以文本的方式为主流。也有部分软件使用延时语音聊天的方式,即先进行短时间的录音,然后再将录音文件发送至目标用户。无论是文本还是多媒体数据,在网络组包的过程中,除了需要包含实际的用户内容信息,还需要包含一些用于系统处理的辅助信息,因此它们都属于都是结构化的数据。而网络传输过程中,数据都是以流的方式进行处理。因此需要对结构化数据进行序列化与逆序列化的操作。由于即时通讯软件对于实时性的需求较大,因此选择一种高效的序列化手段就显得尤为重要。本文所属课题在研发过程中,经过比较几种序列化手段,选择Google的Protocol Buffers作为序列化手段。

1 Protocol Buffers概述

1.1 简介

ProtocolBuffers[1?2]是Google公司开发的一种用于结构化数据序列化和逆序列化的数据描述语言(Data Description Language,DDL)[3]。它主要用于结构化数据的描述、传输和存储。Protocol Buffers采用二进制编码的格式,对数据的序列化和逆序列化的操作效率较高,它能够实现数据的压缩存储和传输。该技术支持C++、Java以及Python语言,由于是以二进制流的形式进行存储,因此它要比XML更加节省空间。只需使用Protocol Buffers对数据结构进行一次描述,即可在不同的编程语言环境中使用。

3 结 语

Protocol Buffers是之前Google公司内部使用的一种高效的数据序列化与逆序列化方法。它的灵活性和高效性刚好符合即时信息通讯系统对于实时性的需求。本文介绍了Protocol Buffers在即时通讯系统中的应用,并且比较了几种数据序列化方法之间的异同。通过摘取项目中的代码,展示了Protocol Buffers在实际开发中的应用方法。

参考文献

[1] FENG J H, LI J H. Google Protocol Buffers research and application in online game [C]// Proceedings of 2011 13th IEEE Joint International Computer Science and Information Technology Conference. Chongqing, China: IEEE, 2011: 5?8.

[2] 殷昊,沈奇威,王纯.Protocol Buffer在Android企业云通讯录中的应用[J].电信科学,2012(9):148?151.

[3] 晏立,沈锐.Java序列化技术的探讨[J].红河学院学报,2011(4):37?39.

[4] NURSEITOV N, PAULSON M, REYNOLDS R, et al. Comparison of JSON and XML data interchange formats: a case study [C]// Proceedings of 2009 CAINE. San Francisco, California, USA: CAINE, 2009: 157?162.

[5] LEE D A. JXON: an architecture for schema and annotation driven JSON/XML bidirectional transformations [C]// Proceedings of Balisage: The Markup Conference. Washington DC, USA: Balisage, 2011: 2?5.

[6] SUMARAY A, MAKKI S K. A comparison of data serialization formats for optimal efficiency on a mobile platform [C]// Proceedings of the 6th International Conference on Ubiquitous Information Management and Communication. Kuala Lumpur, Malaysia: ACM, 2012: 48.

[7] 宫唐小恒,李旭伟. Protocol Buffers:比XML快近100倍[J].电脑与信息技术,2009(1):65?68.

[8] M?LLER J, LORENZ M, GELLER F, et al. Assessment of communication protocols in the EPC network?replacing textual SOAP and XML with binary google protocol buffers encoding [C]// Proceedings of 2010 IEEE 17th International Conference on Industrial Engineering and Engineering Management. Xiamen, China: IE&EM, 2010: 404?409.

[9] 李纪欣,王康,周立发,等.Google Protobuf在Linux Socket通讯中的应用[J].电脑开发与应用,2013(4):1?5.

[10] 毛红阁,郭红,陈东,等.Android移动通讯序列化协议研究[J].南阳师范学院学报,2012(6):47?49.

摘 要: 即时通讯系统已经广泛应用在人们的生活中,随着用户数量的增长,计算机设备在网络中传输的数据量越来越大。由于网络中的数据传输是非结构化的,因此需要数据的序列化与逆序列化方法来实现网络数据到可读数据的转换。基于即时通讯系统对于数据的实时性需求,提出了使用Protocol Buffers作为系统的序列化与逆序列化的手段,并且将Protocol Buffers与目前几种比较主流的数据序列化方法进行了对比。

关键词: Protocol Buffers; 即时通讯; 数据序列化; 消息

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2014)05?0032?03

0 引 言

随着移动互联网的不断发展,即时通讯工具已经成为人们生活中不可或缺的一部分。几乎大部分的用户都在不同的社交网络中注册账号,因此即时通讯软件就是连接社交网络中每个个体的重要纽带。这里的通讯软件特指基于Internet研发的,用于日常通讯的软件。通讯方式包括语音、图像、文本等。即时通讯软件由于使用费用低廉、覆盖范围广、用户体验良好等优点,迅速在全世界流行。目前,人们对于即时通讯软件的依赖已经远远超过了对于传统的语音通话服务,固定电话的使用率更是逐年下降。由此可见,基于互联网的即时通讯将是未来发展的趋势,并且拥有巨大的潜力。

现有的即时通讯软件中,以文本的方式为主流。也有部分软件使用延时语音聊天的方式,即先进行短时间的录音,然后再将录音文件发送至目标用户。无论是文本还是多媒体数据,在网络组包的过程中,除了需要包含实际的用户内容信息,还需要包含一些用于系统处理的辅助信息,因此它们都属于都是结构化的数据。而网络传输过程中,数据都是以流的方式进行处理。因此需要对结构化数据进行序列化与逆序列化的操作。由于即时通讯软件对于实时性的需求较大,因此选择一种高效的序列化手段就显得尤为重要。本文所属课题在研发过程中,经过比较几种序列化手段,选择Google的Protocol Buffers作为序列化手段。

1 Protocol Buffers概述

1.1 简介

ProtocolBuffers[1?2]是Google公司开发的一种用于结构化数据序列化和逆序列化的数据描述语言(Data Description Language,DDL)[3]。它主要用于结构化数据的描述、传输和存储。Protocol Buffers采用二进制编码的格式,对数据的序列化和逆序列化的操作效率较高,它能够实现数据的压缩存储和传输。该技术支持C++、Java以及Python语言,由于是以二进制流的形式进行存储,因此它要比XML更加节省空间。只需使用Protocol Buffers对数据结构进行一次描述,即可在不同的编程语言环境中使用。

3 结 语

Protocol Buffers是之前Google公司内部使用的一种高效的数据序列化与逆序列化方法。它的灵活性和高效性刚好符合即时信息通讯系统对于实时性的需求。本文介绍了Protocol Buffers在即时通讯系统中的应用,并且比较了几种数据序列化方法之间的异同。通过摘取项目中的代码,展示了Protocol Buffers在实际开发中的应用方法。

参考文献

[1] FENG J H, LI J H. Google Protocol Buffers research and application in online game [C]// Proceedings of 2011 13th IEEE Joint International Computer Science and Information Technology Conference. Chongqing, China: IEEE, 2011: 5?8.

[2] 殷昊,沈奇威,王纯.Protocol Buffer在Android企业云通讯录中的应用[J].电信科学,2012(9):148?151.

[3] 晏立,沈锐.Java序列化技术的探讨[J].红河学院学报,2011(4):37?39.

[4] NURSEITOV N, PAULSON M, REYNOLDS R, et al. Comparison of JSON and XML data interchange formats: a case study [C]// Proceedings of 2009 CAINE. San Francisco, California, USA: CAINE, 2009: 157?162.

[5] LEE D A. JXON: an architecture for schema and annotation driven JSON/XML bidirectional transformations [C]// Proceedings of Balisage: The Markup Conference. Washington DC, USA: Balisage, 2011: 2?5.

[6] SUMARAY A, MAKKI S K. A comparison of data serialization formats for optimal efficiency on a mobile platform [C]// Proceedings of the 6th International Conference on Ubiquitous Information Management and Communication. Kuala Lumpur, Malaysia: ACM, 2012: 48.

[7] 宫唐小恒,李旭伟. Protocol Buffers:比XML快近100倍[J].电脑与信息技术,2009(1):65?68.

[8] M?LLER J, LORENZ M, GELLER F, et al. Assessment of communication protocols in the EPC network?replacing textual SOAP and XML with binary google protocol buffers encoding [C]// Proceedings of 2010 IEEE 17th International Conference on Industrial Engineering and Engineering Management. Xiamen, China: IE&EM, 2010: 404?409.

[9] 李纪欣,王康,周立发,等.Google Protobuf在Linux Socket通讯中的应用[J].电脑开发与应用,2013(4):1?5.

[10] 毛红阁,郭红,陈东,等.Android移动通讯序列化协议研究[J].南阳师范学院学报,2012(6):47?49.

摘 要: 即时通讯系统已经广泛应用在人们的生活中,随着用户数量的增长,计算机设备在网络中传输的数据量越来越大。由于网络中的数据传输是非结构化的,因此需要数据的序列化与逆序列化方法来实现网络数据到可读数据的转换。基于即时通讯系统对于数据的实时性需求,提出了使用Protocol Buffers作为系统的序列化与逆序列化的手段,并且将Protocol Buffers与目前几种比较主流的数据序列化方法进行了对比。

关键词: Protocol Buffers; 即时通讯; 数据序列化; 消息

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2014)05?0032?03

0 引 言

随着移动互联网的不断发展,即时通讯工具已经成为人们生活中不可或缺的一部分。几乎大部分的用户都在不同的社交网络中注册账号,因此即时通讯软件就是连接社交网络中每个个体的重要纽带。这里的通讯软件特指基于Internet研发的,用于日常通讯的软件。通讯方式包括语音、图像、文本等。即时通讯软件由于使用费用低廉、覆盖范围广、用户体验良好等优点,迅速在全世界流行。目前,人们对于即时通讯软件的依赖已经远远超过了对于传统的语音通话服务,固定电话的使用率更是逐年下降。由此可见,基于互联网的即时通讯将是未来发展的趋势,并且拥有巨大的潜力。

现有的即时通讯软件中,以文本的方式为主流。也有部分软件使用延时语音聊天的方式,即先进行短时间的录音,然后再将录音文件发送至目标用户。无论是文本还是多媒体数据,在网络组包的过程中,除了需要包含实际的用户内容信息,还需要包含一些用于系统处理的辅助信息,因此它们都属于都是结构化的数据。而网络传输过程中,数据都是以流的方式进行处理。因此需要对结构化数据进行序列化与逆序列化的操作。由于即时通讯软件对于实时性的需求较大,因此选择一种高效的序列化手段就显得尤为重要。本文所属课题在研发过程中,经过比较几种序列化手段,选择Google的Protocol Buffers作为序列化手段。

1 Protocol Buffers概述

1.1 简介

ProtocolBuffers[1?2]是Google公司开发的一种用于结构化数据序列化和逆序列化的数据描述语言(Data Description Language,DDL)[3]。它主要用于结构化数据的描述、传输和存储。Protocol Buffers采用二进制编码的格式,对数据的序列化和逆序列化的操作效率较高,它能够实现数据的压缩存储和传输。该技术支持C++、Java以及Python语言,由于是以二进制流的形式进行存储,因此它要比XML更加节省空间。只需使用Protocol Buffers对数据结构进行一次描述,即可在不同的编程语言环境中使用。

3 结 语

Protocol Buffers是之前Google公司内部使用的一种高效的数据序列化与逆序列化方法。它的灵活性和高效性刚好符合即时信息通讯系统对于实时性的需求。本文介绍了Protocol Buffers在即时通讯系统中的应用,并且比较了几种数据序列化方法之间的异同。通过摘取项目中的代码,展示了Protocol Buffers在实际开发中的应用方法。

参考文献

[1] FENG J H, LI J H. Google Protocol Buffers research and application in online game [C]// Proceedings of 2011 13th IEEE Joint International Computer Science and Information Technology Conference. Chongqing, China: IEEE, 2011: 5?8.

[2] 殷昊,沈奇威,王纯.Protocol Buffer在Android企业云通讯录中的应用[J].电信科学,2012(9):148?151.

[3] 晏立,沈锐.Java序列化技术的探讨[J].红河学院学报,2011(4):37?39.

[4] NURSEITOV N, PAULSON M, REYNOLDS R, et al. Comparison of JSON and XML data interchange formats: a case study [C]// Proceedings of 2009 CAINE. San Francisco, California, USA: CAINE, 2009: 157?162.

[5] LEE D A. JXON: an architecture for schema and annotation driven JSON/XML bidirectional transformations [C]// Proceedings of Balisage: The Markup Conference. Washington DC, USA: Balisage, 2011: 2?5.

[6] SUMARAY A, MAKKI S K. A comparison of data serialization formats for optimal efficiency on a mobile platform [C]// Proceedings of the 6th International Conference on Ubiquitous Information Management and Communication. Kuala Lumpur, Malaysia: ACM, 2012: 48.

[7] 宫唐小恒,李旭伟. Protocol Buffers:比XML快近100倍[J].电脑与信息技术,2009(1):65?68.

[8] M?LLER J, LORENZ M, GELLER F, et al. Assessment of communication protocols in the EPC network?replacing textual SOAP and XML with binary google protocol buffers encoding [C]// Proceedings of 2010 IEEE 17th International Conference on Industrial Engineering and Engineering Management. Xiamen, China: IE&EM, 2010: 404?409.

[9] 李纪欣,王康,周立发,等.Google Protobuf在Linux Socket通讯中的应用[J].电脑开发与应用,2013(4):1?5.

[10] 毛红阁,郭红,陈东,等.Android移动通讯序列化协议研究[J].南阳师范学院学报,2012(6):47?49.

猜你喜欢

即时通讯消息
一张图看5G消息
即时通讯在高校体育教学中的应用研究
民事诉讼中即时通讯记录的证据采用进路
即时通讯软件发展模型的实证研究
科学技术哲学视域下的即时通讯
即时通讯软件WhatsApp
消息
消息
消息
消息