維基中講到層的概念,原文這樣說:a layer is a logical structuring mechanism for the elements that make up the software solution, while a tier is a physical structuring mechanism for the system infrastructure
layer和tier的區別大概意思是:layer側重於軟件構成元素的邏輯結構機制,tier側重於系統設施的屋裏結構機制
通過分層的應用結構模型,開發者能夠創建富有彈性、可重用的應用程序。將應用程序分離之後,開發者就能夠對具體膜一層進行修改和增加,而不需要重做整個應用程序。三層模型主要由表示層,業務邏輯層,數據存儲層構成。
除了軟件模塊化帶來的可以定義良好接口的好處以外,三層結構能夠使得其中任一層可以面對需求和技術的改變問題而獨立的升級或者替換。比如說,表示層的操作系統如果變化了,那麼只會影響用戶接口的代碼。
一般來講,用戶接口使用統一的圖形用戶界面,運行在PC機或者工作站;業務邏輯處理一般包含一個或多個分離的模塊,運行在工作站或者應用服務器;數據存儲邏輯則往往在數據庫服務器,並由關係數據庫管理系統管理。業務邏輯層,也叫中間層,它本身也可能是多層結構的。
表示層:簡單講就是用戶可以直接訪問的,比如網頁,操作系統的圖形界面,它與其他層進行通信,將傳進的結果呈現出來。
應用層(業務邏輯層,邏輯層,中間層):它爲表示層服務,它通過操作具體的處理來控制應用程序的業務功能。
數據層:包括封裝了數據持久機制的數據訪問層,數據訪問層嚮應用層提供應用編程接口(api)來管理存儲的數據。