淺析軟件開發中的三層架構技術論文

隨着計算機的普及,人們在生活中越來越依賴計算機,因而對計算機軟件也提出了更高的要求,要求計算機軟件能夠提供更加方便、快捷、周全的服務。這就對計算機軟件開發技術提出了更高的要求,爲了適應軟件發展的需要,在計算機軟件開發中更多地引入了三層架構技術。文章對此技術進行了具體的分析。

淺析軟件開發中的三層架構技術論文

計算機普及之初,軟件的開發使用的都是二層架構技術,即只考慮2個端點:客戶端和服務器端。用戶通過客戶端界面所提供的數據,直接在客戶端對數據進行計算和處理,然後通過服務器在數據庫中對數據進行讀取等操作,得出需要的最終結果,並將結果傳輸到客戶端界面顯示給用戶。

在這種方式中,客戶端直接和服務器對接,沒有其他數據處理環節,有利於提高數據庫數據讀取的速度,但缺點是當計算機軟件的任何一個部分發生更改,哪怕是最微小的變動,整個計算機軟件都需要重新開發,限制了軟件的通用性。特別是對於大型軟件開發,除不利於軟件的修改,在軟件的開發期也存在很大的困難,需要程序編程人員相互高度配合,而且也不利於工作的分配。

爲了解決這種矛盾,就出現了計算機軟件的三層架構技術,將原先單一的客戶端和服務器端的模式,根據功能分別拆分成表示層、業務邏輯層、數據訪問層和數據實體層。採用“分而治之”的思想,把複雜的問題分成不同的部分,即不同的層,以便逐個解決問題,便於軟件的設計、控制、資源分配和修改。爲了讓大家更好地瞭解三層架構技術,本文從幾個方面對軟件開發中的三層架構技術進行介紹。

1三層架構技術中具體分工和各層功能介紹

(1)表示層:主要是指適合用戶與計算機的交互界面,目的是爲了方便用戶數據的輸入和顯示處理後的數據結果,這部分工作主要由界面的美工完成。軟件設計人員通過表示層界面收集用戶輸入的數據要求,並把這些數據轉換成業務邏輯層可以操作的數據。同時也把業務邏輯層傳出的結果轉換成客戶想要的效果,通過文本、圖片、動畫、3D等格式顯示在用戶眼前。表示層也可以被理解爲輸入和輸出的操作平臺,我們可以創建一個圖書館,然後把客戶要求設計成固定的元素:圖片、腳本、CSS、附件等進行統一管理。

(2)業務邏輯層:又稱爲領域層,是表示層和數據訪問層的中間橋樑,實現業務之間的邏輯處理,主要是對經過表示層輸入的數據進行驗證、計算和業務規則等方面的處理。在程序編寫的過程中,主要體現在對象的方法、屬性、事件、索引、接口等,通過這些手段,實現與數據訪問層的對接。業務邏輯層的位置非常關鍵,它位於表示層與數據訪問層的中間位置,對數據的交換起到了承上啓下的作用。對於表示層而言,它是被調用者,而對於數據訪問層而言,它是調用者,依賴與被依賴的關係都糾結在業務邏輯層上。

(3)數據訪問層:直接和數據庫中原始數據進行對接,是對數據底層的操作,主要包括對數據庫中數據的增加、刪除、修改、查找等操作。該層主要的功能是根據業務邏輯層的要求,把存儲在數據庫中的數據取出並提交給業務邏輯層,同時把業務邏輯層處理的數據結果保存到數據庫。對數據庫的操作,可以分爲單表操作、關聯表操作和不同數據庫之間的操作。可以充分利用SQL語言中的Insert,,update,Select等語句,對數據庫進行操作,同時返回不同的數據類型結果,例如Data Table,Bool,Data Set,Data Reader等,將其生成DLL文件,然後通過組件的引用就可以現實數據訪問的功能。

(4)數據實體層:就是數據庫中的原始數據。爲了能夠更有效地存儲原始數據,方便數據訪問層對數據的存取等操作,就必須對數據庫進行設計,將數據有規律地進行存放。

數據庫設計是信息系統的核心和基礎。首先我們應該對軟件用戶的業務數據的使用情況進行調查和分析,瞭解所有業務數據的種類、範圍、數量、存在形式以及它們之間的關聯情況,並由此確定用戶對數據庫的要求和相關制約條件等,形成用戶的需求分析。

通過用戶的需求分析,建立出一個合適的數學模型。這個數學模型應能夠完整反映出現實中所有業務數據的信息結構、信息內容和信息之間的互相關聯與制約關係,並滿足用戶對信息的存儲、維護、檢索和修改數據的操作要求等。

2三層架構技術的工作原理

首先,用一張圖表示三層架構技術之間的關係(見圖1)。

從圖1中可以很清晰地看到四層之間的一個邏輯關係。用戶通過表示層的界面輸入數據,將數據傳遞給業務邏輯層進行驗證、計算、處理等操作,然後傳遞給數據訪問層,通過數據訪問層到數據庫中進行增加、刪除、查找等操作,得到用戶所需要的數據結果,將結果進行存儲並把結果返回到數據訪問層,再通過給業務邏輯層,最後以用戶設定的格式顯示在用戶界面,最終用戶得到自己需要的結果。四層中任意一層僅僅和自己相鄰的層進行數據交換,而和其他層無任何關聯。

三層架構技術,其實就相當於在客戶端與數據庫端之間加了一個“中間層”,也可以稱之爲組件層。這個“中間層”,並不是實際物理意義上的中間層,而指的是邏輯上的中間層,把應用程序中的業務規則、數據訪問、合法性校驗等工作放到了中間層進行處理,客戶端不再直接與數據庫進行數據交互,而是通過中間層來建立連接,再由中間層和數據庫進行數據的交互,最終實現客戶端和數據庫端的數據的交互。

3三層架構技術的規則

在軟件開發的三層架構技術中,第四層數據實體層是基本的數據源,是必不可少的一層,是軟件操作的基礎,它的運算效果取決於計算機的硬件和數據庫設計的合理性。而對於另外三層,並不是只要項目被劃分成了表示層、業務邏輯層和數據訪問層就稱之爲三層架構,這三層之間還必須要遵守一些約定的規則:

(1)表示層僅僅只是一個和用戶進行對接的界面,因而可以將其任意移植到其他類似環境的項目中。

(2)數據實體層只能通過數據訪問層進行數據讀取,其他層都不能夠直接從數據實體層中讀取數據。

(3)數據訪問層只能作爲一個對數據庫實體的讀取中間層,而不能進行任何業務邏輯的處理操作。

(4)軟件設計應該以業務邏輯層爲核心,而不是數據訪問層或是數據實體層,更不應該是表示層。在業務邏輯層應該以面向對象的方式,實現所有的有業務邏輯操作。

(5)數據層中所有的數據都應該在一定的抽象程度上做到與系統無關。

(6)設計的時候,所有的遠程對象技術都應該考慮到不同的服務器和多臺服務器之間的.負載均衡作集羣。

(7)這3個模塊中的任意模塊都可以運行在不同的服務器上。

一個項目是否需要進行三層設計,首先要看這個項目的複雜度。實際上,很多項目只需要編輯一個WebApplication就足夠實現全部功能了,根本不需要更復雜的技術,而只有真正複雜的項目,才需要利用三層架構技術進行設計和開發。

4三層架構技術的優勢

通過對三層架構技術的工作原理的理解,我們可以得到通過三層架構技術開發出來的軟件的優點。

(1)結構清晰,耦合度低。三層架構技術中層次分明,層與層之間結構清晰,軟件編寫人員分工明確,層與層之間的關聯不多,降低層與層之間的依賴性,編寫人員可以只關注整個結構中的某一層,從而極大地避免了二層技術開發的軟件中存在的耦合度問題。

(2)可維護性高,可擴展性高。用三層架構技術開發的軟件在後期維護的時候,極大地降低了維護成本和維護時間。軟件的任意一部分的功能更改和升級,僅需更改某層的設計和編寫,而不需要對整個系統做出改變,而不像用二層技術開發的軟件那樣,一個小程序的變化都需要調整整個軟件開發,極大地提高了軟件的維護性和擴展性。

(3)利於開發任務同步進行,容易適應需求變化。三層架構技術極大地解決了軟件開發的問題,特別是大型軟件開發的問題,讓軟件開發實現任務的同步。在二層技術開發軟件時,由於僅有2個端點,故軟件開發時就存在一個編程的先後,必須由一個團隊對整個軟件流程十分清楚,並從始至終編寫所有環節的程序。而三層架構技術把軟件分成4個層次,而且層與層之間關聯不大,故可以將軟件分成4個不同層次進行同步開發,實現任務的同步,從而大大縮短了軟件開發的時間,更容易適應需求的變化。

5三層架構技術的缺點

(1)降低了整個系統的讀取數據的速度。在二層技術結構中,大部分數據的讀取是通過客戶端直接造訪數據庫而得到的結果,而三層架構技術卻必須經過4個層次的完整過程才能得到最終結果,無形中增加了中間環節,從而降低了系統的性能。

(2)有時會導致關聯層次的修改。由於三層架構技術中層與層之間存在邏輯關係,當其中一個層次由於需要而發生功能的改變或增加時,很有可能導致其他層次的代碼改變。例如:當表示層中增加了一個功能,爲了保證其各層設計的結構合理性,可能需要在對應的業務邏輯層和數據訪問層中都增加相應的代碼,從而達到最終數據的一致性。

(3)整體代碼編寫的工作量增加。由於三層架構技術增加了層與層之間的接口,有些能夠直接使用的代碼現在不得不分開使用,無形中增加了代碼的編寫工作量。

(4)增加了開發成本。原先一個整體的軟件開發,現在首先必須將其分割成不同功能的層次,而且需要考慮層與層之間的連接接口,無形中增加了整個軟件開發的過程和工作量,從而增加了軟件開發的成本。

總體而言,針對如今軟件開發的日趨大型化、規模化的特點,三層架構技術解決了很多二層架構技術中無法解決的問題,從而真正實現了軟件開發的同步性、可維護性和可擴展性,是軟件開發進步的重要標誌。