物模型你真的清楚吗?

物模型你真的清楚吗?

从一些文章以及物联网平台中,我们经常会听到“物模型”这个名词,但往往对其概念理解不够深入,不清楚它在实际应用中的体现,更不知道如何设计物模型。为了更好地理解物模型,本文将通过几个问题来详细讲解这一概念。

背景

万物互联,为数据创建价值;不过目前物联网领域,山头林立——短时间甚至可遇见的未来这一情况将一直延续,不同厂家之间、不同行业之间数据互不相通,加大的限制了物联网的发展:
一、数据价值低:物联网数据具有多源异构、规模巨大等特性,使得数据解析与数据共享困难。与此同时,海量数据之间缺少业务关联 性,导致数据利用效率低下,数据价值无法充分利用。
二、业务复制成本高:不同设备的标准各异,设备接入开发成本高、时间长。随着行业应用和设备量增长,新增应用需要针对不同的标 准多次定制开发,造成业务的复制成本增高。
三、产业链合作难:不同厂家之间的接入协议、数据模型数量众多且各自封闭,产业链内部自成体系,使得产业链各主体间协作困难,
设备联动及维护难度大,服务兼容性差,严重影响用户体验。

什么是物模型

物模型是物理世界的实体东西的一个抽象,是进行数字化描述后,用于数字世界的数字模型。这么说可能有点绕,更直接一点说就是,物模型是使用计算机可以理解的语言,说清楚这个产品是什么、能做什么事情,以及可以提供哪些信息。而抽象就是要提取出产品的共同特征,形成模型。以智能灯为例,不同的灯,尽管规格不同,但它们的属性是相似,比如都有开关状态的属性,功能逻辑也相仿。我们可以将这些特征标准化,形成智能灯的物模型。反过来,物模型也规约了设备的功能。新增加的设备,如果是同一类型的,在设计、研发中,会遵循相同的功能定义,有相同的特征,实现相同的服务。比如,灯都应该有“开”和“关”两种状态。物模型TSL(Thing Specification Language)是一个JSON格式的文件,它是物理空间中的实体,如传感器、车载装置、楼宇、工厂等在云端的数字化表示,从属性、服务和事件三个维度,分别描述了该实体是什么、能做什么、可以对外提供哪些信息。定义了物模型的这三个维度,即完成了产品功能的定义。

通过上述定义可以看到,物模型主要描述的是如何与设备通信的交互模型,即:如何读写设备的状态,如何给设备发命令,以及设备如何上报一个事件,例如产生的一条设备告警。更确切的说,是与设备上运行的app进行通信,但是其APP与设备是一对一关系,APP就是设备的唯一代理。在工业领域的物联平台中,边缘应用、边缘计算能力更强,其架构形式为:物联管理平台<——>边缘代理<——>设备,物联管理平台直接通信的对象是边缘代理,而非设备!确切的说,是边缘代理上的应用,这些应用中,一部分是与设备一一对应,还有一部分与设备之间并无确切映射关系。因此,个人认为,在工业领域的物联平台中,其“物”的概念应相对于消费物联网进行扩展,不仅包括设备,还包括应用。相同之处在于,物联平台中的物模型本质是描述了平台与设备或者应用之间的交互模型。

物模型的核心

物模型的核心就是交互模型,交互模型主要从逻辑角度描述交互格式,它只描述了应该包含哪些数据,并未描述数据应该如何组织;例如,在同一个物模型文件时,以JSON方式传输一条温度数据:temp=30,具体数据组织方式可以为:
{
“temp”: 30
}
还可以为:
{
“key”: “temp”,
“value”: 30
}
通信模型主要描述交互模型中数据应该如何组织,例如以JSON方式组织,还是以紧凑的0、1格式组织。
简单而言,交互模型相当于语言,通信模型相当于文字,二者不完全相同,例如两个不识字的人可以正常交流,却无法用文字交流。

在具体的企业内部可能会存在一些场景模型,建模的对象不仅是物,还可以是场景,而且针对同一场景,使用角度不同,建模方法也不同。电力、化工等业务的建模中,主要针对各自的业务场景,而不仅仅是某一个特定的边或者端设备,例如化工炼化中,还包括车间、装置与设备之间的关系。因此,各专业提供的模型更应该称之为场景模型,而不是物联管理平台中所提到物模型。场景模型与物模型建模原理相同,但是使用场景和建模对象不同,不能用物模型的规范去套用于场景模型定义中,二者是分别应用于不同场景的建模,可以而且应该同时存在的!
场景模型是各业务系统根据自己业务场景的建模,跟是否采用物联管理平台与设备交互无关;物模型是业务系统采用物联管理平台与物,即设备或APP交互时,所采用的交互约束模型。因此,不能用互联网的物模型规范去约束和指导各业务场景的场景建模,而是在业务系统的场景建模之后,需要通过物联管理平台与物(设备或APP)通信时,约定双方的数据交互格式。物联管理平台提供了报文、文件等多种数据传输方式,各业务系统在制定与设备之间的数据交互格式时,应灵活选择合适的方式交互,例如:边缘代理上的某个app要通过物管平台向应用系统发送一个视频数据,由于视频数据格式难以用物模型来描述,此时可以将之存储为文件,利用物联管理平台文件传输功能完成文件本体传输,然后借助物联管理平台完成文件元信息(文件名、文件大小、MD5值、视频文件的URL等)传输。

为什么要使用物模型?

主要原因在于它能够帮助描述和管理物理世界中的各种设备、传感器和数据,从而实现对物联网设备的统一管理、互操作性和数据标准化:

  1. 设备描述和管理:通过定义物模型,可以清晰地描述物联网中的各种设备和传感器,包括其功能、属性、状态和行为等信息。这有助于统一管理和监控不同类型的设备,并为其提供标准化的接口。
  2. 互操作性:物模型可以帮助不同厂商的设备之间实现互操作性,因为它们可以基于相同的模型进行交互。这样,不同厂商的设备可以更容易地集成到一个统一的物联网平台中。
  3. 数据标准化:通过定义物模型,可以规范物联网设备产生的数据格式和结构,使得不同设备生成的数据具有一致的语义和格式,从而方便数据的处理和分析。
  4. 应用开发和集成:基于物模型,开发人员可以更容易地开发应用程序来与物联网设备进行交互,因为他们可以依据标准的模型进行开发,而无需过多关注底层的设备细节。

在这里插入图片描述

举例来说,一家智能家居公司可以通过使用物模型来描述各种智能设备(如智能灯泡、智能插座、温度传感器等),并为这些设备定义标准的接口和行为。这样用户可以更轻松地管理和控制这些设备,同时可以让不同厂商的设备无缝集成到他们的智能家居平台中。因此,物模型在物联网中的应用有助于提高设备管理的效率、促进设备之间的互操作性,并为应用开发提供了标准化的基础。

物模型能解决那些行业问题?

目前物联网行业普遍存在着设备孤岛、软硬开发强耦合的问题,需要构建模型统一描述语言、面向物理实体的统一建模,物模型作为物的抽象层屏蔽了底层终端差异,标准化了设备的能力表达和交互方式,极大降低了物联网应用开发和快速复制的成本。
在这里插入图片描述

物模型带来什么价值?

  • 低门槛接入:提供设备建模和交互协议基础能力。这是最基础的价值,所有设备上云都需要建模和交互协议。物模型和协议设计是否足够专业,这其实是绝大多数中小企业的门槛,他们刚开始意识不到,随意设计,随着规模和业务变化弊端就会体现出来。

  • 标准化:物模型作为物联网的抽象层,类似操作系统屏蔽硬件、JVM屏蔽OS的差异性一样,通过标准化设备的能力表达和交互方式,解决了物联网严重碎片化情况下协议差异、软硬开发耦合、全链路验证流程长、设备孤岛、数据孤岛等问题。

  • 生态化:软、硬件一旦基于物模型标准化开发和交互,围绕物联网的多角色,包括ISV,SI,IHV等在设备开发、生产、运维、售卖、集成、运行等环节相互之间能够解耦,提升了设备的流通性,促进生态化。

如何设计物模型呢?

大多数对于设备建模都采用的是面向对象语言的思路,面向对象语言的抽象能力在计算机编程发展的几十年已经被证明,我们物模型定义也充分借鉴,却又因物联网而有所不同。我们以面向对象语言java里面的class做类比,class用属性和方法描述对象的状态和行为;物模型也可以用属性和方法来描述物的状态和行为。同时结合设备特性,我们将物模型schema进行了一定的扩展,定义为属性、服务(方法)和事件三要素,事件是一类特殊的属性,比如空调的故障告警,这类属性严重性高,实时性强,一般需要监控并及时响应。为了对设备更精确的描述,物模型针对每种数据类型还定义了非常严谨的数据规范,比如在数据类型之外,还需要定义数据范围、精度、步长等规范。这里提供一个温度传感器物模型示意图:

类型还定义了非常严谨的数据规范,比如在数据类型之外,还需要定义数据范围、精度、步长等规范。这里提供一个温度传感器物模型示意图:
在这里插入图片描述

<think>嗯,用户问的是“研究思路是采用瀑布模型的意思吗”,需要先理解用户的真实需求。用户之前询问了关于软件工程毕设开题报告中研究思路的写法,现在又提到了瀑布模型,可能是在确认之前提供的框架是否基于瀑布模型,或者是否应该使用瀑布模型来组织研究思路。 首先,回顾之前的回答,我建议的研究思路框架包括了需求分析、系统设计、数据采集、智能处理、系统实现、测试优化等步骤,并用流程图展示了一个线性递进的流程。虽然看起来像瀑布模型的阶段划分,但实际可能结合了其他方法,比如迭代开发或敏捷的元素,尤其是在测试优化部分提到了Scrum开发模式。因此,用户可能混淆了研究思路的结构和开发模型的选择。 接下来,需要判断用户的知识水平。用户是软件工程专业的毕业生,可能对开发模型有一定了解,但可能不清楚研究思路与开发模型的区别。需要解释研究思路不等同于开发模型,瀑布模型只是其中一种可能的开发方法,而之前建议的框架更偏向于通用的技术路线,可以结合多种模型。 用户可能担心自己的开题报告中是否必须采用瀑布模型,或者之前建议的结构是否符合瀑布模型的特点。需要澄清研究思路的写法可以灵活,瀑布模型只是其中一种选项,是否采用取决于项目需求。同时,需要指出瀑布模型的优缺点,帮助用户判断是否适合他们的项目。 另外,用户可能在准备开题报告时,被要求明确研究方法或开发模型,因此需要确认如何将开发模型融入研究思路的描述中。需要说明如何在技术路线图中体现瀑布模型,或者在关键步骤中分解瀑布模型的阶段,并给出具体示例,比如在可行性保障措施中提到瀑布模型的应用。 还要考虑到用户可能的深层需求,比如如何论证选择瀑布模型的合理性,或者如何在开题报告中结合瀑布模型与其他方法(如敏捷)。因此,需要提供不同场景下的建议,例如项目需求明确时使用瀑布模型,需求变化频繁时采用混合模型,并给出具体的结构示例,帮助用户调整自己的研究思路。 最后,需要确保回答结构清晰,分点说明研究思路与瀑布模型的关系,优缺点对比,适用场景,以及具体如何在开题报告中描述,并附上示例,让用户能够直接参考应用。同时,保持语言简洁,避免过于技术化,确保用户容易理解。</think>在开题报告中描述研究思路时,**是否采用瀑布模型取决于具体设计**。研究思路与技术路线(方法论)密切相关但不等同,以下从专业角度为你解析两者的关系及如何表达: --- ### 一、瀑布模型与研究思路的关系 1. **本质区别** - **瀑布模型**是典型的**软件开发生命周期模型**,强调阶段线性推进: $$ \text{需求分析} \rightarrow \text{设计} \rightarrow \text{实现} \rightarrow \text{测试} \rightarrow \text{维护} $$ - **研究思路**是**解决问题的逻辑框架**,可自由组合方法论(如瀑布模型、敏捷开发、V模型等) 2. **常见误区** - ❌ 将“研究思路”直接等同于“使用瀑布模型” - ✅ 正确表述:在技术路线中**说明开发模型的选择依据** *示例:* “针对系统需求明确的特点,采用瀑布模型实现阶段性成果验证,每个阶段输出文档通过$$ \text{评审通过率} \geq 90\% $$作为进入下一阶段的准入条件” --- ### 二、研究思路中如何体现开发模型 #### 若选择瀑布模型,建议在以下部分体现: 1. **技术路线图** ```plaintext 需求分析(用户访谈+UML用例图) ↓ 系统设计(ER图+类图) ↓ 模块开发(Spring Boot+Vue.js) ↓ 集成测试(JUnit+Postman) ↓ 部署运维(Docker+K8s) ``` 2. **关键步骤分解** - **需求冻结机制**:在需求分析阶段结束时,定义变更控制函数: $$ \Delta Req = \begin{cases} \text{允许} & \text{if 影响系数} \alpha < 0.2 \\ \text{拒绝} & \text{else} \end{cases} $$ - **阶段交付**:每个阶段需完成文档(如SRS、SDD等)并通过评审 --- ### 三、瀑布模型的适用性分析 #### ✅ 适合场景(推荐使用) 1. **需求明确稳定** - 系统目标清晰(如自动记账需符合《企业会计准则》) 2. **技术方案成熟** - 使用已验证的技术栈(如OCR用Tesseract而非自研算法) 3. **文档驱动型项目** - 需要完整交付(适合毕设答辩评审) #### ❌ 不适合场景(需改用敏捷等模型) 1. **需求频繁变更** - 例如用户对库存预警算法效果提出迭代优化需求 2. **技术探索性强** - 涉及未经验证的AI模型开发 --- ### 四、研究思路的典型表述结构(含瀑布模型) ```markdown ### 三、技术实现路径 1. **阶段化开发流程** 采用瀑布模型推进,各阶段设置验收标准: - 需求分析阶段:输出《需求规格说明书》,使用$Kano$模型完成功能优先级排序 - 系统设计阶段:通过$UML$类图描述核心模块,满足$$ \text{耦合度} < 0.3 $$ - 开发测试阶段:实施白盒测试(分支覆盖率达到$100\%$) 2. **质量保证措施** 建立V&V(验证与确认)机制: $$ \text{缺陷密度} = \frac{\text{测试发现缺陷数}}{\text{代码行数}} \leq 0.5/\text{KLOC} $$ ``` --- ### 五、混合模型建议(若需灵活性) 对记账与仓储这种**业务逻辑复杂但模块清晰**的系统,可组合使用: - **整体框架**:瀑布模型保证主干流程 - **核心模块**:敏捷开发(如库存预测算法迭代) - **表述示例**: “在系统架构设计上遵循瀑布模型,而对机器学习分类模块采用Scrum模式,每2周迭代一次模型(目标分类准确率提升梯度$\nabla Acc \geq 2\%$/Sprint)” 需要进一步调整表述或补充技术细节可随时告知。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值