[发明专利]一种基于微内核架构的插件调用方法及装置有效
| 申请号: | 201910044541.7 | 申请日: | 2019-01-17 |
| 公开(公告)号: | CN109828796B | 公开(公告)日: | 2022-04-15 |
| 发明(设计)人: | 郭治军;刘银森;郜鹏;肖威 | 申请(专利权)人: | 武汉精立电子技术有限公司;武汉精测电子集团股份有限公司 |
| 主分类号: | G06F9/445 | 分类号: | G06F9/445 |
| 代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 罗飞 |
| 地址: | 430205 湖北省武*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 内核 架构 插件 调用 方法 装置 | ||
本发明提供了一种基于微内核架构的插件调用方法及装置,其中的方法包括:首先将插件模块中的所有插件继承预设父类,并在预设父类中设置类型判断方法,然后分析所有插件的源代码,获得插件之间的继承关系,接着根据插件之间的继承关系,生成与每个插件对应的类型判断方法的实现代码;当进行插件调用时,通过核心系统调用与目标插件对应的类型判断方法进行安全判断,如果安全,则进行父类到子类的转换,再基于转换的结果,进行目标插件的调用。本发明实现了不依赖于RTTI的通用插件调用以及提高调用效率的技术效果。
技术领域
本发明涉及计算机技术领域,具体涉及一种基于微内核架构的插件调用方法及装置。
背景技术
微内核架构有时也被称为插件架构模式(plug-in architecture pattern),微内核架构包含两部分组件:核心系统(core system)和插件模块(plug-in modules)。应用逻辑被分割为独立的插件模块和核心系统,提供了可扩展性、灵活性、功能隔离和自定义处理逻辑的特性。微内核架构的使用范围很广泛,比较著名的插件架构产品为Eclipse和Firefox。
软件开发过程中,一个插件不可避免地需要调用另外一个插件的功能,则需要要获取另外一个插件的对象。例如,如图1所示,为插件之间的继承关系示意图,IPlugin为CameraPlugin和PGPlugin的父类,PGPlugin为PowerPGPlugin和HyPgPlugin的父类。某个插件APlugin需要调用PowerPgPlugin的接口,则需要获得PowerPgPlugin的接口指针。但此时在核心系统中PowerPgPlugin对象是以IPlugin指针的方式存储的,要从IPlugin指针得到PowerPgPlugin的指针则需要进行从父类到子类的类型转换机制。
本发明申请人在实施本发明的过程中,发现现有技术中至少存在如下技术问题:
现有方法中,如果存在某个BPlugin错误的将PowerPgPlugin转换成HyPgPlugin。并且调用HyPgPlugin的方法,那么程序将会出现无法预料的后果(绝大多数情况下会崩溃)。有些编程语言会提供这种类型安全的转换接口,比如c++的dynamic_cast。但是dynamic_cast依赖于C++的RTTI(Runtime Type Information,通常称为运行时类型信息)机制,一方面不通用,因为有的情况下会要求程序必须关闭RTTI;另一方面dynamic_cast需要在运行时遍历RTTI继承树,每次进行转换都需要遍历继承树,效率比较低。
发明内容
有鉴于此,本发明实施例提供了一种基于微内核架构的插件调用方法及装置,用以解决或者至少部分解决现有技术存在的通用性较差的技术问题。
为了解决上述技术问题,本发明第一方面提供了一种基于微内核架构的插件调用方法,所述微内核架构包括插件模块和核心系统,包括:
将插件模块中的所有插件继承预设父类,并在预设父类中设置类型判断方法,所述类型判断方法用以判断一个具体的对象是否为某一个类的对象;
分析所有插件的源代码,获得插件之间的继承关系;
根据插件之间的继承关系,生成与每个插件对应的类型判断方法的实现代码;
当进行插件调用时,通过核心系统调用与目标插件对应的类型判断方法进行安全判断,如果安全,则进行父类到子类的转换;
基于转换的结果,进行目标插件的调用。
在一种实施方式中,分析所有插件的源代码,获得插件之间的继承关系,具体包括:
采用源代码分析工具,通过遍历源代码的语法树的方式,获得每个插件的继承关系。
在一种实施方式中,预先存储预设父类的对象指针,通过核心系统调用与目标插件对应的类型判断方法进行安全判断,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉精立电子技术有限公司;武汉精测电子集团股份有限公司,未经武汉精立电子技术有限公司;武汉精测电子集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910044541.7/2.html,转载请声明来源钻瓜专利网。





