李 程,胡五音
(南陽(yáng)職業(yè)學(xué)院,河南 南陽(yáng) 473000)
隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,人們已經(jīng)從電氣時(shí)代逐步邁向信息化時(shí)代[1]。信息技術(shù)已經(jīng)在全球各個(gè)領(lǐng)域遍地開花,對(duì)人們?nèi)粘I畹馁|(zhì)量產(chǎn)生了較大影響,對(duì)生產(chǎn)效率的提升也起到了很好的推動(dòng)作用[2]。隨著軟件的逐步增多以及人們對(duì)軟件開發(fā)需求量的不斷增大,常規(guī)軟件開發(fā)技術(shù)已經(jīng)無(wú)法滿足發(fā)展需求,主要表現(xiàn)在軟件的開發(fā)周期不足,軟件的信息安全及設(shè)計(jì)架構(gòu)不合理、軟件的優(yōu)化和迭代速度慢等[3]。
分層技術(shù)是相對(duì)于單層技術(shù)來(lái)講的,為了解決計(jì)算機(jī)應(yīng)用軟件使用環(huán)境及人員逐步增多的問(wèn)題,設(shè)計(jì)更多的層次可以滿足計(jì)算機(jī)軟件模塊化的需求,從而使軟件的流程更加清晰,更容易進(jìn)行升級(jí)和擴(kuò)展,在一定程度上可以增加軟件開發(fā)的靈活性和柔性。因此,分層技術(shù)在軟件開發(fā)過(guò)程中得到廣泛應(yīng)用。
由于分層技術(shù)的模塊化特點(diǎn),使得軟件開發(fā)的周期能夠得到大幅降低,代碼的復(fù)用程度得到大幅提升,開發(fā)的質(zhì)量得以保證。因此,采用分層開發(fā)技術(shù)實(shí)現(xiàn)對(duì)計(jì)算機(jī)軟件的開發(fā),其重用率比較高,并且可以實(shí)現(xiàn)和標(biāo)準(zhǔn)化接口的無(wú)縫集成。
從開發(fā)技術(shù)上講,此種技術(shù)存在4個(gè)基本特點(diǎn):
(1)軟件的功能一般比較復(fù)雜,采用分層技術(shù)能夠?qū)崿F(xiàn)將軟件功能分解成為模塊化的簡(jiǎn)單系統(tǒng)。分層技術(shù)可以更好地實(shí)現(xiàn)前后端的分離,將各個(gè)模塊之間的功能獨(dú)立出來(lái),這樣在后期的維護(hù)和升級(jí)環(huán)節(jié)會(huì)有更少的代碼和結(jié)構(gòu)改動(dòng)。
(2)分層技術(shù)在軟件開發(fā)層級(jí),能夠快速提升開發(fā)效率,縮短軟件的設(shè)計(jì)和開發(fā)周期,提升開發(fā)質(zhì)量和應(yīng)用效果,在一定程度上實(shí)現(xiàn)半自動(dòng)開發(fā)。在一個(gè)中大型的軟件中,各個(gè)模塊之間的很多功能及代碼邏輯都是相通的,分層技術(shù)的應(yīng)用使得不同功能之間的代碼可以相互借用,從而實(shí)現(xiàn)了開發(fā)周期的大幅度縮短。
(3)軟件開發(fā)是軟件的最基礎(chǔ)環(huán)節(jié),在軟件開發(fā)過(guò)程中采用分層技術(shù)存在著雙重結(jié)構(gòu)優(yōu)勢(shì),一方面能夠提升軟件的功能和效率,另一方面可以提升開發(fā)人員的整體開發(fā)水平。應(yīng)用分層技術(shù)開發(fā)的軟件,整體的代碼結(jié)構(gòu)會(huì)更加合理,性能也會(huì)有更大的優(yōu)化空間。
(4)計(jì)算機(jī)軟件開發(fā)和計(jì)算機(jī)硬件的水平存在很大的關(guān)系,要想實(shí)現(xiàn)軟件的快速運(yùn)行,計(jì)算機(jī)軟件的性能必須得到大幅提升。因此,計(jì)算機(jī)分層技術(shù)的采用,能夠大幅降低對(duì)計(jì)算機(jī)硬件性能的依賴。
從計(jì)算機(jī)軟件開發(fā)角度講,分層技術(shù)的功能明顯,如果得到全面應(yīng)用,其功效將會(huì)繼續(xù)擴(kuò)大。從功能角度分析,軟件開發(fā)技術(shù)具備3個(gè)突出功能,具體有以下幾點(diǎn)。
1.2.1 可降低開發(fā)和設(shè)計(jì)成本
采用分層技術(shù)以后,可以對(duì)計(jì)算機(jī)軟件的設(shè)置進(jìn)行優(yōu)化。這不僅極大地削減了軟件開發(fā)成本,實(shí)現(xiàn)成本的有效節(jié)約,軟件性還能在其他條件不變的前提下實(shí)現(xiàn)最優(yōu)化的效果。此外,借助于軟件開發(fā)技術(shù),還能夠極大地縮短界面設(shè)計(jì)時(shí)間,這在無(wú)形中減少了人員開發(fā)的投入成本,進(jìn)而減少軟件的總體建設(shè)成本。
1.2.2 提升軟件的使用壽命
采用分層技術(shù)設(shè)計(jì)的軟件,可以提升計(jì)算機(jī)軟件的使用壽命,如果一部分軟件模塊在設(shè)計(jì)完成后,能夠在很長(zhǎng)時(shí)間內(nèi)避免再次設(shè)計(jì)和優(yōu)化,并且能夠在很長(zhǎng)時(shí)間內(nèi)在架構(gòu)上保持最優(yōu),這就降低了軟件整體迭代對(duì)軟件造成沖擊的鋒線。計(jì)算機(jī)在使用過(guò)程中的有效性時(shí)間得到相對(duì)延長(zhǎng),進(jìn)而增加能力軟件的使用壽命。
1.2.3 強(qiáng)化各個(gè)模塊之間的聯(lián)系
采用分層技術(shù)后,不僅使得計(jì)算機(jī)軟件的各個(gè)部分和層次之間產(chǎn)生相互聯(lián)系,還提升計(jì)算機(jī)系統(tǒng)的整體穩(wěn)定水平。采用強(qiáng)化服務(wù)技術(shù)后,不僅能夠提升計(jì)算機(jī)的整體運(yùn)行水平,進(jìn)而提升計(jì)算機(jī)軟件的整體性能,還能提升計(jì)算機(jī)軟件在使用過(guò)程中的穩(wěn)定程度。
分層技術(shù)是解決軟件效率提升的最主要手段,但是分層完成后,要在物理鏈路上建立軟件和硬件的基本關(guān)系。因此對(duì)計(jì)算機(jī)軟件開發(fā)來(lái)講,要對(duì)計(jì)算機(jī)軟件不斷地進(jìn)行分層和優(yōu)化,使得上級(jí)和下級(jí)能夠產(chǎn)生彼此的依賴。但在分層過(guò)程中,要以不影響計(jì)算機(jī)軟件運(yùn)行的質(zhì)量作為根本目標(biāo),因此保證分層過(guò)程的穩(wěn)定性非常關(guān)鍵。從發(fā)展歷程來(lái)看,計(jì)算機(jī)軟件開發(fā)分層技術(shù)經(jīng)歷了4個(gè)層級(jí)結(jié)構(gòu),分別為二層、三層、四層和五層結(jié)構(gòu)。
客戶端和服務(wù)端是雙層結(jié)構(gòu)的最主要組成部分。服務(wù)端的作用在于對(duì)客戶端信息的有效接收,同時(shí)運(yùn)用數(shù)據(jù)庫(kù)實(shí)現(xiàn)有關(guān)數(shù)據(jù)的搜索和查詢,并將最后的結(jié)果進(jìn)行分析和反饋??蛻舳酥饕秦?fù)責(zé)向客戶展示用戶界面,并做提交信息的邏輯上的簡(jiǎn)單判斷。例如,在用戶數(shù)量較少的前提下,就可以充分運(yùn)用雙線數(shù)據(jù)進(jìn)行計(jì)算,而假設(shè)用戶數(shù)量過(guò)多,加上服務(wù)器的性能不夠,此時(shí)運(yùn)用雙層結(jié)構(gòu)就很難滿足業(yè)務(wù)開展的需求。
三層結(jié)構(gòu)是兩層結(jié)構(gòu)的功能拓展,其本質(zhì)是增加了業(yè)務(wù)處理層級(jí)。在三層結(jié)構(gòu)體系內(nèi)部,客戶端主要是負(fù)責(zé)用戶頁(yè)面和人機(jī)效果的提升,服務(wù)端主要負(fù)責(zé)在客戶端的邏輯關(guān)系處理轉(zhuǎn)移到本端口中。三層結(jié)構(gòu)包括界面層、業(yè)務(wù)處理層和數(shù)據(jù)處理層。界面層是對(duì)用戶需求進(jìn)行梳理和總結(jié),并將相關(guān)數(shù)據(jù)傳遞到業(yè)務(wù)處理層;業(yè)務(wù)處理層是基于用戶的發(fā)展需要,來(lái)對(duì)之進(jìn)行總結(jié)和深度分析,從而提取關(guān)鍵信息進(jìn)行綜合梳理,最后把這些數(shù)據(jù)反饋給用戶;數(shù)據(jù)處理層則是針對(duì)業(yè)務(wù)處理層的相關(guān)需求,深入數(shù)據(jù)庫(kù)中來(lái)進(jìn)行信息的總結(jié)、歸納、梳理和提取,并將最終的結(jié)果反饋到業(yè)務(wù)處理層。由此可以看出,這三層結(jié)構(gòu)之間是互相協(xié)同、密切分工的過(guò)程。這三層結(jié)構(gòu)的有效融合,可以最大化地減少工作量,極大地延伸了信息處理的效果和效率。盡管三層結(jié)構(gòu)具備很大優(yōu)勢(shì),但在實(shí)際應(yīng)用過(guò)程中,為了滿足客戶的需求,需要根據(jù)用戶的實(shí)際應(yīng)用情況將兩層和三層技術(shù)進(jìn)行結(jié)合使用。
三層結(jié)構(gòu)是目前最為常用的軟件開發(fā)結(jié)構(gòu),比如傳統(tǒng)的MVC模式等。三層結(jié)構(gòu)的設(shè)計(jì)思想比較簡(jiǎn)單,就是將展示部分、業(yè)務(wù)處理部分和數(shù)據(jù)交互部分給分離出來(lái),沒(méi)有采用三層結(jié)構(gòu)設(shè)計(jì)的軟件可能每一個(gè)功能模塊都需要從邏輯控制到數(shù)據(jù)庫(kù)訪問(wèn)進(jìn)行一個(gè)完整的設(shè)計(jì),造成大量的重復(fù)代碼,使得代碼冗余,降低軟件的性能。而在分層結(jié)構(gòu)得到應(yīng)用之后,軟件的設(shè)計(jì)思路會(huì)變得更加簡(jiǎn)單。
計(jì)算機(jī)軟件開發(fā)技術(shù)隨著網(wǎng)頁(yè)開發(fā)技術(shù)的革新也得到了快速發(fā)展,三層技術(shù)已經(jīng)無(wú)法滿足以上需求,四層結(jié)構(gòu)便應(yīng)運(yùn)而生。四層結(jié)構(gòu)在三層結(jié)構(gòu)的基礎(chǔ)上增加了封裝層,從而形成了WEB層、數(shù)據(jù)層、業(yè)務(wù)層和存儲(chǔ)層。隨著軟件層次分類的逐步增多,各個(gè)層次之間的耦合性連接是需要解決的問(wèn)題,因此在對(duì)層級(jí)進(jìn)行劃分時(shí),需要解決各個(gè)層次的數(shù)據(jù)連通性問(wèn)題。從具體開發(fā)角度來(lái)看,采用四層分層技術(shù),能夠?qū)τ?jì)算機(jī)的基本運(yùn)行功能進(jìn)行加深,實(shí)現(xiàn)數(shù)據(jù)層的數(shù)據(jù)處置,對(duì)處理完成后的數(shù)據(jù)需要傳遞給處理層,隨后傳遞給業(yè)務(wù)處理封閉層,處理完成后最終反映到WEB應(yīng)用層。在經(jīng)歷過(guò)上述傳遞步驟后,數(shù)據(jù)便可以進(jìn)行快速的流轉(zhuǎn),從而從根本上提升計(jì)算機(jī)的應(yīng)用效能。
對(duì)于個(gè)別工作場(chǎng)景比較特殊的情況,四層技術(shù)已經(jīng)無(wú)法滿足計(jì)算機(jī)軟件開發(fā)技術(shù)的基本要求,因此要在四層技術(shù)的基礎(chǔ)上對(duì)數(shù)據(jù)層進(jìn)行詳細(xì)劃分。其中五層技術(shù)能夠?qū)?shù)據(jù)層進(jìn)行二次劃分,將其分解為集成層和資源層兩個(gè)層次,進(jìn)而實(shí)現(xiàn)計(jì)算機(jī)軟件運(yùn)行效率的提升,這樣有助于最大化地延伸工作效果,有效滿足特殊化工作場(chǎng)景的需求。當(dāng)前五層結(jié)構(gòu)主要應(yīng)用于J2EE等場(chǎng)景中。但在其具體工作過(guò)程中,客戶和WEB層是基于界面層演變而來(lái)的,集成層和資源層則來(lái)自于數(shù)據(jù)層。
中間件技術(shù)是近年來(lái)應(yīng)用非常廣泛的應(yīng)用技術(shù)。中間件技術(shù)和分層技術(shù)中各個(gè)層級(jí)的耦合性比較低,在開發(fā)上相對(duì)獨(dú)立。在軟件開發(fā)中,中間件是為了解決計(jì)算機(jī)和系統(tǒng)間的互補(bǔ)而產(chǎn)生的。在正常情況下,中間件技術(shù)的利用能夠有效減少異面結(jié)構(gòu)及分布問(wèn)題,這就有效地削弱了軟件開發(fā)的工作量和難度。中間件技術(shù)的主要特點(diǎn)是可以對(duì)操作系統(tǒng)本身實(shí)現(xiàn)優(yōu)化,使軟件的開發(fā)時(shí)間得到節(jié)約。
隨著互聯(lián)網(wǎng)時(shí)代的到來(lái),軟件需求量在不斷地?cái)U(kuò)大,因此如何尋找到低成本、高效率的開發(fā)技術(shù)十分重要。合理利用分層技術(shù)可以有效達(dá)成這一目標(biāo),不僅減少了軟件開發(fā)成本,還提升了開發(fā)效果,滿足了軟件開發(fā)公司對(duì)提質(zhì)增效的基本要求。因此分層技術(shù)在未來(lái)軟件開發(fā)過(guò)程中應(yīng)用前景將會(huì)越來(lái)越廣闊。