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

物联网架构_笔记_物联网总体架构参考文章: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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 异常处理汇总-开发工具

    异常处理汇总-开发工具

    2021年9月6日
    55
  • 关系数据库理论之最小函数依赖集「建议收藏」

    关系数据库理论之最小函数依赖集「建议收藏」前言在本文中,会介绍为什么要引入最小函数依赖集,最小函数依赖集是什么,以及如何求最小函数依赖集。为什么需要最小函数依赖集在关系数据模型中,一个关系通常由R(U,F)构成,U为属性的全集,F为函数依赖集。在实际生活中,我们可以根据语义来定义关系中属性的依赖关系,例如学号可以唯一确定一位学生的姓名、性别等等。但是,有时候给出的函数依赖集并不是最简的,这有时会拖累我们对关系的后续处理,例如关系的分…

    2022年6月17日
    25
  • java list和数组转换_java list转string

    java list和数组转换_java list转string使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException异常。说明:asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法。Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组。…

    2022年8月23日
    10
  • 运行时错误10048,地址已在使用_winerror193不是有效的

    运行时错误10048,地址已在使用_winerror193不是有效的图片就不放了,这个问题你肯定在代码中用到了**IP地址和端口**,如果没有请绕过。这时你主要找准自己的IP和端口替换上去就行。查找自己电脑IP和端口的方法:**第一步:Win+R****第二步:输入:cmd然后点击确定(Enter)进入****第三步:输入:ipconfig然后Enter**如图就是你的IP。第四步:输入:netstat然后Ente…

    2022年9月30日
    5
  • JBPM(二)—JBPM工作流基本操作

    JBPM(二)—JBPM工作流基本操作流程定义的管理:将定义业务流程,部署到jbpm框架中(流程定义jpdl.xml描述文件)通过gpd插件先根据业务流程,绘制流程图(holiday.jpdl.xml和holiday.png)流程定义部署:先获得ProcessEngine对象,再获得对应Service(六个Service)ExecutionServicegetExecutionServi

    2025年10月13日
    4
  • win7 java修复工具哪个好_DLL修复工具哪个好

    win7 java修复工具哪个好_DLL修复工具哪个好为什么会用到dll修复工具呢?因为在打开某些程序或者软件的时候会提示找不到某某.dll文件,关键是这些dll文件还不一样,去网上下载这些dll文件结果显示跟系统的版本不一致,反正就是各种麻烦,自己去找又费时又费力,而且往往对于有些游戏来说,修补了某一个dll又提示缺少另一个dll文件,这些其实可能都是系统本身太精简或者没有安装一些依赖软件导致的,这时候你完全不需要手动去找这些dll文件,只需要使用…

    2022年5月11日
    43

发表回复

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

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