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

news2024/10/1 15:20:43

在互联网产品中,经常提到的终端、网关、协议、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正常接受登录包,后端将状态调整为激活,看起来是没有什么问题的,按理来说设备是可以正常激活上线。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CMU15-445-Spring-2023-Project #1 - Buffer Pool

前置知识,参考上一篇博客:CMU15-445-Spring-2023-Project #1 - 前置知识(lec01-06) 在存储管理器中实现缓冲池。缓冲池负责将物理页从主内存来回移动到磁盘。它允许 DBMS 支持大于系统可用内存量的数据库。缓冲池的操作对系统中的…

【书生·浦语大模型实战营01】《书生·浦语大模型全链路开源体系》

《书生浦语大模型全链路开源体系》 1. 大模型成为热门关键词 LLM发展时间轴 2. 书生浦语全链条开源开放体系 微调:XTuner 支持全参数微调支持LoRA等低成本微调 评测:OpenCompass 全方位评测,性能可复现80套评测集, 40万道题目…

【大数据】Zookeeper 数据写入与分布式锁

Zookeeper 数据写入与分布式锁 1.数据是怎么写入的2.基于 Zookeeper 实现分布式锁 1.数据是怎么写入的 无论是 Zookeeper 自带的客户端 zkCli.sh,还是使用 Python(或者其它语言)实现的客户端,本质上都是连接至集群,然…

Linux 上 Nginx 配置访问 web 服务器及配置 https 访问配置过程记录

目录 一、前言说明二、配置思路三、开始修改配置四、结尾 一、前言说明 最近自己搭建了个 Blog 网站,想把网站部署到服务器上面,本文记录一下搭建过程中 Nginx 配置请求转发的过程。 二、配置思路 web项目已经在服务器上面运行起来了,运行的端…

Qt pro文件

1. 项目通常结构 2.pri文件 pri文件可定义通用的宏,例如创建一个COMMON.pri文件内容为 COMMON_PATH D:\MyData 然后其它pri或者pro文件如APPTemplate.pro文件中通过添加include(Common.pri) ,QtCreator就会自动在项目结构树里面创建对应的节点 3.变量…

gitlab 配置 二

一 环境说明 群晖Nas DS418DELL XPS serverGitlab ce 二 需要实现的功能 外网可以访问,gitlab使用https的方式访问。wiki issue 等都可以上传图片和附件。 三 操作步骤 因为群晖上有证书,并且由群晖做转发功能。因此证书上,采用群晖的证书…

Ant Design 使用出现 Error_ Can‘t resolve ‘_antd_dist_antd.css‘

推荐阅读 智能化校园:深入探讨云端管理系统设计与实现(一) 智能化校园:深入探讨云端管理系统设计与实现(二) 文章目录 推荐阅读问题描述问题解决方法一:进行版本回退,安装指定版本方…

nodejs01

nodejs作用 Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本. 是javascript的一个运行环境,,, nodejs stream 是前端工程化的基础 nodejs可以作为中间层&…

基于FFmpeg的短视频编辑工具Cut

前言 最近在学习FFmpeg和音视频的相关知识,为了加强对FFmpeg的认识和了解,于是撸了一个短视频编辑软件Cut。 效果图先行: 技术点 启动页优化 但启动app的时候会有一个短暂的黑屏或者白屏。为什么呢? 是因为在App启动时&#x…

497 蓝桥杯 成绩分析 简单

497 蓝桥杯 成绩分析 简单 //C风格解法1&#xff0c;*max_element&#xff08;&#xff09;与*min_element&#xff08;&#xff09;求最值 //时间复杂度O(n)&#xff0c;通过率100% #include <bits/stdc.h> using namespace std;using ll long long; const int N 1e4 …

【Spring Cloud】组件概念详解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Spring Cloud》。&#x1f3af;&#x1f3af; &am…

CentOS中开启mysql挂载

挂载的作用其实说白了就是备份。防止数据库文件损害或者数据库被误删导致数据丢失。 创建一个文件名为my.cnf内容如下 # Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modif…

清理windows中git凭证

清理windows中git凭证 控制面板——>用户账户——>凭据管理器——>管理Windows凭据 点开后如下&#xff1a;

面试之线程状态

1.线程有哪些状态 1.1Java线程的六种状态 Java 线程六种状态 新建 当一个线程对象被创建&#xff0c;但还未调用 start 方法时处于新建状态 此时未与操作系统底层线程关联 可运行 调用了 start 方法&#xff0c;就会由新建进入可运行 此时与底层线程关联&#xff0c;由操作…

Hadolint:Lint Dockerfile 的完整指南

想学习如何使用 Hadolint 对 Dockerfile 进行 lint 处理吗&#xff1f;这篇博文将向您展示如何操作。这是关于 Dockerfile linting 的完整指南。 通过对 Dockerfile 进行 lint 检查&#xff0c;您可以及早发现错误和问题&#xff0c;并确保它们遵循最佳实践。 什么是Hadolint…

windows 查看所有端口占用情况

winR&#xff0c;调出cmd窗口&#xff1a; 输入命令 netstat -ano 内容太多&#xff0c;显示不全&#xff0c;怎么办? 输入下面命令 netstat -ano > d:\1.log 在d盘根目录下就产生了 输出文件 打开可以看到如下内容 活动连接协议 本地地址 外部地址 状…

2.3_7 生产者-消费者问题

2.3_7 生产者-消费者问题 系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。(注:这里的“产品”理解为某种数据) 生产者、消费者共享一个初始为空、大小为n的缓冲区。 只有缓冲区没满时,生产者才…

Kotlin协程学习之-01

由于协程需要支持挂起、恢复、因此对于挂起点的状态保存就显得机器关键。类似的&#xff0c;线程会因为CPU调度权的切换而被中断&#xff0c;它的中断状态会保存在调用栈当中&#xff0c;因而协程的实现也按照是否开辟相应的调用栈存在以下两种类型&#xff1a; 有栈协程&…

weak_ptr如何能做到解决循环引用又能传递参数呢?

引子&#xff1a;今天在看CLR via C#的时候看到C#的垃圾回收算法--引用跟踪算法的时候想到以下几个问题。 一、引用计数法存在的问题 一般引用计数法存在的问题就是不好处理循环引用的问题&#xff0c;但是C不是有weak_ptr吗&#xff1f; 这个引用跟踪的垃圾回收算法看起来还…

vivado xsim 终端 模拟

只模拟的话直接终端运行会快很多 计数器举例 mkdir srccounter.v module counter(input wire clk,input wire rst_n,output reg[31:0] cnt ); always (posedge clk or negedge rst_n)if(!rst_n)cnt < 31h0;elsecnt < cnt1;endmodule tb.v module tb; wire[31:0] out…