第1章 物联网模式简介---独特要求和体系结构原则

物联网用例的独特要求

物联网用例往往在功耗、带宽、分析等方面具有非常独特的要求。此外,物联网实施的固有复杂性(一端的现场设备在计算上受到挑战,另一端的云容量几乎无限)迫使架构师做出艰难的架构决策和实施选择。可用实现技术的多样性和缺乏完善的标准是额外的挑战,使体系结构决策变得困难。

本书试图通过识别可以支持这些用例的架构之间的共性,来缓解与构建物联网用例相关的一些挑战。重要的是不要被用例的多样性所蒙蔽,并认识到多样性存在于表层和底层。

本书旨在通过展示如何将不同物联网用例的实现追溯到少数架构模式,弥合当前理解中的这一差距。 在介绍各种物联网模式之前,值得一提的是,物联网架构不同于非物联网架构的独特期望: 感知事件和驱动命令具有广泛的延迟预期——从实时到激发和忘记 数据分析结果需要在各种消费设备上报告/可视化/消费——手机、台式机、平板电脑等。同样,数据消费者有不同的背景、数据需求和应用程序角色(人物角色)。

人们经常被迫与传统以及尖端设备和/或外部系统集成——很少有琐碎的用例具有独立/独立的架构。从遗留系统和非遗留系统中提取数据的方式有很大的不同——遗留系统可能会在内部整理数据,然后将其推送到外部端口(文件传输),而较新的系统可能会以连续的流(时间序列数据)推送数据。这种可变性是选择特定物联网架构模式时的关键考虑因素之一。 不同的部署需求—边缘、内部部署、混合、云等等。 遵守严格的监管规定,尤其是在医疗和航空领域。 有人期望立即获得回报,投资回报率(ROI)、业务成果和新的服务业务模式。 持续创新,产生新的服务或产品(尤其是云供应商),迫使物联网架构与这些新产品或服务保持持续同步。 缺乏能够制定端到端物联网解决方案的熟练架构师——尽管可能有特定技能的人(设备架构师、连接架构师和云架构师);然而,很少有端到端的物联网架构师。 设备、设备连接、物联网协议或消息传输层没有通用标准,导致设备管理复杂。 通常,物联网堆栈不会孤立运行,任何非琐碎的部署物联网解决方案都需要与其他外部系统(ERP、AMDB、MES等)集成。即使在这里,也没有关于如何无缝集成这些系统的标准。外部系统通常比物联网部署早几十年,并且在没有考虑集成需求的情况下进行了大量定制。 从一个角度来看,物联网实施是一项流程自动化举措。一般来说,该过程是存在的,但是手动执行的,物联网有望部分或完全自动化该过程。

这些现有的工作流程没有记录在案,并且是流程从业者部落知识的一部分,这给物联网架构师带来了挑战,因为他们对流程和工作流程不清楚。因此,他们面临着一个两难的问题,即哪些子流程应该自动化以最大限度地提高ROI——他们必须决定是否满足于微小的改进(局部优化),并放弃通过考虑全局优化可以积累的好处。

设备生命周期管理在有氧医疗设备等领域是一个挑战,因为它们无法承受停机时间,但仍需要及时的固件更新(尤其是与安全修复相关的补丁,不能推迟到某个时间点之后)。 需要定期校准现场传感器是一个挑战。漂移速率因传感器而异,也因环境而异。有一种趋势是通过在边缘或云中应用AI/ML模型来补偿这种漂移,但这些步骤远非理想,因为它们缺乏准确性,并且可能没有充分考虑局部或环境条件。 依赖于位置信息的用例往往具有有限的可接受性,因为所有的位置传感器(室内或室外)具有有限的精度。 大量边缘处理的历史数据(几十年来积累的)迁移到云是另一个关键的架构挑战,在许多机器到机器(M2M)到物联网的转型计划中都看到了这一挑战。 所需的非功能性需求(NFR)(可扩展性、可用性、安全性、数据驻留/隐私等)值因用例而异,并增加了另一层复杂性。 物联网数据的消费者有不同的背景(例如,家庭自动化用户的信息需求与想要监测工厂正常运行时间的工业用户有很大不同,而工业用户的信息需要又与使用物联网进行自动化临床试验的辅助医疗人员的需求不同),因此他们有不同的操作和利用物联网系统的方式。尽管这似乎对设备UI设计有更大的影响,但它也会以微妙的方式影响解决方案架构。 在下一节中,我们将列出有助于您解决实施物联网解决方案的独特需求的架构原则或注意事项。

建议的体系结构原则和注意事项

确保体系结构一旦实现,即具有可扩展性、可修改性、鲁棒性和容错性的某些原则与物联网体系结构尤其相关。让我们来看看其中的一些: 基于开放通信协议构建,以支持不同的设备通信需求:因为物联网是真实(硬件)和虚拟(软件)领域的融合,每一个领域都以自己独立的速度发展。稳健的物联网架构应该足够灵活,以支持这两个领域当前和未来可能的增强功能——例如,一方面,设备/硬件方面的连接/电源功能不断进步,而另一方面,中央服务器方面在分析和AI/ML能力方面取得了进步。

        因此,现实世界和虚拟世界之间存在固有的阻抗失配(涉及这些增强的速率和性质)。物联网架构师不仅应该意识到这种不匹配,还应该纳入所需的考虑因素,以在更长的时间内支持用例需求。这些要求部分是通过遵循分层架构来处理的,通过分层架构,特定层中的组件可以插入或插入,对整体架构的影响最小。

        专为“端到端”安全设计:安全性是任何软件系统的重要考虑因素,尤其是在数据或命令通过公共通信信道进行通信的情况下。然而,就物联网而言,安全需要更深入的考虑,主要有两个原因:与虚拟/软件世界中的行动不同,在现实/物理世界中发起的行动是不能取消的:在有人检测到异常并采取纠正行动之前,一台灌溉泵被(恶意)指示开始在农田中抽水,它会泵出相当多的水。这与软件世界中的场景形成了鲜明对比,在软件世界中,一条简单的更新指令就足以撤消/滚动回溯数据库的更改。在医疗保健等领域,物联网系统通常控制人类生活(例如,由物联网系统控制的氧气呼吸机),情况可能更具灾难性。 与纯软件系统相比,攻击向量要广泛得多:这是因为需要保护完整的数据管道(终端设备>网关>通信通道>中央服务器>应用程序),并且数据管道中的每个实体都有不同的适用安全要求——终端设备(其固有的受限计算/存储能力)无法支持中央服务器所能支持的严格安全性,因此需要独立分析每个组件的安全漏洞和相关安全防护措施。 同样,数据在传输过程中以及在任何时候都应受到保护。

        通过“API-first”方法实现的企业集成:任何生产级物联网系统通常都会与其他外部系统集成,以提供全部价值。物联网系统整理的真实世界数据被输入(数据推送)到外部系统,以实现更丰富的用例。类似地,来自外部系统的数据(数据拉取)用于丰富整理后的数据。这种类型的集成是不可能的,除非物联网系统已经使用API-first作为核心架构租户之一进行架构设计,企业应用程序可以使用物联网数据。这些API还支持跨物联网和非物联网(即外部系统)的工作流。 满足不同的数据需求:物联网系统由不同的用户使用,每个用户都有不同的背景和信息需求。因此,重要的是要捕捉所有(当前和未来)利益相关者的原始数据需求,并以一种易于被不同利益相关者(人物角色)同化的方式呈现数据。

        基于角色的访问控制(RBAC)是一种向利益相关者显示所需信息,同时掩盖非相关信息的机制。此外,一些利益相关者将有实时数据需求(希望紧急警报实时通知的运营商),而其他利益相关者则希望从合并数据中获得见解(批量处理)。将数据摄取与数据处理解耦是使我们能够满足这一需求的一个原则。以下列出了一些其他数据整理/操作要求:来自制造执行系统(MES)和实验室信息管理系统(LIMS)等源的各种(结构化、半结构化和非结构化)操作数据应整合在边缘、云或两者的通用数据存储(数据湖)中。 出于可扩展性、效率和成本优化考虑,分离流式、批处理和正确的时间数据管道。数据生产者与消费者的解耦确保了强健的体系结构以及技术和实现选择的灵活性。 提供部署灵活性的技术中立架构:物联网系统可以部署在不同的配置中,如内部部署、公有云、私有云和/或混合多云配置,这取决于客户对安全的敏感性以及治理和监管需求。考虑到这一点,体系结构应该足够通用,可以满足不同的部署需求,并可以由多个技术堆栈支持。这通常是通过创建物联网参考体系结构(没有特定的技术选择),然后过渡到技术体系结构(其中通用体系结构组件被特定的技术组件取代)来实现的。 高可用性设计:尽管不同的物联网用例对高可用性的需求差异很大,但一些用例被归类为任务关键型用例,几乎没有停机预期,而另一些用例可以适应相当长的停机时间。中央服务器体系结构应该模仿正常运行时间的预期,因为通常情况下,停机时间越少,成本越高。在物联网的背景下,必须从整体系统的角度考虑高可用性。例如,在可以接受更长的中央服务器停机时间的情况下,终端设备需要具有更高的数据缓冲能力(即更大的存储空间),以最大限度地减少数据丢失。 支持“无限可扩展性”:物联网部署从少量终端设备开始,但往往在短时间内扩展到大量。因此,通常,在物联网解决方案中,水平可扩展性优先于垂直可扩展性 设备通信注意事项:数据通过网关和中央服务器之间的双向通信信道进行通信。该信道可以由多种通信技术支持(其中一些常见的技术是蜂窝、Wi-Fi、LoRa和SigFox)。范围(与中央服务器的物理距离)、有效载荷大小、电池寿命和环境噪声等因素在最终确定特定物联网实现的理想通信技术方面发挥着作用。设备侧的一些其他考虑因素包括在与中央服务器的连接丢失的情况下存储/缓冲数据的能力、用于节省电池电量的睡眠/唤醒逻辑以及数据聚合/过滤需求。 下图总结了本节中讨论的关键体系结构原则/注意事项:

图1.4-开发物联网解决方案的体系结构考虑因素

总结

本介绍性章节帮助您了解在开发或部署物联网解决方案时需要考虑的架构考虑因素。此外,本章提供了上下文知识,将帮助您理解本书中列出的模式。讨论了物联网解决方案与其他传统软件系统或IT解决方案不同的特征,以及关于物联网参考体系结构不同层的信息。在接下来的两章中,我们将深入探讨物联网架构模式。

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

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

相关文章

【自动调参】年化29.3%,最大回撤18.5%​:lightGBM的参数优化

原创文章第570篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 研报复现继续:【研报复现】年化27.1%,人工智能多因子大类资产配置策略之benchmark 昨天调了一版参数,主要是lambda_l1, lambda_l2,防…

Vmvare12安装CentOS7.6

Vmvare12安装 注意事项 安装完成以后有这两个虚拟网卡。 CentOS官网镜像地址 https://www.centos.org/download/mirrors/Vmvare安装CentOS7.6 创建虚拟机 安装CentOS7.6 选择桌面版 磁盘分区 上述是确认使用自动分区。 设置密码 设置license information 欢迎页面 CentOS7…

宝兰德受邀出席华为开发者大会2024,携手共绘基础软件新篇章

6月21日-23日,华为开发者大会(HDC 2024)在东莞松山湖举行,作为全球开发者的年度盛会,本次大会汇聚了众多业界精英与前沿技术。华为分享了HarmonyOS、盘古大模型、昇腾AI云服务、GaussDB数据库、自研仓颉编程语言等最新…

【IM即时通信 功能介绍】客户端用户在线状态订阅

本文档旨在介绍客户端用户在线状态订阅功能,该功能允许开发者通过 SDK 接口实时监控和接收指定用户的在线或离线状态变更通知。这一功能对于需要实时交流、状态同步或用户活动监控的应用场景至关重要。 功能特点 实时状态通知 跨平台通知:订阅成功后&…

使用 MediaPipe 实现实时手部追踪和手势识别 | Rerun展示

点击下方卡片,关注“小白玩转Python”公众号 在本文中,我将展示一个使用 MediaPipe Python 和 Rerun SDK 进行手部追踪和手势识别的示例。如果您有兴趣深入了解并扩展您的知识,我将指导您如何安装 MediaPipe Python 和 Rerun SDK 来进行手部追…

Linux部署SVN

一.下载与安装 (1)yum安装 yum install subversion (2)源文件编译安装 ①下载svn源文件 subversion-xxx.tar.gz(subversion 源文件) subversion-deps-xxx.tar.gz(subversion依赖文件&…

项目四 OpenStack身份管理

任务一 理解身份服务 1.1 •Keystone的基本概念 • 认证 ( Authentication ) —— 确认用户身份的过程 ,又称身份验证 。 • 凭证 ( Credentials ) —— 又 称凭据,是用于 确认用户身份的数据 。 • 令牌…

短视频最佳时长:成都柏煜文化传媒有限公司

探索时间与内容之间的完美平衡 成都柏煜文化传媒有限公司 在数字媒体日益繁荣的今天,短视频已成为人们获取信息、娱乐休闲的重要形式。然而,关于短视频的最佳时长,一直是一个备受争议的话题。本文将探讨短视频时长的各种考量因素&#xff0…

MySQL报错Duplicate entry ‘0‘ for key ‘PRIMARY‘

报错现场 现象解释 因为你在插入时没有给 Customer.Id 赋值,MySQL 会倾向于赋值为 NULL。但是主键不能为 NULL,所以 MySQL 帮了你一个忙,将值转换为 0。这样,在第二次插入时就会出现冲突(如果已经有一条记录为 0&…

微服务——服务治理

目录 1 什么是服务治理?2 为什么需要服务治理?3 服务治理的关键点3.1 服务注册与发现3.2 负载均衡3.3 容错与熔断3.4 服务监控与告警3.5 服务配置管理 4 示例说明5 总结 1 什么是服务治理? 简单来说,服务治理就是对微服务架构中的…

iptables(11)target(SNAT、DNAT、MASQUERADE、REDIRECT)

简介 前面我们已经介绍了ACCEPT、DROP、REJECT、LOG,这篇文章我们介绍SNAT、DNAT、MASQUERADE、REDIRECT,这几个参数的定义我们在上篇文章中都有介绍,我这里再列出回顾一下 DNAT(目标地址转换)和 SNAT(源地址转换) 原理:修改数据包的源或目标 IP 地址。通常用于 NAT(…

小迪安全v2023笔记 1-18

小迪安全v2023笔记 1-18 棱角社区 文章目录 1. 基础入门1. 正向shell与反向shell2. web应用3. 抓包,封包,协议,app,小程序,pc应用,web应用 2. 信息打点1. 常见信息获取2. 文件泄露3. 常见阻碍4. CDN绕过&a…

Stable Diffusion——SDXL 1.0原理解析

1. SDXL 1.0 简介 SDXL 1.0是Stability AI推出的新基础模型,作为Stable Diffusion的大幅改进版本,它是一个用于文本到图像合成的潜在扩散模型(LDM)。作为Stable Diffusion的最新进化,它正在超越其前身,并与…

录制视频怎么操作?手把手教会你!

在这个互联网科技高速发展的时代,录制视频已经成为了人们生活中一个不可或缺的技能。无论是记录游戏精彩瞬间、制作教程、分享生活趣事,还是进行在线教学,录制视频都是一种非常直观有效的方式。可是录制视频怎么操作呢?本文将介绍…

算法学习笔记——单双链表及其反转—堆栈诠释

单双链表及其反转——堆栈诠释 按值传递 int、long、byte、short、char、float、double、boolean和String 都是按值传递 概念:在方法被调用时,实参通过形参把它的内容副本传入方法内部,此时形参接收到的内容是实参值的一个拷贝,…

dbeaver数据库链接工具

1、下载dbeaver 一个绿色版一个安装版,官网开源版 2、安装 3、可以导入之前navicat的链接 导入 选择navicat 反编译密码的:https://tool.lu/coderunner navicat 版本15的密码解密:https://www.iatodo.com/navicatpw

服务运营 | MS文章精选:线上点单,当真免排队?餐饮零售与医疗场景中的全渠道运营

编者按: 小A走进了一家奶茶店,准备向店员点单,但却在屏幕上看到还有98杯奶茶待制作(因为线上订单突然暴增)。因此,小A不满地嘟囔着离开了奶茶店。这个例子展示了线上渠道可能会对线下渠道造成一些负面影响…

使用AES,前端加密,后端解密,spring工具类了

学习python的时候,看到很多会对参数进行加密,于是好奇心驱使下,让我去了解了下AES加密如何在java中实现。 首先 npm install crypto-js 然后在你的方法中,给你们前端源码看看,因为我用的ruoyi框架做的实验&#xff…

四川音盛佳云电子商务有限公司抖音电商的先行者

在当今数字时代,电商行业风起云涌,各大平台竞相争夺市场份额。而在这其中,四川音盛佳云电子商务有限公司以其独特的抖音电商服务模式,悄然崛起,成为了行业中的一股不可忽视的力量。今天,就让我们一起走进音…

【GD32F303红枫派使用手册】第二十六节 EXMC-液晶驱动实验

26.1 实验内容 通过本实验主要学习以下内容: LCD显示原理 EXMC NOR/SRAM模式时序和8080并口时序 LCD显示控制 26.2 实验原理 使用MCU的EXMC外设实现8080并口时序,和TFT-LCD控制器进行通信,控制LCD显示图片、字符、色块等。 26.2.1 TFT…