張占孝 西安職業技術學院
目前,計算機軟件的功能越來越多樣化、復雜化,這給軟件開發造成了極大的難度,以往的單層結構已經難以適應當前計算機軟件的要求。而利用分層技術可以在軟件開發的過程中建立雙層乃至多層結構,這可以使軟件的運行更加靈活,各項性能有效提升,也能滿足用戶對于軟件功能的多樣化要求。
分層技術是時下計算機軟件開發當中應用較為廣泛的一種技術,這主要是由于當前人們對于軟件的要求不斷提高,導致軟件系統的復雜程度不斷提升。為了應對這種情況,開發人員開始采用分層技術,所謂分層技術就是在軟件開發的過程中將系統分為多個概念層,每個概念層的工作流程不同,并且解決方案也不同,各個概念層之間存在一定聯系,由這些概念層共同構成一個完整的軟件系統。這種技術的優勢在于可以將復雜的軟件系統分化為多個概念層,其相互聯系,同時又相互獨立,既可以降低軟件開發的難度,同時也能保證軟件運行的穩定性。
利用分層技術可以實現復雜軟件系統的分化,通過建立多層結構將復雜的系統分解為多個概念層,然后逐層進行完善,這樣可以有效保障軟件的各項功能有效運行,相互聯系同時相互獨立,可以滿足用戶的多重要求,提升用戶的使用體驗。
通過分層技術在軟件系統中構建的多層結構,實現了軟件之間的解耦,降低了組件之間的耦合度,各層之間雖然存在一定的聯系,但是各層之間又有一定的獨立性,如果某一層運行過程中出現故障,并不會導致整個系統癱瘓,無法運行,僅會對相鄰結構層產生一定的影響。這可以有效降低系統維護人員修復的難度確保系統可以快速恢復正常。
分層技術的應用便于進行合理的分工,能夠實現軟件系統的抽象化發展,縮短軟件開發時間,加快軟件開發效率。另外,分層技術的應用在一定程度上也提升了實踐的目的性和針對性,對于增強軟件運行的穩定性和可靠性有著顯著成效。
一個完整的軟件系統是由多個組件構成的,利用分層技術可以有效提升組件的重用。簡單來說,分層就相當于產品配件的模塊化,每種功能的模塊不同,根據用戶的需求將不同的模塊進行組合就得到用戶需要的產品,如果在使用過程中發現某一模塊不適用,只需要將其更換就可以,并不需要重新設計產品,其他模塊依然可以發揮作用。
雙層技術的應用主要是單層結構已經難以適應復雜軟件系統的要求,從而單層的基礎上誕生了雙層技術。雙層技術主要指的是軟件客戶端與服務器,客戶端主要為用戶提供相應的服務,服務器負責接收客戶端傳輸的用戶需求信息,然后在數據庫中查詢、分析、整理,最終通過客戶端反饋給用戶。雙層結構的模式主要受到兩方面因素的影響,其一是使用軟件的用戶數量;其二是服務器當前運行情況。無論哪一個因素都會影響到服務器處理用戶信息的效率,甚至可能會影響處理結果,因此,在實際應用過程中需要保障服務器運行良好,并且要控制使用人數,如果是一些瀏覽量較大的軟件,采用雙層結構可能難以負荷龐大的用戶同時使用。
三層技術是在雙層技術基礎上的進一步完善,雙層技術在實踐應用過程中具有明顯的限制,即服務器與使用人數,三層技術在一定程度上彌補了這一缺陷。三層技術主要包括業務層、處理層以數據層,界面層作為用戶端,主要用于接收用戶的需求信息,而業務層則對用戶的需求信息進行分析,并向數據層傳輸,有數據層最終向用戶反饋信息。這種三層結構的模式將系統進一步分解,降低了每一層的壓力,使軟件系統運行的穩定性更高,相較于雙層結構,其明顯具有更大的優勢。
當前,計算機應用的場景越來越復雜化,計算機軟件需要具備的功能也越來越多樣化,并且軟件使用人數也比較龐大,雙層結構和三層結構逐漸暴露處出了一定的缺陷,難以適應當前用軟件開發的需求,因此,在此基礎上誕生了四層技術。四層技術主要包括業務層、數據層、Web 層、儲存層。計算機軟件開發過程中,首先利用業務處理層分析用戶需求;其次,將分析結果傳遞給數據層;最后,將數據層的處理結果傳遞到Web 層。這種技術通過數據交換直觀反映數據庫與計算機對象之間的關系,能夠有效提高軟件的優化效率。
某個有著復雜功能的多人在線社區,其服務器端是我們需要討論的重點。這個產品的服務器端必須滿足多樣的功能:玩家移動到不同的場景中,玩家可以換上不同的服裝,可以互相加好友并且聊天,同時還有廣播頻道的聊天,每個玩家還有自己的資料庫和背包,另外還有各種運營活動。
在最初的開發過程中,開發人員針對每個需要開發的功能,建立了一個模塊,這些模塊通過單獨和客戶端、數據庫的操作,完成所需功能。如果要開發新功能,就重新寫一個這樣的模塊。這種架構設計在一開始是非常有效的,產品功能被不斷的開發出來,模塊的數量也在增多,但是也潛藏了一個問題。此問題是在“社區任務系統”的開發出現的,因為任務系統本質上是需要很多其他模塊的功能提供支持。如需要玩家去某個場景(場景模塊),獲得某個東西(背包模塊),然后添加一個好友(好友模塊),或者換上某個服裝,說一句話等等,這些任務功能的實現,被迫要修改很多個模塊的代碼,因為每個模塊都只有最基本的“自由功能”功能的代碼,編程接口都僅僅是面向客戶端的,而數據結果直接由SQL 到數據庫。這種需要組合的功能請求,以及獲得功能的結果狀況,其接口上不具備,這導致了非常復雜的、持續的代碼修改。
針對這一問題開發人員決定重構整個架構,把架構從一字排開的設計,修改成為可以多個層次互相調用的模塊。這些模塊直接的接口,有面向客戶端的,也有面向其他模塊的,這樣我們就能直接調用那些現成的功能,組合開發出更復雜強大的功能。不管任務系統如何變化,我們都可以不用重寫那些已經實現的功能,這讓整個系統成為可以應對這種需求變化的關鍵。通過利用分層技術構建了一個合理的多層結構系統,完美解決了“任務系統”所帶來的問題。
當下,分層技術在計算機軟件開發中逐漸被廣泛的采用,從最初的雙層結構到當前的多層結構,已經成為計算機軟件開發領域一個重要的發展趨勢,隨著技術的革新和發展,分層技術必然還會進一步發展。