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