J2EE企業(yè)級開(kāi)發(fā)學(xué)習筆記(5)
體系結構
1、企業(yè)級應用體系結構中的主要概念:
(1)分解:將系統劃分成更小的更合理的程序塊。模塊、子系統和組件都是分解后的產(chǎn)物。好處:幫助定義并理解系統不同程序塊間的接口、幫助集成從過(guò)去繼承或外部購買(mǎi)的應用程序、有助于跨多個(gè)處理器分布軟件。
缺點(diǎn):分解不恰到或過(guò)細,通信所引起的開(kāi)銷(xiāo)問(wèn)題,很容易使性能?chē)乐叵陆?。在J2EE中,可以通過(guò)Web組件和EJB來(lái)完成建模.
(2)組件:軟件中的內在單元,可以提供相關(guān)的功能和服務(wù).本身已經(jīng)模塊化,可以單獨開(kāi)發(fā)和發(fā)布,組件模型為組件的合成、交互作用提供了基礎結構。EJB、JavaBean和COM都屬于組件模型。組件有明確定義的接口,可以與其他組件進(jìn)行交互。組件的接口提供了組件和應用程序間的約定。
(3)框架:指已開(kāi)發(fā)過(guò)并已測試過(guò)的軟件程序塊,這些程序塊可以在多個(gè)軟件開(kāi)發(fā)工程中重用。
兩種基本方法使用框架:庫方法(利用框架建立一組可重用的組件)、模板方法(利用框架為新工程創(chuàng )建模板,或定義特定類(lèi)型系統的體系結構(實(shí)現抽象方法,需要進(jìn)行預先計劃))。
開(kāi)發(fā)框架注意點(diǎn):框架應易于理解(讓用戶(hù)快速有效的使用框架)、提供足夠的文檔(使框架被用戶(hù)使用的時(shí)間越長(cháng))、確定具體的框架擴展機制(框架隨著(zhù)時(shí)間的推移而滿(mǎn)足新的需求)
(4)模型:是一種從經(jīng)驗中提取抽象出來(lái)的可重用的設計方法,此種設計方法已被證明可以解決一些特殊問(wèn)題。(協(xié)作圖)
(5)分層(layer):用來(lái)分解的模型。分解可以將系統按邏輯劃分為子系統和模塊,而層則是對這些子系統進(jìn)行分組和隔離,從而約束那些可以使用子系統、組件和模塊的人。RUP(Rational統一過(guò)程)確定了2種分層的常用方法:由職責驅動(dòng)的分層;由重用驅動(dòng)的分層。
(6)層(tier):主要處理在多個(gè)分立進(jìn)程中軟件系統的分配問(wèn)題。層(tier)可以映射為職責驅動(dòng)的層(layer),可以同步執行系統內的具體任務(wù),比如表示、業(yè)務(wù)邏輯、數據訪(fǎng)問(wèn)等。J2EE實(shí)現層次分布:在N層體系結構中實(shí)現分布,即將特定的層(layer)與每個(gè)層(tier)結合在一起。
在J2EE分層體系結構中:
客戶(hù)層(Client)主要與用戶(hù)的交互作用有關(guān);
表示層(Presentation)用來(lái)表示事務(wù)查詢(xún)的結果;
業(yè)務(wù)層(Business)包含主要的業(yè)務(wù)規則;
數據層(Data)提供接口進(jìn)行不變數據存儲
2、J2EE視圖體系結構:
J2EE體系結構基本原理:層(tier)+組件+服務(wù)
3、4+1視圖模型體系結構:
邏輯視圖模型:用來(lái)設計包、子系統和類(lèi)
實(shí)現方法視圖:描述軟件的物理結構,如可執行文件、庫、源代碼等等。
過(guò)程視圖:與軟件的并發(fā)有關(guān),如過(guò)程、任務(wù)和線(xiàn)程都屬于軟件系統的一部分。
部署視圖:用于將可執行文件映射為物理節點(diǎn)和可執行計算的硬件。
用例視圖:一種特殊的視圖,因為它將所有其他視圖配合在一起使用。
另外還有包括諸如:安全和事務(wù)處理視圖。
4、Hofmeister等:4種視圖體系結構
概念視圖:概念上系統合理地分解粗粒度組件(又稱(chēng)為艙塊)。
模塊視圖:用于實(shí)現艙塊和連接器。粗粒度組件會(huì )映射為實(shí)際的子系統和模塊。
執行視圖:處理運行時(shí)系統中的控制流,包括問(wèn)題有并發(fā)、分布和性能。
代碼視圖:具體化組件是如何映射為源文件和可執行文件的,以及與之相關(guān)的內容(如構建時(shí)間和開(kāi)發(fā)工具等)。