边缘计算操作系统安装及测试实验报告

一、实验目的

  1. 了解EdgeX Foundry相关知识
  2. 在 Linux下安装部署 EdgeX Foundry

二、实验环境

EdgeX Foundry 必须与平台无关:
①硬件:x86
②操作系统:Linux
③支持分布式:通过微服务架构设计支持在边缘节点,网关,雾节点、云平台等上部署
④部署/编排:Docker
⑤协议:北侧协议或南侧协议
注:Edgex Foundry定义了南侧、北侧的概念,南侧是设备,即数据产生中心,而北侧是数据利用中心,收集来自南侧的数据,并对数据进行存储、聚合和分析。

三、实验原理

1. 系统组成部分

Edgex Foundry的架构与Thingworx Edge SDK或者Azure IoT Edge SDK这些单体程序不同。后者把所有功能都放在一个程序中运行。而Edgex Foundry把边缘计算的任务分到若干个软件模块上完成。每个软件模块负责一个功能内聚的任务。不同软件模块之间通过预先定义好的API接口进行交互。
设备服务负责采集数据及控制设备功能。核心服务负责本地存储分析和转发数据,以及控制命令下发。导出服务负责上传数据到云端或第三方信息系统,以及接收控制命令转发给核心服务。支持服务负责日志记录、任务调度、数据清理、规则引擎和告警通知。安全服务、管理服务这两个软件模块虽然不直接处理边缘计算的功能性业务,但是对于边缘计算的安全性和易用性来说很重要。这些微服务组织为四个服务层和两个增强系统服务。
在这里插入图片描述

2. 总体数据流程

EdgeX Foundry的总体数据流是这样的:
• Device Service从设备采集实时数据。
• Device Service把设备实时数据发送给Core Service,并本地持久化存储。
• Core Service把实时数据发送给Export Service,由后者再发送到云端服务器或企业信息系统。
• 数据在边缘侧的分析软件中进行分析,然后根据分析结果通过Command service发送控制命令触发设备动作。
EdgeX Foundry的架构如下图(当前版本hanoi,和fuji版本已经有了变化),它主要有一系列的微服务构成。包含4个逻辑层和2个贯穿平台的服务:安全以及设备系统管理。
设备服务层(Device services): 最底层的逻辑层,是物理设备直接通信的具体微服务的集合,每个设备微服务可以管理支持对应接口的多个物理设备。
核心服务层(CoreServices):设备服务层之上是核心服务层,包括core-data(核心数据), core-command(核心命令), core-metadata(核心元数据), 和registry&config(注册与配置),其中registry&config使用Google开源的golang版本的服务发现、配置管理中心服务consul,因此项目中没有关于registry&config微服务的源代码。
在这里插入图片描述
支持服务层(Supporting Services):在核心服务层之上,提供规则引擎,调度,告警与通知,扩展服务等通用服务层。
应用服务层(Application Services):包含对外部系统提供的SDK接口,可配置的应用服务,可扩展的应用服务等。
南边之下是众多的物理设备,具有相同接口的一个或多个设备由同一个device service接入系统;北边之上是数据的最终归处,可以是远程的云端,也可以是本地的数据处理服务。

四、实验步骤及结果

1. 安装 Docker 和 Docker Compose

(1)经过上次实验已经安装Docker,在终端输入docker version确保安装成功。
在这里插入图片描述
(2)安装Docker Compose
执行命令安装 docker-compose:sudo apt install docker-compose
安装完毕后执行命令查看版本:docker-compose version
控制台显示如下则表示安装成功:
在这里插入图片描述

2. 下载 EdgeX compose 文件

(1)首先我们访问如下地址查看最新的 compose 文件:
https://github.com/edgexfoundry/developer-scripts/blob/master/releases/delhi/compose-files
(2)红框处即为最新的文件:
在这里插入图片描述
(3)创建一个docker-compose.yml将红框文件的内容粘贴过去,注意格式缩进。
在这里插入图片描述

3. 运行EdgeX foundry

(1)执行如下命令将所有 EdgeX Docker 镜像下载下来:docker-compose pull
在这里插入图片描述
(2)镜像下载下来后,执行如下命令运行 EdgeX 容器:
在这里插入图片描述
(3)接着执行如下命令即可显示当前所有已下载并启动的容器(可以看到其中还启动了个 mongodb 服务,使用默认的 27017 端口):docker-compose ps
在这里插入图片描述
(4)使用标准 docker 命令来查看正在运行的容器列表,下面通过 format 参数格式化显示出容器启动的时间、运行时间以及其他详细信息:docker ps -a --format “table {{.Names}}\t{{.Status}}\t{{.Ports}}\t{{.RunningFor}}”
在这里插入图片描述

4.运行检查与测试

(1)所有的 EdgeX Foundry 微服务都可以响应“ping”HTTP 请求,我们可以使用它来检查任意一个微服务是否正在运行。这个可以借助任意 HTTP REST 客户端工具甚至直接使用浏览器来访问ping 地址(http://192.168.236.129:48080/api/v1/ping)。
host:为ens33的IP地址
port:为微服务的端口地址
在这里插入图片描述
比如下面检查 Core Data 这个微服务是否启动(响应 pong 则表示启动)。
在这里插入图片描述
成功链接微服务core-data
在这里插入图片描述
(2)EdgeX Foundry 使用开源的 Consul 来注册其服务。因此我们也可以通过 Consul 的仪表板 UI,查看哪些服务已启动。
地址:http://192.168.236.129:8500/ui
在这里插入图片描述
(2)我们还可以查看所有发送到 core-data 的事件/读取数据数量,并且这个点数会随着刷新而不断上升。
在这里插入图片描述

五、实验总结

1、实验过程中遇到的问题及解决办法;
遇到的问题:1、环境配置困难:由于EdgeX Foundry需要运行在Linux系统上,因此我们需要先对Linux系统环境进行配置。但由于我们的实验环境比较古老,无法满足EdgeX Foundry的最小要求,因此需要进行环境调整。2、运行出错:在进行测试时,我们发现程序在某些情况下会出现错误。经过分析,发现这是由于某些依赖库版本不匹配,导致程序无法正常运行。
解决办法:1、查阅相关资料,进行了解,从而完成实验。2、参考官方文档后,使用了一些兼容性更好的软件组合来搭建环境。3、我们通过更新依赖库并重新编译程序,成功地解决了运行出错的问题。
2、设计及调试过程中的心得体会。
通过本次实验,我们深入探究了边缘计算系统的基本原理和关键技术,并通过实际操作了解了其应用场景和价值。同时,在设计与调试过程中,我们也收获了很多经验和体会:1、积极寻找解决办法:在遇到问题时,不要轻易放弃。可以尝试从各个角度寻求解决办法,如查找官方文档、搜索相关论文、咨询同学等。
2、注重细节,严谨调试:在进行设计与调试时,一定要注重细节,严谨调试。尽可能从用户的角度出发,考虑到各种异常情况,以确保系统的可靠性和稳定性。
此外,我们也发现边缘计算系统在物联网、工业自动化、智慧城市等方面具有广阔的应用前景,具有极大的市场潜力。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值