美畅物联丨物联网平台的标准化之路:物模型设计的创新及应用

随着物联网(IoT)技术以前所未有的迅猛之势蓬勃发展,海量的物联网终端与应用纷纷接入,这不可避免地引发了数据与应用层面的异构化难题,进而形成了复杂且多变的碎片化问题。物联网感知数据因其具备多源异构的显著特性,极大程度地增加了数据识别、精准解析以及深度挖掘的重重困难,致使不同物联网应用之间的数据共享仿佛筑起了高耸的壁垒,协同合作的推进也举步维艰。此外,鉴于设备制造商所遵循的生产标准各不相同,设备接入物联网服务平台的整个过程变得极为复杂且耗时费力,开发的难度亦显著提升。

为解决上述问题,物模型(Thing Model)的设计应运而生,成为物联网平台优化管理与控制策略的关键。物模型通过系统化地定义与描述设备的属性、行为及服务能力,不仅为设备的精细化控制与实时监测提供了坚实基础,还极大地增强了设备的互操作性与可扩展性,为新设备的无缝接入与灵活配置铺平了道路。

在这样的大背景之下,畅联 AIoT 开放云平台紧密跟随技术发展的前沿潮流,以创新的思维将物模型这一概念巧妙地融入平台架构之中,对平台物模型进行了深入透彻的重构,成功实现了物联网设备的统一接入与高效管理。不仅大幅简化了设备管理的复杂程度,还进一步敞开了多元化的服务接口,为物联网应用的创新与发展提供了强有力的支撑。

在物模型的设计过程中,严格遵循以下原则:

简单性:模型设计力求独立于网络技术与承载协议,专注于设备本身的虚拟化描述,以简化设备制造商的理解与接入过程,降低技术门槛。

普适性:为兼容更多厂商需求,我们将模型细分为公共属性与特定属性,既保证了设备间的共通性,又保留了设备特有的个性化特性。同时,提供分行业的模型模板,满足不同行业的特定需求。

可扩展性:支持用户自定义服务,并引入数据透传机制,将模型基础能力与行业模板分离定义,确保模型能够随业务需求的发展而灵活扩展。

模块化:通过抽取公共服务进行复用,减少资源冗余,提高开发效率与资源利用率,促进模块化设计与开发实践的普及。

易用性:提供友好的接口与集成工具,降低开发难度,提升用户体验。

具体来讲,物模型的设计涵盖了设备属性、服务以及事件三大核心要素:

设备属性设计:对设备运行时的各项状态与参数进行了细致入微的刻画,例如温湿度传感器的精确读数、IPC 摄像头的 ROI 区域设置等。在属性定义方面,需明确数据类型、计量单位以及取值范围,以此确保数据的精确性与一致性。

设备服务设计:即设备对外提供的可调用指令集合,包括开关控制、亮度调节以及 IPC 摄像头的 AI 算法集成等。每一项服务均配备了清晰明确的名称、详尽全面的参数列表以及返回值说明,有力确保了服务的可预测性和易用性。

设备事件设计:精准捕捉并及时上报设备运行中的关键信息,例如IPC检测到火焰,上报火焰预警、人行检测、故障告警等。在事件设计中同样高度注重名称的清晰明确性与参数的完备性,切实保障事件信息能够准确无误地传递与处理。

下面,我们以依爱JTY-GD-EI8014N型NB烟感为例,我们依据其通信协议精准定义设备上报的模拟量信息。

{"objectModel": [{"key": "devSerialNo","calculate": false,"name": "设备序号","type": "string","typeName": "string(字符串)","unit": "","unitName": "","scale": "","moduleRatio": "","rangeType": "","upRange": "","downRange": "","remark": ""},{"key": "deviceId","calculate": false,"name": "设备ID","type": "string","typeName": "string(字符串)","unit": "","unitName": "","scale": "","moduleRatio": "","rangeType": "","upRange": "","downRange": "","remark": ""},{"key": "receiveDate","calculate": false,"name": "数据接收时间","type": "string","typeName": "string(字符串)","unit": "","unitName": "","scale": "","moduleRatio": "","rangeType": "","upRange": "","downRange": "","remark": ""},{"key": "rssi","calculate": false,"name": "信号质量","type": "string","typeName": "string(字符串)","unit": "","unitName": "","scale": "","moduleRatio": "","rangeType": "","upRange": "","downRange": "","remark": ""},{"key": "batteryVoltage","calculate": false,"name": "电池电压","type": "string","typeName": "string(字符串)","unit": "V","unitName": "伏特/V","scale": "","moduleRatio": "","rangeType": "","upRange": "","downRange": "","remark": ""},{"key": "tempValue","calculate": false,"name": "环境温度","type": "string","typeName": "string(字符串)","unit": "℃","unitName": "摄氏度/℃","scale": "","moduleRatio": "","rangeType": "","upRange": "","downRange": "","remark": ""},{"key": "value","calculate": false,"name": "当前浓度值","type": "string","typeName": "string(字符串)","unit": "","unitName": "","scale": "","moduleRatio": "","rangeType": "","upRange": "","downRange": "","remark": "单位 db/m"}]
}

依据事件协议进行深度解析,构建出高度适配的物模型。

{"eventModel": [{"eventNameCustom": "001","deviceEventCategoryId": "1","eventCategoryCode": "BJ","eventCategoryName": "报警","eventCategoryRemark": "","deviceEventId": "234","eventName": "告警","eventRemark": "","deviceEventLevelId": "1","eventLevelName": "一级","eventLevelRemark": "","eventParameterList": [{"parameterName": "Sender","Instructions": "事件绑定对象","type": "object"},{"parameterName": "EventTime","Instructions": "发生时间","type": "string"}],"remark": "","key": "001","condit": "电量"}]
}

基于该物模型,我们成功实现了设备的开发与应用的集成,设备数据的实时采集与控制,以及应用与设备间的无缝交互。

畅联 AIoT 开放云平台的物模型开发,不单单是平台技术架构的核心构成部分,更是推动物联网智能化管理与控制的关键驱动力量。通过成功实现设备与应用的解耦,促进信息在设备与平台间的自由流动,我们致力于打破产业链间的服务壁垒,构建更加开放、协同、共赢的物联网生态体系。

关注“美畅物联”,了解更多视频汇聚及AIoT底座解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/410879.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux中的常见命令——时间日期类命令

1、date显示当前时间 基本语法 写法功能描述date显示当前时间date %Y显示当前年份【四位数】date %m显示当前月份date %d显示当前是哪一天date "%Y-%m-%d %H:%M:%S" 显示年月日时分秒 【由于年月日和时分秒中间有空格所以需要用引号引起来】 实操案例 1、显示当…

【VUE入门级温故知新】一文向您详细介绍~组件属性Props(选项式API)

大家好,我是DX3906 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘大前端领域、真诚分享知识与智慧的小天地!🎇 前面和大家分享了《如何从零开始创建一个 Vue 应用》 《VUE模板语法(超详细讲解)》 《一文向您详细介绍~Vu…

uniapp中H5网页怎么实现自动点击事件

<template><view><button ref"myButton" click"handleClick">点击我</button></view> </template><script> export default {mounted() {this.$nextTick(() > {const button this.$refs.myButton;console.l…

并发服务器---IO多路复用

单循环服务器&#xff1a;同一时刻只能处理一个客户端任务 并发服务器&#xff1a; 同一时刻&#xff0c;只能处理多个客户端的任务 实现方法&#xff1a;多进程 多线程 IO多路复用 IO多路复用&#xff1a; 1.阻塞io&#xff08;fgets scanf recv getchar read&#x…

算法的学习笔记—数据流中的中位数(牛客JZ41)

&#x1f600;前言 在处理动态数据时&#xff0c;实时计算中位数是一个经典问题。中位数是排序后处于中间位置的数值&#xff0c;数据流中的中位数计算面临两个挑战&#xff1a;首先是数据量的动态变化&#xff0c;其次是需要保持元素的有序性。为了高效地解决这个问题&#xf…

并发式服务器

并发式服务器是一种设计用来同时处理多个客户端请求的服务器。这种服务器能够提高资源利用率和响应速度&#xff0c;适用于需要服务大量用户的网络应用。以下是并发式服务器的一些关键特点&#xff1a; 多任务处理&#xff1a;并发式服务器能够同时处理多个任务或请求&#xff…

DDOS攻击学习-渗透测试-域名信息收集

文章目录 wordpress漏洞利用域名信息收集域名介绍域名分类 whoiswhois反查子域名收集子域名发现网络空间安全搜索引擎SSL证书查询js文件发现子域名 wordpress漏洞利用 这个一般都需要安装wordpress服务使用wpscan扫描&#xff0c;但现在一般很少人知道或者使用wordpress所以这个…

Mysql的查询指令

整理了一些Mysql的查询语句&#xff0c;希望对大家有帮助&#xff0c;祝大家心想事成万事如意&#xff01; 基本查询 select 字段 from 表名 where 条件&#xff1b; 排序查询 select 字段 from 表名 order by 排序字段 [asc升序|desc降序] limit 前几行/中间几行&#xff1…

美股投资迷思大揭秘:理性投资,绕开六大陷阱

你是否也对美股投资充满了期待&#xff0c;但又担心踏入误区&#xff1f;美股市场作为全球金融的璀璨明珠&#xff0c;吸引着无数投资者的目光&#xff0c;但同时也伴随着一些常见的误解。今天&#xff0c;我们就来一一拆解这些迷思&#xff0c;助你美股投资之路更加顺畅&#…

产品中的影响力六大原则

罗伯特B西奥迪尼(Robert B. Cialdini)是全球知名的说服术与影响力研究权威专家。他在著作《影响力&#xff1a;说服心理学》中提出有效的影响和说服必须遵循统一的六项心理学原则&#xff1a;互惠、承诺与一致、社会认同、喜好、权威和稀缺性。不论在生活还工作中我们或多或少会…

算法-有效的字母异位词

这道题很简单&#xff0c;就不做过多的解释&#xff0c;只需要创建一个哈希表统计s中出现的次数&#xff0c;然后遍历t&#xff0c;如果没找到&#xff0c;或者找到了但是次数为0则返回错误&#xff0c;否则返回true。代码如下&#xff1a; class Solution { public:bool isAn…

【python】Python如何通过FFmpeg处理音视频

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

06:【江科大stm32】:定时器输入捕获功能

定时器输入捕获功能 1、通过定时器的输入捕获功能测量PWM波的频率2、PWMI模式测量频率和占空比 1、通过定时器的输入捕获功能测量PWM波的频率 定时器标准库相关的编程接口&#xff1a; ①PWM.c文件的代码如下&#xff1a; /*通过定时器TIM2生成一个分辨率为10us,频率为1KHz的…

RabbitMQ中的死信交换机?(RabbitMQ延迟队列有了解过吗)

延迟队列 延迟队列:进入队列的消息会被延迟消费的队列。 延迟队列死信交换机 TTL&#xff08;过期时间&#xff09; 延迟队列的使用场景:超时订单、限时优惠、定时发布 死信交换机 当一个队列中的消息满足下列情况之一时&#xff0c;可以成为死信(dead letter): 消费者使…

iOS工程:获取手机相册权限,iOS原生系统弹窗, Privacy隐私政策选择,如何添加系统弹出并修改描述文字

【iOS工程】获取手机相册权限&#xff0c;iOS原生系统弹窗, Privacy隐私政策选择&#xff0c;如何添加系统弹出并修改描述文字 设备/引擎&#xff1a;Mac&#xff08;11.6&#xff09;/Mac Mini 开发工具&#xff1a;Xcode&#xff08;15.0.1&#xff09; 开发需求&#xff…

【Java设计模式】Builder模式:在Java中清晰构建自定义对象

文章目录 【Java设计模式】Builder模式&#xff1a;在Java中清晰构建自定义对象一、概述二、Builder设计模式的意图三、Builder模式的详细解释及实际示例四、Java中Builder模式的编程示例五、Builder模式类图六、Java中何时使用Builder模式七、Builder模式的优点和权衡八、源码…

YOLO-World: Real-Time Open-Vocabulary Object Detection:实时开放词汇对象检测

YOLO系列探测器已成为高效实用的工具。然而&#xff0c;它们对预定义和训练的对象类别的依赖限制了它们在开放场景中的适用性。针对这一限制&#xff0c;我们引入了YOLO-World&#xff0c;这是一种创新方法&#xff0c;通过视觉语言建模和大规模数据集的预训练&#xff0c;增强…

.NET8 Web 利用BAT命令 一键部署 IIS - CI-CD基础

1. Windows Server 前置准备 1.1 IIS安装好 1.2 .NET8 Sdk 运行时 安装 官方下载地址&#xff1a;https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0 1.3 创建一个.NET8 WebMvc项目 生成发布包 微软MVC这个项目模板直接创建&#xff0c;发布 2. 利用 BAT 来一键部署…

Aigtek功率放大器应用领域分享:无处不在的MEMS传感器

微机电系统&#xff08;MEMS,Micro-Electro-MechanicalSystem&#xff09;&#xff0c;也叫做微电子机械系统、微系统、微机械等&#xff0c;指尺寸在几毫米乃至更小的高科技装置。微机电系统其内部结构一般在微米甚至纳米量级。微机电系统是在微电子技术&#xff08;半导体制造…

分布式基础理论——CAP理论和BASE理论

文章目录 CAP 理论BASE 理论参考资料 CAP 理论 CAP定理&#xff08;CAP theorem&#xff09;指出&#xff0c;在分布式系统中&#xff0c;设计读写操作时只能同时满足以下三个特性中的两个&#xff1a; 一致性&#xff08;Consistency&#xff09; : 所有节点访问同一份最新的…