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

一种基于领域模型的物联网集成系统及方法与流程

2022-07-27 21:59:03 来源:中国专利 TAG:


1.本发明属于互联网技术领域,具体涉及一种基于领域模型的物联网集成系统及方法。


背景技术:

2.近年来,物联网iot技术受到了广泛关注和应用,物联网iot技术在自动驾驶和联网车辆、智能安保、智能家居、智能穿戴、智慧城市等行业大量被应用。目前物联网iot物联网技术的发展缺乏一个统一开放的标准,出现了很多私有、孤立的物联网技术,致使目前的系统主流接入和管理还是针对特定品牌或者种类的设备,设备数据的存储方式也比较单一且后期难以扩展,上层业务应用调用iot平台的能力比较繁琐且重复。为此需要一种基于领域模型的物联网集成系统。


技术实现要素:

3.本发明解决的技术问题:提供一种实现屏蔽差异,统一标准的领域模型,并实现实时扩展,复杂系统简单化的基于领域模型的物联网集成系统及方法。
4.技术方案:为了解决上述技术问题,本发明采用的技术方案如下:
5.一种基于领域模型的物联网集成系统,包括设备接入层、iot中间件、iot服务层和应用层四层架构,领域模型驱动整个四层架构的业务活动;所述设备接入层根据模型协议将领域模型与设备进行适配,将设备转换成领域模型的具体实现;所述iot中间件对接入的设备根据其领域模型进行存储管理;且实现多租户数据隔离;并通过规则引擎实现设备的组合调用;所述iot服务层提供若干种不同维度的服务协议,为iot中间件中管理的设备提供统一的访问入口,并结合领域模型提供设备服务;所述应用层通过iot服务层直接操作设备,获取设备信息,根据设备领域模型为用户提供业务能力。
6.进一步地,所述设备接入层定义网关的连接、关闭、终止、数据发送和接收抽象接口,并实现http、tcp、mqtt、udp和coap协议的网关;通过定义消息协议编码和解码接口,实现对接不同设备的具体数据包的上报和下发解析。
7.进一步地,iot中间件对接入的设备根据其领域模型进行存储管理,包括定义iot系统数据下发和上报的统一格式,便于数据的存储和查询;定义iot系统数据存储的抽象类,实现数据存储的不同策略,列入存储到关系型和数据库或者时序数据库。
8.进一步地,iot中间件通过动态的在sq1查询的时候,拼接租户查询条件,实现数据权限的隔离,从而实现支持多租户数据隔离;通过规则引擎实现设备的组合调用时,定义规则引擎设计器和执行器,规则引擎设计器通过可视化的界面、功能节点和连线的方式描述规则的逻辑。
9.进一步地,所述iot服务层包含三种不同的服务协议:http远程调用协议、mqtt消息队列和open-api鉴权协议;http远程调用协议提供领域模型中所定义的设备信息查询和设备功能控制;mqtt消息队列协议通过消息队列允许外部监听领域模型这种定义的设备的
事件,响应设备的各种事件,完成自定义的业务逻辑;open-api鉴权协议:第三方用授予的客户端编码和密钥,通过协议获取身份令牌,令牌用于访问http远程调用协议和监听mqtt消息队列。
10.进一步地,所述领域模型通过统一的标准规范定义设备的完整描述,完整描述包含设备属性信息、设备事件和设备功能;通过统一的标准规范定义设备网络状态及设备运行状态的变更与切换;并通过代码生成工具把定义的领域模型通过模型算法转化成代码源文件供使用。
11.一种基于领域模型的物联网集成方法,其特征在于,包括以下步骤:
12.s1:针对需要接入系统的设备,进行领域模型的定义;
13.s2:将步骤s1中的领域模型,生成java源码文件并编译打包成jar包;
14.s3:针对实际需要接入系统的设备的通讯协议,建立系统的网关,用于设备的连接、关闭、终止、数据发送和接收;
15.s4:根据步骤s1中的定义的领域模型,结合设备实际的通讯方式和数据报文,进行通讯协议的解析开发工作;
16.s5:将步骤s4中通讯协议解析的java源码文件编译达成jar包通过classloader进行动态的实例化;
17.s6:针对需要接入的设备,结合s1步骤创建的领域模型和s4步骤创建的通讯协议,进行设备创建,数据存储查询操作;
18.s7:针对上层业务系统,提供iot服务层服务,结合s1步骤中定义的领域模型,进行设备的实际业务调用;
19.进一步地,步骤s2的实现步骤包括:1)递归生成所有属性、方法和事件依赖的内部java类;2)生成领域模型依赖的静态java代码块;3)生成领域模型依赖的java方法函数;4)生成领域模型定义的属性、方法和事件的内部java类。
20.进一步地,步骤s4包含协议的编码和解码两部分工作,针对modbus协议,协议的编码和解码工作通过模型算法,0代码进行实现。
21.进一步地,模型算法的具体实现方式为:基于modbus协议,通过输入寄存器地址和数据类型,定义modbus协议解析算法通过定义和计算偏移量长度n,并结合请求数据报文中的长度1,计算生成实际请求数据报文中的长度l,从而生成实际下发的报文,通过利用生成报文中请求数据长度的唯一性,来动态地区分和定位请求数据的属性,从而实现基于modbus协议的消息协议编码和解码过程0代码化实现。
22.有益效果:与现有技术相比,本发明具有以下优点:
23.本发明的基于领域模型的物联网集成系统及方法,通过可视化得规范并定义用于描述设备特性的领域模型,使得屏蔽不同厂商,品牌设备的差异性,以统一的标准对外呈现。系统支持http、tcp、mqtt、udp和coap协议的设备接入,并且把协议解析单独抽象,方便实时扩展,特定的,对于modbus协议,系统提供一种0代码协议解析的算法模型。系统定义标准的数据格式,提供多种存储策略及存储策略扩展。系统还通过标准协议,屏蔽对接iot平台的复杂性和重复性问题。
附图说明
24.图1为本发明的基于领域模型的物联网集成系统框图;
25.图2为本发明举例的“智能三相电表设备”领域模型的基本信息截图;
26.图3为本发明举例的“智能三相电表设备”领域模型的属性信息截图;
27.图4为本发明举例的“智能三相电表设备”领域模型生成的java源码文件截图;
28.图5为本发明的tcp网关创建截图;
29.图6为本发明的modbus协议算法模型列表截图;
30.图7为本发明的modbus协议算法模型创建截图;
31.图8为本发明举例的“智能三相电表设备”产品创建截图;
32.图9为本发明举例的“智能三相电表设备”设备创建截图;
33.图10为本发明举例的“智能三相电表设备”接入的设备的信息详情页面截图;
34.图11为本发明举例的“智能三相电表设备”接入的设备的信息详情页面管控截图;
35.图12为本发明的iot服务层调用示例截图。
具体实施方式
36.下面结合具体实施例,进一步阐明本发明,实施例在以本发明技术方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。
37.如图1所示,本技术的基于领域模型的物联网集成系统,由设备接入层、iot中间件、iot服务层和应用层四层架构组成,由领域模型驱动整个四层架构的业务活动。
38.设备接入层根据模型协议将领域模型与设备进行适配,把设备转换成领域模型的具体实现,由统一的网关和通信协议作为两者的交互桥梁。
39.设备接入层定义了网关的连接、关闭、终止、数据发送和接收抽象接口,并实现了http、tcp、mqtt、udp和coap协议的网关。通过定义消息协议编码和解码接口,实现了对接不同厂商设备的具体数据包的上报和下发解析。特定的,通过扩展领域模型,添加协议配置管理,实现modbus协议可视化配置寄存器地址和数据公式逻辑处理。网关接口定义了网络协议,底层通过netty实现了http、tcp、mqtt、udp和coap协议通讯交互实现。
40.消息协议编码和解码接口:提取剥离数据上报和下发核心逻辑,使得可以通过外部注册自定义协议,快速实现不同厂商,设备的接入,而且屏蔽了系统的复杂性,让设备的接入变得简单化和快速化。并且利用java classloader实现消息协议编码和解码接口实现类的实例化加载,从而实现不需要发布整个工程,只需要上传实现类的jar包。
41.基于modbus协议,通过输入寄存器地址和数据类型,定义modbus协议解析算法通过定义和计算偏移量长度n,并结合请求数据报文中的长度1,计算生成实际请求数据报文中的长度l。从而生成实际下发的报文,通过利用生成报文中请求数据长度的唯一性,来动态地区分和定位请求数据的属性。从而实现基于modbus协议的消息协议编码和解码过程0代码化实现。
42.iot中间件对接入的设备根据其领域模型进行存储管理,支持多租户数据隔离,通过规则引擎实现设备的组合调用。通过动态的在sq1查询的时候,拼接租户查询条件,实现数据权限的隔离,从而实现支持多租户数据隔离。
43.通过规则引擎实现设备的组合调用时,定义了规则引擎设计器和执行器。规则引
擎设计器通过可视化的界面,通过功能节点和连线的方式描述规则的逻辑。规则引擎执行器,通过抽象规则模型、规则调度器和任务执行器实现规则逻辑的具体流转和执行。调度器和执行器支持单机模式和集群模式,可用于集群模式的规则执行流转。任务执行器是通用的接口,在当面提供的功能节点无法支撑业务的情况下,可以自定义进行扩展功能节点并注册使用。
44.iot中间件对接入的设备根据其领域模型进行存储管理,包括定义iot系统数据下发和上报的统一格式,便于数据的存储和查询。定义iot系统数据存储的抽象类,可以实现数据存储的不同策略,列入存储到关系型和数据库或者时序数据库。
45.iot系统数据下发和上报的统一格式为:定义消息唯一的id,定义设备的唯一id,定义消息的时间戳,定义map结构的消息头,定义map类型的消息内容。
46.定义iot系统数据存储的抽象类:包括定义数据存储和查询的抽象接口,提供influxdb、tidb和es数据库的不同存储策略的实现。
47.iot服务层提供多种不同维度的服务协议,为iot中间件中管理的设备提供统一的访问入口,结合领域模型提供设备服务。
48.iot服务层包含三种不同的服务协议:http远程调用协议、mqtt消息队列和open-api鉴权协议。
49.http远程调用协议是一种基于spring boot实现的兼容http请求的远程调用框架,提供领域模型中所定义的设备信息查询和设备功能控制。基于spring boot实现的兼容http请求的远程调用框架包括以下具体内容:
50.1)定义api,在函数上添加注解标识函数所对应的http请求方法类型和参数名称;
51.2)服务端应用在启动中,spring boot的请求处理handmapping初始化时动态创建与api中注解相匹配的mapping;
52.3)客户端通过统一的动态代理工厂初始化api的调用代理对象,代理对象根据注解所标注的http方法类型和参数名称完成http请求并对返回的数据格式化处理,返回给调用者,完成整个远程调用。
53.mqtt消息队列协议:通过消息队列允许外部监听领域模型这种定义的设备的事件,响应设备的各种事件,完成自定义的业务逻辑。
54.open-api鉴权协议:第三方用授予的客户端编码和密钥,通过协议获取身份令牌,令牌用于访问http远程调用协议和监听mqtt消息队列。
55.应用层通过iot服务层可直接操作设备,获取设备信息,根据设备领域模型为用户提供业务能力:1)为设备提供可视化的展示和控制能力;2)将设备进行组合提供更为复杂的能力。
56.领域模型通过统一的标准规范定义设备的完整描述,完整描述包含设备属性信息、设备事件和设备功能。通过统一的标准规范定义设备网络状态及设备运行状态的变更与切换。并通过代码生成工具把定义的领域模型通过模型算法转化成代码源文件供使用。
57.其中,1)设备基本信息:包括领域模型唯一key,领域模型名称。
58.2)设备属性信息:用于定义设备属性,如设备id,当前cpu使用率等,设备属性信息可以由上层平台主动下发至设备,也可由设备上报。设备属性信息的定义还包含属性的读写与否标识,展示与否标识,数据类型标识以及其他标识。
59.3)设备事件:用于定于设备事件,如报警事件,通知事件等,设备事件用于满足上层平台对消息实时性和消息持久化的需求。
60.4)设备功能:用于定义设备功能,描述可以由上层平台主动调用的操作,如播放音乐,开关操作等。设备功能的定义还包含功能调用的同步异步标识。
61.网络状态包含在线和离线状态,设备运行状态包含开启、关闭、告警状态和未激活状态。通过定义各状态变更与切换的抽象方法,实现各状态变更与切换的方法逻辑保持独立。例如告警状态的变更与切换逻辑是:如果要从其他状态切换至告警状态,那么需要更新当前设备状态并切换至告警状态。如果要从告警状态变更至其他状态,那么需要判断当前设备是否存在开启和关闭状态,存在则变更至开发状态,不存在则变更至未激活状态。
62.通过代码生成工具把定义的领域模型通过模型转化算法转化成代码源文件供使用。使用jcodemodel把领域模型实时转化成java源代码。模型转化算法包括以下步骤:
63.步骤1)递归生成所有属性、方法和事件依赖的内部java类;
64.步骤2)生成领域模型依赖的静态java代码块;
65.步骤3)生成领域模型依赖的java方法函数;
66.步骤4)生成领域模型定义的属性、方法和事件的内部java类。
67.本发明还公开一种基于领域模型的物联网集成方法,主要包括以下步骤:
68.s1:针对需要接入系统的设备,进行领域模型的定义;
69.领域模型的定义包含基础信息定义以及属性定义、功能定义及事件定义。
70.s2:将步骤s1中的领域模型,生成java源码文件并编译打包成jar包;
71.生成java源码文件并编译打包成jar包,通过jcodemodel把领域模型实时转化成java源代码,步骤包括1)递归生成所有属性、方法和事件依赖的内部java类,步骤2)生成领域模型依赖的静态java代码块,步骤3)生成领域模型依赖的java方法函数,步骤4)生成领域模型定义的属性、方法和事件的内部java类。
72.s3:针对实际需要接入系统的设备的通讯协议,建立系统的网关,用于设备的连接、关闭、终止、数据发送和接收;
73.s4:根据步骤s1中的定义的领域模型,结合设备实际的通讯方式和数据报文,进行通讯协议的解析开发工作;
74.包含协议的编码和解码两部分工作,特定的,针对modbus协议,协议的编码和解码工作可以自研的模型算法,0代码进行实现,具体如下:
75.基于modbus协议,通过输入寄存器地址和数据类型,定义modbus协议解析算法通过定义和计算偏移量长度n,并结合请求数据报文中的长度1,计算生成实际请求数据报文中的长度l。从而生成实际下发的报文,通过利用生成报文中请求数据长度的唯一性,来动态地区分和定位请求数据的属性。从而实现基于modbus协议的消息协议编码和解码过程0代码化实现。
76.s5:将步骤s4中通讯协议解析的java源码文件编译达成jar包通过classloader进行动态的实例化;
77.s6:针对需要接入的设备,结合s1步骤创建的领域模型和s4步骤步骤创建的通讯协议,进行设备创建,数据存储查询等管理操作。还包含创建设备产品,产品选择领域模型中的部分或全部能力。再在该产品下创建设备。
78.s7:针对上层业务系统,提供iot服务层服务,结合s1步骤中定义的领域模型,进行设备的实际业务调用。针对上层业务系统,提供iot服务层服务,结合s1步骤中定义的领域模型,进行设备的实际业务调用,包含设备领域模型中属性的读取编辑、方法的操作以及事件的监听。还包含服务的认证及鉴权功能。
79.以接入“智能三相电表设备为例”,阐述本发明的方法:
80.s1:定义领域模型,如图1所示为“智能三相电表设备”领域模型的基本信息。如图2所示为“智能三相电表设备”领域模型的属性信息。
81.s2:将步骤s1中的领域模型,生成java源码文件并编译打包成jar包,如图3所示为,生成的“智能三相电表设备”java源码文件。
82.s3:针对实际需要接入系统的设备的通讯协议,建立系统的网关,用于设备的连接、关闭、终止、数据发送和接收;“智能三相电表设备”采用modbus协议进行通讯,包括以下步骤:
83.modbus协议基于tcp,如图4所示,建立tcp的系统网关,并开放相对应的外网端口。
84.s4:根据步骤s1中的定义的领域模型,结合设备实际的通讯方式和数据报文,进行通讯协议的解析开发工作。“智能三相电表设备”采用modbus协议进行通讯,结合白研的modbus协议算法模型,可以做到0代码开发。如图5及6所示:
85.s5:将步骤s4中通讯协议解析的java源码文件编译达成jar包通过classloader进行动态的实例化。“智能三相电表设备”采用modbus协议进行通讯,结合自研的modbus协议算法模型,可以做到0代码开发。所以不需要此步骤。
86.s6:针对需要接入的设备,结合s1步骤创建的领域模型和s4步骤步骤创建的通讯协议,进行设备创建,数据存储查询等管理操作。
87.创建“智能三相电表设备”产品,从s1步骤创建的领域模型中选取部分定义。如图7所示。
88.创建“智能三相电表设备”产品下具体的设备,进行设备的初始化工作。如图8所示。
89.设备接入后,可以查询实时查询设备的属性,可以操作可写的设备。如图9及10所示。
90.s7:针对上层业务系统,提供iot服务层服务,结合s1步骤中定义的领域模型,进行设备的实际业务调用。如图11所示
91.本发明的一种基于领域模型的物联网集成系统,系统通过可视化得规范并定义用于描述设备特性的领域模型,使得屏蔽不同厂商,品牌设备的差异性,以统一的标准对外呈现。系统支持http、tcp、mqtt、udp和coap协议的设备接入,并且把协议解析单独抽象,方便实时扩展,特定的,对于modbus协议,系统提供一种0代码协议解析的算法模型。系统定义标准的数据格式,提供多种存储策略及存储策略扩展。系统还通过标准协议,屏蔽对接iot平台的复杂性和重复性问题。
92.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献