CN113805867B - 一种基于可视化静态脚本引擎的物联网平台 - Google Patents

一种基于可视化静态脚本引擎的物联网平台 Download PDF

Info

Publication number
CN113805867B
CN113805867B CN202110973430.1A CN202110973430A CN113805867B CN 113805867 B CN113805867 B CN 113805867B CN 202110973430 A CN202110973430 A CN 202110973430A CN 113805867 B CN113805867 B CN 113805867B
Authority
CN
China
Prior art keywords
data
script
equipment
connection
analysis
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
CN202110973430.1A
Other languages
English (en)
Other versions
CN113805867A (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.)
China Information Consulting and Designing Institute Co Ltd
Original Assignee
China Information Consulting and Designing Institute 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 China Information Consulting and Designing Institute Co Ltd filed Critical China Information Consulting and Designing Institute Co Ltd
Priority to CN202110973430.1A priority Critical patent/CN113805867B/zh
Publication of CN113805867A publication Critical patent/CN113805867A/zh
Application granted granted Critical
Publication of CN113805867B publication Critical patent/CN113805867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y30/00IoT infrastructure
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/10Detection; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于可视化静态脚本引擎的物联网平台,包括接入层、数据层、服务层和应用层。接入层实现直连设备、智能网关及智能化系统接入,利用多网络适配技术,实现上下行设备数据的解析和转换。数据层将解析转换后的实时数据存放至InfluxDB时序库,并根据物模型TSL定义标准,以JSON格式将需要归档的数据存放至MongoDB文档库,用于历史数据分析服务。服务层根据业务场景需要,可实现实时数据订阅、实时视频流数据推送和历史数据查询与分析等服务。应用层提供平台界面化管理功能。本发明通过静态脚本实现在线化设备数据接入与设备指令下发,为用户提供更快捷、更直观、更易于维护和监管的物联网平台。

Description

一种基于可视化静态脚本引擎的物联网平台
技术领域
本发明属于物联网领域,具体为一种基于可视化静态脚本引擎的物联网平台。
背景技术
随着物联网快速发展,设备类型日益繁多,各种物联网行业应用平台层出不穷,物联网越来越面临异构化问题,主要包括数据异构化、应用平台异构化以及设备和应用异构化。不断异构化发展的同时,用户需求也在不断提高,表现出对多设备联动以及多数据融合的需求。为满足用户的多样化需求,物联网应用对物联网平台资源提供和处理能力提出更高要求,期望平台能准确智能地提供应用需求的数据和设备资源,简化应用处理。
目前物联网平台在设备接入上,通常采用已封装的SDK方式,需根据实际的设备情况,选择对应的SDK进行移植开发。由于物联网应用需求众多、环境复杂,SDK方式无法满足开发需求时,需根据已有规范或开源协议自行开发实现。同时此类应用对平台的安全性、接入性能、多业务应用联动都是极大的考验和挑战。
解决物联网异构化环境下互操作的问题,首先要解决物的语义、数据标准及设备接入问题。
发明内容
为了克服目前设备接入无法适应大部分场景及开发接入效率低下的缺陷,本发明提供了一种基于可视化静态脚本引擎的物联网平台,提供一个可在线的、快速的物联网设备接入平台,降低物联网开发成本、提高物联管理能力。
本发明解决其技术问题所采用的技术方案是:
一种基于可视化静态脚本引擎的物联网平台,该平台的总体架构自下而上包括接入层、数据层、服务层和应用层。
进一步,所述接入层基于可配置的物联连接驱动程序,实现直连设备、智能网关及智能化系统接入,包括MQTT、HTTP、CoAP、Modbus、WebSocket等常见接入协议,利用多网络适配技术,实现上下行设备数据的解析和转换;
可配置的物联连接驱动程序基于适配器设计模式,实现多协议接入,包括连接驱动程序和连接保活程序;
连接驱动程序通过引入开源协议SDK分别实现MQTT、HTTP、CoAP、Modbus、WebSocket协议的连接驱动;
连接保活程序是在执行无人值守的连接驱动程序时,能够自动从错误中恢复,平台通过Keepalive机制实现连接保活功能;Keepalive机制以MQTT协议为例,描述实现连接保活的方式。MQTT协议中设计了一对PingReq/PingResp数据包,当Broker和Client之间没有任何数据传输时,通过PingReq/PingResp数据包满足Keepalive的约定和连接状态侦测;
MQTT协议采用Mosquitto作为Broker代理组件,采用MQTTClient作为连接框架;所述HTTP协议采用HttpClient作为连接框架;所述CoAP协议采用Californium作为连接框架;所述Modbus协议采用Modbus4j作为连接框架;所述WebSocket协议采用Netty作为连接框架。
再进一步,所述数据层基于可视化静态脚本引擎实现数据解析功能,将解析转换后的实时数据存放至InfluxDB时序库,并根据物模型TSL定义标准,以JSON格式将需要归档的数据存放至MongoDB文档库,用于历史数据分析服务;
所述数据层中数据解析功能利用可视化静态脚本引擎,实现南向数据的采集配置。可视化静态脚本引擎在架构时,包括脚本可视化、语法检查器、脚本模拟器、脚本适配器和任务管理器;
脚本可视化采用CodeMirror作为JavaScript的在线编辑器,能够实时在线代码高亮显示,将设备原始数据转换成物模型TSL对应的属性或事件;
语法检查器采用JSLint实现脚本语法实时检查,包括语法规范性检查和语法正确性检查,不符合运行的脚本将会及时提醒并告知异常原因;
脚本模拟器提供测试数据输入接口,通过模拟输入原始设备信息后,运行测试模拟,平台将动态加载脚本代码,执行编译与运行操作,最后将解析结果或运行时异常输出到展示窗口中;
脚本适配器使脚本可视化编辑器中的语法即能够满足客户端运行也能够满足服务端运行;在执行测试阶段,代码运行于浏览器内核,如Webkit、Gecko、Trident等,主要完成解析代码的编写、检查及测试工作;在正式运行阶段,代码需运行于后台进程,无法运行于浏览器内核,所有解析代码均交由任务管理器来执行,在Java端,利用ScriptEngine实现Java与JavaScript的交互需求;
任务管理器负责解析脚本的任务管理,解析脚本提交后,将运行于任务管理器中,由任务管理器监听各执行脚本的进程状态,如果出现异常终止或阻塞情况,自动执行重启操作。
更进一步,所述应用层提供界面化管理功能,通过超文本传输协议HTTP接口实现平台接入层、数据层、服务层的功能与服务整合,功能包括物模型定义、物联连接配置、数据订阅配置、场景联动、告警规则和虚拟设备;
所述物模型定义依据、遵循ICA标准联盟制定的连接标准、数据标准、服务标准、测试标准、安全标准相关规范,解决了不同领域端云连接、通信组网、数据属性、端到端安全、测试标准缺乏或不统一的痛点问题。根据物模型定义,平台通过接入层和数据层将采集的设备数据转义为物模型TSL(物的描述语言)语法结构,物模型TSL语法结构采用JSONSchema定义,并将数据以JSON格式分别存放至InfluxDB时序库和MongoDB文档库;
所述物联连接配置基于物联连接驱动,实现连接协议的配置化管理。通过界面输入连接参数后,调用物联连接驱动提供的API接口,即能够完成物联连接的握手操作,连接成功后通过连接保活程序的Keepalive机制实现连接保活功能;
所述数据订阅配置提供界面化数据订阅管理,将存放在InfluxDB时序库的数据采用AMQP(高级消息队列协议)实现实时数据推送。在数据订阅配置中通过创建订阅对象和消费组,实现物模型TSL属性和事件的实时数据推送,AMQP客户端通过订阅已发布的消息队列进行实时数据消费;
所述场景联动通过界面化方式定义设备之间的联动规则。每个场景联动规则由触发器(Trigger)、执行动作(Action)、执行测试(Test)三个部分组成。当触发器指定的事件或属性发生变化时,系统通过判断执行条件是否已满足,来决定是否执行规则中定义的执行动作;
所述告警规则提供已接入设备的数据异常和状态异常的告警配置服务。数据异常表示采集的设备数据已超出设定的阈值范围,状态异常表示设备自身出现离线、网络错误的状态异常现象;
数据异常的阈值范围设定及状态异常的判定标准通过界面化条件进行输入,由于系统通常具有大量的规则配置,并且这些规则配置随着决策变化时也需随之变更,为了适应该需求场景,通过Drools开源的业务规则引擎,将界面输入的条件单独生成多个动态的DRL规则文件存放至规则库中,Drools引擎基于Rete算法,实时校验设定条件是否满足所需的告警业务规则;
DRL是规则文件的描述语言,与Java语法相似,由Package包路径、LHS条件判断规则体以及满足条件后所需执行操作的RHS规则体组成;
Drools引擎基于Rete算法,将存储库中的DRL规则文件进行模式匹配。例如某机房内,添加了温度传感器感知温度大于22℃时进行告警的一段规则配置,该规则通过Rete算法匹配主要包括以下几个主要过程:
WorkingMemory中存放Fact对象,即温度传感器,RuleBase中存放Rule比较规则,即温度大于22℃的条件,PatternMatcher用作Fact对象与Rule比较规则间的匹配执行器,来校验温度传感器的感知温度是否大于22℃,通过ExecutionEngine执行引擎将满足条件的温度信息存放至Agenda匹配议程;
所述虚拟设备提供基于物模型的虚拟数据生成机制。在异构环境下,通常设备施工与平台对接实施存在时间及进度差异,无法保证全部设备实施完成后进行设备数据的采集,针对此情况,开发出一套基于物模型的虚拟数据生成机制,用于模拟真实设备数据生成或用于调试设备数据对接。物模型中已定义各类物的属性描述,属性类型包括整数型、浮点型、枚举型、布尔型、字符型、时间型、结构体七种数据类型,同时包括属性的取值范围、步长等。所述平台在定义设备时,能够选择是否作为虚拟设备,确定为虚拟设备时,所述平台利用JDK8中的Random处理函数,将属性设定的属性类型、取值范围、步长自动生成符合要求的模拟数据,产生的模拟数据会按平台统一数据流处理的逻辑进行解析、存储及消费。
本发明的有益效果主要表现在:可以对复杂、异构、海量的物联设备进行配置管理,实时监测状态,及时发现异常,减少人工管理成本。在接入复杂多样的协议时,通过可配置的物联连接驱动程序,实现协议快速接入,降低物联连接难度,提升物联连接效率;在设备数据解析时,采用基于静态脚本引擎的物联解析架构,实现在线化脚本编写、脚本测试及脚本运行,无需自行开发接入代码或基于设备SDK进行开发,采集任务由任务管理器自动化管理。在实现多场景联动时,通过将智能化子系统集成,提供统一的联动能力,实现统一联动规则配置、监控告警通知,使管理主动,并易于针对智慧化场景中各类情况动态调整管理策略。
附图说明
图1为本发明的物联网平台功能架构图。
图2为本发明的可视化静态脚本引擎业务逻辑图。
图3为本发明的可视化静态脚本引擎数据流图。
图4为本发明的数据解析架构图。
图5为本发明的视频流接入架构图。
具体实施方式
下面将结合附图对本发明作进一步描述。
本发明提供了一种基于可视化静态脚本引擎的物联网平台,无需额外开发及部署新的物联协议接入程序,通过静态脚本在线化实现设备数据接入与设备指令下发,为用户提供更快捷、更直观、更易于维护和监管的物联网平台。
所述接入层中,提供可配置的物联连接驱动程序。接入方式包括物联协议接入、视频流接入、Java SDK模型接入。所有协议接入平台均采用界面配置化操作,根据协议类型不同,封装不同的驱动程序,并加入连接池思想,保障连接会话的重用,减少协议握手次数,提高连接性能。
1)物联协议接入,包括MQTT、HTTP、CoAP、Modbus、WebSocket等常见接入协议。
2)视频流接入,在智慧化应用场景,视频流常用于实时视频播放和视频流分析。视频流播放支持RTSP、ONVIF、GB28181转RTMP,并通过浏览器播放组件在Web页面实时播放视频流。视频流分析利用FFmpeg实现视频帧抓取,之后传输至AI能力中心进行人脸识别、轨迹分析等算法分析服务。
3)Java SDK模型,是作为设备接入的自定义插件,可扩展第三方采集能力。基于Java环境的开发语言标准和JSON数据格式,可根据设备特点开发私有设备通讯插件,上传至平台,实现专属设备的通讯插件建模。
所述数据层中,提供基于静态脚本引擎的物联解析架构。脚本引擎采用JavaScript语言,相比Groovy、Ruby等动态语言,JavaScript语言具备无需编译开发效率更高、使用更广泛等多个特性。静态脚本引擎在架构时,由脚本可视化、语法检查器、脚本模拟器、脚本适配器和任务管理器五个部分组成。
1)脚本可视化,采用CodeMirror作为JavaScript的可视化编辑器,可实时在线代码高亮显示。脚本解析功能提供默认的函数体postProperty(属性解析)和postEvent(事件解析),分别将设备原始数据转换成物模型TSL对应的属性或事件,具体的解析代码将根据在线代码帮助,实现各类设备的数据解析操作。
2)语法检查器,CodeMirror是作为JavaScript编辑器,但开发过程中,存在语法错误时编辑器通常无法做到智能提醒,只有在运行该脚本后才会展示异常,且调试难度较大,影响脚本编写效率。为解决代码语法错误问题,采用JSLint实现脚本语法实时检查,包括语法规范性检查和语法正确性检查,不符合运行的脚本将会及时提醒并告知异常原因。
3)脚本模拟器,数据解析脚本编写完成后,通常需要执行代码自测工作,检查脚本过程处理及返回结果是否符合预期。平台在展示端,提供测试数据输入接口,通过模拟输入原始设备信息后,运行测试模拟,平台将动态加载脚本代码,执行编译与运行操作,最后将解析结果或运行时异常输出到展示窗口中。
4)脚本适配器,脚本代码通过Web端编辑器CodeMirror进行编写,采用语言为JavaScript。在执行测试阶段,代码运行于浏览器内核,如Webkit、Gecko、Trident等,主要完成解析代码的编写、检查及测试工作。但在正式运行阶段,代码需运行于后台进程,无法运行于浏览器内核,所有解析代码均交由任务管理器来执行,在Java端,利用ScriptEngine实现Java与JavaScript的交互需求,但设备解析脚本通常受协议、厂商等因素的多样性,客户端浏览器内核执行与服务端ScriptEngine执行存在一定的差异性,例如浏览器内核可执行一段ajax请求,在编译、测试均没有问题,但在ScriptEngine执行时则会出现异常,此时则需要添加脚本适配器,使其脚本语法即可满足客户端运行也可满足服务端运行。脚本适配器将提供可同时满足客户端与服务端兼容版本的语法函数,即编写一套标准脚本,即可客户端运行也可服务端运行,消除多端的语法差异,提供的适配器处理包括Ajax请求适配、Console控制台调试适配、JSON对象转换适配、Cache缓存适配、MD5/SHA256等加密算法适配、进制字符转换适配等。
5)任务管理器,负责解析脚本的任务管理,解析脚本提交后,将运行于任务管理器中,由任务管理器监听各执行脚本的进程状态,如出现异常终止或阻塞情况后,自动执行重启操作。
所述服务层中,提供基于AMQP的实时数据推送。基于AMQP(高级消息队列协议)开放标准,通过实时数据订阅创建订阅对象和消费组,实现各类产品属性、事件的实时数据推送,AMQP客户端通过订阅已发布的消息队列进行实时数据消费。
所述应用层中,实现便捷的场景联动策略。场景联动架构模式同基于静态脚本引擎的物联解析架构,物联解析执行上行数据采集,场景联动执行下行设备控制。如物联解析时已配置连接驱动,则无需重复配置,选择已有的连接信息。场景联动功能提供默认的函数体callService(调用服务),物联解析实现将上行设备数据与JSON数据的解析转换,场景联动实现将下行JSON数据与设备数据的解析转换。场景联动的规则类型可以通过告警触发或时间维度触发,并通过执行动作输出到直连设备、智能网关或智能化系统,实现海量设备联动的场景。
提供基于物模型的虚拟数据生成机制。在异构环境下,通常设备施工与平台对接实施存在时间及进度差异,无法保证全部设备实施完成后进行设备数据的采集,针对此情况,开发出一套基于物模型的虚拟数据生成机制,用于模拟真实设备数据生成或用于调试设备数据对接。物模型中已定义各类物的属性描述,属性类型包括整数型、浮点型、枚举型、布尔型、字符型、时间型、结构体七种数据类型,同时包括属性的取值范围、步长等。平台在定义设备时,可选择是否作为虚拟设备,确定为虚拟设备时,平台将根据属性设定的属性类型、取值范围、步长自动生成符合要求的模拟数据,产生的模拟数据会按平台统一数据流处理的逻辑进行解析、存储及消费。
实施例
本发明提供了一种基于可视化静态脚本引擎的物联网平台,该平台是作为IoT场景的重要基础设施,在智慧园区、智慧场馆、智慧校园等领域提供底层标准化工具。具备复杂设备接入、标准化数据管理及多样化数据服务等核心能力,可快速构建基于物联网技术的智慧化场景应用。
基于可配置的物联连接驱动程序,提供可扩展的接入适配服务,实现各类感知设备统一接入和统一控制。在智慧化场景应用中,内部设施众多,协议复杂多样,各子系统通常来自不同厂商,物联连接驱动支持不同类型的接入协议和不同厂商的数据内容解析,包括标准协议MQTT、HTTP、CoAP、Modbus、WebSocket和私有协议等,做到即插即用。通过快捷的连接配置,降低物联数据接入难度,提升物联接入效率。
基于可视化静态脚本引擎的数据解析技术,为了克服目前设备接入无法适应大部分场景及开发接入效率低下的缺陷,开发出的一套基于可视化静态脚本引擎的数据解析技术,通过在线编写数据解析脚本,即可便捷的实现南向数据的采集配置。数据解析脚本集中管理、维护便捷,同时缩短建设周期、大幅降低智慧化场景应用的建设与维护成本,使用户聚焦在核心业务逻辑的设计、开发和构建上。
基于物模型的标准化数据存储,为了消除物联网数据属性不同,数据在设备与设备、设备与云端、云端与云端间的传输不统一问题,该平台遵循ICA标准联盟制定的连接标准、数据标准、服务标准、测试标准、安全标准相关规范,通过接入层和数据层将采集的设备数据转义为物模型TSL语法结构,实现物模型的标准化数据存储,并将数据以JSON格式分别存放至InfluxDB时序库和MongoDB文档库,提供了跨异构数据的存储能力,解决设备间数据互联互通问题。同时智慧化应用场景随着大数据、云计算、人工智能极大程度的与物联网融合,最终都会实现统一资源整合,该平台成为形成标准化物联数据存储的重要载体,为智慧化应用场景提供一站式数据集成、数据开发、数据治理、数据服务能力。
基于物模型的虚拟数据生成机制,用于模拟真实设备数据生成或用于调试设备数据对接,通过已定义各类物的属性描述,并根据属性设定的属性类型、取值范围、步长自动生成符合要求的模拟数据,产生的模拟数据会按平台统一数据流处理的逻辑进行解析、存储及消费。该生成机制满足在异构环境下,可模拟真实设备与物联网平台建立连接,使用模拟数据,测试物联网平台与设备端之间的通信功能,并提前定位问题。
基于规则引擎的告警策略,提供已接入设备的数据异常和状态异常的告警配置服务,通过Drools开源的业务规则引擎,将界面输入的条件单独生成多个动态的DRL规则文件存放至规则库中,Drools引擎基于Rete算法,实时校验设定条件是否满足所需的告警业务规则。实现对智能物联设备运作时长、运作负荷、反馈信息等关键数据进行预警及告警,保证安保人员对各种意外情况进行及时响应,由传统的被动安防向主动安防转变。
基于界面化的场景联动控制,实现便捷的场景联动策略。场景联动的规则类型可以通过告警触发或时间维度触发,并通过执行动作输出到直连设备、智能网关或智能化系统,实现海量设备联动的场景。平台通过将智能化子系统集成,如安防领域,集成入侵报警、视频监控、门禁系统等,提供统一的联动能力,实现统一联动规则配置、监控告警通知,使管理主动,并易于针对智慧化场景中各类情况动态调整管理策略。
如图1所示,本发明平台的总体功能架构包括采集服务、数据服务、数据存储、支撑服务、应用服务、OpenAPI六个部分。
采集服务位于平台的最底层,与智能网关、直连设备等相连接,负责各应用场景的数据采集。为了适应各种物联场景,采集服务在设计上支持不同层级的十余种协议,包括MQTT,HTTP,WebSocket,OPC,CoAP,DDS,Zigbee,LoRa,Modbus,NB-IoT,BACnet,RS232,RS485。为了满足大规模设备的采集数据吞吐,采集服务需通过接入服务进行负载,实现采集数据流分发,保证数据传输的实时性和有效性。
数据服务负责对数据进行计算、治理与分析。具体包含数据分析、数据加载、数据解析、数据转换、数据共享以及数据抽取功能。
数据存储负责存储采集的设备指标数据。在技术上使用多种当前主流数据存储技术实现数据存储,以适应各种数据运用场景。目前使用的数据存储技术包括MySQL,InfluxDB,Kafka,Redis,RabbitMQ。
支撑服务负责提供平台内部必要的数据支撑处理服务。包括规则引擎、人脸识别、流媒体服务、消息服务、调度服务、事件中心、注册中心、监控中心、认证中心。
应用服务分为数据服务、设备管理、系统设置三项管理功能。其中数据服务包含实例管理、仪表盘、告警查询、统计报表、物联连接、采集任务、数据监测。设备管理包含产品定义、设备分组、设备管理、场景联动、空间管理、物模型、设备影子、设备认证、虚拟设备。系统设置包含用户信息、角色授权、消息管理、日志管理。其中设备管理的物模型功能在构建时充分依据、遵循ICA标准联盟制定的连接标准、数据标准、服务标准、测试标准、安全标准等相关规范,解决了不同领域端云连接、通信组网、数据属性、端到端安全、测试标准缺乏或不统一等痛点问题。
OpenAPI主要面对开发者或第三方系统,负责提供数据共享服务。支持的服务类型包括Restful API、AMQP、WebSocket、Java SDK。
如图2所示,该平台的业务逻辑处理、数据的全生命周期消费涉及多个环节,包括物模型、产品、设备、物联连接、采集任务、规则引擎。首先定义物模型的属性、服务与事件,再定义产品及设备。产品是设备的一类集合,创建产品后将继承选定的物模型属性、服务和事件信息,同时在KafKa消息系统中会自动生成该产品的Topic主题,Topic主题用于设备数据采集时,作为不同类型数据的传输通道。物模型、产品、设备定义完成后,即可通过可视化静态脚本引擎实现各类产品的物联解析任务,所有的任务交由任务管理器进行集中管理。最后数据按照定义的模型标准存储后,可基于规则引擎实现实时或历史数据的共享服务、告警服务和场景联动服务。
如图3所示,该平台的数据流处理是可视化静态脚本引擎的核心处理逻辑,是将设备原始数据通过数据的获取、传输、解析、存储及共享的过程。物联连接功能通过可配置的物联连接驱动获取到设备原始数据,将设备原始数据根据属性或事件分类发布至已自动生成的Kafka Topic主题中,属性上报定义Topic主题路径为“/实例Key/产品Key/property/post”,服务调用定义Topic主题路径为“/实例Key/产品Key/service/call”,事件上报定义Topic主题路径为“/实例Key/产品Key/event/post”。由数据解析服务订阅指定的Topic主题,且根据已定义的物模型TSL标准,将原始数据适配成已定义的物模型TSL数据,解析完成后实时存放至InfluxDB时序库,后续将通过规则引擎实现基于标准化数据的统计分析、数据服务、告警服务等功能。
如图4所示,基于可视化静态脚本引擎是该平台在数据解析时的核心部件,由脚本可视化、语法检查器、脚本模拟器、脚本适配器、任务管理器五个部分组成。
通过可配置的物联连接驱动,将设备原始数据采集至可视化静态脚本引擎。静态脚本引擎通过脚本可视化、语法检查器、脚本模拟器、脚本适配器实现可视化解析代码的编写、调试及适配任务。
脚本可视化,采用CodeMirror作为JavaScript的在线编辑器,可实时在线代码高亮显示。提供函数体postProperty(属性解析)和postEvent(事件解析),分别将设备原始数据转换成物模型TSL对应的属性或事件。
语法检查器,属于静态测试。采用JSLint实现脚本语法实时检查,包括语法规范性检查和语法正确性检查,不符合运行的脚本将会及时提醒并告知异常原因。
脚本模拟器,属于动态测试。数据解析脚本编写完成后,通常需要执行代码自测工作,检查脚本过程处理及返回结果是否符合预期。平台在展示端,提供测试数据输入接口,通过模拟输入原始设备信息后,运行测试模拟,平台将动态加载脚本代码,执行编译与运行操作,最后将解析结果或运行时异常输出到展示窗口中。
脚本适配器,在执行测试阶段,代码运行于浏览器内核,如Webkit、Gecko、Trident等,主要完成解析代码的编写、检查及测试工作。但在正式运行阶段,代码需运行于后台进程,无法运行于浏览器内核,所有解析代码均交由任务管理器来执行,在Java端,利用ScriptEngine实现Java与JavaScript的交互需求,但设备解析脚本通常受协议、厂商等因素的多样性,客户端浏览器内核执行与服务端ScriptEngine执行存在一定的差异性,例如浏览器内核可执行一段ajax请求,在编译、测试均没有问题,但在ScriptEngine执行时则会出现异常,此时则需要添加脚本适配器,使其脚本语法即可满足客户端运行也可满足服务端运行。
任务管理器,负责解析脚本的任务管理,解析脚本提交后,将运行于任务管理器中,由任务管理器监听各执行脚本的进程状态,如出现异常终止或阻塞情况后,自动执行重启操作。
如图5所示,该平台的视频流接入架构包括流媒体服务器、开放接口和视频播放三个部分。
流媒体服务器基于Nginx的nginx-http-flv-module模块搭建,通过FFmpeg实现RTSP视频流的采集、转封装、编解码,最终以RTMP视频流对外推送。
开放接口在流媒体服务器基础上提供基于REST风格的Restful API服务访问接口,供三方系统进行视频封面获取、RTSP流推送、状态查询、服务移除操作。
视频播放支持在H5开发的Web页面中,以FLV、HLS、Video、VLC插件进行实时视频播放。
本发明提供了一种基于可视化静态脚本引擎的物联网平台,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (3)

1.一种基于可视化静态脚本引擎的物联网平台,其特征在于,包括接入层、数据层、服务层和应用层;
所述接入层基于可配置的物联连接驱动程序,实现直连设备、智能网关及智能化系统接入,利用多网络适配技术,实现上下行设备数据的解析和转换;
所述数据层基于可视化静态脚本引擎实现数据解析功能,将解析转换后的实时数据存放至InfluxDB时序库,并根据物模型TSL定义标准,以JSON格式将需要归档的数据存放至MongoDB文档库,用于历史数据分析服务;
所述服务层根据业务场景需要,基于AMQP消息队列协议实现实时数据订阅、实时视频流数据推送和历史数据查询与分析服务;
所述应用层提供界面化管理功能,通过超文本传输协议HTTP接口实现平台接入层、数据层、服务层的功能与服务整合;
所述接入层中可配置的物联连接驱动程序基于适配器设计模式,实现多协议接入,包括连接驱动程序和连接保活程序;
连接驱动程序通过引入开源协议SDK分别实现MQTT、HTTP、CoAP、Modbus、WebSocket协议的连接驱动;
连接保活程序是在执行无人值守的连接驱动程序时,能够自动从错误中恢复,平台通过Keepalive机制实现连接保活功能;
所述MQTT协议采用Mosquitto作为Broker代理组件,采用MQTTClient作为连接框架;所述HTTP协议采用HttpClient作为连接框架;所述CoAP协议采用Californium作为连接框架;所述Modbus协议采用Modbus4j作为连接框架;所述WebSocket协议采用Netty作为连接框架;
所述数据层中数据解析功能利用可视化静态脚本引擎,实现南向数据的采集配置,可视化静态脚本引擎在架构时,包括脚本可视化、语法检查器、脚本模拟器、脚本适配器和任务管理器;
脚本可视化采用CodeMirror作为JavaScript的在线编辑器,能够实时在线代码高亮显示,将设备原始数据转换成物模型TSL对应的属性或事件;
语法检查器采用JSLint实现脚本语法实时检查,包括语法规范性检查和语法正确性检查,不符合运行的脚本将会及时提醒并告知异常原因;
脚本模拟器提供测试数据输入接口,通过模拟输入原始设备信息后,运行测试模拟,平台将动态加载脚本代码,执行编译与运行操作,最后将解析结果或运行时异常输出到展示窗口中;
脚本适配器使脚本可视化编辑器中的语法即能够满足客户端运行也能够满足服务端运行;在执行测试阶段,代码运行于浏览器内核,如Webkit、Gecko、Trident等,主要完成解析代码的编写、检查及测试工作;在正式运行阶段,代码需运行于后台进程,无法运行于浏览器内核,所有解析代码均交由任务管理器来执行,在Java端,利用ScriptEngine实现Java与JavaScript的交互需求;
任务管理器负责解析脚本的任务管理,解析脚本提交后,将运行于任务管理器中,由任务管理器监听各执行脚本的进程状态,如果出现异常终止或阻塞情况,自动执行重启操作;
所述界面化管理功能包括物模型定义、物联连接配置、数据订阅配置、场景联动、告警规则和虚拟设备;
所述物模型定义依据、遵循ICA标准联盟制定的连接标准、数据标准、服务标准、测试标准、安全标准相关规范,根据物模型定义,平台通过接入层和数据层将采集的设备数据转义为物模型TSL语法结构,物模型TSL语法结构采用JSON Schema定义,并将数据以JSON格式分别存放至InfluxDB时序库和MongoDB文档库;
所述物联连接配置基于物联连接驱动,实现连接协议的配置化管理;通过界面输入连接参数后,调用物联连接驱动提供的API接口,即能够完成物联连接的握手操作,连接成功后通过连接保活程序的Keepalive机制实现连接保活功能;
所述数据订阅配置提供界面化数据订阅管理,将存放在InfluxDB时序库的数据采用AMQP高级消息队列协议实现实时数据推送;在数据订阅配置中通过创建订阅对象和消费组,实现物模型TSL属性和事件的实时数据推送,AMQP客户端通过订阅已发布的消息队列进行实时数据消费;
所述场景联动通过界面化方式定义设备之间的联动规则;每个场景联动规则由触发器、执行动作、执行测试三个部分组成;当触发器指定的事件或属性发生变化时,系统通过判断执行条件是否已满足,来决定是否执行规则中定义的执行动作;
所述告警规则提供已接入设备的数据异常和状态异常的告警配置服务,数据异常表示采集的设备数据已超出设定的阈值范围,状态异常表示设备自身出现离线、网络错误的状态异常现象。
2.如权利要求1所述的平台,其特征在于,数据异常的阈值范围设定及状态异常的判定标准通过界面化条件进行输入,通过Drools开源的业务规则引擎,将界面输入的条件单独生成动态的DRL规则文件存放至规则库中,Drools引擎基于Rete算法,实时校验设定条件是否满足所需的告警业务规则;
Drools引擎基于Rete算法,将存储库中的DRL规则文件进行模式匹配。
3.如权利要求2所述的平台,其特征在于,所述虚拟设备提供基于物模型的虚拟数据生成机制,物模型中已定义各类物的属性描述,属性类型包括整数型、浮点型、枚举型、布尔型、字符型、时间型、结构体七种数据类型,同时包括属性的取值范围、步长;所述平台在定义设备时,能够选择是否作为虚拟设备,确定为虚拟设备时,所述平台利用JDK8中的Random处理函数,将属性设定的属性类型、取值范围、步长自动生成符合要求的模拟数据,产生的模拟数据会按平台统一数据流处理的逻辑进行解析、存储及消费。
CN202110973430.1A 2021-08-24 2021-08-24 一种基于可视化静态脚本引擎的物联网平台 Active CN113805867B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110973430.1A CN113805867B (zh) 2021-08-24 2021-08-24 一种基于可视化静态脚本引擎的物联网平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110973430.1A CN113805867B (zh) 2021-08-24 2021-08-24 一种基于可视化静态脚本引擎的物联网平台

Publications (2)

Publication Number Publication Date
CN113805867A CN113805867A (zh) 2021-12-17
CN113805867B true CN113805867B (zh) 2024-03-19

Family

ID=78941501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110973430.1A Active CN113805867B (zh) 2021-08-24 2021-08-24 一种基于可视化静态脚本引擎的物联网平台

Country Status (1)

Country Link
CN (1) CN113805867B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281905A (zh) * 2021-12-27 2022-04-05 济南浪潮智投智能科技有限公司 一种实现物联网设备连接管理的方法及系统
CN114567650B (zh) * 2021-12-29 2022-12-27 西安天和防务技术股份有限公司 一种数据处理方法及物联网平台系统
CN114500601B (zh) * 2022-02-09 2024-03-26 南京戎光软件科技有限公司 基于管理引擎的物联网系统
CN114793191A (zh) * 2022-02-17 2022-07-26 江苏卓易信息科技股份有限公司 一种基于领域模型的物联网集成系统及方法
CN114466048B (zh) * 2022-03-09 2023-01-13 北京豪尔赛智慧城域科技有限公司 用于物联网平台间的数据流转的方法、装置和存储介质
CN115002146A (zh) * 2022-03-25 2022-09-02 冶金自动化研究设计院有限公司 一种物模型在工业物联网的应用方法
CN114422555B (zh) * 2022-03-28 2022-07-12 成都柔水科技有限公司 一种基于CIM平台可自定义配置IoT数据解析的方法
CN114810644B (zh) * 2022-03-29 2023-08-08 惠州高盛达科技有限公司 一种基于物联网的异步收发器通信的智能风扇整体系统
CN114827253B (zh) * 2022-04-01 2024-02-23 南京戎光软件科技有限公司 基于云边物模型的智慧建筑物联网系统
CN114945031B (zh) * 2022-04-16 2024-06-07 深圳市爱为物联科技有限公司 一种支持海量设备多通讯协议及消息协议接入的云原生物联网平台
CN114510219B (zh) * 2022-04-19 2022-07-19 合沃物联技术(南京)有限公司 一种基于物联网中间件的工业物模型及其实现方法
CN114745433B (zh) * 2022-04-21 2023-11-03 杭州指令集智能科技有限公司 海量设备数据接入物联网操作的方法及系统
TWI809861B (zh) * 2022-05-10 2023-07-21 新漢股份有限公司 物聯網的佈署系統及其佈署方法
CN115150226A (zh) * 2022-06-20 2022-10-04 武汉虹信技术服务有限责任公司 一种基于物模型的智慧网关适配系统及其运行方法
CN116382775A (zh) * 2023-03-15 2023-07-04 中电金信软件有限公司 基于Hbuilderx插件的多平台程序包生成方法
CN118012438B (zh) * 2024-04-09 2024-06-07 浙江口碑网络技术有限公司 客户端体验处置方法、装置、介质及设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103458033A (zh) * 2013-09-04 2013-12-18 北京邮电大学 事件驱动、面向服务的物联网服务提供系统及其工作方法
AU2019100541A4 (en) * 2019-05-20 2019-06-27 Senquip Pty Ltd A Custom Script to Change the Default Operation of an IOT (Internet of Things) Device
CN110661820A (zh) * 2019-12-02 2020-01-07 武汉慧联无限科技有限公司 一种物联网数据处理方法及装置、设备、存储介质
CN110850768A (zh) * 2019-11-05 2020-02-28 中通服咨询设计研究院有限公司 一种基于5g的大数据物联网系统
CN111309315A (zh) * 2018-12-12 2020-06-19 中国科学院沈阳自动化研究所 一种基于工业物联网数据和业务建模的自动化配置方法
CN111447227A (zh) * 2020-03-27 2020-07-24 四川虹美智能科技有限公司 物联网设备的协议解析方法及装置
CN111953778A (zh) * 2020-08-12 2020-11-17 北京泊菲莱科技有限公司 一种物联网管理系统
CN112333227A (zh) * 2020-09-11 2021-02-05 浙江工业大学 一种基于规则引擎的混合型协议的物联网平台
CN112688912A (zh) * 2020-11-23 2021-04-20 福建网能科技开发有限责任公司 一种支持JavaScript脚本配置的物联网通用网关协议自动解析系统
CN113132192A (zh) * 2021-03-02 2021-07-16 西安电子科技大学 一种海量物联网设备接入与管理方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103458033A (zh) * 2013-09-04 2013-12-18 北京邮电大学 事件驱动、面向服务的物联网服务提供系统及其工作方法
CN111309315A (zh) * 2018-12-12 2020-06-19 中国科学院沈阳自动化研究所 一种基于工业物联网数据和业务建模的自动化配置方法
AU2019100541A4 (en) * 2019-05-20 2019-06-27 Senquip Pty Ltd A Custom Script to Change the Default Operation of an IOT (Internet of Things) Device
CN110850768A (zh) * 2019-11-05 2020-02-28 中通服咨询设计研究院有限公司 一种基于5g的大数据物联网系统
CN110661820A (zh) * 2019-12-02 2020-01-07 武汉慧联无限科技有限公司 一种物联网数据处理方法及装置、设备、存储介质
CN111447227A (zh) * 2020-03-27 2020-07-24 四川虹美智能科技有限公司 物联网设备的协议解析方法及装置
CN111953778A (zh) * 2020-08-12 2020-11-17 北京泊菲莱科技有限公司 一种物联网管理系统
CN112333227A (zh) * 2020-09-11 2021-02-05 浙江工业大学 一种基于规则引擎的混合型协议的物联网平台
CN112688912A (zh) * 2020-11-23 2021-04-20 福建网能科技开发有限责任公司 一种支持JavaScript脚本配置的物联网通用网关协议自动解析系统
CN113132192A (zh) * 2021-03-02 2021-07-16 西安电子科技大学 一种海量物联网设备接入与管理方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Iot-Based Configurable Information Service Platform for Product Lifecycle Management;Hongming Cai等;《IEEE Transactions on Industrial Informatics》;20140217;第10卷(第2014年02期);1558-1567 *
Semantic open Iot service platform technology;Dong-Hwan Park等;《2014 IEEE World Forum on Internet of Thins(WF-IoT)》;20140424;85-88 *
免编程物联网云平台的研究与实现;《计算机时代》;20210630(第2021年06期);29-32 *
基于静态脚本引擎的物联网开放平台设计;陈雪勇等;《信息技术与信息化》;20211031;53-56 *
物联网开放平台的研究与设计;黄明亮;《中国优秀硕士论文全文数据库 信息科技辑》;20140315(第2014年03期);I138-337 *
面向环保物联网的可配置软件平台;马震;《中国优秀硕士论文全文数据库 信息科技辑》;20160215(第2016年02期);I138-810 *

Also Published As

Publication number Publication date
CN113805867A (zh) 2021-12-17

Similar Documents

Publication Publication Date Title
CN113805867B (zh) 一种基于可视化静态脚本引擎的物联网平台
US10560313B2 (en) Pipeline system for time-series data forecasting
Aktas Hybrid cloud computing monitoring software architecture
CN110383795B (zh) 基于服务图的无服务器云管理平台
US11709703B2 (en) Automated semantic tagging
CN111930365B (zh) 基于Qt的应用程序快速开发框架、开发方法及运行方法
WO2022016847A1 (zh) 一种适用于云平台的自动化测试方法及装置
CN112988485B (zh) 电力物联网设备模拟测试方法及装置
CN109559583A (zh) 故障模拟方法及其装置
US11294740B2 (en) Event to serverless function workflow instance mapping mechanism
CN102594618A (zh) 实现存储局域网络存储设备测试的方法及装置
CN111611054A (zh) 一种应用部署方法及装置
TWI751387B (zh) 軟體定義驅動的ict服務端對端協作系統
CN116155771A (zh) 网络异常测试方法、装置、设备、存储介质和程序
CN115588244A (zh) 一种车联网大数据实时分析方法、装置、设备及介质
Fogli et al. Chaos engineering for resilience assessment of digital twins
CN115056234B (zh) 基于事件驱动和无限状态机的rpa控制器调度方法及系统
CN111506393A (zh) 一种基于arm的虚拟化装置及其使用方法
CN111158938A (zh) 一种基于qkd的服务器与浏览器客户端之间的通信方法
CN106844147B (zh) 一种监控系统及方法
WO2021036987A1 (zh) 一种实现运维监控的方法及装置
CN115016960A (zh) 可配置的rpa机器人全流程信息通知处理方法及系统
CN109286608B (zh) 调用链处理方法、装置及存储设备、计算机设备
Wang et al. Cloud API testing
Ustok et al. Service development kit for media-type virtualized network services in 5G networks

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