System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,具体而言,涉及一种插件管理方法、装置、电子设备及计算机可读存储介质。
技术介绍
1、在项目实施与运维过程中,由于客户环境的复杂多变以及特殊定制化的客户需求,导致系统在版本、功能、需求等方面的管理变得愈加繁杂,并且经常需要在不重启服务的情况下完成功能的更新与升级。为此,目前业内普遍采用基于插件的软件体系结构,将项目中独立的、同等定位的开发模块进行提取,形成单独的模块或插件,以此提高软件复用率,提高开发效率。
2、但是,目前进行插件纳管时,通常会对不同来源的插件进行纳管,而不同来源的插件可能采用不同的编程语言实现,由于目前各个编程语言的编译器没有统一的abi(application binary interface,应用程序二进制接口)标准,甚至在同一个编程语言下不同的编译器版本对应的abi也可能存在差异,这就导致了在插件系统在对各插件纳管后,插件与系统之间无法兼容问题,不兼容的插件在插件系统中不仅无法被正确使用,反而可能对系统的稳定性造成冲击,影响系统的可靠性。
技术实现思路
1、本申请实施例的目的在于提供一种插件管理方法、装置、电子设备及计算机可读存储介质,用以缓解相关技术存在着的被纳管的插件与系统之间可能无法兼容,进而影响系统可靠性的问题。
2、本申请实施例提供了一种插件管理方法,包括:在监测到第一目标插件的插件新增事件或者插件更新事件的情况下,将所述第一目标插件所支持的应用程序二进制接口abi与插件系统所支持的目标abi进行匹配;若所述
3、在上述实现过程中,基于事件监测机制,在监测到第一目标插件的插件新增事件或者插件更新事件的情况下,通过将第一目标插件的所支持的abi与插件系统所支持的abi进行匹配,进而对不匹配的第一目标插件不进行加载,这样就可以降低将与插件系统不兼容的插件加载进插件系统的风险,降低被纳管的插件与插件系统之间无法兼容的风险,进而提高插件系统的可靠性。
4、进一步地,在监测到第一目标插件的插件新增事件或者插件更新事件的情况下,所述方法还包括:将所述插件系统所兼容的插件版本和所述插件系统所兼容的插件版本进行匹配;若所述插件系统所兼容的插件版本和所述插件系统所兼容的插件版本不匹配,则停止加载所述第一目标插件。
5、在上述实现方式中,除了会进行abi的校验以降低将不兼容的插件加载进插件系统的风险外,还通过进行插件版本的校验,降低将错误版本的插件加载进插件系统的风险,从而提高插件系统的安全性。
6、进一步地,在监测到第一目标插件的插件新增事件或者插件更新事件的情况下,所述方法还包括:将所述第一目标插件的编译器版本和所述插件系统所兼容的编译器版本进行匹配;若所述第一目标插件的编译器版本和所述插件系统所兼容的编译器版本不匹配,则停止加载所述第一目标插件。
7、在上述实现方式中,除了会进行abi的校验以降低将不兼容的插件加载进插件系统的风险外,还通过进行编译器版本的校验,降低将错误编译器版本的插件加载进插件系统的风险,从而提高插件系统的安全性。
8、进一步地,在将所述第一目标插件所支持的abi与插件系统所支持的目标abi进行匹配之前,所述方法还包括:检测插件库中各插件的指纹信息是否改变;若检测到任意一个所述插件的指纹信息改变,则确定所述指纹信息改变的插件是否为所述第一目标插件,若是,则确定监测到所述插件更新事件;其中,所述插件的指纹信息与所述插件的文件内容存在一一对应关系。
9、在上述实现方式中,对于已加载的插件可以持续进行监控,而插件的指纹信息可以反映出插件的状态是否发生的变更,因此通过检测插件库中各插件的指纹信息是否改变,可以有效实现对于插件更新事件的检测,使得插件系统具备了插件自更新与升级的功能。
10、进一步地,在将所述第一目标插件所支持的abi与插件系统所支持的目标abi进行匹配之前,所述方法还包括:监听插件库目录;在监听到所述插件库目录中新增所述第一目标插件对应的文件时,确定监测到所述插件新增事件。
11、在上述实现方式中,通过监听插件库目录可以在向插件库内新增文件时及时发现该情况,即及时监测到插件新增事件。
12、进一步地,所述方法还包括:在监测到第二目标插件的插件删除事件的情况下,调用插件卸载程序卸载第二目标插件。
13、进一步地,在调用插件卸载程序卸载所述第二目标插件之后,所述方法还包括:设置所述第二目标插件的删除标识,以使所述插件系统在调用插件时,若检测到所述删除标识则跳过调用操作。
14、在上述实现方式中,通过删除标识的设置,可以使得在卸载插件后,避免调用插件时错误地继续调用到被卸载的插件,提高系统调用插件的准确性并减少无效的调用操作,降低调用开销。
15、本申请实施例还提供了一种插件管理装置,包括:事件监控模块,用于监测插件新增事件或者插件更新事件;校验模块,用于在监测到第一目标插件的插件新增事件或者插件更新事件的情况下,将所述第一目标插件所支持的应用程序二进制接口abi与插件系统所支持的目标abi进行匹配;纳管模块,用于若所述第一目标插件所支持的abi与所述目标abi不匹配,则停止加载所述第一目标插件。
16、上述插件管理装置基于事件监测机制,在监测到插件新增事件或者插件更新事件的情况下,可以通过将第一目标插件所支持的abi与插件系统所支持的abi进行匹配,进而对不匹配的第一目标插件不进行加载,这样就可以降低将与插件系统不兼容的插件加载进插件系统的风险,降低被纳管的插件与插件系统之间无法兼容的风险,进而提高插件系统的可靠性。
17、进一步地,所述事件监控模块通过消息总线将监测到插件新增事件或者插件更新事件通知给所述校验模块。
18、在上述实现方式中,事件监控模块通过消息总线向校验模块进行事件通报,从而可以有效实现信息的通知,保证方案的正确实施。
19、本申请实施例还提供了一种电子设备,包括处理器和存储器;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的插件管理方法。
20、本申请实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的插件管理方法。
本文档来自技高网...【技术保护点】
1.一种插件管理方法,其特征在于,包括:
2.如权利要求1所述的插件管理方法,其特征在于,在监测到第一目标插件的插件新增事件或者插件更新事件的情况下,所述方法还包括:
3.如权利要求1或2所述的插件管理方法,其特征在于,在监测到第一目标插件的插件新增事件或者插件更新事件的情况下,所述方法还包括:
4.如权利要求1所述的插件管理方法,其特征在于,在将所述第一目标插件所支持的ABI与插件系统所支持的目标ABI进行匹配之前,所述方法还包括:
5.如权利要求1所述的插件管理方法,其特征在于,在将所述第一目标插件所支持的ABI与插件系统所支持的目标ABI进行匹配之前,所述方法还包括:
6.如权利要求1-5任一项所述的插件管理方法,其特征在于,所述方法还包括:
7.如权利要求6所述的插件管理方法,其特征在于,在调用插件卸载程序卸载所述第二目标插件之后,所述方法还包括:
8.一种插件管理装置,其特征在于,包括:
9.如权利要求8所述的插件管理装置,其特征在于,所述事件监控模块通过消息总线将监测到插件
10.一种电子设备,其特征在于,包括:处理器和存储器;所述处理器用于执行存储器中存储的一个或者多个程序,以实现如权利要求1-7任一项所述的插件管理方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任一项所述的插件管理方法。
...【技术特征摘要】
1.一种插件管理方法,其特征在于,包括:
2.如权利要求1所述的插件管理方法,其特征在于,在监测到第一目标插件的插件新增事件或者插件更新事件的情况下,所述方法还包括:
3.如权利要求1或2所述的插件管理方法,其特征在于,在监测到第一目标插件的插件新增事件或者插件更新事件的情况下,所述方法还包括:
4.如权利要求1所述的插件管理方法,其特征在于,在将所述第一目标插件所支持的abi与插件系统所支持的目标abi进行匹配之前,所述方法还包括:
5.如权利要求1所述的插件管理方法,其特征在于,在将所述第一目标插件所支持的abi与插件系统所支持的目标abi进行匹配之前,所述方法还包括:
6.如权利要求1-5任一项所述的插件管理方法,其特征在于,所...
【专利技术属性】
技术研发人员:资郴琛,廖意明,罗盼,
申请(专利权)人:奇安信科技集团股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。