在之前的部落格中已經介紹過了三層架構的功能
詳情回覆(三層構架一
)那為什麼要使用三層架構呢??
使用三層架構的目的:解耦
!!!(做自己功能內的事)
同樣拿上面飯店的例子來講:
詳情請看:
(1)服務員(ui層)請假——另找服務員;廚師(bll層)辭職——招聘另乙個廚師;採購員(dal)辭職——招聘另乙個採購員;
(2)顧客反映: 1>你們店服務態度不好——服務員的問題。開除服務員;
2>你們店菜裡有蟲子——廚師的問題。換廚師;
任何一層發生變化都不會影響到另外一層!!!
與兩層的區別?
兩層:
(當任何乙個地方發生變化時,都需要重新開發整個系統。「多層」放在一層,分工不明確耦合度高——難以適應需求變化,可維護性低、可擴充套件性低)
三層:
(發生在哪一層的變化,只需更改該層,不需要更改整個系統。層次清晰,分工明確,每層之間耦合度低——提高了效率,適應需求變化,可維護性高,可擴充套件性高)
綜上:三層架構的
優勢:1,結構清晰、耦合度低,2,可維護性高,可擴充套件性高;3,利於開發任務同步進行;容易適應需求變化
劣勢: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實體類庫體系,實現資料庫與應用伺服器的連線。因此,資訊系統軟體架構可以為系統開發創造出良好的分布式計算環境,其中邏輯層可以實現多個機器的同時執行,通過計算機網路計算能力,強化系統各個功能板塊的精準性和復用性,進而有效減少了資訊系統軟體開發的時間和週期,保證資訊系統的安全性與拓展性,實現系統功能的最大化實現
c mysql三層架構例項 三層架構例項
一 概要 這篇部落格,準備用乙個小demo來介紹應該實現三層架構。三層架構只是分層的一種經典形式,到底分幾層,要依具體情況而定,考慮到系統的複雜程度,和後期的可維護性,完全可以分四層,五層,甚至六層,七層。二 demo 1 實現語言 vb.net 2 需求 學校機房收費系統 中的乙個功能 操作員為學...
二層架構與三層架構記述
二層架構的缺點 如果功能不需要經常變化或修改,則是乙個比較好而且快的實現方式.但是在使用者介面,都是通過sqldatasource控制項來連線資料來源的,並將sql語句直接寫入到各個頁面的html 中 因此帶來的問題是 sql語句與html 的混合程式設計,不利於各類開發人員的分工合作,如頁面設計人...
軟體架構 三層架構
三層系統的分層式結構 三層架構 3 tier architecture 通常意義上的三層架構就是將整個業務應用劃分為 區分層次的目的即為了 高內聚,低耦合 的思想。表現層 ui 通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。業務邏輯層 bll 針對具體問題的操作,也可以說是...