物联网产品中,终端、网关、协议、PaaS、SaaS之间的关系

在互联网产品中,经常提到的终端、网关、协议、PaaS、SaaS之间,到底有什么关系呢?

一、基本概念

在百度/其他地方搜集的信息中,对于终端、网关、协议、PaaS、SaaS的解释各有不同,整理如下:

  • 终端:物联网产品中的终端是指与物联网云端通信的设备,通常包括智能手机、平板电脑、智能穿戴设备等。终端用户通过终端设备连接到云端,实现物联网的数据采集、传输和处理。
  • 网关:网关是物联网产品中的重要组成部分,主要用于在不同设备和系统之间进行数据交换和转换。网关可以将不同的协议、数据格式和通信方式进行转换,以便终端设备可以与云端进行通信。
  • 协议:协议是在物联网产品中实现数据传输和交换的重要技术。不同的设备和系统之间使用的协议可能不同,因此需要通过协议转换来实现数据的互通。常见的协议包括WiFi、蓝牙、ZigBee等。
  • PaaS:PaaS是指基于云端平台的开发服务,提供开发人员所需的开发环境和工具,帮助开发人员快速构建和部署物联网应用程序。PaaS平台通常包括代码编写、测试、部署和监控等功能。
  • SaaS:SaaS是指基于云端平台的服务,用户无需安装任何软件或硬件,只需通过互联网即可使用物联网应用程序。SaaS服务通常包括应用程序的部署、管理和更新等功能。

用一张图来解释下相关定义信息:

举一个小例子:

小A的妈妈买了一个定位器「设备」安装到他电动车上,小A骑电动车出去上学。有一天小A在路上发生了车祸,发生车祸的时候,小A和他的车被碰倒了,于是「设备」发送“告警信息”给小A的妈妈的手机,说小A在路上出车祸了,你快去救他!

以上信息中,上报给谁?这时候上报的位置是「网关」,但是设备不会像我们人类一样用语言说:“喂,你的儿子/女儿在什么什么时间,在哪里哪里好像被车撞到了,然后摔倒了,触发了我这个告警哦”,他们会和「网关」之间协商好用某一种语言来代表这种信息,这一种语言,就是「协议」。那么「网关」在其中扮演什么角色?网关,就是这个“翻译官”,他把设备上报给他的内容,翻译成另一种语言,来和「PaaS」进行沟通交流。

网关把信息传给「PaaS」之后,「PaaS」经过计算后监测到,这个信息很重要啊,我要赶紧推送给他妈,让他的妈妈知道小A出车祸了,快去救他,于是「PaaS」赶紧把这条信息,推送给了小A妈妈的手机上的设备绑定的软件,也就是「SaaS」所以大家对设备、协议、网关、PaaS、SaaS有了基本了解了吧。

二、不同「角色」之间使用不同「语言」的原因

我们都知道终端到网关之间有对应的协议,网关解析信息后到PaaS又是另外一种语言,主要有以下几个原因:

  • 可扩展性:终端和网关之间需要直接互操作,但PaaS的用户是开发人员,它提供的是工具和组件。因此,直接使用终端和网关之间的语言可能会导致有不同的技术栈和复杂性。如果使用不相同的语言,则可以提供更好的灵活性和可扩展性。
  • 安全性:终端到网关和网关到PaaS之间的信息传递可能涉及到敏感信息,所以需要额外的数据验证来确保信息安全,例如数据加密和身份验证。而使用不同的语言可以提供更好的安全性和保护机制。
  • 可维护性:使用不同的语言可以使下游系统更加具有维护性质,并且更加易于管理,这样的话开发人员可以使用不同的语言框架来编写应用程序,且此类语言框架的安全性易开发性等已经被测试验证。
  • 另外有时还有设备本身的原因,设备的成本较低时,内存也较小,只能通过01序列或简单的机械处理信息,无法做到像PaaS云服务器一样存储庞大的底层语言,当然并非针对全部设备而言。

三、如何解决现实中遇到的问题?

背景:在曾经的车联网产品设计生涯中,出现过一个问题,说有一个较大的客户购买了n台定位器设备,但是这些设备里其中有80%的设备已经成功导入到saas平台,并且已经开机了,但是平台显示并没有激活,功能却可以正常使用,开发同事查看代码后,发现设备已经正常激活上线。

分析:那么我们从产品的角度分析下,设备正常的工作流程,设备上报信息(登录包、心跳包)给到网关,网关解析后,到达PaaS,PaaS存储相关登录日志/时间等信息后,同步至SaaS,SaaS正常接受登录包,后端将状态调整为激活,看起来是没有什么问题的,按理来说设备是可以正常激活上线。

以上假想是建立在,设备已经导入平台后,再进行开机上线的,上线后可以正常通过协议上报心跳包、登录包等,若设备先开机上线,再导入到平台,此时,设备的心跳包、登录包已经在导入前上报过相关信息,则无法及时通过上报自己的登录包等包体,网关无法进行解析,则自然而然,状态未激活。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AQS 抽象队列同步器

AQS AQS (抽象队列同步器): AbstractQueuedSynchronizer 是什么 来自jdk1.5,是用来实现锁或者其他同步器组件的公共基础部分的抽象实现,是重量级基础框架以及JUC的基石,主要用于解决锁分配给谁的问题整体…

5年经验之谈 —— 探索自动化测试用例设计粒度!

自动化测试用例的粒度指的是测试用例的细致程度,即每个测试用例检查的功能点的数量和范围。 通常,根据测试用例的粒度,可以被分为3种不同的层次,从更低层次的细粒度到更高层次的粗粒度。 第一种:单元测试 - 细粒度 单…

编译ZLMediaKit(win10+msvc2019_x64)

前言 因工作需要,需要ZLMediaKit,为方便抓包分析,最好在windows系统上测试,但使用自己编译的第三方库一直出问题,无法编译通过。本文档记录下win10上的编译过程,供有需要的小伙伴使用 一、需要安装的软件…

2024年【化工自动化控制仪表】报名考试及化工自动化控制仪表考试技巧

题库来源:安全生产模拟考试一点通公众号小程序 化工自动化控制仪表报名考试是安全生产模拟考试一点通生成的,化工自动化控制仪表证模拟考试题库是根据化工自动化控制仪表最新版教材汇编出化工自动化控制仪表仿真模拟考试。2024年【化工自动化控制仪表】…

outlook邮件群发单显技巧?群发怎么单显?

outlook邮件群发单显如何设置?QQ邮箱怎么群发单显? 在群发邮件时,如何让每个收件人只看到自己的名字,而不是其他人的名字,这就涉及到所谓的“单显”技巧。下面蜂邮EDM就为大家揭秘Outlook邮件群发单显的奥秘。 outlo…

DBSCAN聚类模型

目录 介绍: 一、数据 二、建模 三、评价指标 3.1metrics.homogeneity_score 3.2metrics.completeness_score 3.3metrics.v_measure_score 3.4metrics.adjusted_rand_score 3.5metrics.adjusted_mutual_info_score 3.6metrics.silhouette_score 四、画图…

聊天Demo

文章目录 参考链接使用前端界面消息窗口平滑滚动至底部vue使用watch监听vuex中的变量变化 参考链接 vue.js实现带表情评论功能前后端实现(仿B站评论) vue.js实现带表情评论仿bilibili(滚动加载效果) vue.js支持表情输入 vue.js表…

【Java】2023年Java语言盘点

2023年Java语言盘点 前言语言排行榜JDK 各个版本使用情况主流框架支持情况JDK 21其他项目参考 前言 星河流转,日月更替,在2023这年里,Java也迎来了它的第28个年头。在这一年里,Java生态系统发生了许多让人瞩目的变化,…

计算机Java项目|Springboot疫情网课管理系统

项目编号:L-BS-ZXBS-07 一,环境介绍 语言环境:Java: jdk1.8 数据库:Mysql: mysql5.7 应用服务器:Tomcat: tomcat8.5.31 开发工具:IDEA或eclipse 二,项目简介 疫情网课也都将通过计算机…

智能计价器Scratch-第14届蓝桥杯Scratch省赛真题第5题

5. 智能计价器(80分) 背景信息:A城市的出租车计价:3公里以内13元,基本单价每公里2.3元(超过3公里的部分,不满1公里按照1公里收费),燃油附加费每运次1元。例如:3.2公里的…

1875_如何提升开关应用中的EMI表现

Grey 全部学习内容汇总: https://github.com/GreyZhang/g_hardware_basic 1875_如何提升开关应用中的EMI表现 看了一份ST的应用笔记,简单了解了一下EMI相关的一些设计,感觉还比价有收获。整理一下自己的收获点。 资料整理过程说明 参考资…

并发(8)

目录 46.Thread.sleep(),Object.wait(),Condition.await(),LockSupport.part()的区别? 47.如果在wait()之前执行了notify()会怎样? 48.如果在park()之前执行了unpark()会怎样? 49.什么是AQS&…

【Spring Cloud】关于Nacos配置管理的详解介绍

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Cloud》。🎯🎯 &am…

从零实现CLIP模型

1. 引言 CLIP代表语言图像对比预训练模型,是OpenAI于2021年开发的一个深度学习模型。CLIP模型中图像和文本嵌入共享相同的潜在特征空间,从而能够在两种模式之间直接进行对比学习。这是通过训练模型使相关的图像和文本更紧密地结合在一起,同时…

基于原子搜索算法优化的Elman神经网络数据预测 - 附代码

基于原子搜索算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于原子搜索算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于原子搜索优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

Linux:nginx设置网站https

http和https的区别 http: 80 https: 443 这种协议比http协议要安全,因为传输数据是经过加密的 HTTPS简介 HTTPS其实是有两部分组成:HTTP SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过…

在IDEA中使用git分支进行开发然后合并到Master分支,2022.1.x版本

在实际开发过程中,为了避免因为在开发中出现的问题以及方便发布版本,如果是多版本发布的情况相下,我们通常需要采用分支进行开发,这个时候,我们就需要了解git分支的相关知识点了,本篇博客也是博主在实际公司…

【SpringCloud】之配置中心(进阶使用)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《SpringCloud开发之远程消费》。🎯&a…

MMFF-NET:多层次多尺度特征融合的弱光图像增强网络

这是我去年的工作,我录用的第一篇SCI,很拉,3区。今年中科院新版分区,变成4区了。很遗憾。后面会持续给大家更新我的文章以及我的内容。硕士阶段的东西几乎创新点都很差。 但是对于初学者我希望它有一定的参考价值。 文章链接&am…

利用Type类来获得字段名称(Unity C#中的反射)

使用Type类以前需要引用反射的命名空间: using System.Reflection; 以下是完整代码: public class ReflectionDemo : MonoBehaviour {void Start(){A a new A();B b new B();A[] abArraynew A[] { a, b };foreach(A v in abArray){Type t v.GetTyp…