在设计 lan (Github: https://github.com/phodal/lan) 物联网平台的时候,结合以前的一些经验,构建出一个实际应用中的物联网构架模型。git
而后像lan这样的应用,在里面刚属于服务层。github
一般,咱们很容易在网上看到以下图所示的三层结构:服务器
从理论上划分这样的层级结构是没有问题的,也是有各类理论依据。然而理论和现实每每是严重脱轨的,如上图所示,图中将网络层单独分为了一层,而并无独立出应用程序相关的功能。网络
从实践的角度上,我更愿意用以下的架构来构建个人物联网系统。架构
其功能能够用下表来表示。框架
层级 | 做用 | 与下一层级的链接方式 |
---|---|---|
硬件层 | 获取、发送传感器数据,执行指令 | 串口、蓝牙、有线、SPI、WiFi、USB等等 |
协调层 | 协调硬件层与服务器的通讯,并负责处理部分数据 | 网络链接及硬件层的链接方式 |
服务层 | 以视为服务器层 | 网络链接 |
应用程序层 | 为用户提供交互功能 | 网络链接 |
硬件层包含了数据众多的传感器、控制器、以及执行器,一般这部份会由硬件人员与硬件开发人员一块儿协做和开发。而协调层则是充当硬件与服务层通讯的桥梁,这是在系统中须要特别考虑的部份,一个物联网系统的设计主要取决于这个层级。模块化
而服务层的核心是传统的Web应用程序的结构,只是协议层变成了一些适配器,咱们须要支持不一样的协议,这致使了咱们在这个层须要有一个更好的结构,故而咱们建议使用六边形架构。而在实际中,用户最后接触到的即是应用程序层,在这一层中须要有很好的用户体验设计及流畅度。spa
于是在设计Lan物联网平台的时候,参考了以前的物联网平台的设计,增长了用户受权以及模块化加载思想。设计
上图的模型可让咱们脱离具体的框架与实现,关注于业务上逻辑。server