摘要:在信息化時代,計算機軟件獲得了廣泛應用,計算機軟件的開發(fā)也受到廣泛關注。隨著軟件開發(fā)技術(shù)不斷完善,計算機軟件已由單項業(yè)務處理向多層次結(jié)構(gòu)技術(shù)發(fā)展,本文就計算機軟件開發(fā)中的分層技術(shù)進行了分析探討。
關鍵詞:計算機;軟件開發(fā);分層技術(shù)
中圖分類號:TM769 文獻標識碼:A 文章編號:1007-9599(2012)24-0162-02
隨著網(wǎng)絡技術(shù)發(fā)展,計算機軟件也由二層結(jié)構(gòu)模式開發(fā)向多層結(jié)構(gòu)模式開發(fā)轉(zhuǎn)變。在多層結(jié)構(gòu)當中,中間件成為應用層的關鍵,也成為應用軟件開發(fā)的新技術(shù),并與數(shù)據(jù)庫、操作系統(tǒng)構(gòu)成計算機的基礎軟件。隨著計算機軟件應用的環(huán)境不斷復雜化,設計多層結(jié)構(gòu)體系,使用軟件分層和程序模塊化,可讓軟件系統(tǒng)流程更為清晰,更易于維護與擴展,增強了計算機軟件開發(fā)的靈活性與適應性,因此分層技術(shù)已在現(xiàn)代計算機軟件開發(fā)中獲得了廣泛應用。
1 計算機層次軟件及其優(yōu)點
計算機軟件工程目標是開發(fā)高質(zhì)量軟件產(chǎn)品。基于構(gòu)建開發(fā),會為計算機軟件的重用提供保障。構(gòu)件作為高內(nèi)聚度軟件包,能作為獨立單元進行開發(fā),也方便與其它構(gòu)件組合?;跇?gòu)件軟件開發(fā),可應用已通過嚴格測試實現(xiàn)的構(gòu)件,實施新軟件系統(tǒng)的搭建,這樣不僅能夠節(jié)省大量軟件開發(fā)時間,還能讓新軟件產(chǎn)品質(zhì)量獲得保證。構(gòu)件開發(fā)目的是為復用,實施層次化軟件設計主要是為充分運用構(gòu)件技術(shù)。軟件系統(tǒng)經(jīng)過分解成各構(gòu)件模塊,高層次構(gòu)件被認為特定領域構(gòu)件,低層次構(gòu)件僅與數(shù)據(jù)庫或者物理硬件相關聯(lián),提供一些通用的算法,可被認為公共的服務構(gòu)件,不同軟件系統(tǒng)當中均可應用低層次構(gòu)件。在計算機軟件結(jié)構(gòu)當中,層次的劃分僅是籠統(tǒng)概念,并沒有嚴格意義上的層次關系,各構(gòu)件內(nèi)部的層次僅是上下層的依賴關系,計算機軟件的系統(tǒng)層次化,粗略角度來看,是多層次構(gòu)件聚集,細致角度來看,才具有內(nèi)部層次關系,層次技術(shù)應用,很大程度上是為了軟件開發(fā)中復用。在計算機軟件開發(fā)當中,運用分層模式,能夠支持系統(tǒng)設計的逐級抽象,可在功能上,將復雜系統(tǒng)按照遞增步驟給予分解,逐級轉(zhuǎn)化到系統(tǒng)設計中。運用分層模式,能讓軟件系統(tǒng)具有良好可擴展性,系統(tǒng)某層功能變化,僅與上下層相關,基本不影響其他層。分層模式也能支持計算機軟件的復用,現(xiàn)在很多標準組織是運用分層模式來定義功能層次的接口,對實現(xiàn)方法并不給予具體限制,標準接口的遵循,能讓不同軟件實施自行開發(fā),對于開發(fā)后的軟件產(chǎn)品,能與其他計算機軟件實施無縫隙的結(jié)合。
2 軟件開發(fā)中的多層技術(shù)分析
在計算機技術(shù)不斷發(fā)展中,其軟件開發(fā)中的層次已由兩層、三層向多層結(jié)構(gòu)體系發(fā)展,分層技術(shù)也得到了不斷完善發(fā)展,不同層次結(jié)構(gòu)體系的軟件功能是有所不同的,下面對兩層、三層與四層結(jié)構(gòu)技術(shù)進行了分析。
2.1 兩層與三層結(jié)構(gòu)技術(shù)
在兩層計算機軟件模式當中,主要是由數(shù)據(jù)庫的服務器與客戶端所構(gòu)成的,其中,客戶端能提供用戶界面,并負責有關邏輯處理,而服務器對客戶端的指令進行接受,并根據(jù)指令查詢數(shù)據(jù)庫,且返回查詢的結(jié)果,此種邏輯處理結(jié)構(gòu)稱之為Fat客戶,這種二層技術(shù)的客戶端實施了大量業(yè)務邏輯處理,客戶端的數(shù)量一旦增加,就會出現(xiàn)擴充性差、無交互操作、通信應用差、維護成本大以及存在安全隱患等缺點。隨著計算機應用系統(tǒng)大量需求,原來二層技術(shù)結(jié)構(gòu)已不能滿足應用系統(tǒng)要求了,出現(xiàn)了三層結(jié)構(gòu)技術(shù),這種層次技術(shù)主要由客戶端、應用服務器與數(shù)據(jù)服務器所構(gòu)成,其中,客戶端提供人機交互,數(shù)據(jù)服務器可提供數(shù)據(jù)信息訪問、存儲與優(yōu)化等,而應用服務器能實現(xiàn)相關的業(yè)務邏輯,有效降低了客戶端負擔,可稱之為瘦客戶,如日立的ERP系統(tǒng)的軟件結(jié)構(gòu)就運用了三層結(jié)構(gòu)技術(shù),主要包括界面層(客戶端)、業(yè)務處理以及數(shù)據(jù)層等,其中,界面層負責用戶和系統(tǒng)的接口,對用戶的軟件應用操作進行接收;數(shù)據(jù)層所負責的是向整體系統(tǒng)進行操作數(shù)據(jù)提供,所考慮的是系統(tǒng)數(shù)據(jù)傳輸?shù)男省⑿阅芤约皵?shù)據(jù)的安全性,而業(yè)務處理層是依據(jù)用戶軟件要求,對用戶指令給予分析處理后,向數(shù)據(jù)層進行數(shù)據(jù)請求操作的提出,通過這種三層的C/S結(jié)構(gòu)實現(xiàn)應用目的。與二層結(jié)構(gòu)相比,這種分層技術(shù)具有可重用、易維護、擴展性強、安全性高以及有效降低網(wǎng)絡負荷等作用,三層結(jié)構(gòu)的分層技術(shù)盡管優(yōu)點眾多,但二層結(jié)構(gòu)并未退出歷史的舞臺,在用戶數(shù)量較少的時候,兩層結(jié)構(gòu)更具有優(yōu)勢。因此在軟件開發(fā)中,應根據(jù)實際狀況,決定何種分層技術(shù)。
2.2 四層結(jié)構(gòu)技術(shù)
隨著計算機應用環(huán)境日亦復雜化,客戶對軟件系統(tǒng)要求也越來越高,主要表現(xiàn)為軟件開發(fā)周期短,系統(tǒng)穩(wěn)定性高,系統(tǒng)維護和擴展更便捷。為滿足客戶對軟件系統(tǒng)上述要求,我們需要將用戶界面、業(yè)務邏輯以及數(shù)據(jù)庫服務器按照功能模塊進行分開,使其彼此獨立,降低彼此間的相互影響。此時,運用三層次的分層技術(shù)就較難實現(xiàn)。多數(shù)軟件開發(fā)者會在數(shù)據(jù)庫與邏輯層交互當中,增加一層對數(shù)據(jù)庫接口實施進一步封裝,這樣三層體系就向四層體系擴展了。四層結(jié)構(gòu)體系主要包含web層、業(yè)務邏輯層、數(shù)據(jù)持久層與存儲層。其中,web層可以使用模式1或模式2開發(fā)。在模式1中,基本是由JSP頁面所構(gòu)成,當接收客戶端的請求之后,能直接給出響應,使用少量Java處理數(shù)據(jù)庫的有關操作。模式1實現(xiàn)較為簡單,可用于小規(guī)模項目快速開發(fā),這種模式的局限性也很明顯,JSP頁面主要擔當了控制器與視圖View兩類角色,其表現(xiàn)及控制邏輯被混為一體,有關代碼重用功能較低,應用系統(tǒng)的維護性與擴展性難度加大,并不適合復雜應用系統(tǒng)開發(fā)。模式2主要是基于MVC結(jié)構(gòu)進行設計的,JSP不再具有控制器職責,由Servlet當作前端的控制器進行客戶端請求的接收,并通過Java實施邏輯處理,而JSP僅具有表現(xiàn)層的角色,將結(jié)果向用戶呈現(xiàn),這種模型主要適合大規(guī)模項目的應用開發(fā)。業(yè)務邏輯層在數(shù)據(jù)持久層與web層間,主要負責將數(shù)據(jù)持久層中的結(jié)果數(shù)據(jù)傳給web層,作為業(yè)務處理核心,具有數(shù)據(jù)交換的承上啟下功能,業(yè)務邏輯層的技術(shù)依據(jù)業(yè)務及功能大小不同,能夠分成Java Bean與EJB兩種封裝的業(yè)務邏輯,其中EJB簡化了Java語言編寫應用系統(tǒng)中的開發(fā)、配置與執(zhí)行,不過EJB并非實現(xiàn)J2EE唯一的方法,支持EJB應用的程序器能應用任何分布式的網(wǎng)絡協(xié)議,像JRMP、IIOP與專有協(xié)議等。數(shù)據(jù)持久層主要在數(shù)據(jù)存儲層與業(yè)務邏輯層間,對數(shù)據(jù)操作讀取中的全部數(shù)據(jù)訪問的代碼細節(jié)進行了隱藏,將數(shù)據(jù)持久層進行單獨提出,可在對象與關系數(shù)據(jù)庫間進行計算機軟件映射方案的解決,對關系與對象間的范例阻抗不匹配差異進行了彌補,其中,OLAP技術(shù)為數(shù)據(jù)倉庫關鍵決策分析的工具,能依據(jù)分析人員要求,實施大量數(shù)據(jù)靈活快速查詢處理。數(shù)據(jù)存儲層主要任務為數(shù)據(jù)定義、存取、維護與修改,以滿足計算機軟件中對象層數(shù)據(jù)的請求,提供大量數(shù)據(jù)來源,在數(shù)據(jù)持久層與業(yè)務邏輯層間,經(jīng)過消息中間件實施通信與數(shù)據(jù)傳遞。中間件的應用確保了兩層次間相對的獨立性,對網(wǎng)絡通信的細節(jié)進行了屏蔽,中間技術(shù)作用是非常重要的。
2.3 中間件技術(shù)
隨著數(shù)據(jù)通信與計算機網(wǎng)絡發(fā)展,中間件技術(shù)作為面向?qū)ο蠹夹g(shù)被開發(fā),中間件主要是在分布式的計算環(huán)境當中,對互通、互連及資源共享等應用功能實現(xiàn)的獨立系統(tǒng)軟件,能夠屏蔽異構(gòu)與分布集成所帶來的各種復雜技術(shù)的細節(jié),大大減少了技術(shù)上的負擔。中間件能重用于操作系統(tǒng)、數(shù)據(jù)庫與應用軟件間的結(jié)構(gòu),具有縮短開發(fā)周期、加強應用開發(fā)、確保系統(tǒng)運行與降低軟件開發(fā)風險等作用。中間件種類較多,依據(jù)技術(shù)不同,在系統(tǒng)作用中,能分成DM、MOM、OOM中間件、RPC與TPM中間件等,這些中間件在計算機軟件的實際開發(fā)中,獲得了廣泛應用。
2.3.1 面向消息中間件(MOM)
MOM中間件技術(shù)將信息同步傳送,也可異步傳送。MOM除了具有一般中間件特點外,還具有異步通信、消息傳遞列隊化與傳遞的安全可靠等特點。軟件開發(fā)中,MOM分層技術(shù)已成中間件技術(shù)領域中銷售最大及應用最廣的中間件產(chǎn)品,在交通、金融及郵電等行業(yè)獲得了廣泛應用。應用消息列隊的中間件實施應用編程的時候,其應用程序主要運用消息列隊的中間件與對方進行間接通訊。與遠地或者本地應用程序進行通信時,它是通過隊列管理器完成服務的,對于通信雙方來說,只要把消息交給隊列管理器即可,無需關心消息怎樣到達,是否會丟失等,有效簡化了軟件的開發(fā)形式,消息列隊的中間件能夠多平臺多協(xié)議支持。
2.3.2 遠程過程調(diào)用中間件(RPC)
遠程過程調(diào)用的中間件應用在客戶和服務器計算方面,與數(shù)據(jù)庫相比,更具先進性和實用性;通過應用遠程過程調(diào)用機制,程序員可以編寫客戶方需要的應用。由于RPC具有較強的靈活性,可以在較為復雜的計算環(huán)境中應用,同時也支持跨平臺使用,實時調(diào)用遠端的子程序,充分滿足編程過程的細節(jié)問題。但是RPC應用也具有一些不足之處,主要體現(xiàn)為RPC普遍用于程序之間的通信功能,是采取同步通信方法,只能在小型范圍內(nèi)使用,在大型應用環(huán)境中,顯然這種方式存在阻礙,必須考慮網(wǎng)絡故障、處理并發(fā)操作、流量控制、進程同步等更多方面的問題。
2.3.3 面向?qū)ο蟮闹虚g件(Object Oriented Middieware)
在當前一些大型應用軟件中,多采用基于組件技術(shù),同時分布系統(tǒng)還需要集成各個節(jié)點中不同系統(tǒng)平臺的新組件與老版組件;但是這些組件的應用面臨相互兼容、相互操作的問題,如果只能在各自的平臺中運行,則無法發(fā)揮應有作用。因此,研發(fā)應對該種組件環(huán)境的中間件應運而生,基于對象技術(shù)與分布式技術(shù)的發(fā)展,面向?qū)ο蟮闹虚g件提供了一種全新的通訊機制,可以在異構(gòu)分布的計算環(huán)境中滿足傳遞對象請求,這些對象可以來自本地服務器,也可來自遠程機器。在面向?qū)ο蟮闹虚g件中,CORBA的功能較為強大,可以實現(xiàn)跨平臺應用,但是過于龐大,應用過程復雜;JavaBeans相對靈活、便捷,可以在瀏覽器中應用,但是運行效率有待提高;DCOM模型可以在Windows平臺操作,當前應用較為廣泛。但是由于DCOM與CORBA兩種標準的競爭較為激烈,二者存在一定差別,阻礙了面向?qū)ο笾虚g件的標準化進程。
3 結(jié)束語
隨著計算機應用環(huán)境的復雜性,客戶要求不斷提高,計算機軟件為滿足客戶需求,在軟件開發(fā)中,分層技術(shù)應用越來越廣泛,傳統(tǒng)兩層技術(shù)模式不能適應現(xiàn)代企業(yè)對計算機技術(shù)的應用需求了,經(jīng)過兩層及三層分層模式優(yōu)缺點對比,多層分布結(jié)構(gòu)系統(tǒng)的應用具有很強的擴展性與安全性,并且處理能力強,其開發(fā)周期較短,在多層體系結(jié)構(gòu)當中,中間件技術(shù)應用也發(fā)揮了很大作用,有效提高了軟件的開發(fā)技術(shù),以滿足客戶對計算機軟件的需求。
參考文獻:
[1]趙明亮.計算機應用軟件開發(fā)技術(shù)[J].黑龍江科技信息,2011(26)
[2]張冰.小組軟件過程建模方法及過程定義重用研究[D].哈爾濱工程大學,2009
[3]尹可挺.Internet環(huán)境中基于QoS的Web服務組合研究[D].浙江大學,2010