三層級架構

menu icon

三層級架構

三層級架構是傳統主從應用程式的主要軟體架構,其會將應用程式區隔成三個邏輯及實體運算層級。

何謂三層級架構?

三層級架構是一種公認的軟體應用程式架構,可將應用程式組織成三個邏輯及實體運算層級:  呈現層級或使用者介面;處理資料的應用程式層級;以及儲存及管理應用程式相關聯資料的資料層級。

三層級架構的主要好處在於,因為每一個層級都在自己的基礎架構上執行、每一個層級都可以由個別開發團隊同時開發,而且可以視需要進行更新或調整,而不影響其他層級。

數十年來,三層級架構是主從應用程式的主流架構。如今,大部分的三層級應用程式是現代化、使用雲端原生技術(例如容器微服務)以及移轉至雲端的目標。

三層級的細節

呈現層級

呈現層級是應用程式的使用者介面及通訊層,一般使用者會在其中與應用程式互動。 其主要目的是將資訊呈現給使用者,以及從使用者處收集資訊。 這個最上層的層級可以在 Web 瀏覽器上執行,例如作為桌面應用程式或圖形使用者介面 (GUI)。 Web 呈現層級通常是使用 HTML、CSS 及 JavaScript 來開發。 桌面應用程式可以用各種語言撰寫,視平台而定。

應用程式層級

應用程式層級(也稱為邏輯層級或中間層級)是應用程式的核心。 在此層級中,會使用商業邏輯(一組特定的商業規則) 處理呈現層級中收集的資訊, 有時則會針對資料層級中的其他資訊進行處理。 應用程式層級也可以在資料層級中新增、刪除或修改資料。

應用程式層級通常是使用 Python、Java、Perl、PHP 或 Ruby 進行開發,並使用 API 呼叫與資料層級進行通訊。 

資料層級

資料層級(有時稱為資料庫層級、資料存取層級或後端)是儲存及管理應用程式所處理資訊的位置。 這可以是關聯式資料庫管理系統(例如 PostgreSQL、MySQL、MariaDB、Oracle、DB2、Informix 或 Microsoft SQL Server),或 NoSQL 資料庫伺服器(例如 Cassandra、CouchDB 或 MongoDB)。 

在三層級應用程式中,所有通訊都會經過應用程式層級。 呈現層級與資料層級彼此無法直接進行通訊。

層級與層

在三層級架構的討論中,層 (layer) 經常與層級 (tier) 錯誤地交換使用,如在「呈現層」或「商業邏輯層」中。 

它們並不相同。 「層」指的是軟體的功能劃分,而「層級」指的是在基礎架構上執行之軟體的功能劃分,與其他劃分隔開。 例如,您手機上的「聯絡人」應用程式是 應用程式,但它卻是單層級 應用程式,因為所有這三層都是在您的手機上執行。

該差異很重要,因為層無法提供與層級相同的好處。

三層級架構的好處

此外,三層級架構的主要好處在於功能的邏輯與實體區隔。 每一個層級都可以在最適合其功能需求的 個別作業系統及伺服器平台上執行, 例如,Web 伺服器、應用程式伺服器、資料庫伺服器。 每個層級都會在至少一個專用伺服器硬體或虛擬伺服器上執行,因此每個層級的服務都可以進行自訂及最佳化,而不會影響其他層級。 

其他好處(與單層級或雙層級架構相比)包括: 

  • 開發更快: 因為每個層級都可以由不同的團隊同時開發,所以組織可以讓應用程式更快上市,而且程式設計師可針對每個層級使用最新且最佳的語言及工具。
  • 可調整性提高: 任何層級都可以視需要獨立於其他層級進行調整。
  • 可靠性提高: 某個層級的中斷執行不太可能會影響其他層級的可用性或效能。
  • 安全性提高: 由於呈現層級與資料層級無法直接通訊,因此設計完善的應用程式層級可以充當一種內部防火牆,防止 SQL 注入及其他惡意入侵。

Web 開發中的三層級應用程式

在 Web 開發中,層級有不同的名稱,但執行類似的功能:

  • Web 伺服器是呈現層級,並提供使用者介面。 這通常是網頁或網站,例如電子商務網站,使用者可在其中將產品新增至購物車、新增付款詳細資料或建立帳戶。 內容可以是靜態的或動態,通常是使用 HTML、CSS 及 Javascript 來開發。
  • 應用程式伺服器對應於中間層級,其中存放用來處理使用者輸入的商業邏輯。若要繼續執行電子商務範例,這是查詢庫存資料庫以傳回產品可用性,或將詳細資料新增至客戶設定檔的層級。 此層級通常使用 Python、Ruby 或 PHP 來開發,並執行 e Django、Rails、Symphony 或 ASP.NET 之類的架構。
  • 資料庫伺服器是 Web 應用程式的資料或後端層級。 其會在 MySQL、Oracle、DB2 或 PostgreSQL 之類的資料庫管理軟體上執行。

其他多層級架構

雖然三層級架構很容易成為最廣泛採用的多層級應用程式架構,但在您的工作或研究中,可能會遇到其他層級架構。

雙層級架構

雙層級架構是原始的主從架構,由呈現層級及資料層級組成;商業邏輯存在於呈現層級、資料層級,或兩者皆存在。 在雙層級架構中,呈現層級( 以及一般使用者) 可以直接存取資料層級,且商業邏輯通常受到限制。 簡單的聯絡人管理應用程式是雙層級應用程式的範例,使用者可在此應用程式中輸入及擷取聯絡人資料。 

N 層級架構

N 層級架構( 也稱為多層級架構)指的是具有多個層級的任何應用程式架構。 但多於三層的應用程式很少見,因為提供更多層的好處不多,但會使應用程式變得更慢、更難以管理,且執行成本更高。 因此,n 層級架構及多層級架構通常是三層級架構的同義字。

三層級架構與 IBM Cloud

IBM Cloud 提供產品與服務,可協助您在雲端旅程中將傳統三層級應用程式現代化。

邁出第一步:

  • 無論您是需要策略、程序或功能方面的協助,還是想要全方位服務關注,請探索 IBM 如何協助應用程式現代化
  • 從使用可以在任何雲端中執行的容器化中介軟體(全都組合在 IBM Cloud Paks 中)開始著手。
  • 使用 IBM Cloud for VMware Solutions 將現有的 VMWare 工作負載輕鬆地移轉至公有雲。
  • 憑藉 IBM 的應用程式現代化服務的協助,規劃及執行您的應用程式現代化策略,以作為持續數位轉型的一部分。

立即開始使用 IBM Cloud 帳戶