一种工业物联网信息可视化方法、服务器和存储介质与流程

文档序号:18329413发布日期:2019-08-03 11:54阅读:123来源:国知局
一种工业物联网信息可视化方法、服务器和存储介质与流程

本发明涉及工业物联网领域,尤其涉及一种工业物联网信息可视化方法。



背景技术:

在工业物联网应用中,用户接入的形式更加多样,工厂内的看板,大屏,电视,用户使用的移动终端(手机,pad,工业pda,小程序)等等,这些复杂多样的设备有着不同的带宽限制和兼容性问题,需要提供不同的api来完成数据渲染。在现有的微服务架构中,如附图1所示,每一种微服务都需要针对不同终端不同交互提供不同的api,造成业务耦合度高,系统架构臃肿,代码冗余,debug困难,难以适应灵活多变的业务需求。而且前端可视化系统定制化程度高,重视性能问题,会对数据进行聚合清洗,后端要做到这些的话,服务会过于庞大,且不易于运维。



技术实现要素:

本发明针对现有技术中的不足,提供了一种基于node.js平台实现的工业物联网信息可视化方法其具体包括:

s1,获取用户多个可视化工艺参数分析请求并将其封装成json类型发送给node微服务,其中所述node微服务包括路由模块、控制器模块、业务层模块、中间件模块、插件模块和日志模块;

s2,所述node微服务的路由模块根据预设接口配置将可视化工艺参数分析请求分发到处理工艺参数分析的控制器模块;

s3,控制器模块解析所述可视化工艺参数分析请求,对其中工艺参数的第一属性、第二属性进行校验;

s4,业务层模块根据各工艺参数第二属性分别调用负责采集对应工艺参数数据的后端微服务,并将可视化工艺参数分析请求中的筛选需求信息发送给所述后端微服务;

s5,所述后端微服务从数据库中分别获取到符合筛选需求的对应工艺参数数据并发送给业务层模块;

s6,所述业务层模块对获取到的工艺参数数据进行清洗和聚合后经中间件模块发送给前端物联网可视化系统进行展示。

优选的,所述被封装成json类型的可视化工艺参数分析请求包括工艺参数类型、数据时间段、输出报表类型中的一个或多个。

优选的,所述步骤s1具体还可包括:多个可视化工艺参数分析请求通过http请求发送给node微服务,用于请求合法性校验的中间件模块对所述http请求携带的标识码进行合法性校验,所述中间件模块通过查询数据库来判断所述标识码是否合法。

优选的,所述步骤s6具体包括:业务层模块根据工艺参数第二属性将获取的工艺参数数据进行清洗过滤并处理成第一可视化数据集。

优选的,所述步骤s6具体还包括:对第一可视化数据集的时间参数进行转换,形成第二可视化数据集;根据可视化工艺参数分析请求中的输出报表类型将第二可视化数据集转换成对应输出报表类型所需的可视化数据结构。

优选的,所述第一可视化数据集包括相应可视化工艺参数值和对应采集时间参数。

优选的,所述步骤s6还包括:所述后端微服务从数据库中分别获取到符合筛选需求的对应工艺参数数据并通过http响应经中间件模块发送给业务层模块,所述中间件模块根据响应数据来标明状态码。

本发明还公开了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例所述方法的步骤。

本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述实施例所述方法的步骤。

本发明通过在工业物联网可视化系统中采用将获取用户多个可视化工艺参数分析请求并将其封装成json类型发送给node微服务,通过node微服务来对可视化工艺参数分析请求进行具体的响应和处理,对采集的数据进行聚合清洗适配,同时减轻后端服务的业务压力。解决了现有的微服务架构中每一种微服务都需要针对不同终端不同交互提供不同的api,导致业务耦合度高、系统架构臃肿,难以适应灵活多变的业务需求的问题。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为现有的微服务架构示意图。

图2为现有的bff架构示意图。

图3为本发明一实施例公开的工业物联网信息可视化方法的流程示意图。

图4为本发明一实施例公开的服务器结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体的连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。

除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。

在工业物联网中,如附图2所示,bff架构作为前后端适配的一个中间层,针对不同用户体验,对网关采集的数据进行聚合清洗适配,同时减轻后端服务的业务压力。bff即backendforfrontend(服务于前端的后端),也就是在设计api时会考虑前端的使用,并在服务端直接进行业务逻辑的处理,又称为用户体验适配器。bff是一种逻辑分层,它使得前后端分离更加彻底,并将部分业务从后端微服务中抽离出来,使后端微服务专注于它们自己的逻辑,使前端可视化系统消费数据更加简单,开箱即用。node.js是一个基于chromev8引擎的javascript运行环境。node.js使用了一个事件驱动、非阻塞式i/o的模型,轻量又高效,很符合目前物联网平台bff微服务的需求。

附图3为实施例公开的一种工业物联网信息可视化方法,该方法公开了一种基于node.js平台的微服务来实现bff架构,其具体包括如下步骤:

s1,获取用户多个可视化工艺参数分析请求并将其封装成json类型发送给node微服务,其中所述node微服务包括路由模块、控制器模块、业务层模块、中间件模块、插件模块和日志模块。

其中,路由模块主要用来描述http请求和具体承担执行动作的控制器的对应关系,将用户的请求分发给相应的控制器模块。控制器模块负责解析用户的输入,对参数进行校验、转换,然后调用业务层模块去处理业务,处理完后将结果封装,返回给用户。业务层模块就是在复杂业务场景下用于做业务逻辑封装的一个抽象层,它可以使控制器中的逻辑更加简洁,可以保持业务逻辑的独立性,可以被多个控制器重复调用,可以将逻辑和展现分离,更容易编写测试用例。中间件模块是处于用户请求和响应中间,用来实现某一特定功能的轻量级模块。日志模块是用于监控微服务的运行状态,对问题排查等有非常重要的意义。单元测试模块是自动化测试node微服务的接口,使代码质量持续有保障。

具体的,用户通过物联网可视化系统查看工艺参数可视化分析报表,通过配置弹窗,选择希望查看的工艺参数类型,例如温度,湿度,气压,选择想要查看的时间段,例如最近一周,选择可视化报表类型,例如折线图,点击确认按钮,可视化系统将用户的配置封装成json类型,其中可视化工艺参数分析请求可以包括需要查看的可视化参数类型、筛选需求、可视化输出类型等,其中可视化参数类型可以包括可视化工艺参数的数据结构和数据类型,以下具体实施例中将以用户需要查看的温度,湿度,气压三个可视化参数为例进行详细说明,当然在其它实施例中也可替换为其它任何工业物联网数据,具体如下,例如:

{

″name″:″工艺参数″,

″type″:″line″,

″params″:[“温度”,”湿度”,”气压”],

″period″:″week″,

}

多个可视化工艺参数分析请求通过http请求发送给node微服务,用于请求合法性校验的中间件模块对所述http请求携带的标识码进行合法性校验,所述中间件模块通过查询数据库来判断所述标识码是否合法。具体的,通过http请求发送给node微服务,在没有node微服务的时候,我们需要根据用户选择的温度、湿度、气压分别发送http请求给后端微服务,需要花费3次请求的时间,而且要等到3个请求都返回结果后,才能处理数据。而在本实施例中,我们只需要向node微服务发送1个请求,就能获取到3个工艺参数的数据,大大减少了网络开销,提升用户体验。node微服务获取到请求,负责请求合法性校验的中间件对这个http请求携带的token进行合法性校验,node微服务去数据库查询这个token,若存在,说明token合法,进行下一步,否则返回错误响应。

s2,所述node微服务的路由模块根据预设接口配置将可视化工艺参数分析请求分发到处理工艺参数分析的控制器模块。

具体的,node微服务接收到可视化工艺参数分析报表的请求,路由根据接口配置将该请求分发到处理工艺参数分析的控制器,这个路由的接口配置如下:router.get(′/api/v1/processparameters’,controller.processparameters),其中router是路由,它通过get方法去配置http路径和控制器的映射方式,′/api/v1/processparameters’是http请求的路径,controller.processparameters表示处理工艺参数数据的控制器。node微服务监听到路由,就会调用配置好的控制器模块。

s3,控制器模块解析所述可视化工艺参数分析请求,对其中工艺参数的第一属性、第二属性进行校验。在一些具体实施例中,其中的第一属性可以为各可视化工艺参数的数据结构,第二属性可以为各可视化工艺参数的数据类型。具体的,控制器模块对参数的校验规则可以为:

{

″name″:″string″,

″type″:″string″,

″params″:‘array’,

″period″:[″string″,”date”],

},

其示例性的表明了工艺参数分析控制器的数据结构,其中name,type字段的数据类型为string类型,params字段的数据类型为array类型,period字段的数据类型为string或date类型。若参数的数据结构,数据类型符合控制器设定的规则,则开始处理用户配置的业务请求,工艺参数为温度,湿度,气压,报表类型为折线图,然后将工艺参数类型,时间段和报表类型发送给业务层,则进行下一步,否则返回错误响应。

s4,业务层模块根据各工艺参数第二属性分别调用负责采集对应工艺参数数据的后端微服务,并将可视化工艺参数分析请求中的筛选需求信息发送给所述后端微服务。其中第二属性可以是工艺参数的数据类型,即业务层模块可以根据工艺参数的类型分别调用负责采集温度,湿度,气压数据的后端微服务,并将时间段信息发送给它们。

s5,所述后端微服务从数据库中分别获取到符合筛选需求的对应工艺参数数据并发送给业务层模块。具体的,后端微服务从数据库中分别获取到这个时间段内的温度、湿度、气压数据,并将这些原始数据发送给业务层模块。

s6,所述业务层模块对获取到的工艺参数数据进行清洗和聚合后经中间件模块发送给前端物联网可视化系统进行展示。业务层模块根据工艺参数第二属性将获取的工艺参数数据进行清洗过滤并处理成第一可视化数据集。

业务层模块获取到原始数据,开始对数据进行清洗、聚合。原始数据是网关根据采集点采集上来的,会包含订阅的所有信息,非常复杂,不符合可视化的需求,所以需根据用户选择的工艺参数类型,将多余无用的数据进行过滤,将数据处理成可视化系统所需的结构。其中选取一条第一可视化数据集即原始可视化数据简单举例如下,其中所述第一可视化数据集包括相应可视化工艺参数值和对应采集时间参数:

[{

"pushed":0,

"device":"opc123",

"readings":[{

"pushed":0,

"name":"opc",

"value":"1524",

"device":"opc123",

"resource":"1",

"tags":["pg"],

"acquisitiontime":1539675252009,

"id":"",

"created":0,

"modified":0,

"origin":0}],

"gatewayid":"8d7b54b754db4f94332da65cd77b64a5",

"id":"",

"created":0,

"modified":0,

"origin":0

}]

其中步骤s6具体还包括:对第一可视化数据集的时间参数进行转换,形成第二可视化数据集。具体的,由于上述数据结构十分复杂,其中我们需要的数据只有value和acquisitiontime,表示温度和采集时间,然后我们将采集上来的比如100条数据,处理成如下可视化系统可直接渲染的数据结构:

[{

value:“61.21”,

"acquisitiontime":1539675252009

},{

value:“60.9”,

"acquisitiontime":1539675262000

},{

value:“61.98”,

"acquisitiontime":1539675299000

}]

进一步的,可对其中的时间数据进行转换,将时间戳格式数据转换成进一步可视化的时间格式,转换完后形成下述第二可视化数据集如下:

[{

value:“61.21”,

"acquisitiontime":’2018-10-1615:34:12’

},{

value:“60.90”,

"acquisitiontime":’2018-10-1615:34:22’

},{

value:“61.98”,

"acquisitiontime":’2018-10-1615:34:59’

}]

根据可视化工艺参数分析请求中的输出报表类型将上述第二可视化数据集转换成对应输出报表类型所需的可视化数据结构。具体的,可根据可视化工艺参数分析请求中的用户选择的可视化输出类型,在本实施例中可以为所选报表类型,将数据处理成折线图所需的数据结构,如如:

{

value:[61.21,60.90,61.98],

time:[’2018-10-1615:34:12’,’2018-10-1615:34:22’,’2018-10-1615:34:59’]

}

至此,温度的数据已经处理完毕,然后我们要处理湿度和气压的数据,然后将三个工艺参数的数据进行聚合,如下:

{

‘温度’:{

value:[61.21,60.90,61.98],

time:[’2018-10-1615:34:12’,’2018-10-1615:34:22’,’2018-10-1615:34:59’]

},

‘气压’:{

value:[61.21,60.90,61.98],

time:[’2018-10-1615:34:12’,’2018-10-1615:34:22’,’2018-10-1615:34:59’]

},

‘湿度’:{

value:[61.21,60.90,61.98],

time:[’2018-10-1615:34:12’,’2018-10-1615:34:22’,’2018-10-1615:34:59’]

}

}

处理完数据后,统一发送给控制器,

控制器模块准备将业务层模块处理完成的上述可视化数据通过http响应发送给物联网可视化系统进行呈现。

其中在一些实施例中,上述数据发送协议会经过处理http响应的中间件,这个中间件是处理http响应的,用于处理状态码,根据响应数据来标明状态码,方便可视化系统判断请求。

其中后端微服务从数据库中分别获取到符合筛选需求的对应工艺参数数据并通过http响应经中间件模块发送给业务层模块,所述中间件模块根据响应数据来标明状态码。

例如预设的状态码含义可以为:

200:请求成功;

404:请求失败,客户端错误;

500:请求失败,服务器错误。

若响应数据存在,则表明请求成功,将状态码标为200,然后正式发送响应给物联网可视化系统,物联网可视化系统获取到数据,直接根据用户的配置,将温度,湿度,气压渲染成柱状图和折线图,在网页上展示出来供用户进行数据分析。若响应数据不存在,则经过处理http响应的中间件模块,将状态码标为404,表示这次请求失败,然后发送错误响应。

上述实施例基于node.js平台的微服务,实现bff架构,其中bff使得前后端分离得更加彻底,并且将业务代码从后端微服务中剥离出来,使得各个后端微服务权责明确,只负责维护自己的逻辑,可以灵活使用不同技术来使整个系统发挥更好的性能。而且bff使这些后端微服务不会暴露出去,对外的始终只有bff,使得工业数据的安全性得到保障。node.js适合高并发,i/0密集的场景,很符合目前物联网平台bff的需求。并且使得前端开发工程师可以用javascript开发后端服务,解决了前后端分离开发时出现的进度耦合,api约定困难的问题。node.js修改方便,拓展性强,对后台的通用数据模型进行适当的裁剪和格式化,以适应不同的用户体验展示的需求,对后台服务数据进行编排和预聚合,这样可以有效简化客户端逻辑和减少网络调用开销,使得可视化平台性能大大提升。本发明通过在工业物联网可视化系统中采用将获取用户多个可视化工艺参数分析请求并将其封装成json类型发送给node微服务,通过node微服务来对可视化工艺参数分析请求进行具体的响应和处理,对采集的数据进行聚合清洗适配,同时减轻后端服务的业务压力。解决了现有的微服务架构中每一种微服务都需要针对不同终端不同交互提供不同的api,导致业务耦合度高、系统架构臃肿,难以适应灵活多变的业务需求的问题。

附图4为实施例公开的一种服务器的示意图。所述服务器用于为租户提供单体应用服务,该实施例的服务器1包括存储器12、处理器11以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如工业物联网信息可视化软件。所述处理器执行所述计算机程序时实现上述各工业物联网信息可视化方法实施例中的步骤。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述服务器中的执行过程。

所述服务器可包括,但不仅限于处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是服务器的示例,并不构成对服务器设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述服务器设备的控制中心,利用各种接口和线路连接整个服务器设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述服务器设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述工业物联网信息可视化方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1