本文介绍了22个软件及项目等让你更快得了解和学习边缘计算这个物联网时代非常热门的领域。
作者:与子同袍
首发:物联网前沿技术观察
1.FogHorn
FogHorn是真正的在边缘侧进行机器学习计算的物联网边缘计算软件。这句话有点绕口,但是为了强调没法子——谁让好多厂商都在吹自己有所谓的边缘计算或雾计算。
在边缘层做机器学习,而不是在云端训练好模型再远程调用训练好的机器学习模型的RESTful API,主要原因是:
- 节约流量
- 响应快
- 网络离线也可以用
- 客户可针对单个设备微调参数
需要熟悉scikit-learn和PMML。
2. Apache Edgent
Edgent
它名字就是edge + agent合体而成的。它跟Eclipse Kura功能类似,都是网关agent的框架程序,也都是基于Java的。不过Edgent不是基于OSGi的,而Kura是基于轻量级OSGi框架的。
Edgent的Deadband功能可以读源码直接看。不过我看1.2.0版本的Edgent的分析功能中的Deadband功能还很弱,要看工业级的Deadband的功能,可以参考Ignition SCADA的各种花式Deadband的功能。
3. PLC4X
PLC4X: Universal Protocol Adapter for Industrial IoT
类似Kepware工控协议驱动程序库,它的特色是同时实现Java C Cpp等几种语言绑定。不过目前支持的协议还少的可怜。
4. Eclipse IoT
Eclipse IoT | IoT development made simple - iot.eclipse.org
Eclipse基金会的iot项目组包括Kura, Paho, ioFog, Vorto等十几个子项目,分别解决物联网不同层面的需求。
重点可以看Eurotech开源的Kura项目,不过要先学下JVM和OSGi core framework相关的知识点。
Paho也挺重要,毕竟mqtt协议是IoT的重要应用层协议。看Paho前提是先把mqtt v3.1.1协议弄明白,新版本的mqtt v5.0版本也要看下。
5.嵌入式cep
embedded cep engine,用于在网关里面就对采集的设备实时数据进行streaming processing。因为边缘计算是运行在性能受限的嵌入式环境中的,运行环境不像服务器上的Spark,Storm,Flink之类的计算资源那么强大。所以移植通常跑在服务器单节点甚至集群上的cep引擎功能到受限嵌入式环境中的活,类似linux裁剪为嵌入式linux,coreutils裁剪为busybox的活。
具体可以看下被Software AG收购的Cumulocity(基于esper)和Apama streaming analytics engine。
6.Kepware
可以看Kepware的各种驱动套件及相关协议驱动的文档,了解工控领域的主要设备型号和协议。我记得Kepware甚至还有Oracle转OPC的驱动。
PTC收购的Kepware,拥有几乎所有工控协议的驱动程序,是PTC收购战略的重要拼图之一。Kepware的收购也是PTC CEO在迈克尔-波特战略咨询下的五大收购之一。
7. Ignition SCADA
这个SCADA软件有详细的说明文档,其中Deadband对告警处理,各种实际应用场景的组网方式,模块化等,都值得学习。
8. 通讯协议
MQTT, CoAP, ZeroMQ, AMQP, Websocket, Kafka等物联网协议或消息中间件,这些是传输层面的,是边缘计算网关往上连接云的技术基础。
9. IBM Node-RED
Node-RED我把它这个名字理解为Node RED(efine)。它的好处是可以二次开发,自定义Node,这样可以加mqtt上传数据到云的节点,数据挖掘节点,告警阈值节点,notification节点,定时任务节点,数据存储节点,camel节点等。
10. Apache Camel ESB
EAI企业集成模式的开源轻量级实现Apache Camel与IoT结合起来,就可以做很多事。原本很麻烦的企业集成的事情,就可以用Camel的XML或DSL或script轻松实现。
11. gpsd
开源界大神ESR领导的gpsd项目
从gpsd的架构设计说明可以学到好多东西。比如zero-configuration,,包嗅探,对软件质量不懈的追求。至少它的上行通信和下行通信驱动分离这一点,比Kura 和 edgent好。
12. bosch-si
博世的工业互联网软件产品,有基于OSGi的网关Agent软件和云端的Hub等软件。
网关内的Agent软件是基于前几年收购的Prosyst,跟Kura类似,也是基于OSGi的。文档写的很严谨,可以看看工控巨头工业级的物联网网关软件是啥样子的。
13. Ayla和Zentri
在单片机里玩花活,做物联网硬件接入的可以研究下Ayla和被Silicon Labs收购的Zentri这两家公司的产品。这两家的玩法不太一样。
Ayla是用SPI总线跟下位机对接然后上云。
Zentri则是把单片机里的常用的业务操作封装成Command API函数,给二次开发人员调用。
14. ClearBlade
支持在云端IoT Platform开发,然后把代码下发到IoT Edge Platform运行。相当于把处理数据的程序传到数据在的地方进行处理,而不是把数据传到服务端处理。这个就是边缘计算的核心思想,与mapreduce类似。
15. EdgeMicro
这家公司的产品属于edge data center(边缘数据中心)或micro data center(微数据中心)产品的范畴。
16. SAP IoT
微服务架构的边缘计算网关软件。也是基于OSGi运行时的。
17. PTC Thingworx Edge SDK
PTC的Thingworx的边缘计算SDK,支持C、.NET、Java、iOS、Android等语言。
Find Applications | PTC Marketplace
18. Litmus Automation
这家公司的产品专注于工业物联网领域。在边缘计算层对应的是LoopEdge软件。可以重点看LoopEdge的DeviceHub和LoopEdge Flows。
19. 亚马逊AWS GreenGrass
AWS IoT Greengrass 是将云功能扩展到本地设备的软件。该软件使设备能够收集和分析更靠近信息源的数据,自主应对本地事件,并在本地网络上相互安全地通信。AWS IoT Greengrass 开发人员可以使用 AWS Lambda 函数和预先构建的连接器来创建可部署到设备中用于本地执行的无服务器应用程序。
20.微软Azure IoT Edge SDK
Azure IoT Edge SDK本来叫Azure IoT Gateway SDK,不过现在Edge这个概念有点火,就把Gateway改为Edge了。
主要特点是:可以在边缘侧执行AI和分析任务,支持C, C#, Java, Node.js和Python等语言进行二次开发,可以运行在多种操作系统上。
21. Linux基金会EdgeX Foundry边缘计算微服务框架
EdgeX Foundry用一句话来介绍,就是Linux基金会下的硬件和操作系统无关的开源中立的边缘计算微服务框架,用于统一工业物联网边缘计算解决方案的生态系统。
由于EdgeX采用了微服务架构风格,因此可以根据现场环境和业务需求进行灵活地部署。
22. Linux基金会Akraino Edge Stack
Akraino Edge Stack是一个Linux基金会项目,支持针对边缘计算系统和应用程序优化的高可用性云服务。
更多物联网,边缘计算相关技术干货请关注我的专栏物联网前沿技术观察