陳湘瑾 王晨曦 谷博斌 胡東曉
【摘要】計(jì)算機(jī)技術(shù)的普及改變了現(xiàn)代生產(chǎn)生活的面貌。而隨著計(jì)算機(jī)應(yīng)用場(chǎng)景的不斷豐富,人們對(duì)計(jì)算機(jī)軟件系統(tǒng)的要求越來(lái)越高,在此情況下,人們不斷探索出運(yùn)用各種分層技術(shù)來(lái)進(jìn)行軟件開發(fā),從而賦予軟件更強(qiáng)大的功能和服務(wù)。本文對(duì)分層技術(shù)相關(guān)內(nèi)容進(jìn)行了概述,進(jìn)而對(duì)各種分層技術(shù)在計(jì)算機(jī)軟件開發(fā)中的應(yīng)用展開探討。
【關(guān)鍵詞】分層技術(shù);計(jì)算機(jī)技術(shù);軟件開發(fā)
中圖分類號(hào):TN94? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ?文章編號(hào):1673-0348(2020)012-127-03
Abstract: The popularity of computer technology has changed the face of modern production and life. With the continuous enrichment of computer application scenarios, people have higher and higher requirements for computer software systems. In this case, people continue to explore the use of various layered technologies for software development, thus giving software more powerful functions and services. This paper summarizes the related contents of layered technology, and then discusses the application of various layered technologies in computer software development.
Keywords:Layered technology; Computer technology; Software development
1. 分層技術(shù)概述
分層技術(shù)是伴隨著現(xiàn)代計(jì)算機(jī)技術(shù)發(fā)展與應(yīng)用需求不斷提升而探索出的一種新型軟件開發(fā)技術(shù)思路。該技術(shù)在計(jì)算機(jī)軟件開發(fā)中的應(yīng)用使得軟件開發(fā)從最初的二元結(jié)構(gòu)得以實(shí)現(xiàn)多元結(jié)構(gòu)的構(gòu)建,并為軟件開發(fā)提供了更廣闊的平臺(tái)。在分層技術(shù)的應(yīng)用下,現(xiàn)代社會(huì)發(fā)展中各種復(fù)雜場(chǎng)景的應(yīng)用需求如商場(chǎng)管理、網(wǎng)絡(luò)購(gòu)物等都可以得到滿足,從而進(jìn)一步提升了現(xiàn)代社會(huì)生產(chǎn)生活的效率,使計(jì)算機(jī)軟件發(fā)揮出更大價(jià)值。
對(duì)于計(jì)算機(jī)軟件開發(fā)而言,分層技術(shù)最突出的貢獻(xiàn)就在為其提供了一個(gè)更為合理的多元結(jié)構(gòu)體系,且進(jìn)一步提升了軟件系統(tǒng)流程的清晰度,使軟件結(jié)構(gòu)更具層次性,更易于使用、管理和后期維護(hù)。計(jì)算機(jī)軟件開發(fā)領(lǐng)域內(nèi)的分層技術(shù)實(shí)際上就是將計(jì)算機(jī)軟件分成不同的層,針對(duì)每一層都制定相應(yīng)解決方案,并設(shè)定出每一層的工作流程。這些層既可以看作一個(gè)獨(dú)立模塊,與其他層同屬相同等級(jí),但實(shí)際上每一層與其他層之間又存在聯(lián)系,共同組成了一個(gè)整體系統(tǒng)框架,能夠相互配合實(shí)現(xiàn)一定的系統(tǒng)功能。從分層技術(shù)的結(jié)構(gòu)特點(diǎn)可以發(fā)現(xiàn),該技術(shù)對(duì)于軟件架構(gòu)的開發(fā)是作用最為明顯的,且目前已經(jīng)被廣泛應(yīng)用于各領(lǐng)域的軟件開發(fā)應(yīng)用中,并成為現(xiàn)階段軟件開發(fā)中的一種十分重要的技術(shù)手段。
相較于其他軟件開發(fā)技術(shù),分層技術(shù)具有諸多優(yōu)勢(shì)。首先,其具有易于優(yōu)化維護(hù)的優(yōu)勢(shì)。分層技術(shù)能夠?qū)④浖澐譃椴煌墓δ軐哟?,各層次都有其相?yīng)的一套流程。因此如果想要對(duì)軟件進(jìn)行優(yōu)化升級(jí),可以首先從各層次優(yōu)化升級(jí)進(jìn)行考慮,然后針對(duì)性的進(jìn)行優(yōu)化調(diào)整,如此就極大簡(jiǎn)化了軟件的優(yōu)化維護(hù)難度。其次,分層技術(shù)具有安全性特點(diǎn),即軟件中的不同功能分層對(duì)其他層的影響較小,因此如果軟件某一層功能出現(xiàn)問題,其通常僅會(huì)對(duì)本層造成影響,而不會(huì)影響其他層的功能發(fā)揮,這就使軟件的安全性得到極大提升。再次,分層技術(shù)具有較強(qiáng)適應(yīng)性。即分層技術(shù)在軟件設(shè)計(jì)過程中可以根據(jù)實(shí)際需求不斷添加層級(jí),從而使其能夠滿足各種領(lǐng)域功能多元化的要求,極大提升了軟件開發(fā)的適應(yīng)性。最后,分層技術(shù)具有更高成本優(yōu)勢(shì)。運(yùn)用分層技術(shù)對(duì)軟件進(jìn)行開發(fā)能夠極大的簡(jiǎn)化開發(fā)難度,縮短開發(fā)周期,從而在一定程度上減少了開發(fā)成本。因此,分層技術(shù)也具有經(jīng)濟(jì)性的優(yōu)勢(shì)。
2. 計(jì)算機(jī)軟件開發(fā)中分層技術(shù)的具體應(yīng)用
目前已經(jīng)在計(jì)算機(jī)軟件開發(fā)中得到應(yīng)用的分層技術(shù)主要有雙層結(jié)構(gòu)技術(shù)、三層技術(shù)、四層技術(shù)、五層技術(shù)以及中間件技術(shù)。
2.1 雙層結(jié)構(gòu)技術(shù)的應(yīng)用
雙層結(jié)構(gòu)技術(shù)是是軟件開發(fā)領(lǐng)域中最早使用的一種分層技術(shù)。其分層較少,只包含服務(wù)器與客戶端兩個(gè)層次。其中客戶端層次主要由用戶進(jìn)行各種操作與控制從而形成指令再將指令傳遞到服務(wù)器,如此就可以使各種工作模塊根據(jù)指令進(jìn)行工作并將工作信息進(jìn)一步反饋至客戶端。在雙層結(jié)構(gòu)模式下,軟件的運(yùn)行容易受用戶數(shù)量與服務(wù)器性能影響,所以隨著現(xiàn)代計(jì)算機(jī)與網(wǎng)絡(luò)的發(fā)展,這種技術(shù)已經(jīng)無(wú)法滿足龐大用戶量下的軟件使用要求。
2.2 三層技術(shù)的應(yīng)用
三層技術(shù)是在雙層結(jié)構(gòu)上增加了一個(gè)應(yīng)用服務(wù)器。其層次構(gòu)成主要有表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)以及數(shù)據(jù)訪問層(DAL)。其中業(yè)務(wù)邏輯層用于減輕表現(xiàn)層的工作壓力,其主要負(fù)責(zé)處理邏輯關(guān)系,從而使表現(xiàn)層解脫出來(lái)可以更多的將功能投向?yàn)橛脩籼峁┝己玫氖褂媒缑?,提升人機(jī)互動(dòng)體驗(yàn)。其具體工作模式如圖1所示。
根據(jù)圖1可以發(fā)現(xiàn),實(shí)際運(yùn)行中表現(xiàn)層負(fù)責(zé)獲取用戶需求并將之傳遞至業(yè)務(wù)邏輯層。業(yè)務(wù)邏輯層對(duì)用戶需求進(jìn)行分析并通過比對(duì)數(shù)據(jù)庫(kù)從中匹配到相關(guān)信息然后進(jìn)一步將信息傳送給數(shù)據(jù)訪問層,隨后數(shù)據(jù)訪問層就會(huì)從數(shù)據(jù)庫(kù)種獲取資料信息并反饋至業(yè)務(wù)邏輯層,該層對(duì)信息進(jìn)行轉(zhuǎn)化處理后再反饋至表現(xiàn)層,最終反饋給用戶。從這一過程來(lái)看,業(yè)務(wù)邏輯層將原本雙層結(jié)構(gòu)的分析壓力進(jìn)一步分?jǐn)?,從而使各層壓力都進(jìn)一步降低,從而極大提升了工作效率。同時(shí),數(shù)據(jù)訪問層進(jìn)一步抽象出了IDAL模塊,其數(shù)據(jù)訪問不用再依靠具體的數(shù)據(jù)庫(kù),這也為數(shù)據(jù)的遷移提供了更大便利。而數(shù)據(jù)訪問層則由專門的DAL Factory模塊進(jìn)行管理,使業(yè)務(wù)邏輯層的訪問更為便利。IDAL接口則由SQL Server DAL與Oracle DAL共同實(shí)現(xiàn),從而使數(shù)據(jù)庫(kù)的Select、Update、Insert 與Delete操作得以實(shí)現(xiàn)。
在軟件設(shè)計(jì)中,三層技術(shù)使得用戶界面與應(yīng)用服務(wù)器可以同時(shí)存在于不同設(shè)備上,從而使軟件開發(fā)還需要解決通信問題,但這在實(shí)際開發(fā)中則需要根據(jù)具體情況進(jìn)行科學(xué)設(shè)計(jì),以確保軟件不同層次間能夠形成有效交互。
2.3 四層技術(shù)的應(yīng)用
四層技術(shù)是伴隨現(xiàn)代web技術(shù)的發(fā)展而產(chǎn)生的。在web技術(shù)廣泛應(yīng)用于計(jì)算機(jī)領(lǐng)域后,其進(jìn)一步加劇了計(jì)算機(jī)運(yùn)算的復(fù)雜性,使得計(jì)算機(jī)運(yùn)算的壓力陡增,這對(duì)計(jì)算機(jī)運(yùn)行速度提出更大考驗(yàn)。在此情況下,運(yùn)用三層技術(shù)開發(fā)出的計(jì)算機(jī)軟件在數(shù)據(jù)處理和邏輯關(guān)系處理方面已經(jīng)顯得過于落后,效率低下,且其層與層之間無(wú)法做到相對(duì)獨(dú)立?;诖耍藗兲剿鞒鏊膶蛹夹g(shù),即進(jìn)一步在三層技術(shù)的基礎(chǔ)上增加一個(gè)封裝層,從而形成了以存儲(chǔ)層、業(yè)務(wù)邏輯層、數(shù)據(jù)層以及web層為主的四層次結(jié)構(gòu)。在四層結(jié)構(gòu)下,軟件的運(yùn)行直接由web層所選擇的路徑?jīng)Q定,從而使軟件運(yùn)行可以根據(jù)實(shí)際用戶需求進(jìn)行合理處理層次的選擇。如用戶量較少時(shí),web層就會(huì)利用數(shù)據(jù)層直接進(jìn)行處理,但如果用戶較多,則會(huì)選擇以業(yè)務(wù)邏輯層進(jìn)行處理,然后再交由數(shù)據(jù)層處理,從而保證數(shù)據(jù)處理效率,提升運(yùn)行能力。
2.4 五層技術(shù)的應(yīng)用
五層技術(shù)是在四層技術(shù)上進(jìn)一步發(fā)展出來(lái)的,其將數(shù)據(jù)層進(jìn)一步拆分為資源層與集成層,從而形成了以業(yè)務(wù)層、客戶層、資源層、web層以及集成層為主的五層結(jié)構(gòu)。其中業(yè)務(wù)層與客戶層是在三層技術(shù)中拓展出來(lái)的,其能提供更為持久的訪問數(shù)據(jù)。而應(yīng)用層與集成層則用來(lái)構(gòu)成數(shù)據(jù)庫(kù)或文件系統(tǒng)。目前,五層技術(shù)已經(jīng)在眾多領(lǐng)域的軟件開發(fā)中得到應(yīng)用,且產(chǎn)生了各種復(fù)雜的計(jì)算機(jī)軟件系統(tǒng),為滿足一些復(fù)雜的應(yīng)用需求提供了技術(shù)支持。如當(dāng)前常用的網(wǎng)上購(gòu)物系統(tǒng)基本都是在五層技術(shù)下開發(fā)出來(lái)的。
網(wǎng)上購(gòu)物系統(tǒng)多是在J2EE操作平臺(tái)上進(jìn)行開發(fā)的。其中用戶界面為用戶提供輸入請(qǐng)求的渠道,而SLB負(fù)責(zé)在服務(wù)器上對(duì)用戶請(qǐng)求進(jìn)行分配并擴(kuò)充系統(tǒng)。Server可以對(duì)進(jìn)程進(jìn)行分配或自行添加。同時(shí)HTTP 服務(wù)器負(fù)責(zé)在web服務(wù)器上生成動(dòng)態(tài)頁(yè)面并傳遞至客戶端。其中應(yīng)用服務(wù)器則負(fù)責(zé)實(shí)現(xiàn)整個(gè)網(wǎng)上購(gòu)物流程。
在具體設(shè)計(jì)中,五層技術(shù)各層之間遵循上下層關(guān)系,不能出現(xiàn)跨層。同時(shí)同一層之間的解決方案不能互相調(diào)用。在分析處理上要從服務(wù)層出發(fā),對(duì)系統(tǒng)所需要的功能實(shí)施分析。此外,要注意將系統(tǒng)中的實(shí)體轉(zhuǎn)化為領(lǐng)域模型,然后以此為基礎(chǔ)設(shè)計(jì)數(shù)據(jù)的DAO層。在service層的設(shè)計(jì)上,主要需要控制其service數(shù)量,盡可能將多個(gè)模塊集中于一個(gè)service。
以某網(wǎng)上購(gòu)物系統(tǒng)為例,其具體運(yùn)行程序?yàn)椋盒畔目蛻魧咏缑鎮(zhèn)鞒觯ㄟ^SLB至web層的HTTP服務(wù)器中,然后服務(wù)器再通過交叉?zhèn)鬟f方式使之進(jìn)一步傳送到業(yè)務(wù)層中。在此過程中,信息數(shù)量與種類的增加就會(huì)導(dǎo)致應(yīng)用服務(wù)器也必須隨之增加。同時(shí)信息會(huì)在集成層的數(shù)據(jù)訪問服務(wù)器中被精細(xì)化與整理,最后傳送到storage完成整個(gè)信息傳遞程序。
2.5 中間件技術(shù)的應(yīng)用
中間件技術(shù)雖然也是分層技術(shù)的一種,但卻與其他分層技術(shù)有著本質(zhì)區(qū)別。具體而言該技術(shù)主要被作為軟件開發(fā)中一種獨(dú)立的系統(tǒng)軟件出現(xiàn),能夠幫助開發(fā)人員規(guī)避各種較為復(fù)雜的開發(fā)技術(shù),從而使軟件開發(fā)更容易。相較于其他分層技術(shù)而言,中間件技術(shù)具有開發(fā)效率高、易于優(yōu)化軟件、更高安全性等特點(diǎn),對(duì)計(jì)算機(jī)軟件開發(fā)提供了更強(qiáng)大的技術(shù)支持。
應(yīng)用中間件技術(shù)開發(fā)軟件,其進(jìn)一步實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的整合,從而使軟件功能被充分發(fā)揮。但該技術(shù)也實(shí)際應(yīng)用中也存在一定局限,即中間件服務(wù)需要依靠專門API與協(xié)議來(lái)運(yùn)行,因此其對(duì)不同用戶的相互操作帶來(lái)不便,不利于服務(wù)的互通。此外,利用中間件開發(fā)軟件本身也具有一定的風(fēng)險(xiǎn),在現(xiàn)代技術(shù)發(fā)展速度日益加快的過程中,以中間件服務(wù)為基礎(chǔ)的應(yīng)用開發(fā)將面臨越來(lái)越大的失敗幾率。
3. 結(jié)束語(yǔ)
隨著計(jì)算機(jī)技術(shù)的持續(xù)發(fā)展,分層技術(shù)還會(huì)結(jié)合現(xiàn)實(shí)應(yīng)用需求而不斷創(chuàng)新出更多的應(yīng)用方式,從而為軟件開發(fā)提供更多技術(shù)支持。基于此,就要求我們繼續(xù)加強(qiáng)對(duì)分層技術(shù)、計(jì)算機(jī)軟件開發(fā)等的研究力度,以使軟件開發(fā)水平能夠?qū)で笮碌耐黄啤?/p>
參考文獻(xiàn):
[1]張恒銘.計(jì)算機(jī)軟件開發(fā)技術(shù)的應(yīng)用及發(fā)展[J].計(jì)算機(jī)產(chǎn)品與流通,2020(07):22.
[2]王曉生.解析計(jì)算機(jī)軟件開發(fā)中分層技術(shù)的實(shí)踐運(yùn)用[J].電腦知識(shí)與技術(shù),2020,16(12):163-164.
[3]吳玉琳.計(jì)算機(jī)軟件開發(fā)語(yǔ)言與分層技術(shù)的運(yùn)用淺析[J].現(xiàn)代鹽化工,2020,47(02):73-74.
[4]林國(guó)富.分層技術(shù)在計(jì)算機(jī)軟件開發(fā)中的應(yīng)用效果分析[J].信息記錄材料,2020,21(02):176-177.