在這一系列的上一個文章中,介紹了構(gòu)建C/C++插件開發(fā)框架的初步設(shè)想,下面我會一步步的向下展開,來實現(xiàn)我的這個設(shè)想。
今天主要談一下我對這個框架的功能認(rèn)識,或是期望。昨天看了一篇關(guān)于持續(xù)集成能力成熟度模型 的一篇文章,受此啟發(fā),我對此框架的認(rèn)識漸漸清晰。
這個框架可以當(dāng)做我們公司底層產(chǎn)品(交換機,資源服務(wù)器等)的基礎(chǔ)設(shè)施。上層基于java開發(fā)的產(chǎn)品可以直接在OSGI上開發(fā)。
核心功能:
1、最重要的一個功能是,提供一個模塊化的編程模型,促進(jìn)模塊化軟件開發(fā),真正的實現(xiàn)針對接口編程。
2、提供一個有助于提高模塊可重用性的基礎(chǔ)設(shè)施。
3、提供一個C/C++插件的運行環(huán)境。
4、提供一個動態(tài)插件框架,插件可以動態(tài)更改,而無需重啟系統(tǒng)。這個功能雖然不難實現(xiàn),但是用處好像不是很大。
擴展部分功能:
1、支持分布式系統(tǒng)結(jié)構(gòu),多個運行框架組合起來形成一個系統(tǒng),對模塊內(nèi)部隱藏遠(yuǎn)程通訊細(xì)節(jié)。
2、支持系統(tǒng)的分層架構(gòu)。
3、能夠和其他的開發(fā)框架進(jìn)行集成,比如OSGI,SCA等。
4、多個運行框架中,能夠?qū)崿F(xiàn)對運行框架的有效管理。
5、概念上要實現(xiàn)類似于SCA中component(構(gòu)件),composite(組合構(gòu)件),Domain(域)的概念。
開發(fā)部分功能:
1、為了簡化開發(fā),開發(fā)一個Eclipse插件,用于開發(fā)框架中的C/C++插件。能夠根據(jù)插件開發(fā)向?qū)В罱K生成符合插件規(guī)范的公共代碼,配置文件,Makefile文件等。
調(diào)試部分功能:
1、提供一個統(tǒng)一的日志處理函數(shù),可以集成Log4cpp。
2、提供模塊間的消息日志,以及框架對外的接口日志。
3、提供消息和日志的追蹤功能,能將和某事件相關(guān)的消息和日志單獨提取出來。
4、提供資源監(jiān)測功能,監(jiān)測對資源(內(nèi)存,套接字,文件句柄等)的使用情況。
測試部分功能:
1、集成一些單元測試框架,比如unitcpp,達(dá)到自動化單元測試的目標(biāo)。
2、自己實現(xiàn)自動化集成測試框架,并且開發(fā)相應(yīng)的Eclipse插件,簡化集成測試(利用腳本和信元流)。
3、集成原有的自動化功能測試框架flowtest,并且開發(fā)相應(yīng)的Eclipse插件,簡化功能測試。
4、實現(xiàn)性能測試,監(jiān)測框架。
部署部分功能:
1、實現(xiàn)自動化部署。特別是在分布式應(yīng)用的情況下。
2、提供一個命令行程序,通過命令更改系統(tǒng)配置,管理插件。