当前位置: 首页 > 专利查询>河海大学专利>正文

一种分布式的物联网系统建模语言及其编译方法技术方案

技术编号:34634927 阅读:84 留言:0更新日期:2022-08-24 15:08
本发明专利技术公开了一种分布式的物联网系统建模语言及其编译方法,步骤如下:1、按照业务逻辑使用该物联网系统建模语言书写程序,对设备及设备间联动行为进行建模;2、将该程序交由物联网系统建模语言编译器编译,产生需要被下放到各个设备的嵌入式C代码;3、将产生的C代码进一步使用硬件平台特定的嵌入式C编译器编译为机器指令,然后通过多种方式将程序下载到嵌入式设备内。本发明专利技术为设备间分布式、协作式地工作提供了一种通用、易用的解决方案;本发明专利技术提供了一种对于物联网设备及设备间联动行为建模的完备和统一的方法,具有更好的普适性;本发明专利技术充分利用系统模型的语义信息,减少了不必要的消息传递,减少了网络带宽浪费。减少了网络带宽浪费。减少了网络带宽浪费。

【技术实现步骤摘要】
一种分布式的物联网系统建模语言及其编译方法


[0001]本专利技术涉及物联网技术,特别是一种分布式的物联网系统建模语言及其编译方法。

技术介绍

[0002]现代物联网(IoT)系统包含海量互联的、不同种类的设备节点,设备节点间的联动逻辑愈发复杂。此外,随着边缘计算的普及,物联网设备节点内部除了基础的数据采集、硬件控制外,包含越来越多的数据计算和分析逻辑。但是,现在的对物联网系统的建模方式,存在着一些局限性。
[0003]首先,目前主流的物联网平台通常能够看作中心化的分层系统,数据流在云端、边缘端、网关、设备层级间流动。然而,无人驾驶、智慧物流等领域,设备间直接协作的分布式工作模式愈发重要。这一点在阿里云、华为云等传统物联网平台上缺乏通用的解决方案。例如,阿里云IoT服务中,设备通过MQTT等协议接入平台,所有设备间的通信必须经由平台中转。
[0004]其次,目前仍然缺乏对于物联网设备及设备间联动行为建模的完备和统一的方法。华为云平台提供了IoT设备接入服务,包含设备管理、设备属性、联动规则建立等功能。该服务只支持“如果A,则B”式的设备联动规则定义,较为局限,且无法对设备内部的计算逻辑进行便捷的描述。用户仍然需要开发大量复杂的底层嵌入式代码,来实现最终的产品。
[0005]最后,目前物联网平台设备间通信通常基于MQTT、CoAP等物联网协议实现。而这些协议独立于系统模型而存在,因此不能利用系统模型的语义信息,来减少不必要的消息传递。比如,在一个物品防盗系统中,定位标签实时发布自己的位置,安全检测设备监听该事件。一旦发布新位置,则安全检测设备接收到之后,判断位置是否距离原有位置偏差过大,并触发设备内警报器。然而,在大部分情况下,不会出现偏差过大的情况,但定位标签仍然会不断将自己的位置推送给告警设备。一种解决方案是,将判断逻辑转移到定位标签中,出现偏差过大才推送事件给安全检测设备。然而,这个额外的判断任务会造成标签设备中的功能耦合。

技术实现思路

[0006]专利技术目的:本专利技术的目的是提供一种分布式的物联网系统建模语言及其编译方法,从而提供一种对物联网设备间分布式、协作式工作的完备和统一的建模方法,并充分利用设备模型的语义信息,减少不必要的消息传递,节约网络带宽。
[0007]技术方案:本专利技术所述的一种分布式的物联网系统建模语言及其编译方法,包括以下步骤:
[0008](1)按照业务逻辑,使用该物联网系统建模语言书写程序,对设备及设备间联动行为进行建模。
[0009](1.1)建立设备模型,所述模型包括设备类、设备属性和设备方法,以及设备方法
内的程序语句。
[0010](1.1.1)设备类:系统中的每类设备对应一个设备类,一个设备类中,定义了设备属性和设备方法。
[0011](1.1.2)设备属性:描述该类设备的内部状态,分为私有属性和公有属性,私有属性仅在设备类内部可见,而公有属性能够被其他设备访问到,设备属性可定义read_heavy注解,表示该属性是读多写少的,以便于编译优化。
[0012](1.1.3)设备方法:描述该类设备的行为,例如一个报警器设备,可以具有一个“alarm”方法,描述该设备的报警行为,外部设备调用该方法,即可使其发出报警声。设备方法分为私有方法和公有方法,两者都能够在设备内部被调用,但仅公有方法能够被外部设备调用,设备方法还分为用户方法和本地方法,前者表示由用户代码所定义的方法,后者表示在设备驱动内实现的,通常需要和硬件交互的代码,每个设备方法内部允许包含局部变量,其定义同现代高级语言中局部变量的定义。
[0013](1.1.4)程序语句:每个设备方法包含多个语句,语句包含赋值语句、流程控制语句(如循环、分支等),以及事件监听语句、事件触发语句、方法调用语句。
[0014](1.2)建立设备间联动行为模型,所述模型包括同步/异步方法调用、事件触发机制。
[0015](1.2.1)同步方法调用:指调用一个本地或远程设备的方法,阻塞等待其执行完成并返回,然后继续执行后续的程序;同步方法调用允许传入参数,形如device.call(param1,param2,param3,...,paramN)。
[0016](1.2.2)异步方法调用:指调用一个本地或远程设备的方法,但不必等待其执行完成,便可继续执行后续的程序;异步方法调用允许传入参数,形如async device.call(param1,param2,param3,...,paramN)。
[0017](1.2.3)事件触发机制:系统包含由名称标识的多个事件类,每个设备能够动态地监听或取消监听任意一个事件类,监听一个事件类,指该类下某事件发生时,自动异步调用指定的一个设备方法,称为回调方法;在每个设备方法内,均能够触发事件;一旦一个事件被触发,所有监听它的设备的回调方法都将被自动调用;设备驱动程序也能够触发仅在设备类内部可见的事件;例如,一个传感器硬件一旦采样到一帧数据,在设备驱动程序内部将触发一个事件。每个事件都包含零个或多个事件参数,用于具体描述该事件。
[0018](2)将该程序交由物联网系统建模语言编译器编译,产生需要被下放到各个设备的嵌入式C代码。
[0019](2.1)解析:主要包括词法分析和语法分析,用于产生语法树。
[0020](2.2)语义分析:通过一趟对语法树的遍历,推导各个语法节点的类型信息,建立符号表,然后通过另一趟遍历,建立中间表示(Intermediate Representation,IR)。
[0021](2.3)IR变换:通过对产生的IR进行多趟变换,逐步将物联网系统建模语言提供的高层抽象,如设备属性访问、方法调用、事件触发机制,转变为由设备驱动程序实现的网络数据包发送/接收原语指令send和receive,和一些底层的处理和计算逻辑,组成的IR。
[0022](2.3.1)对于每个事件类,在IR上查找所有对该事件类的watch指令,以收集每个事件类的所有监听者及回调方法。
[0023](2.3.2)在IR上消除所有watch/unwatch指令;watch/unwatch的逻辑能够等价转
化为将一个新建的、表示该事件类是否被本设备监听的标志属性置为真/假;在对应的回调方法的开头判断该标志属性,以确定该事件类是否被监听;假如没有,则直接返回。
[0024](2.3.3)在IR上消除所有远程设备属性访问指令;对每个远程设备属性访问指令,都能够重写为对对应设备类中getter/setter方法的同步远程调用。
[0025](2.3.4)在IR上优化read_heavy的设备属性的读操作;在物联网系统中,许多设备具有一些读多写少的属性,每次读取都进行一次远程方法调用较为浪费,因此本专利技术将最新的属性值缓存在本地,每次直接从本地读取;而当属性值被修改时,则触发缓存失效事件,所有可能读取其值的设备都将监听到,并清除对应的缓存有效位。
[0026]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式的物联网系统建模语言及其编译方法,其特征在于,包括以下步骤:(1)按照业务逻辑,使用该物联网系统建模语言书写程序,对设备及设备间联动行为进行建模;(2)将该程序交由物联网系统建模语言编译器编译,产生需要被下放到各个设备的嵌入式C代码;(3)将产生的C代码进一步使用硬件平台特定的嵌入式C编译器编译为机器指令,然后通过多种方式将程序下载到嵌入式设备内,如远程固件更新或者烧录。2.根据权利要求1所述的一种分布式的物联网系统建模语言及其编译方法,其特征在于,所述步骤(1)具体为:(1.1)建立设备模型,所述模型包括设备类、设备属性和设备方法,以及设备方法内的程序语句;(1.2)建立设备间联动行为模型,所述模型包括同步/异步方法调用、事件触发机制。3.根据权利要求2所述的一种分布式的物联网系统建模语言及其编译方法,其特征在于,所述步骤(1.1)具体为:(1.1.1)设备类:系统中的每类设备对应一个设备类,一个设备类中,定义了设备属性和设备方法;(1.1.2)设备属性:描述该类设备的内部状态,分为私有属性和公有属性,私有属性仅在设备类内部可见,而公有属性能够被其他设备访问到,设备属性可定义read_heavy注解,表示该属性是读多写少的,以便于编译优化;(1.1.3)设备方法:描述该类设备的行为,设备方法分为私有方法和公有方法,两者都能够在设备内部被调用,但仅公有方法能够被外部设备调用,设备方法还分为用户方法和本地方法,前者表示由用户代码所定义的方法,后者表示在设备驱动内实现的,通常需要和硬件交互的代码,每个设备方法内部允许包含局部变量,其定义同现代高级语言中局部变量的定义;(1.1.4)程序语句:每个设备方法包含多个语句,语句包含赋值语句、流程控制语句,以及事件监听语句、事件触发语句、方法调用语句。4.根据权利要求2所述的一种分布式的物联网系统建模语言及其编译方法,其特征在于,所述步骤(1.2)具体为:(1.2.1)同步方法调用:指调用一个本地或远程设备的方法,阻塞等待其执行完成并返回,然后继续执行后续的程序;同步方法调用允许传入参数,形如device.call(param1,param2,param3,...,paramN);(1.2.2)异步方法调用:指调用一个本地或远程设备的方法,但不必等待其执行完成,便可继续执行后续的程序;异步方法调用允许传入参数,形如async device.call(param1,param2,param3,...,paramN);(1.2.3)事件触发机制:系统包含由名称标识的多个事件类,每个设备能够动态地监听或取消监听任意一个事件类,监听一个事件类,指该类下某事件发生时,自动异步调用指定的一个设备方法,称为回调方法;在每个设备方法内,均能够触发事件;一旦一个事件被触发,所有监听它的设备的回调方法都将被自动调用;设备驱动程序也能够触发仅在设备类内部可见的事件;每个事件都包含零个或多个事件参数,用于具体描述该事件。
5.根据权利要求1所述的一种分布式的物联网系统建模语言及其编译方法,其特征在于,所述步骤(2)具体为:(2.1)解析:主要包括词法分析和语法分析,用于产生语法树;(2.2)语义分析:通过一趟对语法树的遍历,推导各个语法节点的类型信息,建立符号表,然后通过另一趟遍历,建立中间表示;(2.3)IR变换:通过对产生的IR进行多趟变换,逐步将物联网系统建模语言提供的高层抽象,如设备属性访问、方法调用、事件触发机制,转变为由设备驱动程序实现的网络数据包发送/接收原语指令send和rec...

【专利技术属性】
技术研发人员:沈俊儒李昭斌高康悦芮楚梵刘逸辰
申请(专利权)人:河海大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1