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