【技术实现步骤摘要】
一种安全加载插件的实现方法及系统
本专利技术涉及计算机软件领域,具体涉及一种安全加载插件的实现方法及系统。
技术介绍
通信设备网络管理系统通常需要管理不同种类的设备,实现故障管理、配置管理、性能管理、安全管理等功能,对不同设备的管理存在相似之处,也存在不同之处,例如对于性能管理,起初设备只有一段时间的性能指标均值,后来新类型的设备又增加最大值、最小值,那么原有性能管理功能就会随着新类型设备增加而频繁修改功能代码,代码修改导致原有功能变得不稳定,引入新特性也会逐渐变得越来越难,需要对原有功能进行大的重构,这又会引入新的问题,形成一个恶性循环。为了解决上述问题,通常会将公共框架和功能封装为平台,平台通过插件机制,在不需要侵入式的修改平台代码的情况下扩展平台的功能,插件方式是在不修改软件系统的情况下增加新的特性,插件使用者定义插件API(ApplicationProgrammingInterface,应用程序编程接口),插件实现者实现插件API,并编译为动态链接库,插件使用者通过操作系统接口LoadLibrary或dlop ...
【技术保护点】
1.一种安全加载插件的实现方法,其特征在于,包括以下步骤:/n在插件API中定义名称以及插件API当前的版本号;/n从插件API中派生出插件使用者的实现;/n将所述实现编译为动态链接库,存储至指定的目录中;/n基于待加载的插件API的名称和版本号,遍历所述目录中的动态链接库,查找到相应的插件API并加载,若未查找得到,则结束。/n
【技术特征摘要】
1.一种安全加载插件的实现方法,其特征在于,包括以下步骤:
在插件API中定义名称以及插件API当前的版本号;
从插件API中派生出插件使用者的实现;
将所述实现编译为动态链接库,存储至指定的目录中;
基于待加载的插件API的名称和版本号,遍历所述目录中的动态链接库,查找到相应的插件API并加载,若未查找得到,则结束。
2.如权利要求1所述的一种安全加载插件的实现方法,其特征在于:所述插件API中还定义有GetName静态方法和GetVersion静态方法,所述GetName静态方法用于获取插件API的名称,所述GetVersion静态方法用于获取插件API的版本号。
3.如权利要求1所述的一种安全加载插件的实现方法,其特征在于:所述插件API的基类中还创建有用于用户添加key/value存储形式的自定义属性接口,以及校验属性的接口。
4.如权利要求3所述的一种安全加载插件的实现方法,其特征在于,所述从插件API中派生出插件使用者的实现之后,包括:对所述实现定义一变量,并使用插件API的名称作为变量的符号,然后将定义的变量导出。
5.如权利要求4所述的一种安全加载插件的实现方法,其特征在于,所述基于待加载的插件API的名称和版本号,遍历所述目录中的动态链接库,查找到相应的插件API并加载,若未查找得到,则结束,具体步骤包括:
遍历目录中的所有文件,依次读取出目录中的动态链接库,得到插件API,然后判断插件API中是否存在与待加载的插件API名称相同的符号、判断插件API的名称是否与待加载的插件API的名称一致、判断插件API的版本号是否与待加载插件API的版本号一致、判断插件API中是否存在用户添加的自定义属性,当判断结果均为是时,则加载当前插件API,当判断结果至少有一个为否时,则结束。
6.一种安全加载...
【专利技术属性】
技术研发人员:钟潘,
申请(专利权)人:烽火通信科技股份有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。