ExportServices - Distribution

ExportServices - Distribution:

  • Introduction to Distribution
  • High Level Interaction Diagram
  • Data Dictionary
  • The Pipe and Filter

1.png

1. Introduction to Distribution

所述EdgeX Foundry Export Distribution微服务,也被称为“Export Distro,”建立在Spring
集成(EAI or pipe and filter)的技术。从Core Data接收数据,通过消息队列,然后过滤、转换和格式化每个client的数据请求,然后通过REST,MQTT或0MQ将其分发到所选的客户端端点。

Export Distribution服务是基于企业应用程序集成模式的pipe和filter体系结构。数据通过消息队列进入pipe的前端。默认情况下,Core Data将读取的每个设备或传感器事件异步推送到ZeroMQ主题。作为备用配置,Core Data可以将具有读数的每个设备或传感器事件发布到网关ActiveMQ代理主题中。Export Distro服务侦听该主题传入的事件。收到事件后,事件将被视为一条消息,并通过Export Distro pipe和filter发送,以分发给已注册的客户端。

2. Client Registration and Distro Service Cooperation

Export Distro服务与client registration服务没有任何直接连接。但是,client registration服务负责将客户端数据请求填充到数据库中,Export Distro服务将读取该数据库,以了解哪些数据发送到哪些客户端以及如何发送。

2.png

当从Core Data消息队列中读取每个事件消息时,直接从数据库、从本地高速缓存或Export Distro服务的复制功能ClientMessageCopier读取客户端注册数据。复制通过将客户端导出注册的信息与新事件数据的信息相结合来创建“super”消息,并将该组合消息推送到Export Distro的pipe和filter以进行准备并发送到客户端。此交互可以处理由设备或传感器收集的单个数据事件,并由每个client单独处理。

3.png

3. High Level Interaction Diagram

4.png

4. Data Dictionary

table-1.png

5. The Pipe and Filter

在Export Distribution服务内部,Spring Integration组件集,根据每个客户端的注册首选项过滤和转换事件数据。此图显示了分发服务管道中包含的组件和操作的列表。

5.png

Valid Event Check

管道和过滤器中的第一个组件,在copier(在上一节中描述)之前,它是可以通过配置选择打开或关闭的过滤器。此过滤器是一个通用数据检查过滤器,用于评估设备或传感器提供的事件以及相关的读数,并确保数据符合与读数相关的ValueDescriptor。
例如,如果来自传感器的数据被其元数据配置文件描述为符合浮点数类型的“温度”值描述符,其值介于-100°F和200°F之间,但是在事件中看到的数据和读数不是浮点数,例如,如果读数中的数据是诸如“冷”之类的单词而不是数字,那么事件被拒绝(没有客户端接收数据)并且没有进行进一步的处理。 Export Distro服务的活动。

Clint Copier

如上所述,客户端复制器创建由传入事件消息的副本和每个客户端注册的详细信息制作的“超级消息”。对于注册收到所有数据的两个客户端,copier通过所有Export Distro管道和过滤器生成两个超级消息副本。

Filter By Device

客户端仅对来自某些传感器的数据进行注册。“按设备过滤”组件查看消息中的“事件”并查看由客户端注册提供的感兴趣的设备列表,并过滤掉那些其事件适用于不在客户端感兴趣的设备列表中的设备的消息。因此,电动机产生的数据不会发送给仅对恒温器数据感兴趣的客户端。

Filter By Value Descriptor

客户端注册对某些类型的物联网对象的数据的兴趣,例如温度,运动等,这些数据可能来自传感器或设备。按值过滤器过滤器评估每个事件和读取中的数据,并删除具有值描述符的读数,该值描述符不在客户端感兴趣的值描述符列表中。因此,压力读数数据不会发送给仅对运动数据感兴趣的客户端。

XML and JSON Transformers

客户端必须在注册时指定要传递给它们的数据格式。当前选项包括JSON和XML格式。转型组件。每种格式各一个,将Core Data提供的事件和读数中的数据转换为JSON或XML字符串。路由器查看消息中的客户端注册,并确定哪个转换器将转换客户端的数据。

Compressor Transformer

compressor组件压缩要传递给客户端的数据字符串,用于请求通过GZIP或ZIP方法压缩其数据的任何客户端。

Encryption Transformer

加密组件使用客户端提供的密钥和向量加密要发送到客户端的数据。

REST and MQTT Adapters

在导出分发管道和过滤器的末尾,是一对组件,它们可以将基于客户端请求转换的事件和读取数据传递到客户端选择的目标。客户端注册提供URL,身份验证信息等,以使适配器组件能够知道将数据发送到目标的方式和位置。将来可以通过其他协议或目标来创建端点适配器。路由器根据客户端注册信息确定要使用的端点适配器。

参考信息
ExportServices-Distribution

------ 本文结束感谢您的阅读 ------