[發明專利]高效自描述的復雜數據對象序列化方法有效
| 申請號: | 201410054437.3 | 申請日: | 2014-02-18 |
| 公開(公告)號: | CN103778248B | 公開(公告)日: | 2017-07-11 |
| 發明(設計)人: | 黃睿 | 申請(專利權)人: | 成都致云科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 成都頂峰專利事務所(普通合伙)51224 | 代理人: | 楊俊華 |
| 地址: | 610000 四川*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 高效 描述 復雜 數據 對象 序列 方法 | ||
技術領域
本發明涉及一種復雜數據對象序列化方法,具體地說,是涉及一種高效自描述的復雜數據對象序列化方法。
背景技術
對象序列化、反序列化是現代網絡通訊和遠程調用技術的基石,序列化方法將邏輯對象轉換為數據包,通過網絡發送到遠端,遠端服務器接收到數據包后,將其反序列化獲得原始邏輯對象,再進行解析和處理。
為了提高應用效果,要求序列化方法需達到性能、易用性、可擴展性各方面的平衡。目前業內使用最廣泛、評價最高的是谷歌的Protocol Buffers方案,它使用.proto文件定義序列化對象接口,根據proto定義生成序列化、反序列化接口代碼,使用時用戶程序調用接口代碼進行序列化和反序列化操作,由于Protocol Buffers使用二進制流編碼,帶寬占用和處理速度都遠遠強于傳統的xml、json等方案,而且有前向兼容性,更新定義升級后不影響使用,接口設計也簡單,所以是目前最受歡迎的序列化方案之一。
但是對于大型通訊系統,Protocol Buffers存在以下缺陷:
Protocol Buffers對于一些復雜類型,比如數組的數組、字符串數組等結構需要通過嵌套消息或者多次序列化來處理,處理性能會嚴重下降;
Protocol Buffers序列化數據僅保留數據部分,要成功反序列化接收端必須擁有同一份proto文件,根據文件里的消息定義才能解析,使用和維護都不方便;
一個大型系統里通常會有非常多的對象需要序列化,但是Protocol Buffers需要為每一種對象定義一個獨立的proto文件,并生成一個獨立的解析代碼,在一個實際項目里,這樣會產生非常多的額外文件,不利于代碼管理,也缺乏統一和一致性。
發明內容
本發明的目的在于提供一種高效自描述的復雜數據對象序列化方法,主要解決現有技術中存在的對象序列化處理能力有限,使用和維護較為不便,缺乏統一和一致性的問題。
為了實現上述目的,本發明采用的技術方案如下:
高效自描述的復雜數據對象序列化方法,包括:
為每種異構消息創建一個用于標識其類型的唯一消息ID,并創建零個或一個以上用以標識各異構消息所需傳遞的屬性值的參數,創建各參數的唯一ID、值類型和二進制保存的值內容;
序列化時:
(1)將待序列化異構消息的消息ID用二進制方式保存在數據包頭;
(2)遍歷異構消息的參數清單,依次將該異構消息的參數序列化為二進制格式追加至存儲有消息ID的數據包,直至所有參數處理完畢,完成對該異構消息的序列化;
反序列化時:
(a)讀取待反序列化的異構消息的消息ID;
(b)依次讀取該異構消息的參數類型,根據類型對參數的二進制數據包進行解碼,獲得參數值;
(c)根據參數ID將獲取的參數值進行保存,直至數據包讀取完畢,完成對該異構消息的反序列化。
進一步地,所述參數二進制格式由用于區分不同參數的key和標記參數值類型的value構成。
與現有技術相比,本發明具有以下有益效果:
(1)本發明中,無需獨立定義文件和解析代碼,一個大型系統內只需要維護一份參數值定義文件即可,便于統一管理、減少出錯記錄,且有效降低了維護難度,大幅度提高了復雜數據處理性能,符合實際需求。
具體實施方式
下面結合附圖和實施例對本發明作進一步說明,本發明的實施方式包括但不限于下列實施例。
實施例
為了解決現有技術中存在的對象序列化處理能力有限,使用和維護較為不便,缺乏統一和一致性的問題,本發明公開了一種使用統一方法對各種異構消息進行序列化和反序列化處理,且序列化后的二進制數據流可以自我描述,無需接口文件和獨立的編解碼代碼就可正確反序列化回原始對象、且適用于復雜數據對象的序列化方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都致云科技有限公司,未經成都致云科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410054437.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種氣動三爪夾頭
- 下一篇:一種無人飛行器的起落架控制方法及裝置
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





