之前分享了雾计算的特点和挑战,本文将介绍开源雾计算软件框架FogLAMP。
作者:与子同袍
首发:物联网前沿技术观察
1.概述
FogLAMP是物联网雾计算的开源软件平台。
- 从传感器接收数据、处理数据并将数据传输到历史数据库和其他系统。
- 可伸缩、安全、健壮。
- 采用模块化的微服务架构,微服务包括传感器数据采集、存储、处理,转发给历史数据库或云服务。
- 在物联网应用中经常出现不可靠、间歇性和低带宽的场合下,也能正常运行。
- 内置存储转发引擎,用于存储来自传感器的数据并将数据转发到更上层的存储系统。传感器数据可以在自动清除之前,在FogLAMP中存储几天。在此期间,数据可以被发送给一个或多个历史数据库,或者供本地分析程序通过REST API进行访问。
- 软件运行环境为Linux操作系统。
FogLAMP参考了OpenFog的参考架构:
2.主要特点
FogLAMP的主要特点有:
- 设计为可无人值守运行和零维护。
- 微服务架构,微服务之间采用安全的内部通信。
- 通过插件实现各种扩展功能,如南向接口、北向接口等。
- 内存和处理占用空间小。FogLAMP可以在廉价的边缘设备上运行。
- 弹性运行,可根据不同运行环境的性能进行调整,确保程序正常运行。
- 支持高可用架构。
- 支持服务发现。
- 传感器和其他设备通信、与用户应用程序交互、管理平台功能、与云端集成,都是基于API接口。
- 经过加固的安全通信。
3.基于微服务
FogLAMP和EdgeX Foundry一样,也采用了微服务设计。FogLAMP的微服务主要包括:
- 核心服务:包括服务发现、任务调度、监控、更新、安全等服务。
- 数据转换和告警服务
- 南向服务:采集传感器和其他FogLAMP系统的数据
- 北向服务:将数据传输给历史数据库和其他系统
- 边缘数据处理应用
开发人员可以容易地开发自定义的微服务,并整合到FogLAMP框架中。
4.插件
FogLAMP广泛使用插件来扩展平台的基本功能。
当前版本的FogLAMP,有三种类型的插件:
- 南向插件:负责FogLAMP与传感器和执行器之间的通信。FogLAMP南向微服务的每个实例都使用一个插件来与传感器或执行器进行通信。
- 北向插件:负责读取从南向服务传递给过来的数据,必要时对数据进行转换,然后根据相应协议将转换后的数据发送到北向系统。
- 存储插件:· 存储插件允许FogLAMP使用不同的数据库来保存元数据和传感器数据。
- 身份验证提供者插件:这个插件允许通过不同的验证方式进行安全验证。
5.部署
FogLAMP支持多种部署模式。
一、层内通信和数据交换。
- 在边缘层,在设备、传感器和执行器上运行FogLAMP的微服务。
- 在雾层,FogLAMP从边缘计算网关采集数据并进行聚合。
- 在云层,FogLAMP将数据转发给大数据、机器学习平台和历史数据库,进行存储、分析和展示。
二、层间的通信和数据交换
- 从边到雾:从边缘层的设备和传感器采集数据,在雾层进行聚合。
- 从雾到边:配置信息、元数据、控制命令从雾发送到边缘设备和传感器。
- 从雾到云:从雾层的数据发送到云层的FogLAMP微服务,然后转发给大数据、机器学习平台和历史数据库,进行分析。
- 从云到雾:云层的分析结果和决策控制命令,从云下发到雾层。
6.依赖环境
FogLAMP目前基于C/C++和Python开发。
构建和运行FogLAMP所需的包是:
autoconf
automake
avahi-daemon
build-essential
cmake
curl
g++
libtool
libboost-dev
libboost-system-dev
libboost-thread-dev
libpq-dev
libssl-dev
libz-dev
make
postgresql
python3-pip
python-dev
python3-dev
uuid-dev
sqlite3
libsqlite3-dev
推荐阅读:
更多物联网,边缘计算相关技术干货请关注我的专栏物联网前沿技术观察
申请加入物联网技术研讨大佬微信群,请加微信号:iot1999。