物联网架构_笔记_物联网总体架构

物联网架构_笔记_物联网总体架构参考文章:http://www.elecfans.com/news/wangluo/20160517418825.htmlhttp://www.elecfans.com/iot/419545_a.html其中物联网的通信环境有Ethernet,Wi-Fi,RFID,NFC(近距离无线通信),Zigbee,6LoWPAN(IPV6低速无线版本),Bluetooth,GSM,G

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

参考文章:
http://www.elecfans.com/news/wangluo/20160517418825.html
http://www.elecfans.com/iot/419545_a.html

这里写图片描述
其中物联网的通信环境有Ethernet, Wi-Fi, RFID, NFC(近距离无线通信), Zigbee, 6LoWPAN(IPV6低速无线版本),Bluetooth, GSM, GPRS, GPS, 3G, 4G等网络,而每一种通信应用协议都有一定适用范围。AMQP、JMS、REST/HTTP都是工作在以太网,COAP协议是专门为资源受限设备开发的协议,而DDS和MQTT的兼容性则强很多。

在当前的互联网通信协议中,HTTP协议由于开发成本低,开放程度高,几乎占据大半江山,所以很多厂商在构建物联网系统时也基于http协议进行开发。包括google主导的physic web项目,都是期望在传统web技术基础上构建物联网协议标准。

1、http在物联网场景中的弊端:
1)必须由设备主动向服务器发送数据,服务器难以主动向设备推送数据,大多应用与数据采集场景,但对于频繁的操控场景,只能通过设备定期主动拉取的方式,实现成本大、实时效果差
2)安全性低,明文传输
3)对于运算和存储资源十分受限的嵌入式设备,实现http协议、解析XML/JSON数据,都比较困难

2、REST/HTTP(松耦合服务调用)
REST : Representational State Transfer,表征状态转换,基于HTTP协议。

简化互联网中的系统架构,快速实现客户端和服务器之间交互的松耦合,降低CS之间的交互延迟。

特点:
客户端和服务器之间的交互在请求之间是无状态的
在服务器端,应用程序状态和功能可分为各种资源向客户端公开,每个资源都使用URI得到一个唯一的地址,所有资源共享统一的界面。

3、CoAP协议
CoAP:Constrained Application Protocol,受限应用协议,应用于无线传感。是简化了HTTP协议的RESTful API,是6LowPAN协议栈中的应用层协议,适用于资源受限的IP网络。

特点:
1)报头压缩,包含一个二进制基本报头(4Byte)和扩展报头
2)支持GET/PUT/POST/DELETE等方法,支持URIs
3)基于UDP,减少开销、支持组播、支持简单停止和等待的可靠传输机制
4)支持异步通信,HTTP对M2M(Machine-to-Machine)通信不适用,由于事务总是客户端发起的,而CoAP支持异步通信,对于M2M应用来说是常见的休眠/唤醒机制
5)支持资源发现,内置资源发现格式,用于发现设备资源列表,或设备向服务目录公告自己的资源,支持RFC5785格式
6)支持缓存

主要实现:libcoap(c语言)、Californium(Java)
CoAP和6LowPan,这分别是应用层协议和网络适配层协议,其目标是解决设备直接连接到IP网络,也就是IP技术应用到设备之间、互联网与设备之间的通信需求。因为IPV6技术带来巨大寻址空间,不光解决了未来巨量设备和资源的标识问题,互联网上应用可以直接访问支持IPV6的设备,而不需要额外的网关。

3、MQTT(低带宽)
MQTT采用发布/订阅模式,所有终端采用TCP连接到云端,云端通过topic管理各个设备通讯内容,负责设备与设备之间的消息转发。

采用二进制格式编解码,最小数据包只有2个字节,有完善的QoS机制。支持TLS(TCP+SSL)协议,安全性好。

特点:
1)基于代理的发布/订阅模式,提供一对多的消息发布
2)小型传输,开销小,固定报头2字节
3)支持QoS

MQTT一般适用于设备数据采集到端(Device -> Server , Device -> Gateway),集中星型网络架构(hub-and-spoke),不适用设备与设备之间通信,设备控制能力差,实时性差,一般在秒级。

物联网协议对比
这里写图片描述
协议侧重应用方向
智能家居中智能灯光控制,可以使用XMPP协议控制灯的开关;
智能家居的电力供给,发电厂的发动机组的监控可以使用DDS协议;
当电力输送到千家万户时,电力线的巡查和维护,可以使用MQTT协议;
家里的所有电器的电量消耗,可以使用AMQP协议,传输到云端或家庭网关中进行分析;
最后用户想把自家的能耗查询服务公布到互联网上,那么可以使用REST/HTTP来开放API服务。

发布/订阅服务更适合物联网环境下通信,DDS、MQTT、AMQP和JMS都是基于发布/订阅模式,发布/订阅框架具有服务自发现、动态扩展、事件过滤的特点,它解决了物联网系统在应用层的数据源快速获取、物的加入和退出、兴趣订阅、降低带宽流量等问题,实现物的联接在空间上松耦合(双方无需知道通信地址)、时间上松耦合和同步松耦合。

服务质量(QoS)是物联网通信中的重要考虑因素

在服务策略的帮助下,DDS能够有效地控制和管理网络带宽、内存空间等资源的使用,同时也能控制数据的可靠性、实时性和数据的生存时间,通过灵活使用这些服务质量策略,DDS不仅能在窄带的无线环境上,也能在宽带的有线通信环境上开发出满足实时性需求的数据分发系统。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192906.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android的timertask,Android 中 Timer 和 TimerTask的使用「建议收藏」

    Android中Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中含有一个抽象方法run()。使用Timer类中的schedule()方法可以完成对TimerTask的调度,该方法具有三个参数,其函数声明如下:publicvoidschedule(TimerTasktask,longdelay,longperiod)其中第一个参数为TimerTa…

    2022年4月18日
    39
  • ODT 学习笔记「建议收藏」

    ODT 学习笔记「建议收藏」珂朵莉,要一直幸福下去哟!warning:本文在大白天书写,脑子可能不大好用。目前代码选自题解,等有时间自己写一下。简介ODT(OldDriverTree(中文译名张舟树),又称ChthollyTree,即众人皆知的珂朵莉树)是一种非常暴力的思想或者做法(注意我没有说是数据结构)简单来说,其核心思想是把一段区间推平(这也是其适用的地方——区间赋值),推平之后,原数列变成一段一段的了(每段的数值相同),然后就可以搞事了。ODT在随机数据下,复杂度近似O(mlogn)O(mlog

    2022年9月3日
    3
  • 卡盟货源对接_卡盟排行

    卡盟货源对接_卡盟排行最近,很多小伙伴们都在想搭建一个卡盟的主站,但是鉴于很多人都不太懂编程,也不知道如何找到源码。所以现在小编就为大家带来搭建卡盟主站教程,而且还把源码也一起送来了,想要搭建卡盟主站的话就记得一定要下载哦!搭建卡盟主站教程介绍1,完整无误经过校验的卡盟平台源码2,基于Ecshop内核的卡盟平台,游戏点卡销售的首选平台PHP+MYSQL3,前台模板已做深层SEO优化便于搜索引擎收录寻找卡盟源码1网…

    2022年8月12日
    3
  • QT之QFile[通俗易懂]

    QT之QFile[通俗易懂]1、QFile::QFile()构造一个没有名字的QFile对象2、QFile::QFile(constQString&name)构造一个以name为文件名的QFile对象。注:也可以QFile::QFile(),然后调用setName()方法来实现类似动作。3、bootQFile::atEnd()const[虚函数]如果已经到达文件末尾则返回TR

    2022年6月8日
    45
  • Java设计模式(一)之创建型模式:工厂模式(简单工厂模式+工厂方法模式)

    Java设计模式(一)之创建型模式:工厂模式(简单工厂模式+工厂方法模式)

    2021年4月9日
    161
  • Django(41)详解异步任务框架Celery「建议收藏」

    Django(41)详解异步任务框架Celery「建议收藏」celery介绍Celery是由Python开发、简单、灵活、可靠的分布式任务队列,是一个处理异步任务的框架,其本质是生产者消费者模型,生产者发送任务到消息队列,消费者负责处理任务。Celery侧重

    2022年7月30日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号