- 相關推薦
淺析軟件開發(fā)中的三層架構技術論文
隨著計算機的普及,人們在生活中越來越依賴計算機,因而對計算機軟件也提出了更高的要求,要求計算機軟件能夠提供更加方便、快捷、周全的服務。這就對計算機軟件開發(fā)技術提出了更高的要求,為了適應軟件發(fā)展的需要,在計算機軟件開發(fā)中更多地引入了三層架構技術。文章對此技術進行了具體的分析。
計算機普及之初,軟件的開發(fā)使用的都是二層架構技術,即只考慮2個端點:客戶端和服務器端。用戶通過客戶端界面所提供的數(shù)據(jù),直接在客戶端對數(shù)據(jù)進行計算和處理,然后通過服務器在數(shù)據(jù)庫中對數(shù)據(jù)進行讀取等操作,得出需要的最終結(jié)果,并將結(jié)果傳輸?shù)娇蛻舳私缑骘@示給用戶。
在這種方式中,客戶端直接和服務器對接,沒有其他數(shù)據(jù)處理環(huán)節(jié),有利于提高數(shù)據(jù)庫數(shù)據(jù)讀取的速度,但缺點是當計算機軟件的任何一個部分發(fā)生更改,哪怕是最微小的變動,整個計算機軟件都需要重新開發(fā),限制了軟件的通用性。特別是對于大型軟件開發(fā),除不利于軟件的修改,在軟件的開發(fā)期也存在很大的困難,需要程序編程人員相互高度配合,而且也不利于工作的分配。
為了解決這種矛盾,就出現(xiàn)了計算機軟件的三層架構技術,將原先單一的客戶端和服務器端的模式,根據(jù)功能分別拆分成表示層、業(yè)務邏輯層、數(shù)據(jù)訪問層和數(shù)據(jù)實體層。采用“分而治之”的思想,把復雜的問題分成不同的部分,即不同的層,以便逐個解決問題,便于軟件的設計、控制、資源分配和修改。為了讓大家更好地了解三層架構技術,本文從幾個方面對軟件開發(fā)中的三層架構技術進行介紹。
1三層架構技術中具體分工和各層功能介紹
(1)表示層:主要是指適合用戶與計算機的交互界面,目的是為了方便用戶數(shù)據(jù)的輸入和顯示處理后的數(shù)據(jù)結(jié)果,這部分工作主要由界面的美工完成。軟件設計人員通過表示層界面收集用戶輸入的數(shù)據(jù)要求,并把這些數(shù)據(jù)轉(zhuǎn)換成業(yè)務邏輯層可以操作的數(shù)據(jù)。同時也把業(yè)務邏輯層傳出的結(jié)果轉(zhuǎn)換成客戶想要的效果,通過文本、圖片、動畫、3D等格式顯示在用戶眼前。表示層也可以被理解為輸入和輸出的操作平臺,我們可以創(chuàng)建一個圖書館,然后把客戶要求設計成固定的元素:圖片、腳本、CSS、附件等進行統(tǒng)一管理。
(2)業(yè)務邏輯層:又稱為領域?qū),是表示層和?shù)據(jù)訪問層的中間橋梁,實現(xiàn)業(yè)務之間的邏輯處理,主要是對經(jīng)過表示層輸入的數(shù)據(jù)進行驗證、計算和業(yè)務規(guī)則等方面的處理。在程序編寫的過程中,主要體現(xiàn)在對象的方法、屬性、事件、索引、接口等,通過這些手段,實現(xiàn)與數(shù)據(jù)訪問層的對接。業(yè)務邏輯層的位置非常關鍵,它位于表示層與數(shù)據(jù)訪問層的中間位置,對數(shù)據(jù)的交換起到了承上啟下的作用。對于表示層而言,它是被調(diào)用者,而對于數(shù)據(jù)訪問層而言,它是調(diào)用者,依賴與被依賴的關系都糾結(jié)在業(yè)務邏輯層上。
(3)數(shù)據(jù)訪問層:直接和數(shù)據(jù)庫中原始數(shù)據(jù)進行對接,是對數(shù)據(jù)底層的操作,主要包括對數(shù)據(jù)庫中數(shù)據(jù)的增加、刪除、修改、查找等操作。該層主要的功能是根據(jù)業(yè)務邏輯層的要求,把存儲在數(shù)據(jù)庫中的數(shù)據(jù)取出并提交給業(yè)務邏輯層,同時把業(yè)務邏輯層處理的數(shù)據(jù)結(jié)果保存到數(shù)據(jù)庫。對數(shù)據(jù)庫的操作,可以分為單表操作、關聯(lián)表操作和不同數(shù)據(jù)庫之間的操作?梢猿浞掷肧QL語言中的Insert,,update,Select等語句,對數(shù)據(jù)庫進行操作,同時返回不同的數(shù)據(jù)類型結(jié)果,例如Data Table,Bool,Data Set,Data Reader等,將其生成DLL文件,然后通過組件的引用就可以現(xiàn)實數(shù)據(jù)訪問的功能。
(4)數(shù)據(jù)實體層:就是數(shù)據(jù)庫中的原始數(shù)據(jù)。為了能夠更有效地存儲原始數(shù)據(jù),方便數(shù)據(jù)訪問層對數(shù)據(jù)的存取等操作,就必須對數(shù)據(jù)庫進行設計,將數(shù)據(jù)有規(guī)律地進行存放。
數(shù)據(jù)庫設計是信息系統(tǒng)的核心和基礎。首先我們應該對軟件用戶的業(yè)務數(shù)據(jù)的使用情況進行調(diào)查和分析,了解所有業(yè)務數(shù)據(jù)的種類、范圍、數(shù)量、存在形式以及它們之間的關聯(lián)情況,并由此確定用戶對數(shù)據(jù)庫的要求和相關制約條件等,形成用戶的需求分析。
通過用戶的需求分析,建立出一個合適的數(shù)學模型。這個數(shù)學模型應能夠完整反映出現(xiàn)實中所有業(yè)務數(shù)據(jù)的信息結(jié)構、信息內(nèi)容和信息之間的互相關聯(lián)與制約關系,并滿足用戶對信息的存儲、維護、檢索和修改數(shù)據(jù)的操作要求等。
2三層架構技術的工作原理
首先,用一張圖表示三層架構技術之間的關系(見圖1)。
從圖1中可以很清晰地看到四層之間的一個邏輯關系。用戶通過表示層的界面輸入數(shù)據(jù),將數(shù)據(jù)傳遞給業(yè)務邏輯層進行驗證、計算、處理等操作,然后傳遞給數(shù)據(jù)訪問層,通過數(shù)據(jù)訪問層到數(shù)據(jù)庫中進行增加、刪除、查找等操作,得到用戶所需要的數(shù)據(jù)結(jié)果,將結(jié)果進行存儲并把結(jié)果返回到數(shù)據(jù)訪問層,再通過給業(yè)務邏輯層,最后以用戶設定的格式顯示在用戶界面,最終用戶得到自己需要的結(jié)果。四層中任意一層僅僅和自己相鄰的層進行數(shù)據(jù)交換,而和其他層無任何關聯(lián)。
三層架構技術,其實就相當于在客戶端與數(shù)據(jù)庫端之間加了一個“中間層”,也可以稱之為組件層。這個“中間層”,并不是實際物理意義上的中間層,而指的是邏輯上的中間層,把應用程序中的業(yè)務規(guī)則、數(shù)據(jù)訪問、合法性校驗等工作放到了中間層進行處理,客戶端不再直接與數(shù)據(jù)庫進行數(shù)據(jù)交互,而是通過中間層來建立連接,再由中間層和數(shù)據(jù)庫進行數(shù)據(jù)的交互,最終實現(xiàn)客戶端和數(shù)據(jù)庫端的數(shù)據(jù)的交互。
3三層架構技術的規(guī)則
在軟件開發(fā)的三層架構技術中,第四層數(shù)據(jù)實體層是基本的數(shù)據(jù)源,是必不可少的一層,是軟件操作的基礎,它的運算效果取決于計算機的硬件和數(shù)據(jù)庫設計的合理性。而對于另外三層,并不是只要項目被劃分成了表示層、業(yè)務邏輯層和數(shù)據(jù)訪問層就稱之為三層架構,這三層之間還必須要遵守一些約定的規(guī)則:
(1)表示層僅僅只是一個和用戶進行對接的界面,因而可以將其任意移植到其他類似環(huán)境的項目中。
(2)數(shù)據(jù)實體層只能通過數(shù)據(jù)訪問層進行數(shù)據(jù)讀取,其他層都不能夠直接從數(shù)據(jù)實體層中讀取數(shù)據(jù)。
(3)數(shù)據(jù)訪問層只能作為一個對數(shù)據(jù)庫實體的讀取中間層,而不能進行任何業(yè)務邏輯的處理操作。
(4)軟件設計應該以業(yè)務邏輯層為核心,而不是數(shù)據(jù)訪問層或是數(shù)據(jù)實體層,更不應該是表示層。在業(yè)務邏輯層應該以面向?qū)ο蟮姆绞,實現(xiàn)所有的有業(yè)務邏輯操作。
(5)數(shù)據(jù)層中所有的數(shù)據(jù)都應該在一定的抽象程度上做到與系統(tǒng)無關。
(6)設計的時候,所有的遠程對象技術都應該考慮到不同的服務器和多臺服務器之間的負載均衡作集群。
(7)這3個模塊中的任意模塊都可以運行在不同的服務器上。
一個項目是否需要進行三層設計,首先要看這個項目的復雜度。實際上,很多項目只需要編輯一個WebApplication就足夠?qū)崿F(xiàn)全部功能了,根本不需要更復雜的技術,而只有真正復雜的項目,才需要利用三層架構技術進行設計和開發(fā)。
4三層架構技術的優(yōu)勢
通過對三層架構技術的工作原理的理解,我們可以得到通過三層架構技術開發(fā)出來的軟件的優(yōu)點。
(1)結(jié)構清晰,耦合度低。三層架構技術中層次分明,層與層之間結(jié)構清晰,軟件編寫人員分工明確,層與層之間的關聯(lián)不多,降低層與層之間的依賴性,編寫人員可以只關注整個結(jié)構中的某一層,從而極大地避免了二層技術開發(fā)的軟件中存在的耦合度問題。
(2)可維護性高,可擴展性高。用三層架構技術開發(fā)的軟件在后期維護的時候,極大地降低了維護成本和維護時間。軟件的任意一部分的功能更改和升級,僅需更改某層的設計和編寫,而不需要對整個系統(tǒng)做出改變,而不像用二層技術開發(fā)的軟件那樣,一個小程序的變化都需要調(diào)整整個軟件開發(fā),極大地提高了軟件的維護性和擴展性。
(3)利于開發(fā)任務同步進行,容易適應需求變化。三層架構技術極大地解決了軟件開發(fā)的問題,特別是大型軟件開發(fā)的問題,讓軟件開發(fā)實現(xiàn)任務的同步。在二層技術開發(fā)軟件時,由于僅有2個端點,故軟件開發(fā)時就存在一個編程的先后,必須由一個團隊對整個軟件流程十分清楚,并從始至終編寫所有環(huán)節(jié)的程序。而三層架構技術把軟件分成4個層次,而且層與層之間關聯(lián)不大,故可以將軟件分成4個不同層次進行同步開發(fā),實現(xiàn)任務的同步,從而大大縮短了軟件開發(fā)的時間,更容易適應需求的變化。
5三層架構技術的缺點
(1)降低了整個系統(tǒng)的讀取數(shù)據(jù)的速度。在二層技術結(jié)構中,大部分數(shù)據(jù)的讀取是通過客戶端直接造訪數(shù)據(jù)庫而得到的結(jié)果,而三層架構技術卻必須經(jīng)過4個層次的完整過程才能得到最終結(jié)果,無形中增加了中間環(huán)節(jié),從而降低了系統(tǒng)的性能。
(2)有時會導致關聯(lián)層次的修改。由于三層架構技術中層與層之間存在邏輯關系,當其中一個層次由于需要而發(fā)生功能的改變或增加時,很有可能導致其他層次的代碼改變。例如:當表示層中增加了一個功能,為了保證其各層設計的結(jié)構合理性,可能需要在對應的業(yè)務邏輯層和數(shù)據(jù)訪問層中都增加相應的代碼,從而達到最終數(shù)據(jù)的一致性。
(3)整體代碼編寫的工作量增加。由于三層架構技術增加了層與層之間的接口,有些能夠直接使用的代碼現(xiàn)在不得不分開使用,無形中增加了代碼的編寫工作量。
(4)增加了開發(fā)成本。原先一個整體的軟件開發(fā),現(xiàn)在首先必須將其分割成不同功能的層次,而且需要考慮層與層之間的連接接口,無形中增加了整個軟件開發(fā)的過程和工作量,從而增加了軟件開發(fā)的成本。
總體而言,針對如今軟件開發(fā)的日趨大型化、規(guī);奶攸c,三層架構技術解決了很多二層架構技術中無法解決的問題,從而真正實現(xiàn)了軟件開發(fā)的同步性、可維護性和可擴展性,是軟件開發(fā)進步的重要標志。
【淺析軟件開發(fā)中的三層架構技術論文】相關文章:
淺析長號在樂隊演奏中的特點論文09-17
淺析共享單車論文08-28
水利施工中滑模技術作用論文08-29
淺析抽象油畫色調(diào)論文07-27
淺析余光中的鄉(xiāng)愁01-04
淺析余光中的“鄉(xiāng)愁”01-05