“開架式”軟件架構(gòu)設(shè)計(jì)
早期的國內(nèi)應(yīng)用軟件產(chǎn)品,其擴(kuò)展性都是相對(duì)較差的,盡管開發(fā)商也為此作過很多工作,包括二次開發(fā)工具包等等。主要原因就是這些應(yīng)用本身框架的局限 性,不具有可擴(kuò)展性,在設(shè)計(jì)時(shí)我們關(guān)注的只是應(yīng)用程序的實(shí)現(xiàn),沒有關(guān)注我們的應(yīng)用應(yīng)該構(gòu)建在一種開放的框架上。(當(dāng)然開發(fā)語言本身也有一定的局限性)
本文引用地址:http://www.ex-cimer.com/article/257864.htm“開架式”軟件設(shè)計(jì)是基于應(yīng)用程序的可擴(kuò)充性提出來的,是一種軟件底層架構(gòu)的實(shí)現(xiàn)方式。他更關(guān)注應(yīng)用程序底層架構(gòu)的實(shí)現(xiàn),與具體應(yīng)用程序的實(shí)現(xiàn)無關(guān),或者說具體的應(yīng)用程序是構(gòu)建在這種架構(gòu)定義的范疇之內(nèi)的。
在這種設(shè)計(jì)思想下,我們的應(yīng)用程序框架可形象比喻成書架一樣,我們提供一個(gè)架子(規(guī)范),書架內(nèi)容的不斷豐富,就好像將不同的書(功能/插件)放在架子上一樣,當(dāng)然書需要滿足我書架尺寸的要求。
在這種框架下,提供的是一堆服務(wù)和資源以及調(diào)用和擴(kuò)展這些服務(wù)及資源的規(guī)范,而這些服務(wù)和資源也是可擴(kuò)展的,你可以在一個(gè)組件中編寫一些服務(wù)和 資源由框架加載并與其他的組件分享。組件的功能是由框架加載并執(zhí)行,它可以訪問框架提供的資源和服務(wù),如可以訪問界面元素,訪問數(shù)據(jù)庫、文件,調(diào)用日志服 務(wù)寫入日志、訪問多語言信息等等。
大概的運(yùn)行時(shí)框架如下:
圖中的組件A和B可理解為系統(tǒng)提供的組件或者應(yīng)用程序功能性組件。
其中的關(guān)鍵就是要提供一種機(jī)制:
1、 保證組件可以被框架加載并運(yùn)行,
2、 將組件中包含的資源和服務(wù)注冊(cè)到該框架中,
3、 組件訪問框架中的資源和服務(wù)的透明性。(也表現(xiàn)出組件間、組件和框架間的協(xié)作性和可訪問性)。
有了這樣的應(yīng)用程序框架,我們可以任意擴(kuò)展應(yīng)用程序的功能組件,只要他遵循框架定義的規(guī)范。我們可以新增加一個(gè)組件,可以提供新的資源和服務(wù) (如果愿意),可以訪問框架中的資源和服務(wù)就好像這些都是該組件自身具有的,而組件中提供的功能可以通過配置插入到恰當(dāng)?shù)牟藛位蚬ぞ邨l供用戶調(diào)用。而這些 對(duì)用戶是透明的,他們不知道界面中的某個(gè)功能究竟來自于那一個(gè)組件。組件和組件之間是彼此獨(dú)立的離散的。
遠(yuǎn)景:
將產(chǎn)品發(fā)布成為這樣一套框架(標(biāo)準(zhǔn))和預(yù)先提供的功能組件,用戶可以到網(wǎng)上直接下載組件進(jìn)行程序的升級(jí),用戶可以根據(jù)框架定義的規(guī)范自行開發(fā), 甚至有第三方軟件公司根據(jù)框架的內(nèi)容和標(biāo)準(zhǔn)專門開發(fā)特有的功能,如軟件對(duì)GPRS、視頻會(huì)議的支持等等。也可以支持OpenSource,開放標(biāo)準(zhǔn)提供給 網(wǎng)上大量的開發(fā)者開發(fā)功能組件,作為用戶可以在網(wǎng)上找到需要的功能組件。這些或多或少已經(jīng)是一種商業(yè)模式的問題了。
優(yōu)點(diǎn):
1、 擴(kuò)展性極強(qiáng),可以對(duì)其任意組合,
2、 因?yàn)榻M件和組件之間是彼此獨(dú)立的離散的,帶來的升級(jí)也是方便的,
3、 程序更新只需要下載和替換相關(guān)的組件即可,
4、 程序的架構(gòu)是嚴(yán)密的,
5、 架構(gòu)本身的升級(jí)比較容易。
缺點(diǎn):
1、 性能的影響。高擴(kuò)展性必然以犧牲一定性能作為代價(jià)的。
2、 功能擴(kuò)展的不定性。
3、 高度共享帶來的安全性也是一個(gè)要考慮的問題。
評(píng)論