> 文档中心 > Edge X Foundry框架-设备服务层-简介

Edge X Foundry框架-设备服务层-简介

需要查看Edge X Foundry框架-设备服务层-详解的童鞋请点击打开链接

-设备服务层所处的框架位置    它与众多设备进行交互

设备服务(Device Service-DS)

1.是边缘连接器,与设备或者物联网对象进行交互

2.可以一次服务多个设备,包括传感器,执行器,甚至网关

3.此层的微服务通过IoT对象本地生成的协议与设备,传感器,执行器等物联网对象进行通讯,DS将IoT对象生成和传递的数据转换成常见的EdgeX数据结构,并将数据发送到核心服务层与其他层的微服务中

该层只有一个微服务:Device-Virtual

4.DS的要求:用于定义SDK提供哪些功能来生成DS代码,用于理解设备服务的职责和角色

-DS-SDK的要求

1.收集和转发设备读数:将数据从设备和传感器传送到核心数据

这可以在计划的基础上完成, 也可以通过一些内部触发器 (如设备 asyncronously 将新读数推送到核心数据的设备服务) 进行。 或者, 从传感器/设备成功接收数据可用于更新设备的运行状态 (请参阅下面的要求)。 

实现注意: 当数据集合发生并且DS将数据与核心数据进行通信时, 如果已实现可选缓存, 设备服务也希望更新读取缓存 (请参见下面的 "获取命令要求")此功能可能需要创建计划

2.接收并响应获取命令:处理来自其他服务(主要是来自核心层)的请求, 以便从设备/传感器获取最新的读数。

DS可以选择实现某种类型的缓存, 这样它就不必立即请求传感器或设备进行最新的读取, 而是可以用它收到的最后一次读取来回复。在DS被推送 (相对于它轮询) 数据的情况下,这可能是必要的。如果来自设备/传感器的数据流是异步的,则可能还需要使用此命令来缓存从设备/传感器接收的数据。或者,从传感器/设备触发成功读取的获取请求可能会导致设备的操作状态被更新 (请参阅关于操作设备/传感器状态的报告)。

实现说明: 设备服务处理的命令并不总是触发对设备/传感器的单个请求。根据设备/传感器和中介软件, 单个获取com

注意:可能需要建立读数缓存来存储最新的阅读数据以响应

3.接收和响应put命令:处理会来自其他服务(主要是从核心层)的请求设置 (又称put) 或驱动设备或传感器。

"获取" 和 "投入" 的区别在于, 获取必须响应一些数据。 投入不需要对任何数据作出响应 (除非发生某些异常/错误情况)。获取意味着客户端正在请求或"获取"从关联的设备/传感器读取。这意味着发出请求的客户端正在发送或把值或某些状态更改设置到设备/传感器。

实现说明:DS处理的命令并不总是触发对设备/传感器的单个请求。根据设备/传感器和中介软件,单放命令可能会导致对底层设备/传感器的多个请求,甚至对单个设备/传感器的多个请求。换言之, DS可以实现设备的聚合/或基于单个外部命令触发多个读数

4.数据转换

DS必须实现数据逻辑转换,将设备/传感器的数据读数转换为规范化的EdgeX特定模式,然后再发送到核心数据

5.发现新设备

得益于设备/传感器通信的协议、智能处理以及在协议定义的 "网络" 中查找它们的方便性, 设备服务具有通过搜索或以其他方式 "发现" 新设备和传感器并管理的功能。当发现新设备时, DS可以触发与设备的连接, 如果成功, 请使用核心元数据注册该设备

6.可选使用设备的白/黑列表

DS可以选择使用设备和传感器的白色和黑色列表,DS可以管理也可以不管理。 名单的管理在这个时候留给 implenter。

7.断开一个设备:处理从设备服务中断开或删除设备的请求。 

这将导致要从核心元数据中移除的设备关联的所有数据, 并删除从缓存中刷新的任何可选缓存数据。断开设备的连接不会阻止以后重新连接设备。

8.关于操作设备/传感器状态的报告:报告相关设备的操作状态。 

通过周期性的 "ping" 将其状态推送到DS的设备或传感器完成。在路由数据收集过程中或在响应命令时发生错误/异常时,DS服务可能会使用故障来指示设备或传感器操作已关闭, 并因此更新状态。但是DS确定操作状态, 它必须将此更新状态推送到核心元数据。

9.设置设备/传感器的管理状态:处理请求,以设置与DS关联的设备/传感器的管理状态。 

当管理状态设置为 "锁定" 时, 设备的数据收集/报告将停止发送到核心数据锁定后, 将忽略设备的任何命令 (获取或放置)。

10.报告自己的操作状态

DS必须定期地向元数据和配置/注册表服务报告自己的操作状态(启用/禁用)

11.接收元数据更新:DS必须能够接收对元数据更新的通知或响应

如果应用程序(如EdgeX用户界面)请求通过元数据从系统中删除设备,则此请求将通过设备服务的元数据回调中继和处理

12.接收配置更新:DS将实现回调, 以便从配置/注册表服务获取配置数据的更新

DS应保持或以其他方式永久配置更改-例如,必要时更新核心元数据以最终使用新配置。DS可以根据配置更改动态调整自身以使用新配置, 也可以选择存储更改并在重新启动服务时使用它

13.设备服务启动(初始化)

设备服务必须使用EdgeX配置/注册表微服务进行注册。如果配置/注册表正在运行, 则在执行其他工作之前, 它必须获得配置/注册表服务提供的重写配置,否则它将使用与微服务一起提供的本地配置数据。DS必须以核心元数据作为DS来建立自身。它可以选择在核心元数据中发现或以其他方式静态建立和关联的设备。有关启动时的其他工作, 请参阅本文档中的 "初始化要求" 列。

14.设备服务重新启动

DS必须在上次启动后检测配置更改 (基于DS名称), 并更改(或删除并重新添加)任何设备有关联的核心元数据配置以响应更改

-设备服务设计

-需求设计: