EdgeX Device Service 设备服务概述文章。
EdgeX Foundry 在下面将统一简称为 EdgeX。
- 设备服务概述
- 设备服务抽象
- 设备服务与消息总线
- 设备服务功能性描述
设备服务概述
设备服务层与设备服务交互。
设备服务是与设备交互的边缘连接器,包括但不限于:家用电器、警报系统、暖通空调(HVAC)设备、照明、任何行业的机器、灌溉系统、无人机、交通信号、交通、自动化运输系统等等。
数据获取 - EdgeX 设备服务通过数百种协议和数千种格式转换来自设备的信息,并将其引入 EdgeX。换句话说,设备服务摄取“事物”提供的传感器数据。当它获取传感器数据时,设备服务将“物体”产生和通信的数据转换为通用的 EdgeX Foundry 数据结构,并将转换后的数据发送到核心服务层,以及 EdgeX 其他层中的其他微服务。
命令下发 - 设备服务还接收并处理返回设备的任何驱动请求。设备服务从 EdgeX 获取通用命令来执行某种操作,并将其转换为特定于协议的请求,并将该请求转发到所需的设备。
设备服务是 EdgeX 与传感器/设备交互的主要方式。因此,除了获取传感器数据和驱动设备之外,设备服务还:
- 从设备/传感器获取状态更新
- 在将传感器数据发送到 EdgeX 之前转换数据
- 更改配置
- 发现设备(适用于特定的通信协议)
设备服务可以同时为一台或多台设备提供服务,甚至可以是为成千上万台设备服务。
设备服务管理的设备可能不是简单的、单一的物理设备。该设备可以是边缘/IoT 网关(以及该网关的所有设备)、设备管理器、传感器集线器、网络通过 HTTP 提供的服务,或者充当 EdgeX Foundry 设备或设备集合的软件传感器。
设备服务通过每个设备对象本机的协议与设备进行通信。 EdgeX 附带多种设备服务,支持多种常见 IoT 协议,例如 Modbus、BACnet、BLE、S7、OPCUA 等。当您遇到新协议并需要 EdgeX 与新设备通信时,EdgeX 还提供了通过设备服务软件开发套件 (SDK) ,以便创建新设备服务的方法,俗称:二次开发或协议扩展。
设备服务抽象
设备服务实际上只是围绕设备以及任何相关固件、软件和协议栈的软件抽象。它允许 EdgeX 的其余部分(以及 EdgeX 的用户)通过抽象 API 与设备通信,以便从您与设备通信的方式来看,所有设备看起来都是一样的。在幕后,设备服务的实现具有一些共同的元素,但也可能根据底层设备、协议和关联软件的不同而有很大差异。
设备服务提供 EdgeX 其余部分与物理设备之间的抽象。换句话说,设备服务“包装/包裹”了协议通信代码、设备驱动程序/固件和实际设备。
EdgeX 中的每个设备服务都是一个独立的微服务。设备服务通常使用设备服务 SDK 创建。 SDK 实际上只是一个库,提供所有设备服务所需的通用脚手架代码和便捷方法。虽然严格意义上说 SDK 不是必需的,但 EdgeX 社区使用 SDK 作为社区提供的所有设备服务的基础。SDK 允许开发人员专注于设备特定的通信、功能等,而不必编写大量 EdgeX 服务样板代码,从而使创建设备服务变得更加容易。使用 SDK 还有助于确保设备服务遵守设备服务所需的规则。
除非您需要创建新的设备服务或修改现有的设备服务,否则您可能永远不需要深入了解设备服务的工作原理,这项技能 并不是使用 EdgeX 的必要条件。然而,对设备服务的用途和工作方式有一定的了解有助于定制、设置配置和诊断问题。
发布到消息总线
设备服务现在能够将事件直接发布到 EdgeX MessageBus,而不是通过 REST 将事件发布到 Core Data。此功能由 Device.UseMessageBus
配置属性(见下文)控制,默认设置为 true
。 Core Data 默认配置为订阅 EdgeX MessageBus 以接收并保存事件。应用程序服务(如 EdgeX 1.x 中那样)订阅 EdgeX MessageBus 以接收和处理事件。
EdgeX 3.0
成功执行 PUT 命令后,只要资源不是只写的,设备服务还将向 EdgeX MessageBus 发布带有更新资源值的事件。
设备服务功能性
功能性清单
所有设备服务必须执行以下任务:
- 注册核心元数据 – 从而让所有 EdgeX 知道它正在运行并准备好管理设备。对于现有设备服务,设备服务将更新其元数据注册并获取任何新信息。
- 从 EdgeX 的配置服务获取其配置设置(如果未使用配置服务,则从本地配置文件获取)。
- 使用 EdgeX 注册表服务(运行时)向自身注册一个运行 EdgeX 的微服务,从而允许其他 EdgeX 服务与其通信。
- 装载并管理它知道如何通信的物理设备。此过程称为设备配置(Device Profile)。在某些情况下,设备服务可能具有自动检测和配置设备的方法。例如,Onvif 设备服务可以在其范围内执行摄像机发现的自动化,然后将该设备提供给 EdgeX 和关联的 Onvif 设备服务。
- 更新并通知 EdgeX 它所管理的设备的运行状态(即设备是否仍在运行并能够通信)。
- 监视配置更改并在适用的情况下应用新配置。请注意,在某些情况下,配置更改无法动态应用(例如:更改设备服务的操作端口)。
- 获取传感器数据(即读取传感器数据)并通过
MessageBus
将该数据传递到 EdgeX 的其余部分(核心数据、应用程序服务等)。 - 接收基于
REST
或MessageBus
的驱动命令并做出反应。
正如您可以想象的那样,其中许多任务(例如注册核心元数据)都是通用的,并且对于所有设备服务都是相同的,因此由 SDK 提供。其他任务(例如从底层设备获取传感器数据)非常特定于底层设备协议。在这些情况下,设备服务 SDK 提供空函数来执行工作,但开发人员需要编写与特定设备协议相关的函数代码。
设备服务功能需求
本博客文档中提供了设备服务的要求。这些要求用于定义需要通过任何设备服务 SDK 提供哪些功能来生成设备服务脚手架代码。它们还可以帮助读者进一步了解设备服务的职责和作用。后续将一一介绍。
关于我们
亿琪软件
上海亿琪软件有限公司成立于 2016 年,专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。
2023 年,公司发布“YiFUSION |工业边缘智能融合一体机”产品,为工业客户提供一整套的边缘计算+AI 能力:高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。
2022 年,公司推出 “YiCLOUD |亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动 OCP 认证,公司还是边缘计算产业联盟 ECC 成员。
联系我们--商业服务
- 网站:http://yiqisoft.cn
- 邮件:support@yiqisoft.cn
- 电话:021-68863086
- 手机:186-1666-9123