构建自己的C/C++插件开发框架(二)——总体功能
在这一系列的上一个文章中,介绍了构建C/C++插件开发框架的初步设想,下面我会一步步的向下展开,来实现我的这个设想。
今天主要谈一下我对这个框架的功能认识,或是期望。昨天看了一篇关于持续集成能力成熟度模型 的一篇文章,受此启发,我对此框架的认识渐渐清晰。
这个框架可以当做我们公司底层产品(交换机,资源服务器等)的基础设施。上层基于java开发的产品可以直接在OSGI上开发。
核心功能:
1、最重要的一个功能是,提供一个模块化的编程模型,促进模块化软件开发,真正的实现针对接口编程。
2、提供一个有助于提高模块可重用性的基础设施。
3、提供一个C/C++插件的运行环境。
4、提供一个动态插件框架,插件可以动态更改,而无需重启系统。这个功能虽然不难实现,但是用处好像不是很大。
--------------------------------------------------------------------------------扩展部分功能:
1、支持分布式系统结构,多个运行框架组合起来形成一个系统,对模块内部隐藏远程通讯细节。
2、支持系统的分层架构。
3、能够和其他的开发框架进行集成,比如OSGI,SCA等。
4、多个运行框架中,能够实现对运行框架的有效管理。
5、概念上要实现类似于SCA中component(构件),composite(组合构件),Domain(域)的概念。
--------------------------------------------------------------------------------开发部分功能:
1、为了简化开发,开发一个Eclipse插件,用于开发框架中的C/C++插件。能够根据插件开发向导,最终生成符合插件规范的公共代码,配置文件,Makefile文件等。
--------------------------------------------------------------------------------调试部分功能:
1、提供一个统一的日志处理函数,可以集成Log4cpp。
2、提供模块间的消息日志,以及框架对外的接口日志。
3、提供消息和日志的追踪功能,能将和某事件相关的消息和日志单独提取出来。
4、提供资源监测功能,监测对资源(内存,套接字,文件句柄等)的使用情况。
--------------------------------------------------------------------------------测试部分功能:
1、集成一些单元测试框架,比如unitcpp,达到自动化单元测试的目标。
2、自己实现自动化集成测试框架,并且开发相应的Eclipse插件,简化集成测试(利用脚本和信元流)。
3、集成原有的自动化功能测试框架flowtest,并且开发相应的Eclipse插件,简化功能测试。
4、实现性能测试,监测框架。
--------------------------------------------------------------------------------部署部分功能:
1、实现自动化部署。特别是在分布式应用的情况下。
2、提供一个命令行程序,通过命令更改系统配置,管理插件。
补充:软件开发 , C++ ,