一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种工业互联网平台的设备数据处理方法及系统与流程

2022-11-19 15:47:46 来源:中国专利 TAG:


1.本发明涉及工业互联网平台领域,具体的说,是涉及一种工业互联网平台的设备数据处理方法及系统。


背景技术:

2.近年来,随着信息通信技术的广泛、深度应用,制造业与互联网融合发展不断深化,为工业互联网进一步发展打下了良好基础,也涌现出了众多的工业互联网平台。
3.工业场景下的设备会基于mqtt协议,以设备为mqtt客户端,以工业互联网平台为mqtt服务端,实现设备的接入、数据上报等。而设备作为mqtt客户端时,需要通过嵌入式开发,把设备和平台的交互逻辑写死在硬件程序中,再将硬件焊接在设备上。因此,设备向工业互联网平台上传数据时,会以固定的数据模型去传递,包括字段名、字段类型、数据长度、单位等。
4.而企业使用的设备来自于不同的厂商,即使是同一厂商,设备型号、版本也会有不同,导致上报数据时使用的数据模型也会不同,然而,它们所表达的含义可能是相同的。比如设备的用电量,a设备上报数据为{“50001”:2000},b设备上报数据为{“electric”:2.0},他们表示的都是设备用电量为2kw/h,但字段名、数据类型、单位都不相同。故需要将表示同一含义的数据整合在一起,形成标准化的数据,才方便第三方应用端获取数据信息。
5.为了让数据标准化,要求不同企业采购同一厂商、同一型号、同一版本的设备,是不现实的;若去修改设备上的硬件程序以达到标准化,则需要耗费大量的人力、财力;若要求第三方应用端去解析数据,形成标准化,则会做很多重复性的工作,且解析方式不同,数据的一致性也不能保障,此方式容错率低,且工作量大。
6.有人提出在服务端完成数据接收、处理和上报,在服务端将数据统一处理好之后再上报,该方式会增加服务端的负荷,影响服务端稳定性,导致其与设备连接断开、丢失数据;更新数据处理功能时,也容易丢失数据。
7.以上问题,值得解决。


技术实现要素:

8.为了应对数据采集时上报含义相同但数据模型不同导致的数据不统一的情况,同时避免增加服务端的负荷,影响系统稳定性,导致存在丢失数据的风险,本发明提供一种简单灵活的、扩展性强的,对用户和平台影响最小的工业互联网平台的设备数据处理方法及系统,实现数据的标准化处理。
9.本发明技术方案如下所述:
10.一种工业互联网平台的设备数据处理方法,建立一个与接入机所在链路并行的、并可将原始数据转换成标准数据的数据处理服务,该数据处理服务获取接入机上传的原始数据并执行数据处理,使得接入机所在链路仅做数据传输,包括如下步骤:
11.步骤1、接入机作为kafka系统的生产端,将原始数据发送到kafka系统的第一主题
中;
12.步骤2、建立一个数据处理服务作为kafka系统的第一消费端,从kafka系统的第一主题中消费原始数据;
13.步骤3、数据处理服务查询预先上传的数据转化脚本;
14.步骤4、数据处理服务执行与原始数据对应的数据转换脚本,将原始数据转换为标准数据,发送到kafka系统的第二主题中待其他消费端消费。
15.根据上述方案的本发明,所述接入机为mqtt服务器,不同的设备通过mqtt协议将各自的原始数据发送到mqtt服务器。
16.根据上述方案的本发明,所述步骤3包括如下步骤:
17.s301、预先上传数据转换脚本;
18.s302、数据服务查询对应的数据转换脚本。
19.进一步的,所述预先上传数据转换脚本,具体为:
20.利用控制台将数据转换脚本以消息的形式发送至rabbitmq系统的其中一个消息队列,数据处理服务订阅该消息队列,并获取脚本消息;
21.数据处理服务解析所述脚本消息,并以productkey与streamname的组合为键名,将所述脚本消息更新到本地缓存装置。
22.根据上述方案的本发明,所述控制台还包括用于删除rabbitmq系统消息队列中的脚本消息。
23.进一步的,所述数据服务查询对应的数据转换脚本,具体为:
24.查询本地缓存装置中的脚本消息;
25.判断是否存在与原始数据对应的脚本消息,对应规则包括:原始数据与脚本消息携带的键名一致;
26.若存在,则进入步骤4,执行该脚本消息;
27.若不存在,则直接将原始数据发送到kafka系统的第二主题。
28.根据上述方案的本发明,所述数据转换脚本为js脚本,js脚本的方法名为datastream_productkey_streamname(byte),其中datastream表示脚本作用于数据流,productkey表示设备所属产品的唯一标识,streamname表示数据流模型的标识,byte表示设备原始数据的二进制流。
29.进一步的,所述数据转换脚本的方法内容包括修改原始数据的结构、修改数据类型、修改值,所述数据转换脚本的返回值为设备的标准数据。
30.根据上述方案的本发明,在步骤4之后还包括:步骤5、第三方应用端作为kafka系统的第二消费端,从kafka系统的第二主题中消费数据。
31.本发明还提供一种工业互联网平台的设备数据处理系统,用于运行上述方案的工业互联网平台的设备数据处理方法,包括kafka系统和rabbitmq系统,还包括:
32.若干设备,用于生成、传输原始数据;
33.接入机,用于接收设备的原始数据,并作为kafka系统的生产端将原始数据生产至kafka系统;
34.数据处理服务,作为kafka系统的第一消费端,用于从kafka系统的第一主题中消费数据,并发送数据到kafka系统的第二主题;数据处理服务还作为rabbitmq系统的消费
端,用于从rabbitmq系统获取、解析消息;
35.本地缓存装置,用于存储数据处理服务解析后的脚本消息;
36.控制台,作为rabbitmq系统的生产端,用于发送脚本消息;
37.第三方应用端,作为kafka系统的第二消费端,用于从kafka系统的第二主题中消费数据。
38.根据上述方案的本发明,其有益效果在于:
39.本发明不仅实现直接生成标准化数据,解决了不同设备带来的数据模型各不相同的困扰,例如减少了第三方应用端的工作量,避免因各应用端处理数据方式的差异化,造成的数据不一致;
40.而且通过建立一个与接入机所在链路并行的、并可将原始数据转换成标准数据的数据处理服务,数据处理服务消费数据做逻辑处理,而服务端即接入机不负责业务处理,只需要接收设备的数据再上传,最终实现数据上传和数据处理的解耦;因此,即使处理数据的逻辑发生改变、扩展了其他功能,也只会影响数据处理服务,不会影响接入机导致设备连接断开、丢失数据;更新数据处理服务时,只会出现短暂的消费延迟,不会丢失数据。
附图说明
41.图1为本发明的数据处理流程图。
具体实施方式
42.为了更好地理解本发明的目的、技术方案以及技术效果,以下结合附图和实施例对本发明进行进一步的讲解说明。同时声明,以下所描述的实施例仅用于解释本发明,并不用于限定本发明。
43.需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。
44.术语“第一”、“第二”仅用于便于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明技术特征的数量。“若干”的含义是两个或两个以上,除非另有明确具体地限定。
45.为了使本领域技术人员更容易理解本发明实施例的技术方案,先对本发明涉及的技术名词以及前期的技术流程进行解释说明:
46.kafka系统,是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据,包括:
47.producer——消息和数据的生成者/生产端,可以向kafka的一个topic发布消息;
48.consumer——消息和数据的消费者/消费端,可以订阅topic并处理其发布的消费;
49.topic(主题)——物理上的分组,一个topic可以分为多个partion(分区),每个partion是一个有序的队列;partion中每条消息都会被分配一个有序的id(offset);
50.消息——是通信的基本单位,每个producer可以向一个topic发布一些消息。
51.rabbitmq系统,是一种实现了高级消息队列协议(amqp)的面向消息的中间件;每
个producer(生产端)或者consumer(消费端)要通过rabbitmq系统发送与消费消息,首先就要与rabbitmq系统建立连接,这个连接就是connection,connection是一个tcp长连接。
52.第三方应用端,指需要从本系统获取数据信息的其他微服务/应用平台。
53.如图1所示,本发明提供一种工业互联网平台的设备数据处理方法,具体地,建立一个与接入机所在链路并行的、并可将原始数据转换成标准数据的数据处理服务(data-processing-service),该数据处理服务获取接入机上传的原始数据并执行数据处理,使得接入机所在链路仅做数据传输,包括如下步骤:
54.步骤1、接入机作为kafka系统的生产端,将原始数据发送到kafka系统的第一主题中(即原始数据主题,origin-data-topic);所述接入机为mqtt服务器,不同的设备通过mqtt协议将各自的原始数据发送到mqtt服务器。
55.步骤2、建立一个数据处理服务作为kafka系统的第一消费端,从kafka系统的第一主题中消费原始数据。
56.步骤3、数据处理服务查询预先上传的数据转化脚本;具体包括如下步骤:
57.步骤301、预先上传数据转换脚本:
58.利用控制台将数据转换脚本以消息的形式发送至rabbitmq系统的其中一个消息队列,数据处理服务订阅该消息队列,消息到达rabbitmq后,就会立即推送给数据处理服务,并获取脚本消息;控制台还包括用于删除rabbitmq系统消息队列中的脚本消息;同时,为了避免有人通过脚本进行恶意攻击,用户上传的脚本需要管理人员做审核,或者只让某些角色拥有上传脚本的权限。
59.数据处理服务解析所述脚本消息,并以productkey与streamname的组合为键名,将所述脚本消息更新到本地缓存装置。
60.步骤s302、数据服务查询对应的数据转换脚本:
61.查询本地缓存装置中的脚本消息;
62.由于设备原始数据上传时,同样会携带productkey和streamname,故可判断原始数据与脚本消息是否存在对应,对应规则包括:原始数据与脚本消息携带的键名一致;
63.若存在与原始数据对应的脚本消息,执行步骤4、数据处理服务执行与原始数据对应的数据转换脚本,将原始数据转换为标准数据,并发送到kafka系统的第二主题中(即标准数据主题,normal-data-topic),待其他消费端消费;具体地:
64.执行对应的脚本消息,执行后的返回值发送到kafka系统的第二主题,完成原始数据转换成标准数据;所述数据转换脚本为js脚本,js脚本的方法名为datastream_productkey_streamname(byte),其中datastream表示脚本作用于数据流,productkey表示设备所属产品的唯一标识,streamname表示数据流模型的标识,byte表示设备原始数据的二进制流;js脚本的代码段如下:
[0065][0066]
会将原始数据{"a":100,"b":200}转换为标准数据{"a":100,"aa":100,"c":200};
[0067]
上述数据转换脚本的方法内容包括修改原始数据的结构、修改数据类型、修改值,所述数据转换脚本的返回值为设备的标准数据。
[0068]
若不存在与原始数据对应的脚本消息,则直接将原始数据发送到kafka系统的第二主题;此时为两种情况:第一种情况,原始数据的数据模型本身为标准数据的模型,其他消费端成功消费;第二种情况,原始数据的数据模型不是标准数据的模型,其他消费端消费后,获取错误信息提醒,服务端得知数据转换脚本存在类型的缺失,利用控制台增添新的数据转换脚本入库(本地缓存装置)即可。
[0069]
步骤5、第三方应用端作为kafka系统的第二消费端,从kafka系统的第二主题中消费数据。
[0070]
综上所述,本发明通过建立一个与接入机所在链路并行的、并可将原始数据转换成标准数据的数据处理服务,数据处理服务消费数据做逻辑处理,而服务端即接入机不负责业务处理,只需要接收设备的数据再上传,最终实现数据上传和数据处理的解耦。
[0071]
本发明还提供一种工业互联网平台的设备数据处理系统,用于运行上述方案的工业互联网平台的设备数据处理方法,包括kafka系统和rabbitmq系统,还包括:
[0072]
若干设备,用于生成、传输原始数据;
[0073]
接入机,用于接收设备的原始数据,并作为kafka系统的生产端将原始数据生产至kafka系统;
[0074]
数据处理服务,作为kafka系统的第一消费端,用于从kafka系统的第一主题中消费数据,并发送数据到kafka系统的第二主题;数据处理服务还作为rabbitmq系统的消费端,用于从rabbitmq系统获取、解析消息;
[0075]
本地缓存装置,用于存储数据处理服务解析后的脚本消息;
[0076]
控制台,作为rabbitmq系统的生产端,用于发送脚本消息;
[0077]
第三方应用端,作为kafka系统的第二消费端,用于从kafka系统的第二主题中消费数据。
[0078]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0079]
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献