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

2023-11-17

一、实验目的

  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、注重细节,严谨调试:在进行设计与调试时,一定要注重细节,严谨调试。尽可能从用户的角度出发,考虑到各种异常情况,以确保系统的可靠性和稳定性。
此外,我们也发现边缘计算系统在物联网、工业自动化、智慧城市等方面具有广阔的应用前景,具有极大的市场潜力。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

边缘计算操作系统安装及测试实验报告 的相关文章

  • Edge浏览器,找不到本地书签或收藏夹更新时丢失了,我该怎样找回?

    1 不要着急 xff0c 可以通过以下目录找回 Edge浏览器的书签 xff0c 保存地址 xff0c 在最新版本必然保存在以下位置 xff1a C Users 用户名 AppData Local Packages Microsoft Mi
  • 设置 edge 浏览器跨域

    执行下面两条命令 xff0c 然后重启edge span class token string 34 C Program Files x86 Microsoft span class token entity title E span dg
  • edge浏览器自带冲浪小游戏的打开方法

    edge83版本之后 xff0c 冲浪游戏作为彩蛋出现在edge浏览器中 xff0c 游戏玩法简单又非常有趣 xff0c 也是我很喜欢的游戏 玩家在断网时可以游玩 在edge浏览器的地址栏中输入edge surf即可进入冲浪游戏 xff0c
  • JavaScript在小程序网页部署实战

    服务端推理和前端推理对比 前端推理趋势 落地场景 单模型 多模型 全链路流程 JS2 0介绍 核心指标 技术方案 模型转换 核心组件 初始化和预测 计算方案 模型安全处理 加密目标 方案介绍 方案流程 关键路径 性能优化 代码处理 视频获取
  • Jetson开发实战记录(一):Jetson家族的基本介绍

    Jetson开发实战记录 一 Jetson家族的基本介绍 一 Jetson家族 二 Jetson家族产品横向对比 1 Jeston Nano 2 Jetson Xavier 3 Jetson Xavier NX 4 Jetson TX2 5
  • Edge插件导入到chrome浏览器

    在 Edge 浏览器输入 edge version 按回车键后 可以看到 用户配置路径 xxx 复制下来 粘贴到文件管理器 然后找到Extensions 文件夹 打开文件夹 此时会看到一大堆文件夹 这里对应的是你安装的插件多少 然后我们打开
  • 【DELL Power edge R730XD安装Windows Server 2019 Hyper-V之一】

    DELL Power edge R730XD安装Windows Server 2019 安装系统的时候也可以通过iDRAC虚拟控制台 挂载镜像文件作为虚拟介质安装系统 不过本片文章介绍用U盘安装系统 一 准备工作 在开始安装Server 2
  • 边缘计算开源框架EdgeXFoundry的部署应用开发(三)设备服务开发

    边缘计算开源框架EdgeXFoundry的部署应用开发 三 设备服务开发 使用SDK开发真实设备接入服务 着手编写一个温湿度设备接入 准备相关文件及目录 脚本可选 用于单文件编译测试 编写温湿度设备接入设备服务 功能框架 设备名的解析 配置
  • 使用C对TOML文件的解析

    使用C对TOML文件的解析 toml书写语法 解析toml文件 测试输出内容如下 TOML是前GitHub CEO Tom Preston Werner 于2013年创建的语言 其目标是成为一个小规模的易于使用的语义化配置文件格式 TOML
  • 第十二章 YOLO的部署实战篇(下篇)

    文章目录 前言 专栏概括 1 cuda教程目录 2 cuda教程背景 3 cuda教程内容 一 yolov5部署整体逻辑 1 yolov5的main函数 2 yolo h头文件 3 整体架构显示 二 yolov5模型的onnx转engne代
  • 使用Edge调试 安卓app应用或插件

    Edge调试 安卓手机 1 1 找到开发者模式 打开 USB 调试 1 2 找条数据线连上电脑 PC 打开 edge 2 1 打开 URL edge inspect devices 2 2 等待手机和 edge 响应 然后出现页面后 点击
  • #3文献学习总结--边缘计算资源分配与任务调度优化

    文献 边缘计算资源分配与任务调度优化综述 1 系统模型 云 边 端 第 1 层是物联网层 传感器 处理器根据应用需求感知 测量和收集原始数据 在本地处理大量数据或将其上传至计算节点 第 2 层是边缘计算层 位于互联网边缘 靠近数据源 边缘计
  • 缘计算开源框架EdgeXFoundry的配置参数

    EdgeXFoundry的配置参数 Notes on device profiles 关于设备配置文件的说明 The device profile 设备配置文件 coreCommands deviceCommands deviceResou
  • “提升工作效率和多任务处理能力”,Microsoft Edge最新功能实测分享

    前言 Microsoft Edge浏览器是微软基于 Chromium 开源项目及其他开源软件开发的网页浏览器 Edge浏览器是一款现代化的浏览器 它拥有众多功能和强大的性能 为用户带来更加流畅的浏览体验 一 Edge浏览器的使用体验及优缺点
  • edge浏览器 您的flash可能被禁用或者版本过低

    转自 http blog sina com cn s blog 540316260102xkp1 html 从Win 8开始 微软的Windows操作系统就已经将Flash Player内嵌 故对于Win 10系统使用微软默认的Edge浏览
  • 读标准01-IEEE1451-智能传感器接口标准介绍

    老规矩 这里排版不是最佳 并且下文有个别误字太麻烦去改 这里保持第一版 2021 7 14 方便的话请移步 Github Gitee 页面看最新的 或下载下来用 markdown 编辑器看排版更佳 Github仓库 Gitee仓库 记录经过
  • Web小白基础教程-第三篇-HTML基础常用标签名(一)

    谈起Html就不得不简单说一说Web网页制作 Web标准的构成分为三个部分 HTML CSS和JavaScript 三层分离 互相独立 HTML Web的结构部分 通俗点来说就是Web页面上的元素和内容 CSS Web的表现部分 通俗点来说
  • 大数据时代移动边缘计算架构中的差分隐私保护(二)

    大数据时代移动边缘计算架构中的差分隐私保护 二 实际上 给数据加拉普拉斯噪声或者是指数噪声是针对中心式的差分隐私处理框架的 对于本地化的差分隐私处理框架 现在已有的是采用随即相应技术 Bloom Filter等技术满足 本地化差分隐私 LD
  • 在网页的JS中注入Hook

    在网页的JS中注入Hook Chrome浏览器的overrides的使用 itcoder cn 1 以下为Edge 的示例 1 本地新建一个目录 2 用浏览器关联该目录 选择目录后 浏览器上方会弹出一个横条提示确认 点击允许后即可关联 3
  • 边缘计算操作系统安装及测试实验报告

    边缘计算操作系统安装及测试 一 实验目的 二 实验环境 三 实验原理 1 系统组成部分 2 总体数据流程 四 实验步骤及结果 1 安装 Docker 和 Docker Compose 2 下载 EdgeX compose 文件 3 运行Ed

随机推荐

  • 基于keras的图像分类CNN模型的搭建以及可视化(附详细代码)

    基于keras的图像分类CNN模型的搭建以及可视化 本文借助keras实现了热图像的分类模型的搭建 以及可视化的工作 本文主要由以下内容组成 Keras模型介绍 CNN模型搭建 模型可视化 Keras模型介绍 简介 Keras 是 Goog
  • Canvas实例之鼠标移动特效(彩色小球)

    实现鼠标移动跟随着绽放的彩色小球 完整代码在文档末尾 图示 思路 获取画布 获取画布 var canvas document getElementById mycanvas 获取上下文 var ctx canvas getContext 2
  • 嵌入式毕业设计 树莓派实现口罩佩戴检测识别 - 单片机 物联网 机器视觉

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 树莓派4B 5 软件说明 Debian Pi Aarch64 树莓派操作系统 vnc 远程连接树莓派 opencv 摄像头人脸数据采集 人脸数据显示等 6 部分核心代码
  • 顺序表、链表元素的就地逆置。

    目录 一 顺序表元素的就地逆置 1 完整代码 2 解题思路流程 二 链表元素的就地逆置 1 完整代码 2 解题思路流程 一 顺序表元素的就地逆置 1 完整代码 include
  • Vue的生命周期

    一 初始化阶段 1 new Vue Vue实例化 组件也是一个小的Vue实例 2 Init Events Lifecycle 初始化事件和生命周期函数 3 beforeCreate 生命周期钩子函数被执行 4 Init injections
  • 战争科学论——认识和理解战争的科学基础和思维方法

    胡晓峰 1973年中学毕业赴湖南农村插队当过三年知青 1976年回城后当过工人 1977年考入国防科技大学系统工程与数学系信息系统工程专业学习 1981年底毕业后留校任教 后又攻读了研究生 1987年在读信息系统工程研究生期间 曾赴美国加州
  • GDAL-2.4.0 获取Hadoop-3.1.2 hdfs tif文件信息

    GDAL 2 4 0 获取Hadoop 3 1 2 hdfs tif文件信息 GDAL 2 4 0增加了以下功能 Add vsihdfs virtual file system handler for Hadoop File System
  • Android 反编译Apk,修改资源,重新打包,签名发布

    本文简单介绍apk是如何修改logo ic launcher 类似的资源文件修改也可以通过此方式 不过要修改class的话就要涉及到smali的学习了 这里就暂且不谈 后续有需要再做更新 一 工具介绍 apktool 用来反编译apk ap
  • 【华为OD机试真题 JAVA】最多的连续胡杨棵树

    标题 最多的连续胡杨棵树 时间限制 1秒 内存限制 262144K 语言限制 不限 近些年来 我国防沙治沙取得显著成果 某沙漠新种植N棵胡杨 编号1 N 排成一排 一个月后 有M棵胡杨未能成活 现可补种胡杨K棵 请问如何补种 只能补种 不能
  • 【JS基础】通俗易懂的讲清楚去抖/防抖、节流。外加手写深度比较

    文章目录 去抖 防抖 思路解析 节流 两者在vue中结合计算属性使用 深度比较 去抖 防抖 去抖也叫防抖 为了照顾JS初学者的理解和记忆 我就简单的说明一下 我们生活中很多出现抖动的现象 都是没有规律的 例如人的发抖 树叶在风中的抖动 海浪
  • java mysql 断开连接_mysql java连接异常及断开解决秘籍

    3 The last packet sent successfully to the server was 0 milliseconds ago The driver has not received any packets from th
  • 前端一年的经验,面试官都会问一些什么问题呢?都是这样一些的问题

    面试准备阶段 学习以及复习基础知识 这一定是第一步需要做的事情 先制定规划 然后按照这一条既定的规划去学习以及复习 可分为六部分去准备 css部分 像 css这一部分 面试必问 但是它的东西很杂很多 我不知道有多少人和我感觉一样 学习前端最
  • Oracle中Delete和Commit操作的流程分析

    以后还会陆续加入其他各种操作的实现机制 1 删除 Delete 流程 Oracle读Block 数据块 到Buffer Cache 缓冲区 如果该Block在Buffer中不存在 在Redo Log Buffer 重做日志缓冲区 中记录De
  • Leetcode【DFS BFS】

    Leetcode 200 岛屿数量 题目 解题 思路 DFS解法 BFS解法 题目 给你一个由 1 陆地 和 0 水 组成的的二维网格 请你计算网格中岛屿的数量 岛屿总是被水包围 并且每座岛屿只能由水平方向和 或竖直方向上相邻的陆地连接形成
  • ES6 method写法与TypeError: is not a constructor

    公司前端最近开始强推ESlint 很多文件需要逐步修改为符合ESlint规则的形式 结果遇到了一个神奇的问题 有一段类似这样的代码 let obj init function el 此处ESlint检查提示 Expect method sh
  • k8s部署tomcat及web应用_在k8s部署tomcat

    小试牛刀 准备编排文件tomcat yaml 包含两部分 副本rc和service配置可为两个文件 不过我们此处合并为一个 rc副本相关 apiVersion extensions v1beta1 表示Deployment调度配置 kind
  • Keras默认权值初始化方式

    20230117 在最初使用Keras进行神经网络编程的时候 除了设置神经元个数 层数 或者激活函数之后 基本上对神经网络内部就不怎么管了 所以最后很多参数都是默认的 这种情况一般遇到的数据集问题 都能轻易解决 一般不是层数非常深的神经网络
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • Kali系统(Debian 10.3) 遇到的问题

    目录 问题一 Kali系统 相关技术网站 博客 文章 论坛 工具包 包跟踪 提交BUG 问题二 黑客入门 手痒地方 问题三 Kali系统 MySQL问题Can t connect to local MySQL server through
  • 边缘计算操作系统安装及测试实验报告

    边缘计算操作系统安装及测试 一 实验目的 二 实验环境 三 实验原理 1 系统组成部分 2 总体数据流程 四 实验步骤及结果 1 安装 Docker 和 Docker Compose 2 下载 EdgeX compose 文件 3 运行Ed