文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

未来物联网协议:不带JSON的REST

2024-12-24 22:56

关注

[[276186]]

众所周知,REST是一种针对统一访问与修改资源的架构模式。一个实体(如服务器)持有某个对象当前状态的权限。而其他实体可以请求当前对象的“表述(representation)”,并且可以发送创建、修改或删除对象的请求。当前流行的REST模型使用URI来标识不同的对象(如“/lamp/1234”),使用HTTP verbs来为某项指定操作,并使用JSON来表示该对象。那么为了获取一个对象,客户端可以发送“GET /lamp/1234”的HTTP请求。服务器可以采用HTTP 200和包含JSON数据的消息体进行响应。

目前,HTTP/JSON模型已在Web API中根深蒂固,其受欢迎的程度很自然地渗透到了物联网技术之中。Samsung、Nest和Apple都发布了依赖于JSON over HTTP的API。不过,虽然REST模型适用于构建物联网这样分布式的网络,但是HTTP 1.1与JSON并不是此处的最佳选项。

JSON有什么问题?

JSON是一种基于JavaScript客户端之间数据交互的格式,它简化了Web应用程序。作为XML的轻量级替代品,JSON通过如下特性,成就了它在通用数据交换格式中的首选地位:

上述功能使JSON成为了通用的格式,但是目前的物联网典型用例,则可能会让我们怀疑JSON是否适合构成那些在智能设备环境中的嵌入式系统。物联网设备通常需要按照如下的方式进行优化:

在物联网中,设备可能需要在小于1兆字节的内存与存储环境中运行,并且通常只能使用小功率的电池。而且出于功耗的考虑,它们可能一整天都连不上几次Wi-Fi网络,而每一次只能可能连接几秒钟。另外,就算是高端的集线器设备也不大可能拥有超过25MB的存储空间。可见对于这些设备而言,网络方面效率是关键性的问题。那么为什么说JSON不是满足上述要求的最佳选项呢?

既然JSON并非数据编码的最佳技术,那么作为实现REST的另一半--HTTP 1.1又处于何种境地呢?

HTTP又有什么问题?

HTTP 1.1虽然为Web开发人员提供了灵活且直接的实施基础,但是多年来一直困扰Web开发人员的各种HTTP错误,也可能会对物联网的开发产生更大的影响。

可见在物联网领域,从嵌入式设备发送和接收的每一个字节都可能会影响到整体的性能。一个良好的物联网协议,不仅需要能够让开发人员轻松地发送正确的信息,而且还能够减轻设备及其网络的负载。现有的HTTP协议不但要简化安全性、优化传输流量的体积,还需要通过长期的网络连接,来复用各种请求和响应。

二进制

作为一款优秀的物联网模型。REST能够让每个设备都能轻松地提供其状态信息,并可以标准化数据的创建、读取、更新和删除。物联网开发人员的目标就是要让REST不再臃肿。

对于JSON来说,其物联网的前景不容乐观,目前已经出现了一系列更适合编码的替代品,例如:

所有这些都提供了比JSON更适合嵌入式设备的编码特性。

而对于HTTP来说,则面临着更多的竞争。例如:

由于QUIC和HTTP/2都采用了类似的协议栈,因此两者之间的竞争并非零和游戏,而是为了共同得到物联网领域的认可与采用。

发展趋势

综上所述,虽然REST模型非常适合于物联网,但是HTTP/JSON的传统REST在速度、解析简易性、面向字符串的有效负载传输、以及二进制编码等方面与物联网并不相配。纵观业界,CBOR和Protobuf可以在编码方式上替代JSON。而HTTP/2规范、及其新兴的姐妹协议--QUIC,能够有效地对HTTP起到网络协议上的补充和加强作用。

原文REST Without JSON: The Future of IoT Protocols,作者:Matt Butcher

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

来源:51CTO内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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