物联网架构设计「建议收藏」

物联网架构设计「建议收藏」在设计lan(Github:https://github.com/phodal/lan)物联网平台的时候,结合之前的一些经验,构建出一个实际应用中的物联网构架模型。然后像lan这样的应用,在里面刚属于服务层。物联网层级结构通常,我们很容易在网上看到如下图所示的三层结构:从理论上划分这样的层级结构是没有问题的,也是有各种理…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在设计 lan (Github: https://github.com/phodal/lan) 物联网平台的时候,结合之前的一些经验,构建出一个实际应用中的物联网构架模型。

然后像lan这样的应用,在里面刚属于服务层。

物联网层级结构

通常,我们很容易在网上看到如下图所示的三层结构:

物联网三层结构

从理论上划分这样的层级结构是没有问题的,也是有各种理论依据。然而理论和现实往往是严重脱轨的,如上图所示,图中将网络层单独分为了一层,而并没有独立出应用程序相关的功能。

从实践的角度上,我更愿意用如下的架构来构建我的物联网系统。

物联网层级结构

其功能可以用下表来表示。

层级 作用 与下一层级的连接方式
硬件层 获取、发送传感器数据,执行指令 串口、蓝牙、有线、SPI、WiFi、USB等等
协调层 协调硬件层与服务器的通信,并负责处理部分数据 网络连接及硬件层的连接方式
服务层 以视为服务器层 网络连接
应用程序层 为用户提供交互功能 网络连接

硬件层包含了数据众多的传感器、控制器、以及执行器,通常这部份会由硬件人员与硬件开发人员一起协作和开发。而协调层则是充当硬件与服务层通信的桥梁,这是在系统中需要特别考虑的部份,一个物联网系统的设计主要取决于这个层级。

物联网服务层

而服务层的核心是传统的Web应用程序的结构,只是协议层变成了一些适配器,我们需要支持不同的协议,这导致了我们在这个层需要有一个更好的结构,故而我们建议使用六边形架构。而在实际中,用户最后接触到的便是应用程序层,在这一层中需要有很好的用户体验设计及流畅度。

因而在设计Lan物联网平台的时候,参考了之前的物联网平台的设计,增加了用户授权以及模块化加载思想。

IoT Server Layer

上图的模型可以让我们脱离具体的框架与实现,关注于业务上逻辑。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193348.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • html+css实现漂亮的透明登录页面,HTML实现炫酷登录页面

    html+css实现漂亮的透明登录页面,HTML实现炫酷登录页面承蒙各位小伙伴的支持,鄙人有幸入围了《CSDN2020博客之星》的前200名,现在进入投票环节,如果我平时写的文章和分享对你有用的话,请每天点击一下这个链接,投上你们宝贵的一票吧!谢谢!❤️每一票都是我坚持的动力和力量!https://bss.csdn.net/m/topic/blog_star2020/detail?username=qq_23853743作者:AlbertYang,软件设计师,Java工程师,前端工程师,爱阅读,爱思考,爱编程,爱自由,信奉终生学习,每天学习一点点,就是领.

    2022年4月30日
  • 解决:navicat for mysql连接失败[通俗易懂]

    解决:navicat for mysql连接失败[通俗易懂]1、问题描述:在navicatformysql连接mysql8.0.23时,出现如下错误。2、原因:通过百度翻译,发现是由于navicat版本的问题,出现连接失败的原因。这也就是说需要升级navicat版本。通过搜索,发现navicat是收费的,升级将会面临其他不可控的问题。于是需要寻找其他方法。通过查阅资料以及他人的经历分享。我得知了:mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

    2022年10月14日
  • PAD SET_pthread_join函数

    PAD SET_pthread_join函数padStart()方法,padEnd()方法ES2017引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。’x’.padStart(5,’ab’)//’ababx”x’.padStart(4,’ab’)//’abax”x’.padEnd(5,’ab’)//’xabab”x’.pad

    2022年9月10日
  • pytest重试_pytest失败重跑

    pytest重试_pytest失败重跑安装:pip3installpytest-rerunfailures重新运行所有失败用例要重新运行所有测试失败的用例,请使用–reruns命令行选项,并指定要运行测试的最大次数:$py

    2022年7月29日
  • 搜索引擎solr和elasticsearch

    搜索引擎solr和elasticsearch

    2020年11月12日
  • MYSQL数据库同步工具

    MYSQL数据库同步工具MYSQL数据库同步工具MYSQL数据库同步工具功能说明配图MYSQL数据库同步工具GIT地址:https://gitee.com/michlee/mysql-sync功能目前仅针对Mysql数据库1.表结构同步(支持1对多数据库配置:新表/单表/多表/全表(注:多配置全表同步速度会慢一点))2.视图同步(支持1对多数据库配置)3.函数同步(支持1对多数据库配置)4.数据全量同步(1对1数据库配置,支持多表)5.本地启动http://localhost:8765/

    2022年6月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号