文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

OpenHarmony啃论文成长计划---序列化技术发展及应用综述

2024-12-02 04:32

关注

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

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

【本期看点】

除JSON/XML之外的序列化技术的诞生

JSON/XML的不足

我们都知道JSON/XML拥有非常强大表达力和跨平台能力的序列化技术,使用起来非常地方便,且没什么约束。不过随着各个平台数据量的飙升,方便且自由的JSON/XML序列化技术也展现出了非常多性能方面的不足,而这些问题恰巧是不能忽视的。

JSON和XML属于文本序列化规范,都是使用字符串表示所有的数据,但是像浮点数,布尔值,结构体等一些非字符类型的数据,为了解析出这些非字符类型的数据,在序列化过程中的是会对数据类型进行描述的,最后生成的字面量表达会占用很多额外的存储空间。

在面对庞大的数据处理的时候,在这种序列化规范下,系统甚至有可能会overflow。

序列化技术蓬勃发展

就在刚刚说的那些序列化瓶颈下,程序员们怎么会妥协于此呢,就在JSON之后,越来越多的序列化技术出现在我们视野内。比如上一期谈到的几乎没有解析时间的Flatbuffers,还有分布式计算经常用到的Microsoft Bond,Cap‘s Proto等等。

历年来序列化技术的发展时间线

可以看到21世纪开始,因为世界在不断地网络信息化,其中对数据传输过程地要求也越来越高,序列化技术也在被人们不断迭代创新。

序列化技术也被从简单地字符分割值CSV文件,再到1996年,在SGML的基础之上,简化出一种规范,提出了一种标记型语言命名为XML(可扩展标记语言)。2006年现在依旧广受人们喜爱地JSON也出现在了我们的视野,随着技术的创新与发展,序列化技术也因为不同的场景需求,在近15年间,许多新序列化技术在不断地涌现出来。

一图概览不同序列化技术的应用场景

在上面这幅图我们可以直观地看到不同序列化技术地应用场景,可能这些技术还可以被应用于其他场景,但是相对于其他序列化技术,它们更多地被应用于特定地场景中。从80年代电子表格的出现,CSV被人们所熟知,再到同时期应用于远程通信的ASN.1。再紧接着的就是象征着网络时代正式开始的web应用,从1996年采用XML,再到2006年开始JSON盛行,一直沿用至今。

在软体架构中,使用着YAML还有TOML。近些年大火地大数据在使用Apache Avro;数据库技术也引入了序列化技术BSON;未来大势所趋地物联网使用着CBOR;再到我们现在的疯狂的网络游戏,应用着FlatBuffers ,后面更是基于FlatBuffers创新除了兼容性更佳的FlexBUffers。当然也离不开闹得沸沸扬扬的分布式计算,用于这个场景的序列化技术也是不断地再迭代,先后有Protocol Buffers,Apache Thrift,Message Pack,Cap'n Proto以及Microsoft Bond。

一图比较不同序列化技术位字符串包含的信息量大小

上图中表示的是用不同的序列化技术,分别序列化相同数据后,对位字符串信息量大小进行排序。(越往右信息量越小)。

我们可以根据上图直观地看到序列化后的位字符串包含的信息量,来比较无模式和模式驱动的序列化规范。

最左边的处理方法序列化后的位字符串的信息量是最大的,都是无模式序列化规范(Schema-less Serialization Specififications),比如BSON,Smile,FlexBuffers等,因为最大地保留了原始数据及其结构的信息描述。最右边的信息量是最小的,比如ASN.1,因为他们把非常多的结构信息已经在规范中提前约定,因此不需要写入序列化后的位字符串中。

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

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

来源:鸿蒙社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯