物联网操作系统架构思考
在开始正文前,先聊下我对这个物联网操作系统的一些自己的思考。
1、物联网操作系统是什么,和其他的物联网平台有什么区别和差异? 物联网操作系统本身和各个厂商的平台定义一致,只不过物联网操作系统定义为将设备的核心领域知识进行内聚而不会去思考过多的业务知识,并且会对设备接入通过驱动形式进行扩展。 2、物联网操作系统要解决的是什么问题?对于未来有哪些规划和畅想? 物联网操作系统期望解决的是多个厂商的设备接协议的不统一,对外应用协议的不统一,而这也是目前多数的企业公司在做的东西。 物联网操作系统对未来更期望是可以做到完全自动化、智能化的联动能力。 3、物理网操作系统对现有的多个厂商和平台的物联网平台以及其他操作系统兼容程度能达到多少? 按照目前所预想的是可以兼容现有的所有厂商平台的协议,但是实际也会有所差异。
物联网操作系统模块划分
内核模块:内核模块提供了高度内聚的核心态,在内核中使用的所有外部依赖均为抽象,其本身仅处理了核心模块的逻辑部分,在不断的迭代过程中由于不需要去关注具体实现,并且可以在很小的一台服务器上运行,所以在实际开发过程中很容易进行本地的回归测试或者模拟测试。 管理模块:在整个系统中,内核模块完成了整个系统的核心功能处理,而管理模块则为内核模块提供支持,管理模块通过驱动管理、连接管理、服务管理、缓存管理、对象存储管理等为内核模块提供相关模块数据支持,从而支撑整个内核模块的完整运行 开放模块:开放模块提供对外标准的API,上层应用系统如果要使用系统的某些功能和数据均通过开放模块进行应用接口从而完成相关功能的使用。 适配模块:适配模块分为设备适配和应用适配,设备适配通过设备驱动和连接的方式来完成不同协议的设备接入,应用适配通过应用驱动和连接的方式完成应用适配接入。
架构选择
微服务部署架构:微服务架构作为当前应用广泛的系统架构无论在内核、管理、开放、适配各个模块在做系统部署时可以作为一个部署形态来存在从而实现系统的高可用。 领域驱动架构框架:作为一个目前很火热的系统架构而言,在内核模块来看的话作为系统的整体框架搭建会比较满足当前的系统架构。
功能整理
以下功能驱动管理、连接管理、数据库管理、对象存储管理、服务管理、注册表管理、设备管理提供给内核定义的抽象实现,整个内核的运转依赖这些功能的实现。权限管理、开放接口管理、设备管理、规则引擎、联动管理、服务管理作为应用需要的功能扩展。 驱动管理:由于要做适配接入应用和设备,那么驱动是必不可少的一项,但是对于一个稳定的系统而言,每次的驱动升级和添加都需要重新部署将会降低系统的稳定性,因此驱动管理是必不可少的一个功能。 连接管理:设备和应用的接入方式多种多样,虽然目前已有的接入方式有MQTT、http、CoAP等,不过思考后连接还是动态起来比较好些。 数据库管理:数据库管理其实在初期的时候并不是必须的,因为一旦选定对应的数据库技术选型那么在后期变动的可能性较小,但是考虑到可能会出现一些其他如对存储介质的更替的情况还是考虑了数据库管理这个功能。 对象存储管理:对象存储的介质其实很大一部分来源是对于数据的存储有不同的需求,如有些存到本地即可,可能还有一些要存放到对象存储服务器等等。 服务管理:服务管理提供了对应的如设备服务和应用服务,通过服务管理可以完成服务的动态启动和功能扩展。 注册表管理:注册表管理其实和字典配置相似,注册表内维护了系统运行或者服务运行过程中需要的一些必要参数,其实在初期的时候这个使用程度不会很大,只有在后期的时候对应的服务、连接、驱动等增多后使用的概率才会提升。 权限管理:无论是应用还是设备要接入系统本身需要有对应的权限,包括服务权限和接入权限等等,对于应用来说,每个应用我们视为一个用户,每个设备或者每个服务都视为一个权限,设备的接入数据也是权限的一部分。 开放接口管理:应用可以通过开放接口完成对设备操作、读取和对数据的读取。 设备管理:对设备的一些操作查看等,都可以在系统内查看到。
|