基于动态可插拔组件的物联网中间件系统技术方案

技术编号:8959272 阅读:189 留言:0更新日期:2013-07-25 18:50
本发明专利技术提供了一种基于动态可插拔组件的物联网中间件系统,属于物联网信息技术领域。目前基于物联网的应用的复杂度和规模还处于发展阶段,支持大规模物联网应用还存在异构物理设备、环境复杂多变、综合运维管理等诸多问题,尤其对实现物联网中间件和底层不同网络技术和硬件平台实现的松耦合,在复杂的生产环境中,实施人员可以高效升级中间件的功能提出了挑战。本发明专利技术能很好的解决物联网中间件的组件升级和热部署问题。本发明专利技术的特点就是中间件内部所有的组件都是以动态插件形式存在,包括设备启动器、设备连接器、消息处理器、消息派发器和消息引擎,因而可以在物联网中间件运行时候任意独立加载和移除插件。

【技术实现步骤摘要】

本专利技术属于物联网信息
,尤其涉及物联网中间件系统。
技术介绍
: 物联网被誉为本世纪非常有影响的技术革新和技术突破,开展对于物联网的相关研究,具有重要的经济、社会意义和长远的战略意义。物联网中间件技术是物联网的最关键的核心技术,目前该技术的发展受两方面的制约。一方面,底层不同的网络技术和硬件平台导致无法兼容,研究内容主要还集中在互联互通和底层的感知方面,距离实际目标包括屏蔽网络平台及底层硬件差异,支持物联网应用开发、运行时共享和开放互联互通,保障物联网相关系统的可靠部署与可靠管理等还有很大差距;另一方面,当前基于物联网的应用的复杂度和规模还处于发展阶段,支持大规模物联网应用还存在异构物理设备、环境复杂多变、远距离多样式无线通信、大规模部署、海量数据融合、复杂事件处理、综合运维管理等诸多问题需要攻克。由于不同行业对物联网中间件的应用环境、传感器的工作频率、存储能力、抗干扰性能等要求不同,对物联网中间件应对环境差异、环境变化提出了挑战。尤其是如何实现物联网中间件和底层不同网络技术和硬件平台实现的松耦合,如何在复杂的生产环境中,实施人员可以快速升级中间件的功能。目前物联网中间件对环境差异、环境变化普遍采用紧耦合方式绑定具体实现。对这种环境差异、环境变化的实现紧耦合绑定方式会导致一些问题。首先需要支持新功能常常造成中间件本身核心模块代码不同步,导致升级新功能时需升级中间件不相干的模块。其次中间件紧耦合方式不利用中间件核心功能的模块化专注开发和升级。中间件核心功能的升级很容易影响到所有特定实现,导致特定实现功能的失效,带来复杂版本管理问题。再次,某些特定环境下中间件需要在高可靠性下进行工作,无动态部署使得中间件不能在工作状态下实现动态升级和加载新功能。本专利技术的特点就是中间件里面所有的接口组件都是可插拔的,包括设备启动器、设备连接器、消息处理器和消息派发器,即接口组件可以动态更新升级,不用重启中间件系统,组件所需属性也可以任意添加,应对复杂的实际情况。通过接口组件的动态可插拔,中间件和具体特定实现达到松耦合,使中间件专注于特有模块的升级。
技术实现思路
: 本专利技术的目的是提供一个动态可插拔组件的物联网中间件系统。它建立在“动态可插拔组件”的基础上,将物联网中间件划分为五类接口插件,即定义可插拔扩展点方式,实现核心模块、设备驱动、设备连接、消息处理和消息派发的热插拔技术。我们把动态可插拔组件简称为插件,方便下面叙述。动态可插拨组件管理器(即插件管理器)负责系统各个接口插件的动态发现、加载、运行和卸载的组件生命周期的过程。本专利技术的技术方案基于动态可插拔组件的物联网中间件系统,包括以下组成部分。一、插件管理器 插件管理器可以动态发现、加载、运行和卸载插件,从而为物联网中间件提供一个标准的插件基础设施,并且为五类接口提供插件技术服务。插件就是应用程序的一个模块,但是这个模块又是相对独立的自治域,这个模块可以引用依赖其他的模块,这个模块可以通过某种方式和其他的模块交互。物联网中间件不依赖任何插件就可以启动,但是加载相应的插件才能实现物联网的设备驱动、连接、消息处理和消息派发的功能。插件管理器采用Java语言实现,我们把插件保持内聚,方便插件的安装和卸载,在逻辑实体上把插件的定义简单化,方便实现自定义的插件,在这里我们给出插件的物理存储布局和逻辑实体。(一)插件物理布局 物理布局是插件内部存储定义,插件是以jar文件包形式存在。jar文件包是java的库文件规范,内部采用zip方式进行数据压缩。我们定义插件内部布局如下: 1.config目录:插件自己的配置文件,所有配置文件数据放到这个目录; 2.libs目录:存储插件需要的库文件,Iibs目录下的库文件会在插件加载的过程中按照插件描述文件里面的定义自动加载; 3.plugin, xml配置文件:插件描述文件,插件管理器通过读取该文件了解如何加载具体插件,如何告知中间件插件容器去装载具体插件到中间件的具体位置。(二)插件生命周期 插件生命周期描述的是一个插件的生存到死亡,定义一个插件如何初始化、启动、更新、停止和销毁。我们把插件的生命周期分为五个阶段,这五个阶段在插件容器里面统一管理。在这里,我们采用Java的接口和抽象类定义插件的生命周期,所有实现了这个接口的类可以认为是一个插件。接口定义如下: 1.插件初始化:在插件初始化的时候调用并且只调用一次; 2.插件启动:在插件启动的时候调用,可能是多次,取决于插件是否处于停止状态; 3.插件更新:插件管理器会定时监控插件是否有版本更新,如果有更新,会调用插件更新方法更新插件; 4.插件停止:在插件停止的时候调用,可能是多次,取决于插件是否处于启动状态; 5.插件销毁:在插件销毁的时候调用,初始化和销毁应该保证对称。(三)插件管理器 插件管理器负责管理插件容器,管理和插件有关的一切操作,插件管理器管理插件步骤如下: 1.在系统启动的时候,插件管理器扫描插件目录,找到符合定义的插件jar文件; 2.验证合法性,读取插件描述文件,扫描库文件; 3.根据插件描述文件构建插件依赖关系图,确定插件启动顺序,然后按照顺序启动插件; 4.设定安全管理器,设定类加载器,执行插件描述文件; 5.定时监控已存在插件是否有新版本更新,如果有更新,更新插件;同时监控是否有新插件,如果有加载新插件。以上就是插件管理器管理插件的全过程,这里我们利用Java的类加载器机制,插件管理器的插件类加载过程如下: 1.启动类装载器加载系统核心类; 2.然后系统类装载器加载类路径下的类; 3.然后应用程序的类加载器加载属于应用程序自己的类; 4.插件管理器加载所需类,插件管理器加载的类被所有的插件共享,但是每个插件都有自己的命名空间,这很好的解决了插件之间的库隔离问题,两个不同的插件现在可以加载同一个类的两个版本而不会有任何冲突。(四)插件描述文件 插件描述文件是插件内部最重要的文件,定义描述了插件唯一标示,插件实现类等等。插件管理器在装载一个插件时,会读取插件描述文件。插件描述文件有如下几个定义: 1.插件基本属性:插件编号,这个编号是全局唯一的,还有插件的名字,版本和作者; 2.扩展点:扩展点是系统中可以被再次扩展的类和接口,通过扩展点的定义,可以使得系统的执行过程变得可插入,可任意变化; 3.扩展:扩展是插件内部的一个属性,一个扩展是针对某个扩展点的一个实现,每个扩展都可以有自己的额外属性,用于在同一个扩展点实现之间进行区分,扩展必须在插件内部进行定义; 4.依赖:依赖是插件编译时需要依赖其他库的某些功能,插件管理器会自动从插件内部的Iibs目录加载自己所需的库文件和类文件,这些文件将被加载到插件的类路径中; 5.运行时环境:插件运行时需要依赖其他库的某些功能,在运行时环境指定。插件管理器会自动从系统类路径开始加载自己运行时所需的库文件和类文件,这些文件将被加载到插件的类路径中。插件管理器也会根据Plugin, xml中描述的依赖关系选择插件加载的次序。不正确的插件依赖关系会导致加载失败; 6.插件容器:插件容器实际就是一个虚拟的容器,包含了多个扩展、依赖插件和自身发布的库,插件可以本文档来自技高网
...

【技术保护点】
基于动态可插拔组件的物联网中间件系统,该系统包括以下模块:(1)插件管理器:动态发现、加载、运行和卸载插件,为物联网中间件提供一个标准的插件基础设施;?(2)设备驱动器:负责底层设备的状态、事件监控和接收;(3)设备连接器:负责具体设备连接的操作,它被设备驱动器使用;(4)消息处理器:负责消息处理和过滤,数据的格式化整理;(5)消息派发器:负责把消息派发到远端,用于物联网中间件和业务应用系统对接;(6)消息流程引擎:负责定义设备驱动器、设备连接器、消息处理器和消息派发器的插件扩展点,把所有插件组合使用。

【技术特征摘要】
1.基于动态可插拔组件的物联网中间件系统,该系统包括以下模块: (1)插件管理器:动态发现、加载、运行和卸载插件,为物联网中间件提供一个标准的插件基础设施; (2)设备驱动器:负责底层设备的状态、事件监控和接收; (3)设备连接器:负责具体设备连接的操作,它被设备驱动器使用; (4)消息处理器:负责消息处理和过滤,数据的格式化整理; (5)消息派发器:负责把消息派发到远端,用于物联网中间件和业务应用系统对接; (6)消息流程引擎:负责定义设备驱动器、设备连接器、消息处理器和消息派发器的插件扩展点,把所有插件组合使用。2.如权利要求1所述的系统,所述模块(I)中,定义了插件物理布局,插件本身采用jar文件形式,插件内部布局如下: (Dconfig目录:这个目录存放所有配置文件数据; (2)Iibs目录:存储插件需要的库文件; (3)plugin, xml配置文件:插件描述文件。3.如权利要求1所述的系统,所述模块(I),定义插件生命周期,包括: (1)插件初始化:这个目录存放所有配置文件数据; (2)插件启动:存储插件需要的库文件; (3)插件更新:插件描述文件; (4)插件停止:在插件停止的时候调用; (5)插件销毁:在插件销毁的时候调用。4.如权利要求1所述的系统,所述模块(1),插件管理器负责管理插件有关的一切操作,具体管理插件步骤包括: (O系统启动时,插件管理器扫描插件目录,加载所有jar文件; (2)验证插件jar文件合法性,读取插件描述文件,扫描插件依赖的库文件; (3)根据插件描述文件构建插件依赖关系图,按照顺序启动插件; (4)设定安全管理器,设定类加载器,执行插件定义; (5)定时监控插件更新和发现新插件。5.如权利要求1所述的系统,所述模块(I),定义插件描述文件,包括: (1)插件基本属性:包括插件编号、插件名字、版本、作者; (2)插件扩展点:扩展点是系统被再次扩展的类和接口; (3)插件扩展:扩展是扩展点的一个实现; (4)插件依赖:在编译环境指定插件编译时需要依赖其他库; (5)运行时环境:在运行时环境指定插件运行时需要依赖其他库; (6)插件容器:插件容器包含多个扩展、依赖插件和自身发布的库。6.如权利要求1所述的系统,所述模块(1),定义插件描述文件的结构,插件描述文件采用XML语言进行定义,包括: (1)根节点是插件容器,节点名义为Plugin,包括插件容器的基本信息; (2)插件容器下定义扩展,节点名称为attributes,扩展节点里面定义多个自定义属性,属性节点名称为attribute ;(3)插件容器下定义依赖,节点名称为requires,指定插...

【专利技术属性】
技术研发人员:甘雨
申请(专利权)人:上海谐宇网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1