基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET - 系统架构
本文是繼AgileEAS.NET應(yīng)用開(kāi)發(fā)平臺(tái)介紹及AgileEAS.NET之敏捷并行開(kāi)發(fā)方法所做的架構(gòu)補(bǔ)充,用于闡釋AgileEAS.NET平臺(tái)的架構(gòu)設(shè)計(jì)思路。
????? 說(shuō)起了系統(tǒng)架構(gòu),我也無(wú)法給出系統(tǒng)架構(gòu)的確切定義,我的理解也許也只是基于自己經(jīng)驗(yàn)的一個(gè)片斷,我是學(xué)習(xí)園林專業(yè)身的,學(xué)習(xí)過(guò)園林建筑學(xué),也許對(duì)軟件框架最早的理解來(lái)源于對(duì)建筑的理解,我們知道,一個(gè)好的建筑必須解決建筑及其附屬物的荷載及其美觀和居住的舒適性,而這個(gè)必須通過(guò)其建筑的骨架--承重體系來(lái)支撐,建筑最先進(jìn)行的其他承重休息的澆筑。
軟件之系統(tǒng)架構(gòu)有如建筑的骨架,不同規(guī)模、不同地域、不同應(yīng)用的建筑會(huì)使用不同的承重結(jié)構(gòu)。軟件系統(tǒng)架構(gòu)的設(shè)計(jì)如同對(duì)建筑的框架設(shè)計(jì)一樣,對(duì)于不同的應(yīng)用應(yīng)該應(yīng)用與之相匹配不同的架構(gòu),也就是說(shuō),客戶的應(yīng)用決定著項(xiàng)目的架構(gòu)及到技術(shù)選項(xiàng)。
????? AgileEAS.NET平臺(tái)所提出的系統(tǒng)架構(gòu)適應(yīng)于中小規(guī)律的管理信息系統(tǒng)。
????? 在AgileEAS.NET應(yīng)用開(kāi)發(fā)平臺(tái)介紹中我畫(huà)出了AgileEAS.NET的基本架構(gòu)圖,本文我從系統(tǒng)的橫向擴(kuò)展和縱向伸縮兩個(gè)方面來(lái)討論。
橫向擴(kuò)展:
????? AgileEAS.NET平臺(tái)是基于“并行開(kāi)發(fā)”這種思想支持的應(yīng)用平臺(tái),我們?cè)谠贒otNET中用平臺(tái)+插件實(shí)現(xiàn)了這么一種理念,其核心的機(jī)制既用插件橫行擴(kuò)展平臺(tái)。
????? 采用這種思路構(gòu)建和擴(kuò)展業(yè)務(wù)系統(tǒng),需要一個(gè)統(tǒng)一的機(jī)制允許業(yè)務(wù)插件注冊(cè)到平臺(tái),基于這種思路,各個(gè)業(yè)務(wù)模塊,都變成了可以自由組裝、拆卸的插件。
????? 插件運(yùn)行容器是一組能夠?qū)崿F(xiàn)插件業(yè)務(wù)調(diào)用的一組應(yīng)用程序,可以是基于WinFrom的桌面應(yīng)用程序、也可以是基于Web的網(wǎng)站應(yīng)用,運(yùn)行容器調(diào)用插件并由插件橫向擴(kuò)展運(yùn)行容器的功能,這樣一來(lái),應(yīng)用系統(tǒng)的開(kāi)發(fā)就轉(zhuǎn)成為對(duì)運(yùn)行容器的功能擴(kuò)展,也就是項(xiàng)目的重點(diǎn)轉(zhuǎn)移于開(kāi)發(fā)模塊插件這個(gè)焦點(diǎn)。
????? 業(yè)務(wù)插件的開(kāi)發(fā)者可以選擇利用AgileEAS.NET所提供的快速開(kāi)發(fā)技術(shù)實(shí)現(xiàn),即依賴于平臺(tái)所提供的基礎(chǔ)組件,也可以選用開(kāi)發(fā)者自己的技術(shù)去實(shí)現(xiàn)模塊插件,這將涉及到系統(tǒng)的縱向伸縮的問(wèn)題。?
?
縱向伸縮:?
????? 不要是說(shuō)搞軟件的技術(shù)人員,就是某些客戶機(jī)構(gòu)人員,也跟你嚷嚷的要求軟件弄成三層結(jié)構(gòu)才行,我想這個(gè)三并不指特定的三層吧,應(yīng)該是泛指三或者多層結(jié)構(gòu)吧。
????? 目前,大家所指的三層結(jié)構(gòu)應(yīng)該是對(duì)系統(tǒng)進(jìn)行的所謂界面(UI)、業(yè)務(wù)邏輯(BI)、數(shù)據(jù)訪問(wèn)(DA)三層吧,多層也是對(duì)這三層進(jìn)行了詳細(xì)的分解的結(jié)果,業(yè)界經(jīng)驗(yàn)證明,這確實(shí)是解決系統(tǒng)復(fù)雜性的一種主流模式。但并不是說(shuō)應(yīng)用了三層架構(gòu)就一定能解決系統(tǒng)的復(fù)雜性,他不是萬(wàn)能的。他提供給我們一種解決復(fù)雜問(wèn)題的思路,那就是根據(jù)應(yīng)用的復(fù)雜程度合理的去分層。
????? 對(duì)于這種分層設(shè)計(jì),我建議根據(jù)項(xiàng)目的實(shí)際情況合理的選擇合理的分層設(shè)計(jì),如果對(duì)于很小的項(xiàng)目選擇復(fù)雜的分層設(shè)計(jì),就會(huì)演變成為分層而分層的一種漩渦。
????? AgileEAS.NET支持不同層級(jí)的開(kāi)發(fā),對(duì)于很簡(jiǎn)單的項(xiàng)目,你可以選擇把界面、業(yè)務(wù)、數(shù)據(jù)訪問(wèn)全部放在模塊模塊UI實(shí)現(xiàn);對(duì)于較復(fù)雜的項(xiàng)目,可以選擇使用模塊UI+數(shù)據(jù)訪問(wèn)層,把業(yè)務(wù)邏輯并入U(xiǎn)I實(shí)現(xiàn),更為復(fù)雜的項(xiàng)目可以把界面、業(yè)務(wù)、數(shù)據(jù)三部分嚴(yán)格分解甚至可以把這三層中的任務(wù)一層再分解,比方,數(shù)據(jù)訪問(wèn)層可以分解為數(shù)據(jù)訪問(wèn)接口層、數(shù)據(jù)訪問(wèn)實(shí)現(xiàn)層等,AgileEAS.NET提供一個(gè)基于消息的分布式通信服務(wù),應(yīng)用系統(tǒng)可選的基于它實(shí)現(xiàn)分布式應(yīng)用。
????? 總之,系統(tǒng)的架構(gòu)取決于客戶的應(yīng)用、技術(shù)力量等諸多方面,優(yōu)秀的架構(gòu)在于系統(tǒng)擴(kuò)展、伸縮性以及系統(tǒng)的抽像程度之間尋找一種平衡。
作者:魏瓊東?
出處:http://www.cnblogs.com/eastjade
關(guān)于作者:有13年的軟件從業(yè)經(jīng)歷,專注于中小軟件企業(yè)軟件開(kāi)發(fā)過(guò)程研究,通過(guò)在技術(shù)與管理幫助中小軟件企業(yè)實(shí)現(xiàn)技術(shù)層面開(kāi)源節(jié)流的目的。熟悉需求分析、企業(yè)架構(gòu)、項(xiàng)目管理。現(xiàn)主要從事基于AgileEAS.NET平臺(tái)的技術(shù)咨詢工作,主要服務(wù)于醫(yī)療衛(wèi)生、鐵路、電信、物流、物聯(lián)網(wǎng)、制造、零售等行業(yè)。如有問(wèn)題或建議,請(qǐng)多多賜教!?
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,如有問(wèn)題,可以通過(guò)mail.james@qq.com?聯(lián)系我,也可以加入QQ群:113723486、199463175、116773358、116773358、212867943、147168308、59827496、193486983、15118502和大家共同討論,非常感謝。
? ? 本文轉(zhuǎn)自魏瓊東博客園博客,原文鏈接:http://www.cnblogs.com/eastjade/archive/2010/04/20/1715806.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET - 系统架构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: GDB调试器用法
- 下一篇: windows下的MySql实现读写分离