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

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

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

  計算機普及之初,軟體的開發使用的都是二層架構技術,即只考慮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)增加了開發成本。原先一個整體的軟體開發,現在首先必須將其分割成不同功能的層次,而且需要考慮層與層之間的連線介面,無形中增加了整個軟體開發的過程和工作量,從而增加了軟體開發的成本。

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

最近訪問