链接:IoT Open Source Integration Comparison
链接:IoT Full Course - Learn IoT In 4 Hours
链接:IoT & Microservices in the Home
摘要:讲了边缘集成,比较老的视频了
在设备端的边缘计算承担一部分原本在云端的逻辑处理,减少云端的开销,获得更高的可用性,更低的延迟
目录
IOT 概览
IOT 与分布式
IOT 主要业务
IOT 系统常见架构
分布式系统的消息传递模型
时序模型:分布式消息传递系统的形式化模型有两个时序模型:
- 同步模型
- 异步模型
- 通讯 Channel 模型
- 在信息传递系统中,处理器通过一个通信信道发送或接收信息进行通信。信道 Channel 管理连接模式和拓扑结构
- 协作对象图
消息传递模型与 nio
我们知道双向信道 Channel ,需要分别初始化消息发送方,和消息接收方
nio 其实很简单
- 消息接收方 register
- 等待消息发送方 register
- 读取消息
// 服务端 Processors 打开一个用于接收消息的 Channel,并注册该 channel
ServerSocketChannel serverChannel = ServerSocketChannel.open();
...
// 1. 消息接收方 register
serverChannel.register(this.selector, SelectionKey.OP_ACCEPT);
// 收到客户端请求链接事件,得到和客户端链接的 Channel
Iterator<?> ite = this.selector.selectedKeys().iterator();
if (key.isAcceptable()) {
ServerSocketChannel server = (ServerSocketChannel) key.channel();
SocketChannel channel = server.accept();
// 2. 消息发送方 register
channel.register(this.selector, SelectionKey.OP_READ);
}
// 得到了可读的事件,从双向信道连接到物理通道outBuf,读取数据
SocketChannel channel = (SocketChannel) key.channel();
// 3. 读取消息
channel.read(buffer);
iot 集成基础支持
iot 集成是对云平台的扩展和延申
iot 集成是流分析解决方案
发展趋势和挑战
预计到 2020 年,将有 200 一台 iot 设备,甚至更多,未来会有许多物联网平台
这些设备(平台)之间,需要相互通讯,交流
接入困难
- 这些设备可能没有连接到云
- 通讯很慢
- 通讯有延迟
- 连接不稳定,不可靠
- 接入成本太高
没有统一的标准
由于有不同的用例场景、技术,导致了不统一的标准
- MQTT, CoaP, OPC, US 等不同的通讯协议
- 工作在不同的抽象层级上
- 有的只是简单的消息
- 有的对消息做了处理和转换
- 没有一个单一的标准
体系结构
- Connectors 连接器
- Connectors 适配不同技术协议(JMS, MQTT, FTP)
- Connectors 适配不同应用(SAP, .com)
- 流程工具,用来构建集成过程
全世界有 300 多种不同物联网提供商
集成流程可以在新系统和旧版本系统之间进行协议转换与集成
- 过滤器
- 基于内容的路由和聚合
- 我们还没有一个统一的集成方案
集成方案(推荐边缘集成)
你不总是拥有 云云服务,但是你总是拥有 边缘到边缘的集成
Keep the data closer to the edge 就近存储
获得更低的延迟,更高的可用性,降低通讯成本
- 传统的集成方式
- 现代集成方式
- 在设备端的边缘计算承担一部分原本在云端的逻辑处理,减少云端的开销,获得更高的可用性,更低的延迟
种类
- dataflow pipeline
- Extract ,Transform, Load
- Filter, Router, Aggregate, Enrich……
- 有点像 ETL 的过程
- 具有很好的吞吐率
- 没有事件机制支持
- 开源的方案有 Apache NIFI, Stream Set, Cask Hydrator
- Extract ,Transform, Load
- Stream processing
- 整合设备,区别于将数据从A 发送到B ,你将数据整合和汇总
- 机器学习,用于分析预测
- R 语言,Spark,flink,SAS,Matlab,h2o
- ProcessEngine(重点)
- 区别于将数据从A 发送到B 或者是为了分析数据
- 在边缘计算场景,您真正想在边缘执行逻辑管理和设备的激活
- 边缘整合,intergration at the edge
- 整合和编排不同的数据源
- 连接硬件、API 、在线服务
- Transfer,fileter,route,aggregate, Enrich……
- 错误处理,重试,重新路由 ReRoutor,Wait,Resume……
- 通常是实时处理
- 流程编辑
- 区别于将数据从A 发送到B 或者是为了分析数据
开源 IOT 集成方案推荐
他们都是开源的
Eclipse Kura
- 是一个很棒的网关
IBM Node-RED
- 重点在设备集成
- 可以在 树莓派上完整的运行,但是在其他资源受限的设备上支持不够良好
TIBC Flogo
- 未完待续