網(wǎng)站制作NEWS
什么是三層架構(gòu)
三層架構(gòu)是一種在應用程序中用作特定類型的客戶機-服務器系統(tǒng)的體系結(jié)構(gòu)模式,它將體系結(jié)構(gòu)分為三層:數(shù)據(jù)層、應用層和表示層。表示層占據(jù)應用程序的頂層,將內(nèi)容發(fā)送到網(wǎng)絡開發(fā)框架中的瀏覽器,并以圖形用戶界面(GUI)的形式顯示信息。應用層也稱為業(yè)務邏輯層、邏輯層或中間層,通過處理應用程序的業(yè)務邏輯,在表示層和數(shù)據(jù)層之間建立了一個橋梁。數(shù)據(jù)層由持久存儲機制和數(shù)據(jù)層組成,支持與數(shù)據(jù)庫連接,并執(zhí)行插入、更新、刪除、從數(shù)據(jù)庫獲取數(shù)據(jù)等操作。核心規(guī)則是表示層只是一個外殼,不能包含任何biztalk的處理,設(shè)計應該從應用層而不是表示層開始,應用層的應用編程接口應該以面向?qū)ο蟮姆绞皆趹镁幊探涌谏蠈崿F(xiàn)所有的BizLogic。無論數(shù)據(jù)層是簡單的SqlHelper還是帶有映射的類,都要確保它獨立于抽象系統(tǒng)層。無論使用的是COM+(EnterpriseService)、Remoting還是像WebService這樣的遠程對象技術(shù),都必須考慮在設(shè)計中通過負載平衡來群集多個服務器。
三層架構(gòu)的優(yōu)點包括:減少了層與層之間的依賴性,允許不同的開發(fā)人員在每一層上工作,顯著提高系統(tǒng)的開發(fā)速度;每一層都可以重新開發(fā)或現(xiàn)代化,而不會影響三層架構(gòu)中的其他層,縮短了上市時間,并降低了將新功能集成到軟件即服務(SaaS)、云和內(nèi)部應用程序中的成本;易于維護,不會影響其他模塊,顯著降低維護成本和維護時間;表示層不直接訪問數(shù)據(jù)層,只與業(yè)務邏輯層連接,提高了數(shù)據(jù)安全性。然而,三層架構(gòu)也存在一些缺點,例如,它會降低系統(tǒng)性能,因為企業(yè)必須通過中間層去數(shù)據(jù)庫獲取數(shù)據(jù);三層架構(gòu)有時會導致級聯(lián)變化,尤其是自上而下的方向上,如果需要在表示層添加特性,可能需要在業(yè)務邏輯層和數(shù)據(jù)層都添加代碼,以確保設(shè)計是分層的。
以FineReport為例,這是一款采用三層架構(gòu)的報表軟件。FineReport的數(shù)據(jù)層負責數(shù)據(jù)管理,包括數(shù)據(jù)采集、ETL、建立數(shù)據(jù)倉庫等,支持多數(shù)據(jù)源和數(shù)據(jù)集成。FineReport的應用層負責主要功能和業(yè)務邏輯,作為企業(yè)報告工具,它支持報告設(shè)計、報告生成和報告管理。在表示層,F(xiàn)ineReport可以在PC、手機和電視屏幕上自適應地顯示報告和儀表板,因為FineReport中的圖表是由HTML5開發(fā)的,可以跨平臺使用,適應網(wǎng)頁設(shè)計,并支持即時更新。例如,當你想要基于存儲在CRM中的銷售數(shù)據(jù)創(chuàng)建銷售報告時,表示層向數(shù)據(jù)層發(fā)送API調(diào)用,而FineReport的數(shù)據(jù)層運行查詢并將結(jié)果返回給應用層,應用層將其格式化為網(wǎng)頁。然后,頁面被發(fā)送回瀏覽器,在瀏覽器中,表示層在筆記本電腦或其他設(shè)備上顯示報告。
使用三層架構(gòu),你只需在報表設(shè)計者的計算機上安裝設(shè)計者,然后將項目部署到服務器上。只要計算機上有瀏覽器,其他用戶就可以直接訪問該報告。一旦報表需求發(fā)生變化,只需在本地設(shè)計然后發(fā)布到遠程服務器上,非常方便。例如,目前市面上很流行的帆軟公司的軟件——finereport,功能算是前沿的,可做BI報表和大屏,內(nèi)置了10+行業(yè)解決方案和幾十種可視化大屏模板demo,即便沒有專業(yè)的技術(shù)也照樣可以完成。功能比較全面,包括數(shù)據(jù)整合、建模、分析、制作圖表。很適合企業(yè)使用,難度不算太大,而效果也不錯。
多重隨機標簽