论文部分内容阅读
随通信技术与计算能力的发展,共享物联网中海量设备的感知数据甚至其感知、执行能力都变得可能。目前大多数物联网系统只关注各自领域内有限设备的感知数据,忽略了设备对外提供服务的能力。尚缺少一种通用型物联网中间件在保证异构设备成功接入的前提下,针对设备功能建立相应感知、控制服务并开放供外界使用,以实现跨系统、跨领域的物联网应用。本文通过分析物联网设备的异构特点,总结设备接入所需处理的共性,设计了设备映射模型,并实现了基于微服务的物联网通用中间件,可以支持异构设备的接入及其开放化服务的建立与使用。中间件利用设备描述文件接入和管理设备,提供可自定义处理规则的编程模型消费设备服务搭建应用。主要工作和创新之处如下:1.针对异构设备接入,拆分出通信建立、报文解析、资源抽象三个动作,并将其实现为可伸缩的微服务。建立了设备描述机制指定微服务的组合,为设备生成对应映射模型,该模型能保证异构通信协议的对接,支持自定义报文解析和数据封装方法,同时对外提供基于设备资源的RESTFul服务。2.针对映射模型使用,考虑到在提供开放化服务后将面临的高并发请求问题,设计异步请求处理机制,借助消息中间件缓冲并发压力,利用分布式缓存同步多实例间的服务调用。提出基于服务调用角色、请求发起时间、请求方法、默认到达顺序的优先级判断方法,解决了多方控制导致的调用冲突。采用规则引擎技术,实现可自由消费模型开放化服务且在运行时可动态调整处理规则的编程模型——虚拟物联网设备,其与设备映射模型共同提供开放化服务组成物联网服务市场。3.针对系统实现,依据微服务架构和系统功能将中间件划分为基础服务设施、物联网设备映射模型、虚拟物联网设备、公共服务四个模块。模块内大部分微服务被设计为可直接扩容的无状态服务(Stateless service)并部署于Docker容器,利用Kubernetes自动部署、管理容器以及支持快速伸缩的特点,构建了高可用的系统。另外,在实现过程中采用部署资源的滚动更新机制完善了Kubernetes的服务配置流程,设计监控微服务利用模型在通信、解析、服务请求处理过程中的异常信息,控制模型的伸缩以及开放化服务的熔断。本文通过建立基于微服务架构的物联网通用中间件,实现物联网设备服务层次的互操作,为提高物联网系统的互操作性、通用性研究提供了借鉴,有助于推动物联网生态系统的完善。