成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony啃論文成長計劃---淺談序列化規范

系統 OpenHarmony
序列化(Serialization)其實就是將要傳遞的數據以及數據結構轉化為位字符串(bit-string),而反序列化(Deserialization)就是將為位字符串重新轉換為原始數據以及相應數據結構。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://ost.51cto.com??

大家好! 我是來自深圳技術大學FSR實驗室的同學,標題FFH就是FSRlab For Harmony!并且我也正在參加OpenHarmony成長計劃從論文到開源提交研究,以后我們也會陸續在這個社區記錄學習心得和體會。

引言

在涉及到網絡遠程通信的過程中,序列化傳遞的數據是不可避免的。

序列化(Serialization)其實就是將要傳遞的數據以及數據結構轉化為位字符串(bit-string),而反序列化(Deserialization)就是將為位字符串重新轉換為原始數據以及相應數據結構。

對于序列化其實有規范分類,一種是文本及二進制序列化規范(Textual and Binary Serialization Specififications),還有一種是無模式及模式驅動規范(Schema-less and Schema-driven Serialization Specififications),下面我們簡單了解一下這兩個規范分類。

文本及二進制序列化規范(Textual and Binary Serialization Specififications)

如果序列化規范產生的位字符串對應于文本編碼中的字符序列,如對應ASCII、EBCDIC/CCSID 037或UTF-8,則序列化規范稱為文本序列化規范(Textual Serialization Specififications),否則序列化規范稱為二進制序列化規范(Binary Serialization Specififications)。

下圖是用這兩種規范分別序列化3.1415926535的例子:

文本序列化規范(Textual Serialization Specififications)

我們可以將文本序列化規范視為具備特定文本編碼(如UTF-8)規則內的一組約定。用于操作該文本編碼格式的計算機工具可以方便的處理對應序列化后的位字符串。

比如上圖用兩種規范序列化3.1415926535。

文本表示法將十進制數字編碼為一個 96 bit長的數字字符序列 ,我序列化后的位字符串可以使用對應的文本編輯器(比如這里是UTF-8編碼格式的編輯器)輕松地檢查和處理,可讀性較高。

二進制序列化規范(Binary Serialization Specififications)

還是上圖用二進制規范序列化3.1415926535。

從圖中序列化后的位字符串來看, 二進制序列化表示法根據其符號、指數和尾數對十進制數進行編碼。所得到的位字符串只有 32 bit長。

差異及應用

從序列化后的數據占用的空間來看——二進制序列化規范比文本序列化規范表示法小三倍。然而, 我們無法使用通用的基于文本的工具來處理它,二進制序列化規范需要一個比較詳細的協議來定義被序列化后的二進制流的每個字節的含義是什么。因為這個規范處理的數據空間占用比較小,因此傳輸效率比較高,但是可讀性較低,一般用于需要數據傳輸效率非常高的場景。

JSON,XML以及 BSON,ProtocolBuffers是常用的序列化手段,前面兩個是基于文本序列化規范的,后面兩個是基于二進制序列化規范的。但是,無論是文本格式還是二進制格式,存儲的都是二進制。

模式驅動及無模式序列化規范(Schema-less and Schema-driven Serialization Specififications)

如果序列化規范生成的位字符串可以在事先不了解其原始數據及其數據結構的情況下進行反序列化,則稱這種規范是模式序列化規范的。否則,則稱為模式驅動序列化規范。

下圖是兩種規范分別序列化兩個哈希映射的例子:

模式驅動序列化規范(Schema-driven Serialization Specififications)

模式驅動序列化規范Schema-driven Serialization Specififications)的特點就是在我們傳遞數據的時候,我們要事先約定傳遞的數據結構信息,并且將結構信息編碼到序列化生成的位字符串中。

比如上圖的例子是序列化兩個映射。

{   
"latitude":48858093,
"longitude":2294694
}

模式驅動列化后位字符串的(底部)除了作為整數前綴的映射的長度,省略了大多數自描述性信息。如果沒有提前約定相關的源數據結構信息,接收者無法處理模式驅動下的位字符串,也就是不知道如何轉換為原始數據結構。

無模式序列化規范(Schema-less Serialization Specififications)

還是上圖的例子,無模式序列化規范(頂部)是自描述性的,原始數據結構的信息和原始數據都用不同的屬性區別開來。所以數據接收者不需要提前約定,就可以對序列化后的位字符串進行處理。

差異及應用

從上面的介紹我們可以看到,模式驅動序列化規范序列化后會產生的相對節省很多空間的位字符串。因此,網絡要求高效的系統傾向于采用模式驅動的序列化規范。模式驅動的序列化規范通常與空間效率有關,因此往往是二進制的。然而,也有人提出了一個基于文本JSON兼容的模式驅動序列化規范。

上圖中表示的是用不同的序列化技術,分別序列化相同數據后,對位字符串信息量大小進行排序。(越往右信息量越小)。

我們可以根據上圖直觀地看到序列化后的位字符串包含的信息量,來比較無模式和模式驅動的序列化規范。

最左邊的處理方法序列化后的位字符串的信息量是最大的,都是無模式序列化規范(Schema-less Serialization Specififications),比如BSON,Smile,FlexBuffers等,因為最大地保留了原始數據及其結構的信息描述。最右邊的信息量是最小的,比如ASN.1,因為他們把非常多的結構信息已經在規范中提前約定,因此不需要寫入序列化后的位字符串中。

存在即是合理,這些模式都沒有最好最壞,每種模式都可以在特定的場景發揮對應場景需要的作用。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-03-22 15:04:20

中間件分布式軟件鴻蒙

2022-03-28 15:17:12

JSONXMLHarmony

2022-03-31 16:13:27

Avro數據序列化系統Harmony

2022-02-16 16:28:22

RPC鴻蒙操作系統

2022-03-15 15:17:03

開源技術HarmonyMQTT協議

2022-02-24 16:32:26

OpenHarmon壓縮編碼鴻蒙

2022-03-28 15:28:42

分布式軟總線通訊Harmony

2022-03-30 14:43:00

Harmony分布式軟總線通訊

2022-08-05 19:55:20

學術科研鴻蒙

2022-02-10 14:57:46

OpenHarmon鴻蒙操作系統

2022-02-10 15:33:05

OpenHarmon應用開發操作系統

2012-04-13 10:45:59

XML

2022-08-22 17:36:13

啃論文方法啃論文俱樂部

2022-08-06 08:41:18

序列化反序列化Hessian

2024-09-10 08:28:22

2022-04-20 20:37:58

鴻蒙操作系統

2022-05-20 14:21:50

物聯網通信協議

2022-05-13 23:03:25

大數據Big Data巨量資料

2022-04-07 15:03:07

Harmony計算機鴻蒙

2022-05-13 22:44:35

物聯網算法鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99视频这里只有精品 | 99精品视频免费在线观看 | 久久成人在线视频 | 免费午夜剧场 | 日日骚网 | 久草院线 | 亚洲成网 | 亚洲久草 | 91一区二区三区 | 日本一区二区不卡视频 | 亚洲看片 | 人人玩人人添人人澡欧美 | 91高清免费 | 国产精品美女久久久av超清 | 亚洲成人午夜在线 | 亚洲精品在 | 一区二区国产在线 | 神马久久久久久久久久 | 欧美一级免费片 | 国产精品视频久久久 | 亚洲精品www | 久久大 | 国产日韩一区二区三免费高清 | 国产成人免费视频网站高清观看视频 | 91成人午夜性a一级毛片 | 欧美vide| 操操网站| 99av成人精品国语自产拍 | 中文字幕综合 | 不卡一二区 | 国产亚洲精品久久久久久牛牛 | 欧美在线视频一区二区 | 亚洲精品久久久久久首妖 | 久久精品中文 | 五月天激情综合网 | 午夜小视频免费观看 | 国产在线观 | 91久久网站 | 久久成人一区 | 国产激情在线播放 | 国产精品99久久久久久动医院 |