物联网系统插件化对接调试无损发布的方法技术方案

技术编号:38153467 阅读:12 留言:0更新日期:2023-07-13 09:19
本发明专利技术公开了一种物联网系统插件化对接调试无损发布的方法,应用于包括插件开发插件开发模拟环境和物联引擎的插件系统,开发模拟环境依赖插件核心Jar包和插件依赖的主程序包,物联引擎依赖插件核心Jar包和插件上下文,包括以下步骤:采用插件开发模拟环境进行插件的开发和测试,完成插件;将完成的插件安装至物联网引擎的主程序,安装的插件立即生效。安装的插件立即生效。安装的插件立即生效。

【技术实现步骤摘要】
物联网系统插件化对接调试无损发布的方法


[0001]本专利技术属于计算机
,具体涉及物联网系统插件化对接调试无损发布的方法。

技术介绍

[0002]目前基于Java开发的物联引擎在对接设备中,虽然大多数具备了使用独立驱动的方式来对接,具备了设备驱动与物联引擎的解耦,但是缺乏设备驱动的调试方式,而是需要安装到物联引擎中,并且重启整个物联引擎,才能使该设备驱动生效,最后再依赖物联引擎进行测试。一方面设备对接人员在对接完设备后,没法独立进行调试,另一方面在将设备驱动安装到物联引擎重启的过程中,会导致物联引擎整体功能不可用,影响其他功能的正常使用,或者数据的丢失。

技术实现思路

[0003]鉴于以上存在的问题,本专利技术提供一种物联网系统插件化对接调试无损发布的方法。
[0004]为解决上述技术问题,本专利技术采用如下的技术方案:
[0005]一种物联网系统插件化对接调试无损发布的方法,应用于包括插件开发插件开发模拟环境和物联引擎的插件系统,开发模拟环境依赖插件核心Jar包和插件依赖的主程序包,物联引擎依赖插件核心Jar包和插件上下文,包括以下步骤:
[0006]采用插件开发模拟环境进行插件的开发和测试,完成插件;
[0007]将完成的插件安装至物联网引擎的主程序,安装的插件立即生效。
[0008]一种可能的实施方式中,插件的开发和测试包括插件的初始化加载流程。
[0009]一种可能的实施方式中,所述插件的初始化加载流程具体包括:
[0010]在Spring Boot环境中配置插件Jar包保存目录和插件配置模式;
[0011]Spring Boot启动时发送启动完成事件,插件核心系统监听到Spring Boot启动完成后,开始加载插件;
[0012]在获取到插件的.class文件和插件的基本信息后,解析插件的class文件,处理内部依赖和外部依赖类,生成Spring Bean,保存到该插件的上下文中,内部依赖指插件自身的依赖,从插件自身加载,外部依赖指需要从物联引擎加载的依赖,处理完.class文件后,保存插件名称和插件上下文的关联关系,并发送启动成功事件,供订阅了插件启动事件的程序处理,如果在插件加载过程中发生错误发送启动失败事件。
[0013]一种可能的实施方式中,插件的开发和测试包括插件的安装流程。
[0014]一种可能的实施方式中,所述插件的安装流程具体包括:用户调用插件安装接口,上传插件核心Jar包到临时目录,主程序调用插件核心Jar包的安装方法,同时判断是否存在同名插件,如果已存在同名插件,先备份原插件,防备份完成后,根据策略判断升级还是覆盖,所述策略是指:判断插件的版本号是否相同,相同则只是覆盖,不进行后续操作,如果
版本号大于原版本号,则表示升级插件,加载插件,解析Jar包,并生成插件信息,处理插件相关依赖,如果整个过程中没有发生异常,发送插件安装和启动完成事件;如果过程中发生异常,则安装启动失败。
[0015]一种可能的实施方式中,插件的开发和测试包括插件的卸载流程。
[0016]一种可能的实施方式中,所述插件的卸载流程具体包括:用户调用插件卸载接口,主程序判断插件是否存在,不存在提示错误显示给用户,存在则备份插件,判断目前插件的启动状态,如果为启动中,则清除插件的上下文和内存数据,将插件状态标记为已停止;如果为已停止,则卸载插件核心Jar包,如果整个过程中没有发生异常,表示卸载完成,发送插件停止和卸载事件;如果整个过程中发生异常,则卸载失败。
[0017]一种可能的实施方式中,插件的开发和测试包括插件的启动流程。
[0018]一种可能的实施方式中,所述插件的启动流程具体包括:用户调用插件启动接口,主程序判断插件是否存在,不存在提示错误显示给用户,存在则判断插件启动状态,已启动则提示错误表示插件已经启动,如果插件为已停止状态,则加载插件生成插件信息,处理插件相关依赖,如果整个过程中没有发生异常,表示启动完成,发送插件安装和启动完成事件;如果整个过程中发生异常,则启动失败。
[0019]一种可能的实施方式中,插件的开发和测试包括插件的停止流程,所述插件的停止流程具体包括:用户调用插件停止接口,判断插件是否存在,如果不存在,则提示错误,存在则判断插件启动状态,已停止则提示错误,如果插件为启动状态,则清除插件的上下文和内存数据,将插件状态标记为已停止;如果整个过程中没有发生异常,则表示停止完成,发送插件停止事件;如果整个过程中发生异常,则停止失败。
[0020]采用本专利技术具有如下的有益效果:使得开发人员插件的开发和调试,完全在本地进行,插件开发模拟环境采用一个简单的Spring Boot单体应用,依赖了一个插件依赖主程序包,该包将插件开发相关的类、配置文件封装到依赖包中,用该依赖包替代线上真实环境的主程序,供开发人员使用,该方法的好处是可以管控插件可以调用的类,防止开发人员进行一些错误操作,保证系统的稳定性,同时能够降低开发门槛,专注于开发插件功能,同时该模拟环境可以连接物联引擎的开发环境,读取相关的基础配置数据。
附图说明
[0021]图1为本专利技术实施例的物联网系统插件化对接调试无损发布的方法的步骤流程图。
具体实施方式
[0022]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0023]参见图1,本专利技术实施例的物联网系统插件化对接调试无损发布的方法的步骤流程图,应用于包括插件开发插件开发模拟环境和物联引擎的插件系统,开发模拟环境依赖插件核心Jar包和插件依赖的主程序包,物联引擎依赖插件核心Jar包和插件上下文,包括
以下步骤:
[0024]采用插件开发模拟环境进行插件的开发和测试,完成插件;
[0025]将完成的插件安装至物联网引擎的主程序,安装的插件立即生效。
[0026]其中插件开发模拟环境主要用于插件的开发和测试,是一个独立项目,提供给插件开发人员使用。插件核心Jar包用于负责插件的加载,安装、注册、卸载、插件隔离、插件之间的调用(内部依赖关系)和插件与物联引擎的调用(外部依赖关系)。插件依赖主程序包用于提供插件开发测试的主程序依赖,是一个简化的程序,用于开发人员在本地开发和调试插件。插件上下文是插件相关类对象,配置的统一保存位置,每个插件拥有一个插件上下文。
[0027]本专利技术一实施例中,插件的开发和测试包括插件的初始化加载流程。插件的初始化加载流程具体包括:在Spring Boot环境中配置插件Jar包保存目录和插件配置模式,其中保存目录可以为例如/app/plugins/,而插件配置模式分dev、prod,dev表示开发模式,prod表示生产模式。Spring Boot启动时发送启动完成事本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种物联网系统插件化对接调试无损发布的方法,其特征在于,应用于包括插件开发插件开发模拟环境和物联引擎的插件系统,开发模拟环境依赖插件核心Jar包和插件依赖的主程序包,物联引擎依赖插件核心Jar包和插件上下文,包括以下步骤:采用插件开发模拟环境进行插件的开发和测试,完成插件;将完成的插件安装至物联网引擎的主程序,安装的插件立即生效。2.如权利要求1所述的物联网系统插件化对接调试无损发布的方法,其特征在于,插件的开发和测试包括插件的初始化加载流程。3.如权利要求1所述的物联网系统插件化对接调试无损发布的方法,其特征在于,所述插件的初始化加载流程具体包括:在Spring Boot环境中配置插件Jar包保存目录和插件配置模式;Spring Boot启动时发送启动完成事件,插件核心系统监听到Spring Boot启动完成后,开始加载插件;在获取到插件的.class文件和插件的基本信息后,解析插件的class文件,处理内部依赖和外部依赖类,生成Spring Bean,保存到该插件的上下文中,内部依赖指插件自身的依赖,从插件自身加载,外部依赖指需要从物联引擎加载的依赖,处理完.class文件后,保存插件名称和插件上下文的关联关系,并发送启动成功事件,供订阅了插件启动事件的程序处理,如果在插件加载过程中发生错误发送启动失败事件。4.如权利要求1所述的物联网系统插件化对接调试无损发布的方法,其特征在于,插件的开发和测试包括插件的安装流程。5.如权利要求4所述的物联网系统插件化对接调试无损发布的方法,其特征在于,所述插件的安装流程具体包括:用户调用插件安装接口,上传插件核心Jar包到临时目录,主程序调用插件核心Jar包的安装方法,同时判断是否存在同名插件,如果已存在同名插件,先备份原插件,防备份完成后,根据策略判断升级还是覆盖,所述策略是指:判断插件的版本号是否相同,相同则只是覆盖,不进行后续操作,如果版本号大于原版本号,则表示升级...

【专利技术属性】
技术研发人员:吴前锋陈炬均陈霄周志湖
申请(专利权)人:浙江省经济信息中心浙江省价格研究所
类型:发明
国别省市:

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

1