CN114830615B - 数据分发***及数据分发方法 - Google Patents

数据分发***及数据分发方法 Download PDF

Info

Publication number
CN114830615B
CN114830615B CN202080002860.2A CN202080002860A CN114830615B CN 114830615 B CN114830615 B CN 114830615B CN 202080002860 A CN202080002860 A CN 202080002860A CN 114830615 B CN114830615 B CN 114830615B
Authority
CN
China
Prior art keywords
data
preset
product model
node
plug
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080002860.2A
Other languages
English (en)
Other versions
CN114830615A (zh
Inventor
李鹏
王达川
吕媛媛
韩永亮
邵广玉
李文娟
王洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BOE Technology Group Co Ltd
Beijing Zhongxiangying Technology Co Ltd
Original Assignee
BOE Technology Group Co Ltd
Beijing Zhongxiangying Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BOE Technology Group Co Ltd, Beijing Zhongxiangying Technology Co Ltd filed Critical BOE Technology Group Co Ltd
Publication of CN114830615A publication Critical patent/CN114830615A/zh
Application granted granted Critical
Publication of CN114830615B publication Critical patent/CN114830615B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开是关于一种数据分发***及数据分发方法。该平台包括通道配置模块和数据引擎模块;其中,所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到第二消息队列;数据引擎模块与所述通道配置模块连接,用于将从所述第二消息队列获取的预设产品模型数据进行分发操作。本实施例中可以对设备数据进行统一解析来实现数据分发,使数据分发***中的用户可以直接使用上述设备数据,有利于提升***的稳定性、兼容性和可移植性。

Description

数据分发***及数据分发方法
技术领域
本公开涉及数据处理网技术领域,尤其涉及一种数据分发***及数据分发方法。
背景技术
在物联网(Internet of Things,IoT)中,若干个IoT设备会向IoT平台上报数据,以供IoT平台使用。实际应用中,IoT平台通常将数据实时传输给不同用户使用,但存在部分用户无法直接使用上述数据的问题。
发明内容
本公开提供一种数据分发***及数据分发方法,以解决相关技术的不足。
根据本公开实施例的第一方面,提供一种数据分发***,包括通道配置模块、数据引擎模块、数据处理模块、规则引擎模块、预设的数据库和外部接口模块;
所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;
所述数据引擎模块与所述通道配置模块连接,用于将从所述消息队列获取的预设产品模型数据分发给所述预设数据库或者所述数据引擎模块,或者生成控制指令发送给所述数据处理模块、所述规则引擎模块;
所述数据处理模块用于响应于所述控制指令选用预设的离线算法或者实时算法来处理所述预设产品模型数据,并实时推送处理结果或者存储处理结果;
所述规则引擎模块用于响应于所述控制指令判断所述预设产品模型数据对应的节点是否需要触发;当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备;
所述外部接口模块用于响应于外部业务***的调用请求从所述预设数据库内反馈所述预设产品模型数据。
根据本公开实施例的第二方面,提供一种数据分发***,包括通道配置模块和数据引擎模块;其中,
所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;
数据引擎模块与所述通道配置模块连接,用于将从所述消息队列获取的预设产品模型数据进行分发操作。
可选地,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
可选地,还包括数据处理模块;所述数据处理模块与所述数据引擎模块连接;
所述数据引擎模块还用于根据初始配置数据生成控制指令并发送给所述数据处理模块;
所述数据处理模块用于响应于所述控制指令选用预设的离线算法或者实时算法来处理所述预设产品模型数据,并实时推送处理结果或者存储处理结果。
可选地,还包括规则引擎模块;所述规则引擎模块与所述数据引擎模块连接;
所述数据引擎模块还用于在预设产品模型数据需要触发规则引擎时生成控制指令并发送给所述规则引擎模块;
所述规则引擎模块用于响应于所述控制指令判断所述预设产品模型数据对应的节点是否需要触发;当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备。
可选地,所述数据引擎模块还用于将所述预设产品模型数据推送给预设的缓存,由所述缓存确定所述预设产品模型数据对应的节点是否需要触发。
可选地,还包括外部接口模块;所述外部接口模块与所述数据引擎模块连接;
所述数据引擎模块还用于将预设产品模型数据存储到预设数据库内;
所述外部接口模块用于响应于外部业务***的调用请求从所述预设数据库内反馈所述预设产品模型数据。
根据本公开实施例的第三方面,提供一种数据分发方法,应用于第一方面所述的数据分发***,所述方法包括:
获取外部设备上报的设备数据;
将所述设备数据转换为预设产品模型数据,并存储到消息队列;
将从所述消息队列获取的预设产品模型数据进行分发操作。
可选地,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
可选地,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
获取初始配置数据;所述初始配置数据包括表征是否采用预设算法处理所述预设产品模型数据的配置数据;
当所述初始配置数据包括表征采用预设算法处理所述预设产品模型数据的配置数据时,获取用于所述预设产品模型数据的数据处理算法;所述数据处理算法包括离线算法或者实时算法;
基于所述离线算法或者所述实时算法处理所述预设产品模型数据,获得处理结果;
存储或者推送所述处理结果。
可选地,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
将所述预设产品模型数据推送给缓存,以使所述缓存确定所述预设产品模型数据是否需要触发规则引擎;
响应于需要触发规则引擎时,判断所述预设产品模型数据对应的节点是否需要触发;
当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备。
可选地,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
基于所述预设策略将所述预设产品模型数据存储到预设数据库内,以使外部业务***通过所述预设数据库来获取所述预设产品模型数据。
可选地,获取外部设备上报的设备数据,包括:
获取预设数据协议;
当若所述设备数据满足所述预设数据协议,将所述设备数据存储到第一消息队列;若所述设备数据不满足所述数据协议,则通过SDK进行协议转换得到满足预设数据协议的设备数据并存储到所述第一消息队列。
根据本公开实施例的第四方面,提供一种电子设备,包括:
至少一个处理器;
用于存储所述处理器可执行的计算机程序的至少一个存储器;
其中,所述至少一个处理器被配置为执行所述至少一个存储器中的计算机程序,以实现如上述的方法。
根据本公开实施例的第五方面,提供一种计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够上述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本公开实施例中数据分发***包括通道配置模块和数据引擎模块;其中,所述通道配置模块所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;数据引擎模块与所述通道配置模块连接,用于将从所述消息队列获取的预设产品模型数据进行分发操作。这样,本实施例中可以对设备数据进行统一解析来实现数据分发,使数据分发***中的用户可以直接使用上述设备数据,有利于提升***的稳定性、兼容性和可移植性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种数据分发***的框图。
图2是根据一示例性实施例示出的数据分发的时序图。
图3是根据一示例性实施例示出的数据分发的流程图。
图4是根据一示例性实施例示出的一种数据分发流程配置方法的流程图。
图5是根据一示例性实施例示出的配置产品的路由信息的效果示意图。
图6是根据一示例性实施例示出的创建产品的标签页示意图。
图7是根据一示例性实施例示出的产品队列的效果示意图。
图8是根据一示例性实施例示出的门禁产品场景示意。
图9是根据一示例性实施例示出的配置门禁产品路由通道的效果示意图。
图10是根据一示例性实施例示出的门禁产品物定义的效果示意图。
图11是根据一示例性实施例示出的门禁产品路由通道的标签页示意图。
图12是根据一示例性实施例示出的新增数据源的标签页示意图。
图13~图15是根据一示例性实施例示出的配置MYSQL数据表的标签页示意图。
图16~图20是根据一示例性实施例示出的配置MQTT的标签页示意图。
图21是根据一示例性实施例示出的创建工作空间区域的流程图。
图22是根据一示例性实施例示出的弹框的效果示意图。
图23是根据一示例性实施例示出的创建业务流程的流程图。
图24是根据一示例性实施例示出的新建流程的效果示意图。
图25是根据一示例性实施例示出的获取节点插件的流程图。
图26是根据一示例性实施例示出的工作台以及获取节点插件的效果示意图。
图27是根据一示例性实施例示出的配置节点插件信息的流程图。
图28是根据一示例性实施例示出的配置MYSQL数据表的标签页的效果示意图。
图29是根据一示例性实施例示出的连接节点插件的流程图。
图30是根据一示例性实施例示出的业务流程的效果示意图。
图31是根据一示例性实施例示出的一种数据分发方法的流程图。
图32是根据一示例性实施例示出的一种数据分发流程配置装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置例子。
为解决上述技术问题,本实施例提供了一种数据分发***,图1是根据一示例性实施例示出的一种数据分发***的框图。数据分发***可以是分布式***部署在云端。分布式的数据分发***可以是一组计算机,通过网络相互连接来传递消息与通信后并协调它们的行为而形成的***。不同计算机之间彼此进行交互以实现一个共同的目标。网络可以是基于互联网和/或电信网的物联网(Internet of Things),其可以是有线网也可以是无线网,例如,其可以是局域网(LAN)、城域网(MAN)、广域网(WAN)、蜂窝数据通信网络等能实现信息交换功能的电子网络。
分布式计算***可以具有软件插件,诸如软件对象或其他类型的个体可寻址的孤立实体,诸如分布式对象、代理、动作方(actor)、虚拟插件等。通常,每个这样的插件个体可寻址,并且在分布式***中具有唯一的身份(诸如整数、GUID、字符串或不透明数据结构等)。在允许地理分布的分布式***中,应用可以通过部署而被驻留在一个集群中。存在支持分布式计算环境的各种***、插件和网络配置。例如,计算***可以通过有线或无线***,通过本地网络或广泛分布式网络连接在一起。当前,很多网络耦合到因特网,其为广泛分布式计算提供基础设施,并且包括很多不同的网络,尽管任何网络基础设施可以用于例如在各种示例中描述的易发生于***的通信。
数据分发***通过计算设备和***之间的通信交换提供计算机资源和服务的共享。这些资源和服务包括针对对象(例如文件)的信息交换、高速缓存存储装置和磁盘存储装置。这些资源和服务还包括跨多个处理单元的处理能力的共享,用于负载平衡、资源扩展、处理的专业化等。例如,分布式数据分发***可以包括具有诸如客户端设备/服务器、对等或混合架构的网络拓扑和网络基础设施的主机。
本公开中所描述的各种技术可以结合硬件或软件或在适当时通过两者的组合来实现。如本公开中所使用的术语“插件”、“模块”、“***”、“平台”等同样旨在指代计算机相关实体,其是硬件、硬件和软件的组合、软件或执行中的软件。
参见图1,一种数据分发***包括通道配置模块Zbridge和数据引擎模块Zdata。其中,
通道配置模块Zbridge与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;
数据引擎模块Zdata与通道配置模块Zbridge连接,用于将从消息队列获取的预设产品模型数据进行分发操作。
本实施例中,通道配置模块Zbridge与外部设备连接,可以获取到外部设备上报的设备数据。数据分发***或者通道配置模块内可以存储预设数据协议,如消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)、http协议、XMPP协议、CoAP协议。以MQTT协议为例,通道配置模块Zbridge可以获取MQTT协议,并判断设备数据是否满足MQTT协议。当设备满足MQTT协议时,通道配置模块Zbridge可以将设备数据存储到MQTT Broker(即第一消息队列)。当设备数据不满足数据协议,通过SDK进行协议转换,并存储到第一消息队列。
需要说明的是,本实施例中外部设备可以包括本***需要外接的设备,如第三方设备、直连设备、边缘网关等;相应地,外部设备所上报的设备数据可以包括摄像头采集的图像信息、温湿度传感器采集的环境数据、生产设备的生产数据等。可理解的是,上述外部设备可以根据具体场景进行设置,设备数据可以根据外部设备随之调整,相应方案落入本公开的保护范围。
本实施例中,通道配置模块Zbridge内已经预先存储路由配置信息,该路由配置信息可以包括指定到第一消息队列读取设备数据的会话(topic)路径,产品模型定义和数据解析。
本实施例中,通道配置模块Zbridge可以监听第一消息队列中的MQTT数据。当第一消息队列中存在MQTT数据时进行读取,将MQTT数据转换成预设产品模型数据,并存在到第二消息队列。其中,第二消息队列可以采用以下一种:Message Queue、RabbitMQ、Redis、ZeroMQ、ActiveMQ、Kafka/Jafka。以下实施例中第二消息队列采用Kafka实现。
本实施例中,路由配置信息可以包括预先设置的预设产品模型,其包括状态参数、功能参数和触发参数三个类型的设备数据,通过设置参数的数据类型和数据长度来形成的表征同一类产品的数据格式
其中,状态参数用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度。该状态参数可以支持GET和SET请求方式,应用***可对状态参数的读取和设置请求。功能参数是指设备可被外部调用的能力或者方法,可包括输入参数和输出参数。相比于状态参数,功能参数可以通过一条指令实现更复杂的业务逻辑,如执行某项特定的特务。触发参数是指设备运行时的事件,一般包含需要被外部感知和处理的通知信息,可以包含多个输出参数。如某项任务完成的信息,或者设备发生故障或者告警时的温度等,可以被订阅和推送。也就是说,本示例中,从状态参数、功能参数和触发参数三个功能维度,分别描述了该设备是什么、能做什么、可以对外提供哪些信息,即完成了设备数据的定义。
本示例中,通道配置模块Zbridge提供了多源异构设备进行产品模型转换的平台,将设备数据划分为状态参数、功能参数和触发参数,这样将各外部设备的设备数据转换成预设产品模型,可以具有以下优点:
第一,可以将不同厂家提供的同类或者不同类产品统一为同一类产品,达到产品统一的效果。或者说,无论哪个厂家提供的产品均可以加入本***,均可以对应到相应的分类,从而提升本***的适用范围。例如门禁设备,定义了产品模型的状态参数如门禁ID(guardID)、人员工号(cardID)、进出方向(direction)等,而对应设备数据中相关状态参数分别表示为data.door、data.person、data.direction,通过配置信息(JS、jar),实现对应状态参数的映射,从而实现产品模型的解析。
第二,本***中将所有设备数据转换成预设产品模型数据,可以方便***对预设产品模型数据进行处理,例如利用大数据算法来上述数据进行处理,挖掘出数据价值或者为用户提供更有价值的服务,具体可以参见后续实施例。
第三,对于***中的各部分可以直接使用预设产品模型数据,无需重新转换,提升数据利用效率。另外,用户可根据简单的配置信息,实现产品模型的数据解析,避免了多种设备分别进行数据解析代码的编写,提高了数据解析效率。
本实施例中,数据引擎模块Zdata与通道配置模块Zbridge连接,可以监听第二消息队列中的预设产品模型数据。数据引擎模块Zdata作为数据分发***的核心,还可以连接数据处理模块Zalgorithm、规则引擎模块ZMessage、外部接口模块ZOpen和数据库,可以任意控制数据的处理方式(实时算法处理、离线算法处理、过滤处理)、数据通道的选择以及数据的结果处理(存储于数据库、规则引擎判断、推送给外接业务***、直接输出给用户等),达到解析、分发和存储预设产品模型数据的目的。
在一示例中,数据引擎模块Zdata内还设置有过滤脚本,如JS脚本或者JAR包,该过滤脚本由用户通过***配置页面进行上传或者编写。在数据引擎模块Zdata对预设产品模型进行解析后且分发之前,可以根据用户的订阅需求对解析出的数据进行过滤,从而更好的适用用户的需求。例如,A用户希望获得预设产品模型中的3类数据,而B用户希望根据预设产品模型中的5个数据进行计算,可通过过滤脚本进行提前筛选出预设产品模型对应的3类或者5类数据,从而更好地适应A用户或B用户的个性化订阅需求。
在一示例例中,数据分发***还包括预设数据库和外部接口模块ZOpen。其中,预设数据库可以包括但不限于Mysql数据库、TiDB数据库、FoundationDB数据库等。本示例中,预设数据库采用TiDB数据库实现。该TiDB数据库可以随着***中数据增长而无缝地水平扩展,只需要通过增加更多的机器来满足业务增长需要,并且应用层可以不用关心存储的容量和吞吐量。同时,TiDB数据库还可以根据存储、网络、距离等因素,动态进行负载均衡调整,以保证更优的读写性能,从而满足数据分发***的需求,提升***的扩展性、可靠性和稳定性。
本实施例中,数据引擎模块Zdata在kafka队列中监听到预设产品模型数据时存储到该TiDB数据库中。该TiDB数据库所存储的数据还可以包括数据处理模块Zalgorithm推送的结果数据,还包括第一消息队列或者第二消息队列中的过程数据,可以方便外部***进行数据查询。这样,业务***通过数据分发***的外部接口模块ZOpen来读取预设产品模型数据,实现数据标准查询。
在一示例中,数据分发***还包括与数据引擎模块Zdata连接的数据处理模块Zalgorithm。该数据处理模块Zalgorithm可以为大数据平台Hadoop,用户只需编写相应的算法并上传至数据处理模块Zalgorithm中,即可支撑离线或实时地数据处理和计算。数据引擎模块Zdata可以预先存储初始配置数据,该初始配置数据由用户预先配置,可以包括是否需要采用数据处理算法,在采用数据处理算法时采用何种算法等配置信息。其中数据处理算法包括离线算法或者实时算法。在从kafka队列获取到预设产品模型数据后,可以读取初始配置数据,从而确定是否触发数据处理模块Zalgorithm。在确定触发数据处理模块Zalgorithm后,数据处理模块Zalgorithm可以采用离线算法或者实时算法来处理预设产品模型数据,并将处理结果反馈给用户和存储在本地。也就是说,数据处理模块Zalgorithm还可以作为数据库存储预设产品模型数据、过程数据和结果数据。在一示例中,离线算法采用SparkSQL实现,处理结果存于Hive中;实时算法采用SaprkStreaming实现,并通过消息队列实时推送。
其中,离线算法可以包括但不限于SparkSQL、Hive on Spark、Core、Streaming、MLlib、GraphX等,实时算法可以包括但不限于Flink,Storm,Spark Streaming等。可理解的是,离线算法和实时算法仅仅是用于区别算法的使用场景,例如,在实时性要求不高的情况下,实时算法也可以采用上述离线算法中的一项来实现;又如,离线算法还可以采用实时算法来实现,技术人员可以根据具体场景来选择合适的离线算法和实时算法。当然,在一些场景中,上述离线算法或实时算法还选用大数据算法,如在设备数据为图像时,大数据算法可以采用神经网络算法等算法实现,由神经网络算法对图像进行处理并获取图像语义。
在一实施例中,数据分发***还包括规则引擎模块ZMessage,该规则引擎模块ZMessage可以存储预先设置的规则,如环境温度不超过50摄氏度、环境湿度不超过70%等,可以根据具体场景选择配置相应的规则,相应方案落入本公开的保护范围。
本示例中,规则引擎模块ZMessage与数据引擎模块Zdata连接。数据引擎模块Zdata在预设产品模型数据需要触发规则引擎时生成控制指令并发送给规则引擎模块ZMessage,或者数据引擎模块Zdata将预设产品模型数据发送给key-value存储***Redis,由Redis判断预设产品模型数据是否需要触发规则引擎。规则引擎模块ZMessage用于响应于控制指令判断预设产品模型数据对应的节点是否需要触发;当需要触发时向节点发送预设类型的触发信息,如控制指令、告警信息等;当不需要触发时将预设产品模型数据发送到外部设备。其中,在向需要触发的节点发送触发信息或者预设产品模型数据时可以先获取节点类型,如邮件、调用远程接口、短信息等,再根据类型调整信息或数据的发送方式或者格式。实际应用中,被触发的节点有可能不支持满足MQTT协议,此时信息或者数据可以通过ZEdgeSDK进行解析后再发送给被触发的节点。
至此,本公开实施例中数据分发***包括通道配置模块Zbridge和数据引擎模块Zdata;其中,所述通道配置模块Zbridge与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;数据引擎模块Zdata与所述通道配置模块Zbridge连接,用于将从消息队列获取的预设产品模型数据进行分发操作。这样,本实施例中可以对设备数据进行统一解析来实现数据分发,使数据分发***中的用户可以直接使用上述设备数据,有利于提升***的稳定性、兼容性和可移植性。
下面结合图2和图3所示场景来描述上述数据分发***,包括:
1)获取资产产生的数据,其中资产是指需要外接的外部设备,这些外部设备可以采用外部数据并进行上报。
2)基于MQTT协议传输设备数据:判断设备数据是否支持MQTT协议,如果不支持,则通过SDK进行协议转换,若支持,基于MQTT协议传输到MQTT-BROKER。其中,MQTT-BROKER是消息队列,用于设备数据的中转和传输。
3)ZBridge将设备数据解析成预设产品模型数据。ZBridge监听MQTT-BROKER的数据,当MQTT-BROKER有数据时就抓取过来,并转换为预设产品模型数据,再进行消息分发到kafka队列。ZBridge与后文路由配置的关系:ZBridge通过读取路由配置的配置信息,进而到MQTT-BROKER抓取对应的设备数据并转换为产品模型数据。
需要说明的是,2)中的基于MQTT协议传输设备数据也可以由ZBridge实现。
实际应用中,ZBridg中的初始配置信息中可以包括JS脚本、jar包,还可以包括python脚本或PHP脚本等。例如,ZBridge可基于用户编写的JS脚本或者jar包来实现产品模型转换。在一示例中,ZBridge可基于JS解析引擎来解析JB脚本或者基于pf4j插件对jar包进行解析,进而对数据做产品模型处理。
4)ZData监听kafka中的产品模型数据并在数据引擎中进行判断,进行以下三种操作:
4.1)存储至TiDB数据库中。例如,可以利用过滤脚本对产品模型数据实现过滤和处理,也可以使用大数据/人工智能算法处理数据。经过处理的结果数据和过程数据可以直接存储至数据库中供日后使用。业务***可以通过外部接口模块ZOpen从TiDB数据库读取数据,也可以进行标准查询。
当然,外部接口模块ZOpen还可以将从TiDB数据库读取数据作为下行数据发送给ZMessage,由ZMessage直接发送给ZEdge SDK或者直接发送给设备或者判断是否触发动作节点,在需要触发规则节点时,根据动作节点的类型下发邮件、调用远程接口和下发短信等,或者触发资产类型的触发参数(即直接发送给ZEdge SDK或者直接发送给设备)。
4.2)ZData根据初始设置信息判断是否采用预设处理算法预设产品模型数据。如果采用,则需要进一步判断选用的算法类别。例如类别为实时算法,利用SaprkStreaming进行计算;又如类别为离线算法,采用SparkSQL进行计算,处理结果存储到Hive。处理结束后,判断初始设置信息中的服务订阅方式,可通过Kafka实时推送或者将数据存储于存储节点。
4.3)ZData将预设产品模型数据映射到Redis,该Redis是一个键值key-value存储***。Redis可以判断是否需要通知触发规则引擎,若是,可以将控制指令发送给Zmessage。Zmessage可以对预设产品模型数据进行预处理,并与预先设置好的触发规则做匹配,构成一个事件。当该事件满足触发规则时执行触发操作。
ZMessage判断规则节点是否需要触发,在不需要触发时将预设产品模型数据或者解析预设产品模型数据后发送给ZEdge SDK或者直接发送给设备,在需要触发时则继续判断是否触发动作节点,在需要触发规则节点时,根据动作节点的类型下发邮件、调用远程接口和下发短信等,或者触发资产类型的触发参数(即直接发送给ZEdge SDK或者直接发送给设备)。
本公开实施例还提供了一种数据分发流程配置方法,图4是根据一示例性实施例示出的一种数据分发流程配置方法的流程图,可以用于图1所示的数据分发***。实际应用中,用户可以在数据分发***中的任一个电子设备来配置数据分发流程,或者通过其他电子设备来接入到数据分发***中来配置数据分发流程。为方便描述,后续实施例中以具有可触发操作的显示屏的电子设备为执行主体来描述各方案。
为方便理解后续方案,将图1出现的通道配置模块Zbridge和数据引擎模块Zdata、数据处理模块Zalgorithm、规则引擎模块ZMessage、外部接口模块ZOpen和数据库等分别与后续实施例出现的插件相映射,包括:
通道配置模块Zbridge对应于消息队列插件集合、数据库插件集合或者过滤脚本插件集合。
数据引擎模块Zdata对应于业务流程的配置信息,即通过配置信息来实现各个模块或者插件之间的数据传输、计算和分发。
数据处理模块Zalgorithm对应于算法插件集合,以及数据库插件集合。
规则引擎模块ZMessage对应于过滤脚本插件集合、数据库插件集合。
外部接口模块ZOpen对应于数据库插件集合、外部接口。
数据库对应于数据库插件集合。
可理解的是,上述各模块可以至少一种功能的集合体,而插件更倾向于一种功能,因此上述各模块可以对应至少一种插件。在后续实施例中可以根据插件与模块的对应关系来确定是插件属于哪个模块。在不影响图1所示数据分发***工作的情况下,各插件的划分到各模块的变形方案均落入本公开的保护范围。
参见图4,一种数据分发流程配置方法,包括步骤41~步骤43:
在步骤41中,响应于检测到表征创建数据分发业务的业务流程的触发操作,显示所述业务流程的工作台。
本实施例中,电子设备内可以预先存储各种插件集合,包括初始插件集合、通道插件集合和处理插件集合。通道插件集合中各插件位于初始插件集合中各插件和处理插件集合中各插件之间,或者位于处理插件集合中的两个插件之间。其中,初始插件集合包括数据集成插件集合,通道插件集合包括消息队列插件集合,处理插件集合包括数据库插件集合、过滤脚本插件集合、算法插件集合、规则引擎插件集合。当然,还可以包括外部接口插件集合用于建立外部设备与数据库插件或者消息队列插件或者过滤脚本插件之间的连接。技术人员可以根据场景选择合适的插件集合。。其中:
本实施例中,数据集成插件集合主要通过路由通道类型的节点插件来统一的数据逻辑视图下隐藏底层的数据细节,方便不同数据源之间可以映射到这个节点插件。参见图5,该节点插件的底层数据逻辑配置(即所配置的信息项)具体是选择产品数据源(如图3所示的资产),产品数据源信息包括路由配置信息、产品模型定义信息和数据解析信息,再选择该产品数据源需要订阅的路由以及通过数据筛选来选中产品模型信息中的状态参数。
以创建产品(即数据源)为例,包括:
本示例中,在***的显示界面上显示创建产品按钮。电子设备可以响应于检测到表征创建产品的触发操作,在显示界面内弹出弹框,效果如图3所示。参见图6,弹框中包括产品相关信息,如产品名称、产品品类(如自定义品类、通用品类)、节点数据(如直连设备、边缘网关、网关子设备、第三方设备等)、认证方式、接入协议和产品描述等,可以根据具体场景进行调整弹框中的内容。电子设备还可以根据用户的触发操作,分别填写各项产品信息,获取输入数据。当检测到用户存储上述输入数据时,电子设备可以调用API接口生成新的产品信息,并在列表中展示新生成的相关产品,效果如图7所示。
以配置门禁产品为例,电子设备可以响应检测到表征配置路由信息的触发操作,显示门禁产品的配置页面,效果如图8和图9所示。参见图9,电子设备可以获取用户输入的路由信息,如基础路由、通信路由、自定义路由的信息配置。其中,自定义路由信息的配置是后面路由通道插件数据源选择产品信息后的路由选择。
参见图10和图11,电子设备可以响应检测到表征配置产品产品模型信息的触发操作,获取用户输入的产品产品模型信息,如状态参数、功能参数、触发参数、产品模型DSL的信息配置。即电子设备可以检测到用户点击新增自定义按钮弹出弹框,获取根据显示界面的提示所输入的相关信息,来配置状态参数、功能参数、触发参数等产品模型定义的信息,并且产品上线后不能自定义新增信息。其中,产品模型定义的状态参数信息配置是后续路由通道插件需要数据筛选的产品状态参数信息。
本实施例中,数据库插件集合主要由MYSQL数据表插件、TIDB数据表插件和HBase数据表插件中的一种来对数据的建立、存储、更新、查询和删除等操作,对应图3中的数据存储节点或TiDB数据库。这些节点插件的底层数据逻辑配置具体是选择数据源存储节点的实例,存储节点实例的信息包括数据库的版本、IPV4地址信息、端口号、实例名称、数据库名称、用户名、密码和存储节点所在区域,通过选择存储节点的实例来选择数据表以及数据表的表结构信息,也可以通过填写DDL脚本数据来为实例创建数据表以及数据表的表结构。
以创建MySQL存储实例为例,参见图12、图13、图14和图15,在***的显示界面上可以显示添加节点按钮。电子设备可以检测用户是否点击上述添加节点按钮,并且电子设备可以响应于检测到用户点击上述添加节点按钮,在显示界面内弹出弹框。该弹框内包括选择版本、连接信息、实例名称、库名称、用户名、密码、别名和区域等内容。电子设备还可以根据用户的触发操作,分别填写各项产品信息,获取输入数据。当检测到用户存储上述输入数据时,电子设备可以调用API接口生成新的存储实例,并在列表中展示新的存储实例。该列表是MySQL数据表插件配置信息中的数据源信息。这样,本示例中可以通过填写的存储实例信息,调用API接口获取到该存储实例的数据表信息,又通过数据表信息获取数据表的各种属性信息。获取到的信息就是MySQL数据表插件配置的信息中的选择数据表和数据表结构信息。
本实施例中,消息队列插件集合主要由MQTT消息队列插件(对应图3中的MQTTBROKER)、Kafka消息队列插件(对应图3中的apaache kafka)和AMQP消息队列插件来用于异步处理、应用解耦和流量削锋。这些节点插件的底层数据逻辑具体是选择数据源的消息队列实例,消息队列实例的信息包括TCP连接、WS连接、用户名、密码、命名空间、区域和topics主题,通过选择消息队列的实例来选择通信协议TCP连接或WS连接,topic主题,以及它的详细配置,如执行动作的选择、是否保留消息、是否延迟发布、消息重传、是否分组订阅等配置信息。
以创建MQTT消息队列为例,参见图16、图17、图18、图19和图20,在***的显示界面上可以显示添加实例按钮。电子设备可以响应于检测到表征添加实例的触发操作,在显示界面内弹出弹框。该弹框内可以包括连接信息(如TCP连接、WS连接、用户名、密码、命名空间)、基础信息(如别名、区域、最大topic数、描述内容)等,可以根据具体场景进行调整弹框中的内容。电子设备可以根据用户的触发操作,分别填写各项实例内容,电子设备可以获取输入数据。当检测到用户存储上述输入数据时,电子设备可以调用API接口生成新的队列实例,并在列表中展示新的队列信息。该列表是MQTT消息队列插件配置信息中的数据源信息。
继续以配置MQTT消息队列的topic信息为例,MQTT消息队列插件配置信息中选择数据源后的主题选择信息。
本实施例中,过滤脚本插件集合可以包括JS脚本插件、jar包插件、python脚本插件或PHP脚本插件等,用于对数据进行过滤,以筛选出用户所需要的数据项。例如,A用户希望获得数据中的3项数据,而B用户希望根据数据中的5项数据进行计算,可通过过滤脚本进行提前筛选出对应的3个或者5个数据,从而更好地适应A用户或B用户的个性化订阅需求。当然,技术人员还可以通过其他编程语言编辑的脚本插件,相应方案落入本公开的保护范围。
本实施例中,算法插件集合可以包括离线算法插件和实时算法插件,用于对数据进行计算。其中离线算法插件可以包括但不限于SparkSQL插件、Hive on Spark插件、Core插件、Streaming插件、MLlib插件、GraphX插件等,实时算法可以包括但不限于Flink插件,Storm插件,Spark Streaming插件。
本实施例中,在配置完各插件后,可以基于上述插件创建业务流程。首先,创建工作空间区域。参见图21,在步骤211中,电子设备可以响应于检测到表征创建工作空间的触发操作,在显示区域内显示第一弹框;第一弹框内包括工作空间名称、别名、logo图片、空间描述中的至少一项内容,效果如图22所示。在步骤212中,电子设备可以响应于检测到表征输入任一项内容的触发操作,获取针对该项内容的输入数据。在步骤213中,电子设备可以响应于检测到表征保存输入数据的触发操作,保存输入数据并关闭弹框,获得工作空间区域。例如,电子设备可以在显示界面内显示新增工作空间区域按钮,当用户点击新增工作空间区域按钮后,可以弹出一个右抽屉样式的弹框,在弹框内填入工作空间名称、别名、上传一张logo图片、输入对该空间的描述后,用户可以点击下方保存按钮。电子设备可以调用保存空间信息的API接口,接口调用成功后保存相关信息,关闭弹框,并在工作空间区域展示刚刚新增的工作空间。
又如,新增工作空间区域后,还可以对该工作空间区域的内容进行修改。此时显示界面内可以显示某个需要修改工作空间内容的编辑按钮,弹出一个右抽屉样式的弹框,里面有相关的工作空间内容,然后填写需要修改的内容,之后点击保存按钮调用修改空间信息的API接口,接口调用成功后修改相关信息并关闭弹框。
本实施例中,在各工作空间区域内可以新建业务流程。参见图23,在步骤231中,电子设备可以响应于检测到表征编辑工作空间区域的触发操作,在显示区域内显示工作空间区域的编辑区页面;编辑区页面包括新建业务流程按键。在步骤232中,电子设备可以响应于检测到表征选择新建业务流程按键的触发操作,显示新建流程弹框;该新建流程弹框内包括流程名称和流程描述。在步骤233中,电子设备可以响应于检测到表征填写流程名称或者流程描述的触发操作,获取数据分发业务的流程名称或者流程描述的输入数据。在步骤234中,电子设备可以响应于检测到表征保存输入数据的触发操作,保存输入数据并关闭弹框,获得位于工作空间区域内的数据分发业务的业务流程。需要说明的是,此时新增的业务流程仅是一个名称,还未对该业务流程进行配置。
例如,电子设备可以在显示界面内工作空间区域列表。用户可以点击需要进入的某个工作空间,显示界面可以跳转到工作台编辑区页面。然后,用户可以点击业务流程标题,此时标题下方可以弹出新建业务流程按钮。若点击新建业务流程按钮可以再弹出一个新建流程弹框,该新建流程弹框可包括流程名称和流程描述等,效果如图24所示。此时,用户可以在弹框内填入流程名称和流程描述,填完后点击下方的确定按钮。此时电子设备可以调用API接口保存流程信息,关闭弹框后可以在业务流程下面展示出刚刚新增的业务流程。
在步骤42中,响应于检测到表征拖动节点插件到画布的触发操作,获得业务流程的多个节点插件。
本实施例中,电子设备可以获取数据分发业务的业务流程的节点插件。参见图25,在步骤251中,电子设备可以响应于检测到表征打开业务流程的触发操作,显示业务流程的工作台;该工作台包括显示若干个不同类型的节点插件的区域以及显示画布的区域。工作台中的节点插件即是在步骤41中所预置的节点插件,此时均在工作台中显示,方便用户选择。在步骤252中,电子设备可以响应于检测到表征拖动任一个节点插件的触发操作,将所拖动的节点插件移动到所述画布之内。可理解的是,用户拖动的节点插件即是数据分发业务所需要的插件。在步骤253中,电子设备可以响应于检测到表征保存画布中节点插件的触发操作,保存位于画布中的节点插件并关闭工作台,获得业务流程的多个节点插件。
例如,在新建的业务流程后,用户可以点击刚刚新建的业务流程,此时可以在显示区域中业务流程队列的右侧展开该业务流程的工作台,效果如图26所示。图26所示的工作台包括左边的节点插件和右边的画布。其中节点插件可以包括数据集成类型的路由通道节点,过滤脚本类型的JS脚本、SQL脚本和Jar脚本节点,消息队列类型的MQTT消息队列、Kafka消息队列和AMQP消息队列节点,数据表类型的MySQL数据表、TIDB数据表和HBase数据表节点,算法函数类型的离线计算和实时计算节点等。用户可以将业务流程所需要的节点插件拖动到画布之内,生成一个基础插件。
其中,用户可以根据数据分发业务的需求任意串联处理插件集合中的插件,以达到数据获取、转换、过滤、计算以及存储的目的。例如先选择一个开始节点,然后在开始节点之后添加通道插件集合中的插件,之后再添加处理插件集合中的插件,从而实现相应消息队列的数据传输、处理和分发。其中,若不添加消息队列,***将使用提前设置好的或者默认的消息队列进行数据传输。具体实现时,处理插件中的插件之后还可以包括上层业务***,通过外部接口Zopen API进行数据查询或实时显示。
在将其中一个节点插件移入画布内之后,可以配置流程节点插件的信息。参见图27,在步骤271中,在画布之内生成一个未配置插件。在步骤272中,电子设备可以响应于检测到表征编辑未配置插件的触发操作,例如点击、双击等方式打开未配置插件的标签页,标签页内包括初始节点插件所需要配置的信息项。当检测到用户点击各信息项时,用户可以在各信息项的编辑框内输入信息,电子设备可以获取各信息项对应的输入信息。在步骤273中,电子设备可以响应于检测到表征保存各信息项的输入信息的触发操作,保存各信息项的输入信息并关闭各信息项的标签页,获得业务流程的多个节点插件。
以配置路由通道节点插件为例,用户可以双击画布中的路由通道节点插件,此时会在流程工作台上生成一个标签页。该标签页内包括流程节点名称、简介、数据源信息和数据筛选等。用户可以先填写基本信息中的节点名称和简介;然后,再选择数据源信息,选择数据源信息后再选择相关联的路由信息。之后,进行数据筛选的选择,点击下面的“增加一行”的按钮,弹出一个弹框,里面有可以选择的数据源列表信息,选择需要的数据源信息,点击确定按钮,生成筛选后的数据源的列表信息;最后,点击保存插件的按钮,电子设备可以调用保存路由通道节点插件的API接口保存路由通道节点配置的信息,保存成功后关闭标签页,并在画布变成一个完整的业务流程节点。
以配置Jar脚本节点信息为例,电子设备可以根据用户的触发操作显示MYSQL数据表的标签页,效果如图28所示。参见图28,该标签页包括:流程节点类型、流程节点名称、简介、数据源、选择数据表、数据表结构等内容。用户可以先填写基本信息中的节点名称和简介;然后,点击下方的一个文件上传按钮,选择需要的jar脚本文件上传,电子设备在调用API接口上传文件成功后可以返回一个文件下载地址,并自动填入到一个插件地址信息输入框里面;最后,电子设备可以检测到用户点击保存插件的按钮后,可以调用保存插件的API接口保存Jar脚本节点配置的信息,保存成功后关闭标签页,并在画布变成一个完整的业务流程节点。
以配置MQTT消息队列节点信息为例,电子设备可以根据用户的触发操作显示MYSQL数据表的标签页,效果如图16所示。该标签页内包括流程节点类型、流程节点名称、简介、数据源、通信协议(如TCP、WebSocket)、主题、执行动作、是否保留信息、是否延迟发布、消息重传(如消息最多发送一次、消息至少发送一次、消息只送达一次)和是否启用分组订阅等。可以先填写基本信息中的节点名称和简介;然后,再选择数据源信息,包括选择通信协议类型和选择topic类型;之后,再选择执行动作、是否保留消息、是否延迟发布、延迟发布的话需要延迟多少秒、选择消息重传多少次、是否启用分组订阅;最后,电子设备可以在检测到用户点击保存插件的按钮后,调用保存插件的API接口保存MQTT消息队列节点配置的信息;在保存成功后可以关闭标签页,并在画布变成一个完整的业务流程节点。
在步骤43中,响应于检测到表征连接各节点插件的触发操作,获得到业务流程的配置信息,所述配置信息是数据源端到数据接收端的数据分发流程。
本实施例中,在选择并配置各节点插件后,可以连接各节点插件得到业务流程,参见图29,在步骤291中,电子设备可以响应于检测到表征连接两个节点插件的触发操作,连接存在逻辑关系的两个节点插件。在步骤292中,电子设备可以响应于检测到表征提交节点插件关系的触发操作,调用各节点插件对应的API接口,获得业务流程的配置信息。可理解的是,此时工作空间区域内的业务流程构成一个从数据源端到数据接收端流程传输、计算、筛选和分发的通道。
需要说明的是,本实施例中,业务流程关系图从流程开始节点开始,流程开始节点必须先连至少一个节点插件。并且,一个节点插件可以连接多个其他节点,也可以被其他多个不同节点连接。但是,本实施例中不支持两个节点之间的连线回环,如A节点插件连接B节点插件后,B节点插件不能再连接回A节点插件。同时,两个节点插件之间不能重复连线创建关系。这样,按照以上方式把需要创建的业务流程关系用线连接起来后,最后点击提交按钮。此时电子设备可以调用各节点插件相关的API接口保存业务流程关系信息,并在接口调用成功后成功构建一个业务流程,效果如图30所示。
可理解的是,在连接过程中,电子设备还可以判断两个节点是否符合通道节点位于初始插件集合和处理插件集合之间,或者位于处理插件集合中两个插件之间,在满足条件时才允许连线,否则无法连线。
可理解的是,数据分发业务的业务流程可以图3所示的,数据从资产到TIDB数据库的传输通道,从资产到数据存储节点或apaache kafka的传输通道,从资产到Zmessage、SDK、资产、邮件、短信等传输通道。
至此,本公开实施例中可以创建数据分发业务的业务流程;然后,在获取所述业务流程的工作台中选择所述数据分发业务所需要的节点插件移入画布中,获得业务流程的多个节点插件;之后,连接各节点插件得到业务流程的配置信息。这样,本实施例中可以根据数据分发业务建立业务流程,即根据业务流程的配置信息将数据源端的设备数据通过API接口同步到各种不同的接收端,无需用户关注具体的实现逻辑即可以完成规则的设置;并且,本实施例中可以对数据源端和数据接收端进行业务分离,可以对数据接收线程弹性伸缩,多业务流程并发改造,有利于充分利用服务器的资源,提升服务器进行数据分发的性能。
在图1所示的一种数据分发***的基础上,本公开实施例还提供了一种数据分发方法,图31是根据一示例性实施例示出的一种数据分发方法的流程图。参见图31,一种数据分发方法,包括:
在步骤311中,获取外部设备上报的设备数据;
在步骤312中,将所述设备数据转换为预设产品模型数据,并存储到消息队列;
在步骤313中,将从所述消息队列获取的预设产品模型数据进行分发操作。
在一实施例中,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
在一实施例中,将从所述第二消息队列获取的预设产品模型数据进行分发操作,包括:
获取初始配置数据;所述初始配置数据包括表征是否采用预设算法处理所述预设产品模型数据的配置数据;
当所述初始配置数据包括表征采用预设算法处理所述预设产品模型数据的配置数据时,获取用于所述预设产品模型数据的数据处理算法;所述数据处理算法包括离线算法或者实时算法;
基于所述离线算法或者所述实时算法处理所述预设产品模型数据,获得处理结果;
存储或者推送所述处理结果。
在一实施例中,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
将所述预设产品模型数据推送给键值存储***,以使所述键值存储***确定所述预设产品模型数据是否需要触发规则引擎;
响应于需要触发规则引擎时,判断所述预设产品模型数据对应的节点是否需要触发;
当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备。
在一实施例中,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
基于所述预设策略将所述预设产品模型数据存储到预设数据库内,以使外部业务***通过所述预设数据库来获取所述预设产品模型数据。
在一实施例中,获取外部设备上报的设备数据,包括:
获取预设数据协议;
当若所述设备数据满足所述预设数据协议,将所述设备数据存储到第一消息队列;若所述设备数据不满足所述数据协议,则通过SDK进行协议转换得到满足预设数据协议的设备数据并存储到所述第一消息队列。
可理解的是,本公开实施例提供的方法与上述数据分发***相对应,具体内容可以参考平台各实施例的内容,在此不再赘述。
在图4所示的一种数据分发流程配置方法的基础上,本公开实施例还提供了一种数据分发流程配置装置,图32是根据一示例性实施例示出的一种数据分发流程配置装置的框图。参见图32,一种数据分发流程配置装置,包括:
工作台显示模块321,用于响应于检测到表征创建数据分发业务的业务流程的触发操作,显示所述业务流程的工作台;所述工作台包括显示节点插件的区域和显示画布的区域;
节点插件获取模块322,用于响应于检测到表征拖动节点插件到画布的触发操作,获得业务流程的多个节点插件;
配置信息获取模块323,用于响应于检测到表征连接各节点插件的触发操作,获得到业务流程的配置信息,所述配置信息是数据源端到数据接收端的数据分发流程。
在一实施例中,业务流程创建模块,用于创建数据分发业务的业务流程;
节点插件获取模块,用于在所述业务流程的工作台中选择所述数据分发业务所需要的节点插件移入画布中,获得业务流程的多个节点插件;所述工作台包括显示节点插件的区域和显示画布的区域;
配置信息获取模块,用于连接各节点插件得到业务流程的配置信息,所述配置信息是数据源端到数据接收端的数据分发流程。
在一实施例中,业务流程的节点插件属于以下一种:初始插件集合,通道插件集合,处理插件集合;其中,
所述通道插件集合中各插件位于所述初始插件集合中各插件和所述处理插件集合中各插件之间,或者位于所述处理插件集合中的两个插件之间;
所述处理插件集合包括以下至少一种:数据库插件集合、过滤脚本插件集合和算法插件集合。
在一实施例中,所述初始插件集合包括数据集成插件,所述数据集成插件为与各外部设备映射的产品插件,用于选择产品数据源;
所述通道插件集合包括消息队列插件集合,所述消息队列插件集合用于选择数据源的消息队列实例,包括以下至少一种:MQTT消息队列插件、Kafka消息队列插件和AMQP消息队列插件;
所述处理插件集合包括以下至少一种:数据库插件集合、过滤脚本插件集合和算法插件集合;
所述数据库插件集合中各插件用于选择数据源存储节点的实例,以及存储节点实例的信息,包括以下至少一种:MYSQL数据表插件、TIDB数据表插件和HBase数据表插件;
所述过滤脚本插件集合中各插件用于选择数据中所需要的数据项,包括以下至少一种:JS脚本插件、jar包插件、python脚本插件或PHP脚本插件;
所述算法插件集合中各插件用于计算数据,包括以下至少一种:离线算法插件和实时算法插件。
在一实施例中,所述节点插件获取模块包括:
节点插件移动单元,用于响应于检测到表征拖动任一个节点插件的触发操作,将所拖动的节点插件移动到所述画布之内;所拖动的节点插件为所述数据分发业务所需要的插件;
节点插件保存单元,用于响应于检测到表征保存所述画布中节点插件的触发操作,保存位于所述画布中的节点插件并关闭所述工作台,获得所述业务流程的节点插件。
在一实施例中,所述节点插件移动单元包括:
未配插件生成子单元,用于在所述画布之内生成所拖动节点插件对应的未配置插件;
输入信息获取子单元,用于响应于检测到表征编辑所述未配置插件的触发操作,通过所述未配置插件的标签页获取所述标签页中各信息项对应的输入信息;
输入信息保存子单元,用于响应于检测到表征保存各信息项的输入信息的触发操作,保存各信息项的输入信息并关闭各信息项的标签页,获得所述业务流程的节点插件。
在一实施例中,所述配置信息获取模块包括:
节点插件连接单元,用于响应于检测到表征连接两个节点插件的触发操作,连接存在逻辑关系的两个节点插件;
业务流程获取单元,用于响应于检测到表征提交节点插件关系的触发操作,调用各节点插件对应的API接口,获得业务流程的配置信息。
在一实施例中,所述装置还包括空间匹配创建模块,所述空间匹配创建模块包括:
第一弹框显示单元,用于响应于检测到表征创建工作空间的触发操作,在显示区域内显示第一弹框;所述第一弹框内包括工作空间名称、别名、logo图片、空间描述中的至少一项内容;
输入数据获取单元,用于响应于检测到表征输入任一项内容的触发操作,获取针对该项内容的输入数据;
空间区域获取单元,用于响应于检测到表征保存输入数据的触发操作,保存输入数据并关闭弹框,获得工作空间区域。
在一实施例中,所述业务流程创建模块包括:
编辑页面显示单元,用于响应于检测到表征编辑工作空间区域的触发操作,在显示区域内显示工作空间区域的编辑区页面;所述编辑区页面包括新建业务流程按键;
流程弹框显示单元,用于响应于检测到表征选择新建业务流程按键的触发操作,显示新建流程弹框;所述新建流程弹框内包括流程名称和流程描述;
输入数据获取单元,用于响应于检测到表征填写流程名称或者流程描述的触发操作,获取所述数据分发业务的流程名称或者流程描述的输入数据;
输入数据保存单元,用于响应于检测到表征保存输入数据的触发操作,保存输入数据并关闭弹框,获得位于所述工作空间区域内的数据分发业务的业务流程。
可理解的是,本公开实施例提供的装置与图4所示方法相对应,具体内容可以参考方法各实施例的内容,在此不再赘述。
在示例性实施例中,还提供了一种电子设备,包括:
至少一个处理器;
用于存储所述处理器可执行的计算机程序的至少一个存储器;
其中,所述至少一个处理器被配置为执行所述至少一个存储器中的计算机程序,以实现上述方法的步骤。
在示例性实施例中,还提供了一种包括可执行的计算机可读存储介质,例如包括指令的存储器,上述可执行的计算机程序可由处理器执行,以实现如图1所述方法的步骤。其中,可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
在本申请中,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储
装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或
者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (13)

1.一种数据分发***,其特征在于,包括通道配置模块、数据引擎模块、数据处理模块、规则引擎模块、预设数据库和外部接口模块;
所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;
所述数据引擎模块与所述通道配置模块连接,用于将从所述消息队列获取的预设产品模型数据分发给所述预设数据库,或者生成控制指令发送给所述数据处理模块、所述规则引擎模块;
所述数据处理模块用于响应于所述控制指令选用预设的离线算法或者实时算法来处理所述预设产品模型数据,并实时推送处理结果或者存储处理结果;
所述规则引擎模块用于响应于所述控制指令判断所述预设产品模型数据对应的节点是否需要触发;当需要触发时先获取所述节点的节点类型,再根据所述类型调整信息或数据的发送方式或者格式得到预设类型的触发信息,最后向所述节点发送预设类型的触发信息,或者当所述节点不支持MQTT协议时将信息或者数据通过SDK协议转换后再生成预设格式的触发信息并发送给被触发的节点;当不需要触发时将所述预设产品模型数据发送到外部设备;
所述外部接口模块用于响应于外部业务***的调用请求从所述预设数据库内反馈所述预设产品模型数据。
2.根据权利要求1所述的数据分发***,其特征在于,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
3.根据权利要求1所述的数据分发***,其特征在于,所述数据处理模块与所述数据引擎模块连接;
所述数据引擎模块还用于根据初始配置数据生成控制指令并发送给所述数据处理模块。
4.根据权利要求1所述的数据分发***,其特征在于,所述规则引擎模块与所述数据引擎模块连接;
所述数据引擎模块还用于在预设产品模型数据需要触发规则引擎时生成控制指令并发送给所述规则引擎模块。
5.根据权利要求4所述的数据分发***,其特征在于,所述数据引擎模块还用于将所述预设产品模型数据推送给预设的缓存,由所述缓存确定所述预设产品模型数据对应的节点是否需要触发。
6.一种数据分发方法,其特征在于,应用于权利要求1所述的数据分发***,所述方法包括:
获取外部设备上报的设备数据;
将所述设备数据转换为预设产品模型数据,并存储到消息队列;
将从所述消息队列获取的预设产品模型数据进行分发操作,包括:响应于控制指令判断所述预设产品模型数据对应的节点是否需要触发;当需要触发时先获取所述节点的节点类型,再根据所述类型调整信息或数据的发送方式或者格式得到预设类型的触发信息,最后向所述节点发送预设类型的触发信息,或者当所述节点不支持MQTT协议时将信息或者数据通过SDK协议转换后再生成预设格式的触发信息并发送给被触发的节点;当不需要触发时将所述预设产品模型数据发送到外部设备。
7.根据权利要求6所述的数据分发方法,其特征在于,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
8.根据权利要求6所述的数据分发方法,其特征在于,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
获取初始配置数据;所述初始配置数据包括表征是否采用预设算法处理所述预设产品模型数据的配置数据;
当所述初始配置数据包括表征采用预设算法处理所述预设产品模型数据的配置数据时,获取用于所述预设产品模型数据的数据处理算法;所述数据处理算法包括离线算法或者实时算法;
基于所述离线算法或者所述实时算法处理所述预设产品模型数据,获得处理结果;
存储或者推送所述处理结果。
9.根据权利要求6所述的数据分发方法,其特征在于,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
将所述预设产品模型数据推送给缓存,以使所述缓存确定所述预设产品模型数据是否需要触发规则引擎。
10.根据权利要求6所述的数据分发方法,其特征在于,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
基于预设策略将所述预设产品模型数据存储到预设数据库内,以使外部业务***通过所述预设数据库来获取所述预设产品模型数据。
11.根据权利要求6所述的数据分发方法,其特征在于,获取外部设备上报的设备数据,包括:
获取预设数据协议;
当若所述设备数据满足所述预设数据协议,将所述设备数据存储到第一消息队列;若所述设备数据不满足所述数据协议,则通过SDK进行协议转换得到满足预设数据协议的设备数据并存储到所述第一消息队列。
12.一种电子设备,其特征在于,包括:
至少一个处理器;
用于存储所述处理器可执行的计算机程序的至少一个存储器;
其中,所述至少一个处理器被配置为执行所述至少一个存储器中的计算机程序,以实现如权利要求6~11任一项所述方法。
13.一种计算机可读存储介质,其特征在于,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如权利要求6~11任一项所述方法。
CN202080002860.2A 2020-11-18 2020-11-18 数据分发***及数据分发方法 Active CN114830615B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/129891 WO2022104611A1 (zh) 2020-11-18 2020-11-18 数据分发***及数据分发方法

Publications (2)

Publication Number Publication Date
CN114830615A CN114830615A (zh) 2022-07-29
CN114830615B true CN114830615B (zh) 2024-05-10

Family

ID=81708140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080002860.2A Active CN114830615B (zh) 2020-11-18 2020-11-18 数据分发***及数据分发方法

Country Status (3)

Country Link
US (1) US11762719B2 (zh)
CN (1) CN114830615B (zh)
WO (1) WO2022104611A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438233A (zh) * 2021-06-21 2021-09-24 北京交通大学 一种协议之间相互转换的方法
CN114706918B (zh) * 2022-06-01 2022-09-16 杭州安恒信息技术股份有限公司 一种多类型数据库兼容方法、装置、设备、存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108173874A (zh) * 2018-01-29 2018-06-15 海尔优家智能科技(北京)有限公司 一种智能设备管理方法、平台、***、介质和设备
CN108200190A (zh) * 2018-01-26 2018-06-22 青岛国信发展(集团)有限责任公司 基于云计算的物联网数据服务***和方法
CN109889551A (zh) * 2019-04-16 2019-06-14 湖南树华环保科技有限公司 一种智能硬件接入的物联网云平台的方法
CN111061804A (zh) * 2019-10-30 2020-04-24 平安科技(深圳)有限公司 基于大数据的异步数据处理方法、装置、设备和存储介质
CN111083128A (zh) * 2019-12-06 2020-04-28 北京海兰信数据科技股份有限公司 船舶数据的处理方法、装置及设备
CN111641524A (zh) * 2020-05-25 2020-09-08 北京青云科技股份有限公司 监控数据处理方法、装置、设备和存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839387B2 (en) * 2009-01-28 2014-09-16 Headwater Partners I Llc Roaming services network and overlay networks
US9924044B2 (en) * 2011-01-20 2018-03-20 Verizon Patent And Licensing Inc. Recommendations based on real-time usage information
CN103166813B (zh) * 2011-12-14 2016-03-23 中国电信股份有限公司 一种支持多厂家设备接入物联网的方法和***
US10002033B2 (en) * 2012-02-07 2018-06-19 Microsoft Technology Licensing, Llc Efficiently receiving messages across a large number of messaging entities
US8898298B2 (en) * 2012-08-27 2014-11-25 Sap Se Process observer and event type linkage
CN108668357B (zh) * 2013-05-23 2021-07-02 华为技术有限公司 位置区管理方法及设备
CN111467644B (zh) * 2013-07-08 2023-04-11 瑞思迈传感器技术有限公司 用于睡眠管理的方法和***
CN105094747B (zh) * 2014-05-07 2018-12-04 阿里巴巴集团控股有限公司 基于smt的中央处理单元以及用于检测指令的数据相关性的装置
US10055708B2 (en) * 2014-09-09 2018-08-21 Halcyon Consulting, LLC Vehicle inventory verification system, apparatus and method cross reference to related applications
US10395177B2 (en) * 2015-12-10 2019-08-27 Microsoft Technology Licensing, Llc Optimized execution order correlation with production listing order
US10282229B2 (en) * 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
EP3495958B1 (en) * 2016-08-31 2020-07-08 Huawei Technologies Co., Ltd. Flash memory medium access method and controller
WO2019037846A1 (en) * 2017-08-23 2019-02-28 NEC Laboratories Europe GmbH SERVICE LEVEL MONITORING MONITORING METHOD IN A SOFTWARE DEFINED NETWORK AND CORRESPONDING SOFTWARE DEFINED NETWORK
GB2574903A (en) 2018-06-18 2019-12-25 Arm Ip Ltd Compilable data model
CN111294285B (zh) 2018-12-07 2022-10-28 网宿科技股份有限公司 一种网络数据的分发方法及负载均衡器
US11188396B2 (en) * 2019-09-09 2021-11-30 International Business Machines Corporation Pending notification deletion through autonomous removal triggering
CN111291103B (zh) 2020-01-19 2023-11-24 北京有竹居网络技术有限公司 接口数据的解析方法、装置、电子设备及存储介质
CN111294401B (zh) * 2020-02-10 2022-04-01 泰华智慧产业集团股份有限公司 一种物联网设备接入方法及装置
CN111953777B (zh) 2020-08-12 2022-10-25 北京泊菲莱科技有限公司 一种物联网平台接入设备管理***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108200190A (zh) * 2018-01-26 2018-06-22 青岛国信发展(集团)有限责任公司 基于云计算的物联网数据服务***和方法
CN108173874A (zh) * 2018-01-29 2018-06-15 海尔优家智能科技(北京)有限公司 一种智能设备管理方法、平台、***、介质和设备
CN109889551A (zh) * 2019-04-16 2019-06-14 湖南树华环保科技有限公司 一种智能硬件接入的物联网云平台的方法
CN111061804A (zh) * 2019-10-30 2020-04-24 平安科技(深圳)有限公司 基于大数据的异步数据处理方法、装置、设备和存储介质
CN111083128A (zh) * 2019-12-06 2020-04-28 北京海兰信数据科技股份有限公司 船舶数据的处理方法、装置及设备
CN111641524A (zh) * 2020-05-25 2020-09-08 北京青云科技股份有限公司 监控数据处理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
US11762719B2 (en) 2023-09-19
CN114830615A (zh) 2022-07-29
WO2022104611A1 (zh) 2022-05-27
US20220350685A1 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
US20220294850A1 (en) Cloud storage methods and systems
US9450895B2 (en) Context-aware dynamic policy selection for messaging behavior
CN114830080B (zh) 数据分发流程配置方法及装置、电子设备、存储介质
CN114830615B (zh) 数据分发***及数据分发方法
Distefano et al. Device-centric sensing: an alternative to data-centric approaches
EP3213462A1 (en) Network management using adaptive policy
Pham et al. Optimized IoT service chain implementation in edge cloud platform: a deep learning framework
CN115525302A (zh) 一种大规模数字对象仓库集群的部署方法及装置
Perez et al. A monitoring framework for multi-site 5G platforms
US20220374443A1 (en) Generation of data pipelines based on combined technologies and licenses
Petrović Model-based approach for semantic-driven deployment of containerized applications to support future internet services and architectures
US11397713B2 (en) Historical graph database
US20220342742A1 (en) Graphical management of big data pipelines
He et al. Software-defined efficient service reconstruction in fog using content awareness and weighted graph
Bertelsen et al. Federated publish/subscribe services
KR20220082768A (ko) 클라우드에서의 지능형 비디오 빅데이터 분석 시스템 및 그 방법
US10657155B2 (en) Device for processing large-scale data streams
Pettenati et al. Towards a RESTful Architecture for Managing a Global Distributed Interlinked Data-Content-Information Space.
Arora Cloud Native Network Slice Orchestration in 5G and Beyond
Contu et al. Deploying Use Case Specific Network Slices Using An OSM Automation Platform
Petrovic Framework for model-driven semantic-enabled deployment of container-based virtual network functions to support edge computing and future internet services
CN114745380B (zh) 基于服务网格的跨私网多集群管理方法及装置
US20230418963A1 (en) Edge data processing utilizing per-endpoint subscriber configurable data processing workloads
CN113098942B (zh) 一种分布式***的数据处理方法及装置
CN117406960A (zh) 一种敏捷分析场景的低代码社交数据计算平台和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant