翻譯Protocol buffers官方部分介紹 java

 

Protocol buffers
協議緩衝是 Google 用於序列化結構化的數據的語言中立、平臺中立的可擴展機制 – 例如 XML,但是比 XML 更小、更快、更簡單。您可以定義希望如何結構化您的數據,然後可以使用生成的特殊源代碼來輕鬆地將結構化的數據寫入各個數據流/從各個數據流中讀取結構化的數據,並使用各種不同的語言(Java、C++ 或 Python)。
Why use Protocol buffers?
下面介紹一個”address book”應用的例子,這個例子可以從文件讀取和寫入人們的聯繫方式。每個address book有人名,ID, 電子郵件地址和聯繫電話。
你會怎樣序列化和查詢這樣的結構化數據呢?下面是幾種解決方法:
1.       使用Java Serialization. 這是默認的方式,因爲這是java語言內置的。但是它許多衆所周知的問題並且此應用不能跨語言。比如 你不能和c++ python共享數據
2.       你可以利用對等通信的方式來將數據項編碼爲一個字符串。這是一個簡單靈活的方式,儘管它要編寫一次性的編碼和解碼的程序和解析時會附加一個小的運行時間成本。對於編碼簡單數據來說,這是最好的方法。
3.       將數據序列化爲Xml。這種方法是挺不錯的,因爲XML是人類可讀的並且它有很多不同語言相關lib工具的支持。如果你要和其他應用和項目共享數據的話,這是一個不錯的選擇。但是Xml是十分耗費空間的,並且編碼和解碼也會對應用程序的效率有很大影響。還有,引導(應該是說指向某個數據的意思吧)XML DOM tree比引導一個類中的簡單數據成員要複雜得多。
對這樣的問題, Protocol Buffers是一種靈活高效自動化的解決辦法。使用Protocol Buffers, 你要寫一個XXX.proto的文件,這個文件時描述你要存儲的數據結構的。接着使用Protocol complier 生成一個類,這個生成類用高效的二進制格式實現了自動編碼和解析protocol buffer的數據。這個生成的類對其成員變量提供getter 和 setter方法。這些成員變量組成了protocol buffer 並且實現了將protocol buffer的整體讀寫。(大概意思是說 他封裝好了序列化和反序列化的東西 你直接get 和 set就行了)。重要的是, protocol buffer 格式支持可擴展---程序對老格式定義的數據依然是可讀的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章