流動的藝術 三層結構中的資料處理問題

2021-04-06 11:04:50 字數 2142 閱讀 5098

隨著internet的進一步普及和發展,基於網路的資料處理問題日益成為企業資訊化的中心環節。資料庫的靈活性、安全性和可拓展性等成為資料處理技術焦點。本文將以資料處理結構為主線,回顧並展望基於網路的資料處理方式的演變。

二層結構:昨日黃花

在基於網路的資料處理中,客戶機/伺服器(client/server)二層計算模式具有里程碑意義。這種模式在20世紀80年代後期開始引入業界。它為多使用者系統提供了前所未有的雙向交流感和靈活性,革命性的改變了傳統的應用設計和系統實現方式,很快便在各種型別的軟體系統設計與開發中獲得了廣泛應用,到20世紀90年代初期,這種計算模式已成為業界的主流技術。

客戶機/伺服器二層計算模式的基本結構如圖1所示客戶端提供使用者介面、執行邏輯處理應用,資料伺服器接受客戶端sql語句並對資料庫進行查詢,然後返回查詢結果。用乙個形象的比喻來描述就是:伺服器端像乙個倉庫,主要功能是儲存原材料和成品,但並不進行加工,而客戶端就像最後的加工車間,完成從原料到成品的整個製造過程,然後將成品儲存到倉庫。由於業務的處理邏輯主要在客戶機端執行,因此這種結構也被成為胖客戶(fat client)結構

該結構最大的優點在於結構簡單,開發和執行的環境簡單。但也正是這種結構,產生了其原生性的問題:

首先,是系統的拓展性問題和安裝維護的問題。

當將這些部門級的成功應用逐漸推廣到企業級的關鍵任務時,這些小規模環境下執行良好的應用,一旦進入大規模生產系統之後,效能呈幾何級數下降,以致影響到系統的可靠性;在系統開發完成後,整個系統的安裝也非常繁雜。在每一台客戶機上不但要安裝應用程式,而且必須安裝相應的資料庫連線程式,還要完成大量的系統配置工作。

其次是系統的安全性問題。

在二層結構下,大量**化的企業業務流程駐留在客戶機上,給系統的安全性帶來了極大的考驗。同時隨著使用者數量的增加,這種業務邏輯的維護成本也越來越高。

最後是系統間的通訊功能障礙。

當二層計算模式從部門級應用拓展到企業級應用時,二層結構的應用之間幾乎沒有互動性操作,因此很難實現分布系統的元件技術。

以上這些問題是兩層結構本身的原生性問題,僅僅依靠對二層結構進行細枝末節的修補和開發,無法很好解決。要真正解決這些問題,必須從根本上改變這種二層結構設計。

三層結構:方興未艾

從上面的分析中可知,企業應用系統的不斷擴充和新應用的不斷增加,基於傳統的二層資料處理結構在系統拓展性、維護成本、資料安全性和應用間通訊功能障礙等原生性問題的存在,在應用中已是捉襟見肘、力不從心。在這樣的背景下,三層資料計算結構應運而生。

什麼是三層結構呢?顧名思義,它是將資料處理過程分為三部分:第一層是客戶端(使用者介面),提供使用者與系統的友好訪問;第二層是應用伺服器,專司業務邏輯的實現,;第三層是資料伺服器,負責資料資訊的儲存、訪問及其優化。由於業務邏輯被提取到應用伺服器,大大降低了客戶端負擔,因此也成為瘦客戶(thin client)結構,如圖2所示:

如圖可知,三層結構在傳統的二層結構的基礎上增加了應用伺服器,將應用邏輯單獨進行處理,從而使得使用者介面與應用邏輯位於不同的平台上,兩者之間的通訊協議由系統自行定義。通過這樣的結構設計,使得應用邏輯被所有使用者共享,這是兩層結構應用軟體與三層應用軟體之間最大的區別。

這種三層結構資料處理的優勢何在呢?做乙個形象的比喻就是它在二層結構中間加了標準化的加工廠和傳輸路線,從而可高效生產並傳輸客戶端所需產品。具體而言主要有以下幾點:

首先,通過將整個系統分為不同的邏輯塊,大大降低了應用系統開發和維護的成本。

三層結構將表示部分和業務邏輯部分按照客戶層和應用伺服器相分離,客戶端和應用伺服器、應用伺服器和資料庫伺服器之間的通訊、異構平台之間的資料交換等都可以通過中介軟體或者相關程式來實現。當資料庫或者應用伺服器的業務邏輯改變時,客戶端並不需要改變,反之亦然,大大提高了系統模組的復用性,縮短開發周期,降低維護費用。

其次,系統的擴充套件性大大增強。

由於系統模組化,使得系統很容易在縱向和水平兩個方向拓展:一方面可以將系統公升級為更大、更有力的平台,同時也可以適當增加規模來增強系統的網路應用。由於擺脫了系統同構性的限制,使得分布的資料處理成為可能。

三層結構:營造優勢

前面,我們談到了基於應用伺服器構建三層資料處理結構本身具有的技術優勢。但是,正如「企業組織要追隨戰略」一樣,技術融入市場環境,並為企業帶來競爭優勢才能真正體現其價值。

總之,在技術和市場日新月異的資訊時代,競爭的規則已從「大魚吃小魚」演變為「快魚吃慢魚」,以中介軟體為基礎,構建三層的資料處理結構,將會更快、更好的促進企業的資訊化,提公升企業的競爭力,在激烈的市場競爭中贏得優勢、脫穎而出。

三層 我眼中的三層結構

從行為型模式命令模式引發的對三層的思考。記得 大話設計模式 中對命令模式的講解。燒烤攤和燒烤店之間的區別。由於客戶和烤羊肉串老闆的 緊耦合 所以容易出錯,容易混亂,也容易挑剔。這其實就是 行為請求者 與 行為實現者 的緊耦合。對請求排隊或記錄請求日誌,以及支援可撤銷的操作等行為時,行為請求者 與 行...

c 中的三層結構

在軟體體系架構設計中,分層式結構是最常見,也是最重要的一種結構。微軟推薦的分層式結構一般分為三層。分別為 資料訪問層 業務邏輯層表示層。在三層結構中有著很多的優點,例如 1 開發人員可以只關注整個結構中的其中某一層 2 可以很容易的用新的實現來替換原有層次的實現 3 可以降低層與層之間的依賴 4 利...

三層結構的認識

三層結構的認識 這幾天我在看三層的有關資料,對其有了一點的初步認識,現在對這一點點的認識做一下總結。一 三層的劃分方式 物理上和邏輯上 所謂的兩層或是三層結構,它又分為物理上的劃分和邏輯上的劃分。物理上的三層 顯示層 業務層 資料層 物理上的劃分,可以理解為硬體上的劃分,因為我們設計的程式架構都是跑...