田源 潘晨光 丁杰
摘 要: 即時通訊系統(tǒng)已經(jīng)廣泛應用在人們的生活中,隨著用戶數(shù)量的增長,計算機設備在網(wǎng)絡中傳輸?shù)臄?shù)據(jù)量越來越大。由于網(wǎng)絡中的數(shù)據(jù)傳輸是非結構化的,因此需要數(shù)據(jù)的序列化與逆序列化方法來實現(xiàn)網(wǎng)絡數(shù)據(jù)到可讀數(shù)據(jù)的轉(zhuǎn)換?;诩磿r通訊系統(tǒng)對于數(shù)據(jù)的實時性需求,提出了使用Protocol Buffers作為系統(tǒng)的序列化與逆序列化的手段,并且將Protocol Buffers與目前幾種比較主流的數(shù)據(jù)序列化方法進行了對比。
關鍵詞: Protocol Buffers; 即時通訊; 數(shù)據(jù)序列化; 消息
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2014)05?0032?03
0 引 言
隨著移動互聯(lián)網(wǎng)的不斷發(fā)展,即時通訊工具已經(jīng)成為人們生活中不可或缺的一部分。幾乎大部分的用戶都在不同的社交網(wǎng)絡中注冊賬號,因此即時通訊軟件就是連接社交網(wǎng)絡中每個個體的重要紐帶。這里的通訊軟件特指基于Internet研發(fā)的,用于日常通訊的軟件。通訊方式包括語音、圖像、文本等。即時通訊軟件由于使用費用低廉、覆蓋范圍廣、用戶體驗良好等優(yōu)點,迅速在全世界流行。目前,人們對于即時通訊軟件的依賴已經(jīng)遠遠超過了對于傳統(tǒng)的語音通話服務,固定電話的使用率更是逐年下降。由此可見,基于互聯(lián)網(wǎng)的即時通訊將是未來發(fā)展的趨勢,并且擁有巨大的潛力。
現(xiàn)有的即時通訊軟件中,以文本的方式為主流。也有部分軟件使用延時語音聊天的方式,即先進行短時間的錄音,然后再將錄音文件發(fā)送至目標用戶。無論是文本還是多媒體數(shù)據(jù),在網(wǎng)絡組包的過程中,除了需要包含實際的用戶內(nèi)容信息,還需要包含一些用于系統(tǒng)處理的輔助信息,因此它們都屬于都是結構化的數(shù)據(jù)。而網(wǎng)絡傳輸過程中,數(shù)據(jù)都是以流的方式進行處理。因此需要對結構化數(shù)據(jù)進行序列化與逆序列化的操作。由于即時通訊軟件對于實時性的需求較大,因此選擇一種高效的序列化手段就顯得尤為重要。本文所屬課題在研發(fā)過程中,經(jīng)過比較幾種序列化手段,選擇Google的Protocol Buffers作為序列化手段。
1 Protocol Buffers概述
1.1 簡介
ProtocolBuffers[1?2]是Google公司開發(fā)的一種用于結構化數(shù)據(jù)序列化和逆序列化的數(shù)據(jù)描述語言(Data Description Language,DDL)[3]。它主要用于結構化數(shù)據(jù)的描述、傳輸和存儲。Protocol Buffers采用二進制編碼的格式,對數(shù)據(jù)的序列化和逆序列化的操作效率較高,它能夠?qū)崿F(xiàn)數(shù)據(jù)的壓縮存儲和傳輸。該技術支持C++、Java以及Python語言,由于是以二進制流的形式進行存儲,因此它要比XML更加節(jié)省空間。只需使用Protocol Buffers對數(shù)據(jù)結構進行一次描述,即可在不同的編程語言環(huán)境中使用。
3 結 語
Protocol Buffers是之前Google公司內(nèi)部使用的一種高效的數(shù)據(jù)序列化與逆序列化方法。它的靈活性和高效性剛好符合即時信息通訊系統(tǒng)對于實時性的需求。本文介紹了Protocol Buffers在即時通訊系統(tǒng)中的應用,并且比較了幾種數(shù)據(jù)序列化方法之間的異同。通過摘取項目中的代碼,展示了Protocol Buffers在實際開發(fā)中的應用方法。
參考文獻
[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企業(yè)云通訊錄中的應用[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] 李紀欣,王康,周立發(fā),等.Google Protobuf在Linux Socket通訊中的應用[J].電腦開發(fā)與應用,2013(4):1?5.
[10] 毛紅閣,郭紅,陳東,等.Android移動通訊序列化協(xié)議研究[J].南陽師范學院學報,2012(6):47?49.
摘 要: 即時通訊系統(tǒng)已經(jīng)廣泛應用在人們的生活中,隨著用戶數(shù)量的增長,計算機設備在網(wǎng)絡中傳輸?shù)臄?shù)據(jù)量越來越大。由于網(wǎng)絡中的數(shù)據(jù)傳輸是非結構化的,因此需要數(shù)據(jù)的序列化與逆序列化方法來實現(xiàn)網(wǎng)絡數(shù)據(jù)到可讀數(shù)據(jù)的轉(zhuǎn)換?;诩磿r通訊系統(tǒng)對于數(shù)據(jù)的實時性需求,提出了使用Protocol Buffers作為系統(tǒng)的序列化與逆序列化的手段,并且將Protocol Buffers與目前幾種比較主流的數(shù)據(jù)序列化方法進行了對比。
關鍵詞: Protocol Buffers; 即時通訊; 數(shù)據(jù)序列化; 消息
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2014)05?0032?03
0 引 言
隨著移動互聯(lián)網(wǎng)的不斷發(fā)展,即時通訊工具已經(jīng)成為人們生活中不可或缺的一部分。幾乎大部分的用戶都在不同的社交網(wǎng)絡中注冊賬號,因此即時通訊軟件就是連接社交網(wǎng)絡中每個個體的重要紐帶。這里的通訊軟件特指基于Internet研發(fā)的,用于日常通訊的軟件。通訊方式包括語音、圖像、文本等。即時通訊軟件由于使用費用低廉、覆蓋范圍廣、用戶體驗良好等優(yōu)點,迅速在全世界流行。目前,人們對于即時通訊軟件的依賴已經(jīng)遠遠超過了對于傳統(tǒng)的語音通話服務,固定電話的使用率更是逐年下降。由此可見,基于互聯(lián)網(wǎng)的即時通訊將是未來發(fā)展的趨勢,并且擁有巨大的潛力。
現(xiàn)有的即時通訊軟件中,以文本的方式為主流。也有部分軟件使用延時語音聊天的方式,即先進行短時間的錄音,然后再將錄音文件發(fā)送至目標用戶。無論是文本還是多媒體數(shù)據(jù),在網(wǎng)絡組包的過程中,除了需要包含實際的用戶內(nèi)容信息,還需要包含一些用于系統(tǒng)處理的輔助信息,因此它們都屬于都是結構化的數(shù)據(jù)。而網(wǎng)絡傳輸過程中,數(shù)據(jù)都是以流的方式進行處理。因此需要對結構化數(shù)據(jù)進行序列化與逆序列化的操作。由于即時通訊軟件對于實時性的需求較大,因此選擇一種高效的序列化手段就顯得尤為重要。本文所屬課題在研發(fā)過程中,經(jīng)過比較幾種序列化手段,選擇Google的Protocol Buffers作為序列化手段。
1 Protocol Buffers概述
1.1 簡介
ProtocolBuffers[1?2]是Google公司開發(fā)的一種用于結構化數(shù)據(jù)序列化和逆序列化的數(shù)據(jù)描述語言(Data Description Language,DDL)[3]。它主要用于結構化數(shù)據(jù)的描述、傳輸和存儲。Protocol Buffers采用二進制編碼的格式,對數(shù)據(jù)的序列化和逆序列化的操作效率較高,它能夠?qū)崿F(xiàn)數(shù)據(jù)的壓縮存儲和傳輸。該技術支持C++、Java以及Python語言,由于是以二進制流的形式進行存儲,因此它要比XML更加節(jié)省空間。只需使用Protocol Buffers對數(shù)據(jù)結構進行一次描述,即可在不同的編程語言環(huán)境中使用。
3 結 語
Protocol Buffers是之前Google公司內(nèi)部使用的一種高效的數(shù)據(jù)序列化與逆序列化方法。它的靈活性和高效性剛好符合即時信息通訊系統(tǒng)對于實時性的需求。本文介紹了Protocol Buffers在即時通訊系統(tǒng)中的應用,并且比較了幾種數(shù)據(jù)序列化方法之間的異同。通過摘取項目中的代碼,展示了Protocol Buffers在實際開發(fā)中的應用方法。
參考文獻
[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企業(yè)云通訊錄中的應用[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] 李紀欣,王康,周立發(fā),等.Google Protobuf在Linux Socket通訊中的應用[J].電腦開發(fā)與應用,2013(4):1?5.
[10] 毛紅閣,郭紅,陳東,等.Android移動通訊序列化協(xié)議研究[J].南陽師范學院學報,2012(6):47?49.
摘 要: 即時通訊系統(tǒng)已經(jīng)廣泛應用在人們的生活中,隨著用戶數(shù)量的增長,計算機設備在網(wǎng)絡中傳輸?shù)臄?shù)據(jù)量越來越大。由于網(wǎng)絡中的數(shù)據(jù)傳輸是非結構化的,因此需要數(shù)據(jù)的序列化與逆序列化方法來實現(xiàn)網(wǎng)絡數(shù)據(jù)到可讀數(shù)據(jù)的轉(zhuǎn)換?;诩磿r通訊系統(tǒng)對于數(shù)據(jù)的實時性需求,提出了使用Protocol Buffers作為系統(tǒng)的序列化與逆序列化的手段,并且將Protocol Buffers與目前幾種比較主流的數(shù)據(jù)序列化方法進行了對比。
關鍵詞: Protocol Buffers; 即時通訊; 數(shù)據(jù)序列化; 消息
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2014)05?0032?03
0 引 言
隨著移動互聯(lián)網(wǎng)的不斷發(fā)展,即時通訊工具已經(jīng)成為人們生活中不可或缺的一部分。幾乎大部分的用戶都在不同的社交網(wǎng)絡中注冊賬號,因此即時通訊軟件就是連接社交網(wǎng)絡中每個個體的重要紐帶。這里的通訊軟件特指基于Internet研發(fā)的,用于日常通訊的軟件。通訊方式包括語音、圖像、文本等。即時通訊軟件由于使用費用低廉、覆蓋范圍廣、用戶體驗良好等優(yōu)點,迅速在全世界流行。目前,人們對于即時通訊軟件的依賴已經(jīng)遠遠超過了對于傳統(tǒng)的語音通話服務,固定電話的使用率更是逐年下降。由此可見,基于互聯(lián)網(wǎng)的即時通訊將是未來發(fā)展的趨勢,并且擁有巨大的潛力。
現(xiàn)有的即時通訊軟件中,以文本的方式為主流。也有部分軟件使用延時語音聊天的方式,即先進行短時間的錄音,然后再將錄音文件發(fā)送至目標用戶。無論是文本還是多媒體數(shù)據(jù),在網(wǎng)絡組包的過程中,除了需要包含實際的用戶內(nèi)容信息,還需要包含一些用于系統(tǒng)處理的輔助信息,因此它們都屬于都是結構化的數(shù)據(jù)。而網(wǎng)絡傳輸過程中,數(shù)據(jù)都是以流的方式進行處理。因此需要對結構化數(shù)據(jù)進行序列化與逆序列化的操作。由于即時通訊軟件對于實時性的需求較大,因此選擇一種高效的序列化手段就顯得尤為重要。本文所屬課題在研發(fā)過程中,經(jīng)過比較幾種序列化手段,選擇Google的Protocol Buffers作為序列化手段。
1 Protocol Buffers概述
1.1 簡介
ProtocolBuffers[1?2]是Google公司開發(fā)的一種用于結構化數(shù)據(jù)序列化和逆序列化的數(shù)據(jù)描述語言(Data Description Language,DDL)[3]。它主要用于結構化數(shù)據(jù)的描述、傳輸和存儲。Protocol Buffers采用二進制編碼的格式,對數(shù)據(jù)的序列化和逆序列化的操作效率較高,它能夠?qū)崿F(xiàn)數(shù)據(jù)的壓縮存儲和傳輸。該技術支持C++、Java以及Python語言,由于是以二進制流的形式進行存儲,因此它要比XML更加節(jié)省空間。只需使用Protocol Buffers對數(shù)據(jù)結構進行一次描述,即可在不同的編程語言環(huán)境中使用。
3 結 語
Protocol Buffers是之前Google公司內(nèi)部使用的一種高效的數(shù)據(jù)序列化與逆序列化方法。它的靈活性和高效性剛好符合即時信息通訊系統(tǒng)對于實時性的需求。本文介紹了Protocol Buffers在即時通訊系統(tǒng)中的應用,并且比較了幾種數(shù)據(jù)序列化方法之間的異同。通過摘取項目中的代碼,展示了Protocol Buffers在實際開發(fā)中的應用方法。
參考文獻
[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企業(yè)云通訊錄中的應用[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] 李紀欣,王康,周立發(fā),等.Google Protobuf在Linux Socket通訊中的應用[J].電腦開發(fā)與應用,2013(4):1?5.
[10] 毛紅閣,郭紅,陳東,等.Android移動通訊序列化協(xié)議研究[J].南陽師范學院學報,2012(6):47?49.