張華卿
(滄州交通學(xué)院,河北 滄州 061199)
在計(jì)算機(jī)軟件開(kāi)發(fā)過(guò)程中,采用分層技術(shù)可以將構(gòu)件功能分解為多個(gè)層次,使其可以在系統(tǒng)運(yùn)作時(shí)保持聯(lián)系和溝通,避免單獨(dú)作用而使任務(wù)疊加,造成資源浪費(fèi)。 該技術(shù)可以提升軟件拓展能力,使指令更加高效運(yùn)行;可以提升軟件質(zhì)量,使客戶(hù)端更加便捷、靈活地操作。 在軟件體系中,分層結(jié)構(gòu)包括數(shù)據(jù)訪問(wèn)層、業(yè)務(wù)邏輯層和表示層,3 個(gè)層面相互溝通和作用,使計(jì)算機(jī)軟件更加靈活,功能性也得到拓展。
在計(jì)算機(jī)軟件技術(shù)開(kāi)發(fā)的過(guò)程中,采用分層技術(shù)可以使端口無(wú)縫對(duì)接更加精準(zhǔn),通過(guò)劃分多個(gè)層次,構(gòu)建完整的軟件系統(tǒng),同時(shí)確保各層次間的關(guān)聯(lián)性,在相鄰層面間設(shè)置接口,使兩個(gè)層面可以相互連接,提升端口無(wú)縫對(duì)接的精準(zhǔn)性,提高軟件開(kāi)發(fā)效率。 在計(jì)算機(jī)應(yīng)用的過(guò)程中,科技在不斷創(chuàng)新和進(jìn)步,軟件開(kāi)發(fā)技術(shù)也需要隨之優(yōu)化,采取有效的軟件開(kāi)發(fā)措施,解決各項(xiàng)問(wèn)題[1]。 分層技術(shù)通過(guò)分層的方式,結(jié)合差異化的工作方法,可以提升各個(gè)層次的運(yùn)作和開(kāi)發(fā)效率,拓展計(jì)算機(jī)軟件使用功能。 要強(qiáng)化分層技術(shù)的應(yīng)用,通過(guò)設(shè)置各個(gè)層次的功能滿(mǎn)足用戶(hù)的各種使用需求。 如果某個(gè)層次出現(xiàn)故障,也可以在其次層次中進(jìn)行控制,避免對(duì)軟件運(yùn)行造成過(guò)大的影響。
分層技術(shù)的應(yīng)用優(yōu)勢(shì)十分明顯,包括拓展性、可靠性和重復(fù)性3 個(gè)方面。 (1)在拓展性方面,分層技術(shù)使軟件有更強(qiáng)的應(yīng)用功能,拓展軟件開(kāi)發(fā),使計(jì)算機(jī)分解為多個(gè)功能板塊,從而簡(jiǎn)化計(jì)算機(jī)系統(tǒng),為軟件的升級(jí)和功能改造提供便利。 分層技術(shù)可以劃分多個(gè)軟件層次,根據(jù)軟件拓展性特點(diǎn),從根本上對(duì)軟件系統(tǒng)各層次功能進(jìn)行修改,不會(huì)對(duì)其他層次造成影響.(2)在可靠性方面,采用分層技術(shù)既可以保證系統(tǒng)正常運(yùn)行,也可以使軟件高效率開(kāi)發(fā)。 在開(kāi)發(fā)過(guò)程中,通常要對(duì)原有功能進(jìn)行提升和改造,減少?gòu)?fù)雜軟件的占用體積,同時(shí)保障新軟件質(zhì)量,以此提升軟件的實(shí)用性[2-4]。 (3)在重復(fù)性方面,可以在開(kāi)發(fā)軟件時(shí)重復(fù)使用分層技術(shù),每個(gè)層次都可以采用相同的方法解決問(wèn)題,通過(guò)程序設(shè)定,計(jì)算機(jī)可以解決已有層次問(wèn)題,實(shí)現(xiàn)計(jì)算機(jī)軟件自主開(kāi)發(fā),運(yùn)用標(biāo)準(zhǔn)接口,達(dá)到無(wú)縫對(duì)接的效果。
在大架構(gòu)規(guī)劃的過(guò)程中,普遍會(huì)依據(jù)云計(jì)算標(biāo)準(zhǔn)三層結(jié)構(gòu)進(jìn)行設(shè)計(jì),包括IaaS 層、SaaS 層和PaaS 層3個(gè)層次。 對(duì)于這3 個(gè)層次,對(duì)應(yīng)的重點(diǎn)分別是IT 基礎(chǔ)設(shè)施和虛擬化、具體的應(yīng)用、平臺(tái)層服務(wù)能力。 資源層的物理資源、虛擬化邏輯資源逐步發(fā)展到容器資源,更加輕量化[5-8]。 平臺(tái)層原本只重視技術(shù)平臺(tái),目前增加了業(yè)務(wù)平臺(tái),也就是中臺(tái)層,并且在平臺(tái)和應(yīng)用層中間增加了服務(wù)層,資源和服務(wù)之間可以相互解耦。 如果與物聯(lián)網(wǎng)類(lèi)應(yīng)用有關(guān),還需要在底層增設(shè)網(wǎng)絡(luò)和感知層,例如智慧城市標(biāo)準(zhǔn)平臺(tái)和應(yīng)用的架構(gòu)如圖1 所示。
圖1 智慧城市標(biāo)準(zhǔn)平臺(tái)和應(yīng)用架構(gòu)
在平臺(tái)與應(yīng)用結(jié)合的構(gòu)建模式下,需要利用單獨(dú)的服務(wù)層實(shí)現(xiàn)平臺(tái)和應(yīng)用之間的接口服務(wù)對(duì)外開(kāi)放。采用SOA 分層架構(gòu)模式,就是應(yīng)用資源、服務(wù)和應(yīng)用相結(jié)合的架構(gòu)模式,所以服務(wù)層可以單獨(dú)拆分為小分層。在整體架構(gòu)構(gòu)建的過(guò)程中,可以獨(dú)立設(shè)置能力開(kāi)放平臺(tái)或服務(wù)層,不需要具體體現(xiàn)業(yè)務(wù)服務(wù)能力的種類(lèi)。因?yàn)閱为?dú)業(yè)務(wù)服務(wù)能力本質(zhì)屬于應(yīng)用層,也就是將應(yīng)用層劃分為業(yè)務(wù)中臺(tái)、前臺(tái)應(yīng)用,具體如圖2 所示。
圖2 服務(wù)層和服務(wù)
對(duì)SOA 架構(gòu)封層,主要在服務(wù)上有所體現(xiàn),組件本身涵蓋在邏輯資源層的概念中,所謂服務(wù)就是資源對(duì)外暴露的能力抽象。 SOA 架構(gòu)封層重點(diǎn)就是展現(xiàn)獨(dú)立服務(wù)層,在開(kāi)發(fā)的過(guò)程中,可以拆分為4 個(gè)組件、10 類(lèi)服務(wù)域、5 類(lèi)流程。
結(jié)構(gòu)分層的方法有很多,包括數(shù)據(jù)層、應(yīng)用層、服務(wù)層、平臺(tái)層等。 本文從技術(shù)和應(yīng)用架構(gòu)兩個(gè)角度分析,技術(shù)架構(gòu)采用云計(jì)算三層模式,應(yīng)用架構(gòu)則采用eTOM 模型標(biāo)準(zhǔn)三層模式,分別是資源、服務(wù)、應(yīng)用[9-10]。 兩種分層架構(gòu)融合在一起,構(gòu)成完整的云和SOA 相互融合的分層架構(gòu)模型。
單個(gè)應(yīng)用架構(gòu)分層最常用的就是三層架構(gòu)模式,在軟件架構(gòu)中,三層架構(gòu)包括用戶(hù)界面層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層3 個(gè)層次。 在實(shí)現(xiàn)過(guò)程中,可能會(huì)增加Facade 層,或服務(wù)提供層、DTO 數(shù)據(jù)傳輸對(duì)象層等,但不會(huì)對(duì)整體結(jié)構(gòu)產(chǎn)生影響。
軟件技術(shù)架構(gòu)可以將軟件三層分層模型作為基礎(chǔ),明確各層采用的關(guān)鍵技術(shù)組件、技術(shù)服務(wù)能力。 以大數(shù)據(jù)平臺(tái)來(lái)說(shuō),包括大數(shù)據(jù)采集、存儲(chǔ)、處理、分析、應(yīng)用,所以該層為關(guān)鍵層,可以將該層作為基礎(chǔ)采用關(guān)鍵技術(shù)對(duì)各層進(jìn)行處理。 技術(shù)架構(gòu)和軟件功能分層架構(gòu)在分層上相同,技術(shù)架構(gòu)在各個(gè)分層中并沒(méi)有具體的業(yè)務(wù)功能點(diǎn)體現(xiàn),只是對(duì)關(guān)鍵技術(shù)的說(shuō)明[11]。在應(yīng)用系統(tǒng)功能分層的過(guò)程中,可以參考業(yè)務(wù)分層分類(lèi),以業(yè)務(wù)為基礎(chǔ),進(jìn)而分為支撐層、執(zhí)行層、決策層3個(gè)層次,以此獲得基本的分層模式,并設(shè)計(jì)功能架構(gòu)。
雙層技術(shù)是一種比較簡(jiǎn)單的分層技術(shù),包括服務(wù)器、客戶(hù)端等層次。 其中,客戶(hù)端用于提供操作界面,服務(wù)器則可以接收客戶(hù)端發(fā)出的指令信息,同時(shí)也可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行邏輯處理。 該技術(shù)具有結(jié)構(gòu)簡(jiǎn)單和雙向性的特點(diǎn),如果用戶(hù)數(shù)量較少,且不需要較長(zhǎng)的運(yùn)算時(shí)間,則可以滿(mǎn)足數(shù)據(jù)要求。 如果軟件用戶(hù)數(shù)量大幅度增加,運(yùn)算進(jìn)程會(huì)降低,容易產(chǎn)生漏洞。
雖然雙層技術(shù)會(huì)因?yàn)橛脩?hù)數(shù)量、需求的增加而產(chǎn)生結(jié)構(gòu)缺陷,但可以將雙層技術(shù)作為基礎(chǔ),開(kāi)發(fā)三層技術(shù),以此來(lái)彌補(bǔ)原本的缺陷和不足。 三層技術(shù)在客戶(hù)端、服務(wù)器即中間添加服務(wù)器作為緩沖,解決了原本運(yùn)行效率上的缺陷。 在服務(wù)器應(yīng)用的過(guò)程中,對(duì)雙層結(jié)構(gòu)客戶(hù)端的內(nèi)容進(jìn)行邏輯處理,既可以降低客戶(hù)端負(fù)擔(dān),也可以和客戶(hù)端協(xié)同運(yùn)行,從而提升數(shù)據(jù)處理的效率。
隨著技術(shù)的進(jìn)步,人們對(duì)軟件功能有了更高的要求,計(jì)算機(jī)軟件應(yīng)用環(huán)境改善的同時(shí),也要提升數(shù)據(jù)處理能力。 這種情況下,三層結(jié)構(gòu)、性能已無(wú)法滿(mǎn)足人們的需求,需要采用四層技術(shù)。 將三層技術(shù)作為基礎(chǔ),構(gòu)建存儲(chǔ)層、數(shù)據(jù)層、業(yè)務(wù)邏輯層、Web 層等結(jié)構(gòu)類(lèi)型。存儲(chǔ)層可以存儲(chǔ)數(shù)據(jù);業(yè)務(wù)邏輯層則進(jìn)行邏輯運(yùn)算;數(shù)據(jù)層整合數(shù)據(jù),然后利用Web 層向網(wǎng)絡(luò)傳輸數(shù)據(jù)[12-13]。 Web 層根據(jù)用戶(hù)需求選擇路徑,如果用戶(hù)需求較少,則Web 層直接向數(shù)據(jù)層發(fā)送信息。 如果用戶(hù)需求多層結(jié)構(gòu)處理大數(shù)據(jù),則向業(yè)務(wù)邏輯層傳輸數(shù)據(jù),同時(shí)進(jìn)行分析和處理,以此提升系統(tǒng)運(yùn)算準(zhǔn)確性。
雖然四層技術(shù)可以更好地滿(mǎn)足軟件技術(shù)開(kāi)發(fā)需求,但一些特殊領(lǐng)域?qū)浖囊笠脖容^特殊,應(yīng)該將以上技術(shù)作為基礎(chǔ),將數(shù)據(jù)層進(jìn)一步分為集成層和資源層,使系統(tǒng)更加高效運(yùn)作。 目前,五層結(jié)構(gòu)在J2EE環(huán)境中廣泛應(yīng)用,以三層結(jié)構(gòu)為基礎(chǔ)進(jìn)行延伸,構(gòu)成了應(yīng)用層、業(yè)務(wù)邏輯層、客戶(hù)層、信息資源層、集成層等。
綜上所述,在計(jì)算機(jī)技術(shù)軟件開(kāi)發(fā)的過(guò)程中,可以采用分層技術(shù),包括雙層技術(shù)、三層技術(shù)、四層技術(shù)和五層技術(shù)。 具體的技術(shù)應(yīng)用可以根據(jù)需求進(jìn)行選擇,三層和四層技術(shù)的應(yīng)用較為廣泛,五層技術(shù)具有特殊性,可以在特定領(lǐng)域中應(yīng)用,進(jìn)而滿(mǎn)足不同用戶(hù)的使用需求。