更新時間:2022-05-19 10:59:04 來源:動力節(jié)點 瀏覽1670次
動力節(jié)點小編告訴大家,Java三層架構將應用程序分為三個邏輯和物理計算層,是傳統(tǒng)客戶端-服務器應用程序的主要軟件架構。
三層架構是一種成熟的軟件應用程序架構,它將應用程序組織成三個邏輯和物理計算層:表示層或用戶界面;處理數(shù)據(jù)的應用層;和數(shù)據(jù)層,存儲和管理與應用程序關聯(lián)的數(shù)據(jù)。
三層架構的主要好處是,因為每一層都在自己的基礎設施上運行,每一層都可以由單獨的開發(fā)團隊同時開發(fā),并且可以根據(jù)需要進行更新或擴展,而不會影響其他層。
表示層
表示層是應用程序的用戶界面和通信層,最終用戶與應用程序進行交互。其主要目的是向用戶顯示信息并從用戶那里收集信息。例如,此頂級層可以在 Web 瀏覽器上運行,作為桌面應用程序或圖形用戶界面 (GUI)。Web 表示層通常使用 HTML、CSS 和 JavaScript 開發(fā)。取決于平臺,桌面應用程序可以用多種語言編寫。
應用層
應用程序層,也稱為邏輯層或中間層,是應用程序的核心。在這一層中,在表示層中收集的信息會被處理——有時會對照數(shù)據(jù)層中的其他信息——使用業(yè)務邏輯,一組特定的業(yè)務規(guī)則。應用層還可以添加、刪除或修改數(shù)據(jù)層中的數(shù)據(jù)。
應用層通常使用 Python、Java、Perl、PHP 或 Ruby 開發(fā),并使用API調用與數(shù)據(jù)層通信。
數(shù)據(jù)層
數(shù)據(jù)層,有時稱為數(shù)據(jù)庫層、數(shù)據(jù)訪問層或后端,是存儲和管理應用程序處理的信息的地方。這可以是關系數(shù)據(jù)庫管理系統(tǒng),例如PostgreSQL、MySQL、MariaDB、Oracle、DB2、Informix 或 Microsoft SQL Server,也可以是NoSQL數(shù)據(jù)庫服務器,例如 Cassandra、CouchDB或MongoDB。
在三層應用程序中,所有通信都通過應用程序層。表示層和數(shù)據(jù)層不能直接相互通信。
層與層
在三層架構的討論中,layer 經常被互換使用——并且錯誤地——用于 tier,如“表示層”或“業(yè)務邏輯層”。
他們不一樣。“層”指的是軟件的功能劃分,而“層”指的是軟件的功能劃分,它在與其他劃分分開的基礎設施上運行。例如,您手機上的聯(lián)系人應用程序是一個三層應用程序,但也是一個單層應用程序,因為所有三層都在您的手機上運行。
區(qū)別很重要,因為層不能提供與層相同的好處。
同樣,三層架構的主要好處是其邏輯和物理功能分離。每一層都可以在單獨的操作系統(tǒng)和服務器平臺上運行——例如,Web 服務器、應用程序服務器、數(shù)據(jù)庫服務器——最適合其功能需求。并且每一層都運行在至少一個專用服務器硬件或虛擬服務器上,因此每一層的服務都可以定制和優(yōu)化,而不會影響其他層。
其他好處(與單層或兩層架構相比)包括:
更快的開發(fā):因為每一層可以由不同的團隊同時開發(fā),組織可以更快地將應用程序推向市場,程序員可以為每一層使用最新和最好的語言和工具。
改進的可擴展性:任何層都可以根據(jù)需要獨立于其他層進行擴展。
提高可靠性:一個層的中斷不太可能影響其他層的可用性或性能。
改進的安全性:由于表示層和數(shù)據(jù)層不能直接通信,設計良好的應用層可以作為一種內部防火墻,防止 SQL 注入和其他惡意攻擊。