构建自己的C/C++插件开发框架(一)——初步设想
C/C++插件开发框架的要素
首先解决以下的几个问题:1、如何注册插件;
2、如何调用插件;
3、如何测试插件;
4、插件的生命周期管理;
5、插件的管理和维护;
6、插件的组装;
7、插件的出错处理;
8、服务事件的广播和订阅(这个目前还没有考虑要支持);
其中有几个点很重要:1)插件框架要能够使模块松散耦合,做到真正的面向接口编程;2)框架要支持自动化测试:包括单元测试,集成测试;3)简化部署;4)支持分布式,模块可以调用框架外的插件。
采用的技术
插件框架要解决的一个问题就是插件的动态加载能力。这里可以使用共享库的动态加载技术。当然,为了简单,第一步只考虑做一个linux下的插件框架。总体结构
框架的总体结构上,参考OSGI的“微内核+系统插件+应用插件”结构。这里要好好考虑一下把什么做在内核中。关于微内核结构,以前我做个一个微内核流程引擎,会在后面有时间和大家分享。
框架中模块间的数据传送,有两种解决方法:一是普元采用的XML数据总线的做法。优点是扩展性好,可读性好。但是速度有些慢。二是采用我熟悉的信元流。优点的效率高,访问方便,但是可读性差一点,另外跨框架的数据传送,需要考虑网络字节序的问题。
对于框架间的通信,通过系统插件封装,对应用插件隐藏通信细节。
部署
努力做到一键式部署。
补充:软件开发 , C++ ,