作者 |
佩里·利 付强 |
丛书名 |
物联网核心技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782107091444 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8082128 - 物联网系统架构设计与边缘计算(原书第2版)--------------------------- 本书涵盖从物联网传感器到云计算的整个物联网解决方案谱系。首先研究现代传感器系统、通信理论,然后探讨局域网和广域网中基于IP的通信,包括802.11ah、5G LTE蜂窝、Sigfox和LoRaWAN,讲解边缘计算、路由和网关及其在雾计算中的作用,以及MQTT 5.0和CoAP的消息传递协议。本书以统计分析、复杂事件处理和深度学习模型的应用来总结,还提供了物联网安全、密码学和shell安全的整体观点。 ---------------------------8071765 - 物联网系统开发:从0到1构建IoT平台--------------------------- 内容简介 这是一本从技术原理、工程实践、设计模式和最佳实践4个维度讲解物联网系统开发的著作,是作者10余年实践经验的总结。首先,通过代码实例循序渐进、深入浅出地介绍了物联网协议的原理与实践;然后,以一个功能完备的综合性物联网平台的搭建过程为例,讲解了如何从0到1搭建一个物联网平台,同时总结了物联网平台开发中常用的设计模式和最佳实践。 全书一共12章,逻辑上可分为3大部分: 第一部分(第1-2章) 物联网基础 对物联网的一些关键常识和各种协议进行了详细的介绍。 第二部分(第3-5章) 物联网协议 通过大量实例代码详细分析和讲解了MQTT协议的规范、特性、原理和应用。 . 第三部分(第6-12章)物联网平台开发 详细讲解了如何使用开源组件和云服务从0到1搭建一个具备完备功能的物联网平台。 |
目录 |
[套装书具体书目] 8071765 - 物联网系统开发:从0到1构建IoT平台 - 9787111662402 - 机械工业出版社 - 定价 79 8082128 - 物联网系统架构设计与边缘计算(原书第2版) - 9787111684732 - 机械工业出版社 - 定价 149 ---------------------------8082128 - 物联网系统架构设计与边缘计算(原书第2版)--------------------------- 推荐序 译者序 前言 关于作者 关于审校者 第1章 物联网和边缘计算的定义及用例 …… 1 1.1 物联网的历史 …… 3 1.2 物联网的潜力 …… 5 1.3 物联网的定义 …… 7 1.3.1 工业和制造业 …… 8 1.3.2 消费者 …… 10 1.3.3 零售、金融和营销 …… 10 1.3.4 医疗保健 …… 11 1.3.5 运输业和物流业 …… 11 1.3.6 农业和环境 …… 12 1.3.7 能源产业 …… 13 1.3.8 智慧城市 …… 13 1.3.9 军事和政府 …… 14 1.4 使用案例和部署示意 …… 14 1.4.1 案例研究——远程和缓医疗 …… 15 1.4.2 用例回顾 …… 22 1.5 小结 …… 23 第2章 物联网架构和核心物联网模块 …… 24 2.1 相连的生态系统 …… 24 2.1.1 物联网、机器对机器与SCADA …… 26 2.1.2 网络的价值、梅特卡夫定律和贝克斯特伦定律 …… 27 2.1.3 物联网和边缘架构 …… 29 2.1.4 架构师的作用 …… 30 2.2 第一部分——传感和电源 …… 31 2.3 第二部分——数据通信 …… 31 2.4 第三部分——边缘计算 …… 32 2.5 第四部分——计算、分析和机器学习 …… 33 2.6 第五部分——物联网中的威胁与安全 …… 34 2.7 小结 …… 34 第3章 传感器、终端和电力系统 …… 35 3.1 传感设备 …… 35 3.1.1 热电偶和温度传感器 …… 35 3.1.2 霍尔效应传感器和电流传感器 …… 38 3.1.3 光电传感器 …… 38 3.1.4 PIR传感器 …… 39 3.1.5 激光雷达和主动传感系统 …… 40 3.1.6 MEMS传感器 …… 41 3.2 高性能物联网终端 …… 44 3.2.1 视觉系统 …… 45 3.2.2 传感器融合 …… 47 3.2.3 输出设备 …… 47 3.3 功能示例(整合在一起) …… 48 3.3.1 功能示例——TI SensorTag CC2650 …… 48 3.3.2 传感器到控制器 …… 49 3.4 能源和电源管理 …… 51 3.4.1 电源管理 …… 51 3.4.2 能量收集 …… 52 3.4.3 储能 …… 56 3.5 小结 …… 60 第4章 通信和信息论 …… 61 4.1 通信理论 …… 62 4.1.1 射频能量和理论范围 …… 62 4.1.2 射频干扰 …… 65 4.2 信息论 …… 66 4.2.1 比特率限制和香农-哈特利定理 …… 66 4.2.2 误码率 …… 70 4.2.3 窄带通信与宽带通信 …… 71 4.3 无线电频谱 …… 74 4.4 小结 …… 77 第5章 基于WPAN的非IP协议 …… 78 5.1 802.15标准 …… 79 5.2 蓝牙 …… 80 5.2.1 蓝牙的历史 …… 80 5.2.2 蓝牙5通信进程和拓扑 …… 81 5.2.3 蓝牙5栈 …… 82 5.2.4 BR/EDR操作 …… 87 5.2.5 低功耗蓝牙技术角色 …… 89 5.2.6 BLE运算 …… 90 5.2.7 蓝牙配置文件 …… 91 5.2.8 BR/EDR安全 …… 94 5.2.9 信标 …… 95 5.2.10 蓝牙5的范围和速度增强 …… 100 5.2.11 蓝牙网状网 …… 101 5.2.12 蓝牙5.1技术 …… 107 5.3 IEEE 802.15.4 …… 115 5.3.1 IEEE 802.15.4架构 …… 115 5.3.2 IEEE 802.15.4 拓扑结构 …… 119 5.3.3 IEEE 802.15.4 地址模式和数据包结构 …… 120 5.3.4 IEEE 802.15.4 启动序列 …… 120 5.3.5 IEEE 802.15.4 安全性 …… 121 5.4 Zigbee …… 122 5.4.1 Zigbee的历史 …… 122 5.4.2 Zigbee概述 …… 122 5.4.3 Zigbee PHY和MAC(与IEEE 802.15.4的区别) …… 124 5.4.4 Zigbee 协议栈 …… 124 5.4.5 Zigbee寻址和数据包结构 …… 125 5.4.6 Zigbee网状路由 …… 126 5.4.7 Zigbee安全性 …… 127 5.5 Z-Wave …… 128 5.5.1 Z-Wave概述 …… 129 5.5.2 Z-Wave协议栈 …… 130 5.5.3 Z-Wave寻址 …… 131 5.5.4 Z-Wave拓扑和路由 …… 132 5.6 小结 …… 133 第6章 基于IP的WPAN和WLAN …… 134 6.1 TCP/IP …… 134 6.2 具有IP的WPAN—— 6LoWPAN …… 136 6.3 IEEE 802.11协议和WLAN …… 136 6.3.1 IEEE 802.11 协议集及比较 …… 137 6.3.2 IEEE 802.11架构 …… 138 6.3.3 IEEE 802.11频谱分配 …… 140 6.3.4 IEEE 802.11调制和编码技术 …… 141 6.3.5 IEEE 802.11 MIMO …… 145 6.3.6 IEEE 802.11数据包结构 …… 147 6.3.7 IEEE 802.11操作 …… 149 6.3.8 IEEE 802.11安全性 …… 150 6.3.9 IEEE 802.11ac …… 151 6.3.10 IEEE 802.11p车联网 …… 152 6.3.11 IEEE 802.11ah …… 155 6.3.12 6LoWPAN拓扑 …… 158 6.3.13 6LoWPAN协议栈 …… 160 6.3.14 网状网寻址和路由 …… 161 6.3.15 报头压缩和分段 …… 163 6.3.16 邻居发现 …… 165 6.3.17 6LoWPAN安全性 …… 166 6.4 具有IP的WPAN——Thread …… 166 6.4.1 Thread架构及拓扑 …… 167 6.4.2 Thread协议栈 …… 168 6.4.3 Thread路由 …… 168 6.4.4 Thread寻址 …… 169 6.4.5 邻居发现 …… 169 6.5 小结 …… 170 第7章 远程通信系统和协议 …… 171 7.1 蜂窝连接 …… 171 7.1.1 管理模式和标准 …… 172 7.1.2 蜂窝接入技术 …… 174 7.1.3 3GPP用户设备类别 …… 175 7.1.4 4G LTE频谱分配和频段 …… 176 7.1.5 4G LTE拓扑和架构 …… 181 7.1.6 4G LTE E-UTRAN协议栈 …… 185 7.1.7 4G LTE地理区域、数据流和切换过程 …… 186 7.1.8 4G LTE数据包结构 …… 188 7.1.9 Cat-0、Cat-1、Cat-M1和NB-IoT …… 189 7.1.10 Multefire、CBRS和蜂窝网络频谱共享 …… 194 7.1.11 5G …… 196 7.2 LoRa和LoRaWAN …… 210 7.2.1 LoRa物理层 …… 210 7.2.2 LoRaWAN MAC层 …… 212 7.2.3 LoRaWAN拓扑结构 …… 213 7.2.4 LoRaWAN总结 …… 214 7.3 Sigfox …… 215 7.3.1 Sigfox物理层 …… 215 7.3.2 Sigfox MAC层 …… 217 7.3.3 Sigfox协议栈 …… 217 7.3.4 Sigfox拓扑结构 …… 218 7.4 小结 …… 219 第8章 边缘计算 …… 221 8.1 边缘的用途和定义 …… 221 8.2 边缘用例 …… 223 8.3 边缘硬件架构 …… 225 8.3.1 处理器 …… 226 8.3.2 动态随机存取内存和易失性内存 …… 234 8.3.3 存储和非易失性内存 …… 235 8.3.4 低速I/O …… 240 8.3.5 高速I/O …… 241 8.3.6 硬件辅助和协同处理 …… 242 8.3.7 引导和安全模块 …… 243 8.3.8 边缘计算硬件示例 …… 243 8.3.9 防护等级 …… 244 8.4 操作系统 …… 245 8.4.1 操作系统选择要点 …… 246 8.4.2 典型引导过程 …… 246 8.4.3 操作系统调优 …… 247 8.5 边缘平台 …… 248 8.5.1 虚拟化 …… 248 8.5.2 容器 …… 249 8.6 边缘计算用例 …… 254 8.6.1 环境计算 …… 254 8.6.2 合成传感 …… 255 8.7 小结 …… 256 第9章 边缘路由和网络 …… 257 9.1 边缘的TCP/IP网络功能 …… 257 9.1.1 路由功能 …… 257 9.1.2 PAN到WAN的桥接 …… 261 9.1.3 故障切换和带外管理 …… 264 9.2 边缘级的网络安全 …… 265 9.2.1 VLAN …… 266 9.2.2 VPN …… 267 9.2.3 流量整形和QoS …… 268 9.2.4 安全功能 …… 270 9.2.5 指标和分析 …… 271 9.3 软件定义网络 …… 271 9.3.1 SDN架构 …… 272 9.3.2 传统的网络连接 …… 273 9.3.3 SDN的好处 …… 274 9.4 小结 …… 275 第10章 边缘–云协议 …… 276 10.1 协议 …… 276 10.2 MQTT …… 278 10.2.1 MQTT发布–订阅 …… 279 10.2.2 MQTT架构细节 …… 282 10.2.3 MQTT状态转换 …… 284 10.2.4 MQTT数据包结构 …… 285 10.2.5 MQTT数据类型 …… 287 10.2.6 MQTT通信格式 …… 288 10.2.7 MQTT 3.1.1工作示例 …… 291 10.3 MQTT-SN …… 293 10.3.1 MQTT-SN架构和拓扑结构 …… 294 10.3.2 透明网关和聚合网关 …… 294 10.3.3 网关广播和发现 …… 295 10.3.4 MQTT和MQTT-SN的区别 …… 295 10.3.5 选择MQTT代理 …… 296 10.4 约束应用协议 …… 297 10.4.1 CoAP架构细节 …… 297 10.4.2 CoAP消息格式 …… 300 10.4.3 CoAP使用示例 …… 303 10.5 其他协议 …… 305 10.5.1 STOMP …… 305 10.5.2 AMQP …… 305 10.6 协议总结与比较 …… 308 10.7 小结 …… 308 第11章 云和雾拓扑 …… 309 11.1 云服务模型 …… 309 11.1.1 NaaS …… 310 11.1.2 SaaS …… 311 11.1.3 PaaS …… 311 11.1.4 IaaS …… 311 11.2 公有云、私有云和混合云 …… 311 11.2.1 私有云 …… 312 11.2.2 公有云 …… 312 11.2.3 混合云 …… 312 11.3 OpenStack云架构 …… 313 11.3.1 Keystone:身份和服务管理 …… 313 11.3.2 Glance:镜像服务 …… 313 11.3.3 Nova计算 …… 315 11.3.4 Swift:对象存储 …… 317 11.3.5 Neutron:网络服务 …… 317 11.3.6 Cinder:块存储 …… 317 11.3.7 Horizon …… 317 11.3.8 Heat:编排(选读) …… 318 11.3.9 Ceilometer:计量监控(选读) …… 318 11.4 物联网云架构的限制 …… 318 11.5 雾计算 …… 321 11.5.1 用于雾计算的Hadoop原理 …… 321 11.5.2 雾、边缘、云和薄雾计算比较 …… 322 11.5.3 OpenFog参考架构 …… 323 11.5.4 EdgeX …… 327 11.5.5 Amazon Greengrass和Lambda …… 329 11.5.6 雾拓扑 …… 331 11.6 小结 …… 334 第12章 云和边缘中的数据分析与机器学习 …… 335 12.1 物联网基础数据分析 …… 335 12.1.1 顶层云管道 …… 337 12.1.2 规则引擎 …… 339 12.1.3 数据获取—流、处理和数据湖 …… 341 12.1.4 复杂事件处理 …… 344 12.1.5 Lambda架构 …… 345 12.1.6 行业用例 …… 345 12.2 物联网中的机器学习 …… 347 12.2.1 人工智能和机器学习里程碑简史 …… 347 12.2.2 机器学习模型 …… 349 12.2.3 分类 …… 350 12.2.4 回归 …… 352 12.2.5 随机森林 …… 353 12.2.6 贝叶斯模型 …… 355 12.2.7 卷积神经网络 …… 357 12.2.8 循环神经网络 …… 365 12.2.9 物联网的训练与推理 …… 370 12.3 物联网数据分析和机器学习比较与评估 …… 371 12.4 小结 …… 372 第13章 物联网与边缘网络安全 …… 373 13.1 网络安全术语 …… 373 13.1.1 攻击和威胁术语 …… 373 13.1.2 防范术语 …… 375 13.2 物联网网络攻击分析 …… 377 13.2.1 Mirai …… 377 13.2.2 震网病毒 …… 379 13.2.3 连锁反应 …… 379 13.3 物理及硬件安全 …… 381 13.3.1 RoT …… 381 13.3.2 密钥管理和可信平台模块 …… 382 13.3.3 处理器和内存空间 …… 382 13.3.4 存储安全 …… 383 13.3.5 物理安全 …… 384 13.4 shell安全性 …… 385 13.5 密码使用 …… 385 13.5.1 对称加密 …… 387 13.5.2 非对称加密 …… 390 13.5.3 散列加密法(身份验证和签名) …… 392 13.5.4 公钥基础设施 …… 393 13.5.5 网络堆栈——传输层安全性 …… 395 13.6 软件定义边界 …… 396 13.7 物联网中的区块链和加密货币 …… 398 13.7.1 比特币(基于区块链) …… 399 13.7.2 IOTA和有向无环图信任模型 …… 403 13.8 政府法规及干预 …… 404 13.8.1 美国国会法案——2017年物联网网络安全改进法案 …… 404 13.8.2 其他政府机构 …… 405 13.9 物联网安全最佳实践 …… 406 13.9.1 全面的安全 …… 406 13.9.2 安全检查清单 …… 406 13.10 小结 …… 408 第14章 联盟和协会 …… 409 14.1 PAN协会 …… 409 14.1.1 蓝牙技术联盟 …… 409 14.1.2 Thread联盟 …… 410 14.1.3 Zigbee联盟 …… 410 14.1.4 其他 …… 410 14.2 协议协会 …… 411 14.2.1 开放连接基金会和Allseen联盟 …… 411 14.2.2 绿洲协会 …… 411 14.2.3 对象管理组 …… 412 14.2.4 OMA规范工程联盟 …… 413 14.2.5 其他 …… 413 14.3 WAN联盟 …… 413 14.3.1 Weightless技术联盟 …… 413 14.3.2 LoRa联盟 …… 414 14.3.3 互联网工程任务组 …… 414 14.3.4 Wi-Fi联盟 …… 414 14.4 雾及边缘计算协会 …… 415 14.4.1 OpenFog组织 …… 415 14.4.2 Eclipse基金会和EdgeX Foundry …… 415 14.5 伞式组织 …… 416 14.5.1 工业互联网协会 …… 416 14.5.2 IEEE物联网 …… 416 14.5.3 其他 …… 417 14.6 美国政府物联网和安全实体 …… 417 14.7 工商业物联网与边缘计算 …… 417 14.7.1 工商业传感器和MEMS厂商 …… 418 14.7.2 硅片、微处理器和器件厂家 …… 418 14.7.3 PAN网络通信公司 …… 419 14.7.4 WAN技术公司 …… 419 14.7.5 边缘计算及解决方案公司 …… 420 14.7.6 操作系统、中间件和软件公司 …… 420 14.7.7 云提供商 …… 420 14.8 小结 …… 421 ---------------------------8071765 - 物联网系统开发:从0到1构建IoT平台--------------------------- 前言 第一部分?物联网基础 第1章?什么是物联网 2 1.1 物联网和人工智能 3 1.2 物联网的现状与前景 4 第2章?常见的物联网协议 6 2.1 MQTT协议 6 2.2 MQTT-SN协议 7 2.3 CoAP协议 8 2.4 LwM2M协议 9 2.5 HTTP协议 9 2.6 LoRaWAN协议 9 2.7 NB-IoT协议 10 2.8 本章小结 10 第二部分?MQTT协议详解与实战 第3章?MQTT协议基础 13 3.1 MQTT协议的通信模型 13 3.2 MQTT Client 14 3.3 MQTT Broker 15 3.4 MQTT协议数据包格式 17 3.5 本章小结 19 第4章?MQTT协议详解 20 4.1 建立到Broker的连接 20 4.1.1 CONNECT数据包 20 4.1.2 CONNACK数据包 23 4.1.3 关闭连接 25 4.1.4 代码实践 26 4.2 订阅与发布 28 4.2.1 PUBLISH数据包 30 4.2.2 代码实践:发布消息 31 4.2.3 订阅一个主题 32 4.2.4 代码实践:订阅主题 35 4.2.5 取消订阅 36 4.3 QoS及其最佳实践 39 4.3.1 MQTT协议中的QoS等级 39 4.3.2 QoS0 40 4.3.3 QoS1 40 4.3.4 QoS2 42 4.3.5 代码实践:使用不同的QoS发布消息 44 4.3.6 实际的Subscribe QoS 48 4.3.7 QoS的最佳实践 48 4.4 Retained消息和LWT 49 4.4.1 Retained消息 49 4.4.2 代码实践:发布和接收Retained消息 50 4.4.3 LWT 51 4.4.4 代码实践:监控Client连接状态 52 4.5 Keepalive与连接保活 54 4.5.1 Keepalive 54 4.5.2 代码实践 55 4.5.3 连接保活 57 4.6 MQTT 5.0的新特性 58 4.6.1 用户属性 59 4.6.2 共享订阅 59 4.6.3 消息过期 60 4.6.4 重复主题 60 4.6.5 Broker能力查询 60 4.6.6 双向DISCONNECT 61 4.7 本章小结 61 第5章?MQTT协议实战 62 5.1 “AI+IoT”项目实战 62 5.1.1 用TensorFlow在Android系统上进行物体识别 62 5.1.2 如何在MQTT协议里传输大文件 63 5.1.3 消息去重 64 5.1.4 最终的消息数据格式 64 5.1.5 代码实践:上传识别结果 64 5.1.6 在浏览器中运行MQTT Client 66 5.1.7 代码实践:接收识别结果 67 5.1.8 搭建私有MQTT Broker 68 5.1.9 传输层安全 69 5.2 MQTT常见问题解答 70 5.3 开发物联网应用,学会MQTT协议就够了吗 71 5.4 本章小结 72 第三部分?实战:从0搭建一个IoT平台 第6章?准备工作台 75 6.1 安装需要的组件 75 6.2 Maque IotHub的组成部分 76 6.3 项目结构 76 6.3.1 IotHub Server 77 6.3.2 IotHub DeviceSDK 77 6.4 本章小结 79 第7章?设备生命周期管理 80 7.1 设备注册 80 7.1.1 设备三元组 80 7.1.2 EMQ X的认证方式 81 7.1.3 设备接入流程 84 7.1.4 Server API:设备注册 84 7.1.5 调整EMQ X配置 87 7.1.6 修改DeviceSDK 87 7.1.7 Server API:设备信息查询 88 7.1.8 Server API:获取接入IotHub的一次性密码(JWT) 89 7.1.9 完善细节 91 7.2 设备连接状态管理 93 7.2.1 Poor man’s Solution 93 7.2.2 使用EMQ X的解决方案 94 7.2.3 管理设备的连接状态 97 7.3 设备的禁用与删除 101 7.3.1 禁用设备 101 7.3.2 删除设备 105 7.4 设备权限管理 106 7.4.1 为什么要控制Publish和Subscribe 106 7.4.2 EMQ X的ACL功能 106 7.4.3 集成EMQ X ACL 110 7.5 给IotHub加一点扩展性 111 7.5.1 EMQ X的纵向扩展 112 7.5.2 EMQ X的横向扩展 113 7.6 本章小结 114 第8章?上行数据处理 115 8.1 选择一个可扩展的方案 115 8.1.1 完全基于MQTT协议的方案 116 8.1.2 基于Hook的方案 117 8.1.3 数据格式 118 8.1.4 主题名规划 118 8.1.5 上行数据存储 118 8.1.6 通知业务系统 119 8.1.7 上行数据查询 119 8.1.8 上行数据处理流程 120 8.2 实现上行数据处理功能 120 8.2.1 DeviceSDK的功能实现 121 8.2.2 IotHub Server的功能实现 122 8.2.3 代码联调 125 8.2.4 通知业务系统 127 8.2.5 Server API历史消息查询 129 8.3 设备状态上报 130 8.3.1 设备状态 130 8.3.2 DeviceSDK的实现 131 8.3.3 IotHub Server 的实现 131 8.3.4 Server API:查询设备状态 134 8.3.5 代码联调 134 8.3.6 为何不用Retained Message 135 8.4 时序数据库 135 8.4.1 时序数据 136 8.4.2 时序数据库 136 8.4.3 收集设备连接状态变化的数据 137 8.5 本章小结 140 第9章?下行数据处理 141 9.1 选择一个可扩展的方案 142 9.1.1 完全基于 MQTT协议的方案 142 9.1.2 基于 EMQ X RESTful API的方案 143 9.1.3 下行数据格式 143 9.1.4 主题名规划 144 9.1.5 如何订阅主题 145 9.1.6 设备端消息去重 145 9.1.7 指令回复 146 9.2 DeviceSDK端的实现 146 9.2.1 消息去重 146 9.2.2 提取元数据 147 9.2.3 处理指令 148 9.2.4 回复指令 149 9.3 服务端的实现 150 9.3.1 更新ACL 列表 150 9.3.2 EMQ X发布功能 150 9.3.3 Server API:发送指令 151 9.3.4 服务器订阅 152 9.3.5 通知业务系统 154 9.3.6 代码联调 155 9.4 本章小结 158 第10章?IotHub的高级功能 159 10.1 RPC式调用 159 10.1.1 主题规划 160 10.1.2 等待指令回复 161 10.1.3 服务端实现 161 10.1.4 Server API: 发送RPC指令 163 10.1.5 更新设备ACL列表 164 10.1.6 更新服务器订阅列表 164 10.1.7 DeviceSDK端实现 165 10.1.8 代码联调 166 10.2 设备数据请求 167 10.2.1 更新设备ACL列表 168 10.2.2 服务端实现 168 10.2.3 DeviceSDK端实现 169 10.2.4 代码联调 170 10.3 NTP服务 171 10.3.1 IotHub 的 NTP 服务 172 10.3.2 DeviceSDK端实现 172 10.3.3 服务端实现 173 10.3.4 代码联调 174 10.4 设备分组 175 10.4.1 功能设计 175 10.4.2 服务端实现 177 10.4.3 DeviceSDK端实现180 10.4.4 代码联调 183 10.5 M2M设备间通信 185 10.5.1 主题名规划 185 10.5.2 服务端实现 186 10.5.3 DeviceSDK端实现 186 10.5.4 代码联调 187 10.6 OTA升级 188 10.6.1 功能设计 189 10.6.2 服务端实现 191 10.6.3 DeviceSDK端实现 194 10.6.4 代码联调 196 10.7 设备影子 199 10.7.1 什么是设备影子 199 10.7.2 设备影子的数据结构 200 10.7.3 设备影子的数据流向 200 10.7.4 服务端实现 202 10.7.5 DeviceSDK端实现 208 10.7.6 代码联调 209 10.8 IotHub 的状态监控 211 10.8.1 使用RESTful API 211 10.8.2 使用系统主题 212 10.8.3 EMQ X 的 Listener Zone 213 10.8.4 代码演示 214 10.9 本章小结 215 第11章?扩展EMQ X Broker 216 11.1 EMQ X的插件系统 217 11.1.1 Erlang语言 217 11.1.2 安装Erlang 编译工具 218 11.2 我们会用到的Erlang特性 218 11.2.1 Erlang简介 218 11.2.2 变量和赋值 219 11.2.3 特殊的 Erlang 数据类型 220 11.2.4 模式匹配 221 11.2.5 模块与函数 221 11.2.6 宏定义 222 11.2.7 OTP 222 11.3 搭建开发和编译环境 222 11.3.1 下载和编译 EMQ X222 11.3.2 使用插件模板 223 11.3.3 插件的代码结构 224 11.3.4 修改模板插件 226 11.4 实现基于RabbitMQ的Hook插件:emqx-rabbitmq-hook 227 11.4.1 代码结构 227 11.4.2 建立RabbitMQ连接和连接池 227 11.4.3 处理client.connected事件 228 11.4.4 处理client.disconnected事件 230 11.4.5 处理message.publish事件 230 11.4.6 编译插件 231 11.4.7 插件的配置文件 233 11.4.8 应用配置项 235 11.5 使用emqx-rabbitmq-hook 236 11.5.1 发布emqx-rabbitmq-hook插件 236 11.5.2 集成emqx-rabbitmq-hook 238 11.5.3 IotHub 的全新架构 239 11.6 本章小结 240 第12章?集成CoAP协议 241 12.1 CoAP协议简介 241 12.1.1 CoAP协议的消息模型 242 12.1.2 CoAP协议的请求/应答机制 243 12.1.3 CoAP OBSERVE 244 12.1.4 CoAP HTTP Gateway 244 12.2 集成CoAP协议 245 12.2.1 EMQ X的CoAP插件 245 12.2.2 CoAP 设备端代码 246 12.2.3 代码联调 247 12.2.4 CoAP协议的连接状态 247 12.3 本章小结 248 结语?我们学到了什么 249 附录?如何运行Maque IotHub 253 |