在以前的博客中已經介紹過了三層架構的功能html
詳情回覆(三層構架一)數據庫
那爲何要使用三層架構呢??安全
使用三層架構的目的:解耦!!!(作本身功能內的事)服務器
一樣拿上面飯店的例子來說:網絡
詳情請看:架構
(1)服務員(UI層)請假——另找服務員;廚師(BLL層)辭職——招聘另外一個廚師;採購員(DAL)辭職——招聘另外一個採購員;併發
(2)顧客反映: 1>大家店服務態度很差——服務員的問題。開除服務員;分佈式
2>大家店菜裏有蟲子——廚師的問題。換廚師;性能
任何一層發生變化都不會影響到另一層!!!優化
與兩層的區別?
兩層:
(當任何一個地方發生變化時,都須要從新開發整個系統。「多層」放在一層,分工不明確耦合度高——難以適應需求變化,可維護性低、可擴展性低)
三層:
(發生在哪一層的變化,只需更改該層,不須要更改整個系統。層次清晰,分工明確,每層之間耦合度低——提升了效率,適應需求變化,可維護性高,可擴展性高)
綜上:三層架構的
優點:1,結構清晰、耦合度低,2,可維護性高,可擴展性高;3,利於開發任務同步進行;容易適應需求變化
劣勢:一、下降了系統的性能。這是不言而喻的。若是不採用分層式結構,不少業務能夠直接造訪數據庫,以此獲取相應的數據,現在卻必須經過中間層來完成。
二、有時會致使級聯的修改。這種修改尤爲體如今自上而下的方向。若是在表示層中須要增長一個功能,爲保證其設計符合分層式結構,可能須要在相應的業務邏輯層和數據訪問層中都增長相應的代碼
三、增長了代碼量,增長了工做量
應用:
在服務器方面:
服務器通常包括有鏈接與無鏈接形式,無鏈接在最底層要設置UDP/IP協議實現服務器通訊功能,
同時在實際使用的過程當中,因爲客戶機沒法保證可靠的傳輸渠道,使得客戶機向服務器提交請求時,很容易形成請求的丟失、延遲以及傳遞失序等傳輸問題,進而下降通訊質量。
UDP的可靠性很低,在實際運行中UDP要依託於下層IP網絡進行交付分組,沒法引入檢驗程序,而IP網絡還要由實際硬件網絡或者是相關網關決定其工做質量。
所以,從這一層面上看,下層網絡的好壞直接關係到UDP工做。在進行開發有鏈接服務器的過程當中,要利用TCP/IP通訊協議,利用互聯網建立良好的通訊環境,進而提升通訊數據的真實性和可靠性。
TCP/IP通訊協議能夠對數據信息進行驗證與校對,保證數據信息的完整性。同時在實際運行中,能夠經過數據的序列號排序保證數據信息的有序到達,防止出現信息重複分組的狀況。
另外,這種通訊協議能夠對流量進行有效控制,確保發送信息速度在接收方的承受範圍之內,經過INTERNET,實現服務器的面向鏈接。
應用於客戶端:
在三層構架系統中,客戶端是使用者的主要功能體驗區域,相比於服務器而言很是簡單。一方面,在三層構架運行的過程當中,客戶機軟件要和各個服務器進行相互通訊,不須要過於重視併發性處理。另外一方面,通常客戶機軟件能夠仿照常規程序進行指令執行,不須要進行外加保護,依託於操做系統進行強迫性保護。但與此同時對界面具備極高的要求,系統分析的過程當中就要進行專門的界面設計,同時要和客戶進行及時溝通,掌握客戶的實際需求,實現高效的信息反饋與交流溝通,進而保證信息系統軟件界面設計的質量和效率
應用於數據服務器:
在進行數據服務器選擇的過程當中,要根據信息系統平臺要求和用戶指望要求,同時對應各個服務器的特色進行使用與選擇。通常狀況下出於對系統性能的考慮,會選擇SQLSERVER數據服務器,設計階段中要經過Proactive等有效措施對系統數據庫的實際使用性能進行不斷地優化與完善。同時管理人員要和程序設計人員進行有效的溝通與協做,明確信息系統軟件的性能目標,設置性能指望值,構建系統資源組合體系,知足用戶的實際需求
數據庫和應用服務器的鏈接。
在基於三層構架的信息系統開發中,應用服務器要利用SQL語言進行鏈接數據庫服務器,其鏈接方法包括DB-Library、DAO以及OLE等方式,其中DB-Library是最爲常見的鏈接方式,做爲SQLSERVER的重要接口層,具備極強的訪問信息效率和訪問速度。這主要是源於DB-Library的語言開發能力,直接省去DAO以及OLE等鏈接方式中抽象層的調用,節省了信息訪問時間。同時,三層構架適用於使用諸多開發語言的信息系統開發,不是.NET的專利,也不是專門用在數據庫上的技術,而是一種更加普適的架構設計理念,除了數據、邏輯、界面等層次以外,在實際應用中還會根據須要多出傳遞數據的層、接口層等等。在結合DB-Library數據庫鏈接後,設置NTWDBLIB.LIB組建,構建CDBConn實體類庫體系,實現數據庫與應用服務器的鏈接。所以,信息系統軟件架構能夠爲系統開發創造出良好的分佈式計算環境,其中邏輯層能夠實現多個機器的同時運行,經過計算機網絡計算能力,強化系統各個功能板塊的精準性和複用性,進而有效減小了信息系統軟件開發的時間和週期,保證信息系統的安全性與拓展性,實現系統功能的最大化實現