邵泳兵
(汕頭職業(yè)技術(shù)學(xué)院,廣東 汕頭 515041)
隨著科學(xué)技術(shù)的不斷發(fā)展,計(jì)算機(jī)技術(shù)的應(yīng)用改變了人們的基本生活,也使軟件開發(fā)出現(xiàn)了新的挑戰(zhàn)?,F(xiàn)階段,計(jì)算機(jī)技術(shù)的發(fā)展促進(jìn)了軟件開發(fā)領(lǐng)域的改革,主要由組件技術(shù)進(jìn)行驅(qū)動(dòng),提高了軟件開發(fā)的效率,促進(jìn)了傳統(tǒng)的客戶端/服務(wù)器架構(gòu)、群件中間件等大型軟件系統(tǒng)的重組[1]。組件技術(shù)的出現(xiàn)改變了軟件的開發(fā)方式,使軟件開發(fā)的內(nèi)容可以分為多個(gè)層次,每個(gè)層次作為一個(gè)獨(dú)立的組件,通過(guò)組裝成為一個(gè)完整的系統(tǒng),為軟件開發(fā)提供了便利。因此,組件技術(shù)在軟件開發(fā)過(guò)程中得到了有效的推廣和應(yīng)用。
隨著現(xiàn)代信息技術(shù)的不斷發(fā)展,云計(jì)算技術(shù)得到了廣泛的應(yīng)用。云計(jì)算的應(yīng)用可以實(shí)現(xiàn)云平臺(tái)的建設(shè),在設(shè)備管理和資源合理配置方面提供有利的基礎(chǔ)和支持。通過(guò)云計(jì)算的應(yīng)用,可以配置相關(guān)的集群系統(tǒng),實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面的合理處理,可以有效滿足各種系統(tǒng)的基本需求。就互聯(lián)網(wǎng)領(lǐng)域的發(fā)展而言,云計(jì)算技術(shù)在金融、電商、教育等眾多行業(yè)有著非常廣泛的應(yīng)用,其中的代表就是阿里云系統(tǒng),該系統(tǒng)不僅具有靈活的計(jì)算能力,而且擁有龐大的數(shù)據(jù)庫(kù),所以兼容性強(qiáng),訪問(wèn)效率高,可以滿足用戶的基本要求。因此,隨著云計(jì)算技術(shù)的日益普及,可以更好地滿足現(xiàn)代人的多樣化需求,不僅可以為人們提供高效的服務(wù),還可以有效地存儲(chǔ)和處理大量數(shù)據(jù)和信息。
在全球化的發(fā)展過(guò)程中,我國(guó)的科技和經(jīng)濟(jì)不斷發(fā)展,特別是在國(guó)際化的背景下,計(jì)算機(jī)軟件的發(fā)展贏得了眾多企業(yè)的青睞,在科學(xué)研究和人力資源培訓(xùn)方面取得了巨大的突破。但是,在發(fā)展過(guò)程中,全球經(jīng)濟(jì)的影響,給我國(guó)計(jì)算機(jī)軟件的發(fā)展帶來(lái)了巨大的壓力。我國(guó)的計(jì)算機(jī)軟件技術(shù)的研發(fā)歷史較短,與發(fā)達(dá)國(guó)家相比還存在一定的差距。而且由于我國(guó)在計(jì)算機(jī)軟件創(chuàng)新方面的研發(fā)較少,核心的軟件產(chǎn)品尚未形成,導(dǎo)致軟件產(chǎn)品在使用過(guò)程中出現(xiàn)嚴(yán)重的不平衡現(xiàn)象。在不能滿足數(shù)字化和網(wǎng)絡(luò)化基本需求的情況下,我國(guó)計(jì)算機(jī)軟件開發(fā)行業(yè)需要通過(guò)對(duì)核心技術(shù)進(jìn)行相應(yīng)的研究,對(duì)一些成功案例進(jìn)行相應(yīng)的分析,尋找軟件開發(fā)的方向。另外,我國(guó)計(jì)算機(jī)軟件開發(fā)技術(shù)人才應(yīng)用存在嚴(yán)重的不合理現(xiàn)象,在計(jì)算機(jī)軟件開發(fā)過(guò)程中沒有完全養(yǎng)成良好的習(xí)慣,因此在硬件上的資金投入大大減少。人才結(jié)構(gòu)嚴(yán)重不合理,對(duì)知識(shí)產(chǎn)權(quán)保護(hù)意識(shí)相對(duì)薄弱,使得計(jì)算機(jī)軟件的開發(fā)難度加大,導(dǎo)致我國(guó)軟件開發(fā)技術(shù)前景堪憂。
在軟件開發(fā)過(guò)程中,軟件使用的傳統(tǒng)開發(fā)模型還有很多,而且這些模型都是獨(dú)立版本,存在使用效率低、容易受到干擾等問(wèn)題,在使用該資源的過(guò)程中存在一定的限制,使其他資源無(wú)法科學(xué)使用。云計(jì)算技術(shù)改變了傳統(tǒng)軟件開發(fā)的局限,打破了傳統(tǒng)的軟件開發(fā)模式,可以提高軟件開發(fā)過(guò)程中資源利用效率。從單機(jī)版升級(jí)成了云計(jì)算,從開發(fā)的模式上來(lái)看,是極為有利的[2]。
在云計(jì)算技術(shù)的影響下,軟件設(shè)計(jì)也取得了很大的突破,軟件設(shè)計(jì)結(jié)構(gòu)多樣化,通過(guò)利用云計(jì)算技術(shù)逐漸提高了信息獲取的速度,在獲取信息的過(guò)程中,逐漸編程虛擬化,在這種情況下設(shè)計(jì)方向出現(xiàn)了變化,資源可隨時(shí)隨地使用,不會(huì)受到地域或者是時(shí)間限制,設(shè)計(jì)機(jī)構(gòu)得到加強(qiáng),推動(dòng)軟件設(shè)計(jì)的發(fā)展。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,軟件的重要性越來(lái)越高,軟件的獨(dú)立性越來(lái)越明顯。云計(jì)算技術(shù)的應(yīng)用,推動(dòng)了軟件開發(fā)向更加服務(wù)化的方向發(fā)展,軟件開發(fā)的抽象性和開放性逐漸增強(qiáng),從封閉的計(jì)算機(jī)平臺(tái)向互聯(lián)互通的協(xié)同計(jì)算機(jī)平臺(tái)轉(zhuǎn)變,特別是圍繞網(wǎng)絡(luò)結(jié)構(gòu),成為未來(lái)軟件發(fā)展的一大趨勢(shì)。其特點(diǎn)主要是自主性、協(xié)同性、進(jìn)化性等。
云計(jì)算對(duì)軟件開發(fā)的影響也體現(xiàn)在一個(gè)以Hadoop為核心的設(shè)計(jì)模型上,它是軟件設(shè)計(jì)的核心軟件,主要任務(wù)是處理數(shù)據(jù),從大量數(shù)據(jù)中提取部分?jǐn)?shù)據(jù),轉(zhuǎn)換和加載數(shù)據(jù)。在建模、設(shè)計(jì)軟件時(shí),利用云計(jì)算技術(shù)不僅可以讓模型中的數(shù)據(jù)更多,還可以保證軟件的使用效率。
在軟件架構(gòu)方面,面向數(shù)據(jù)流的軟件設(shè)計(jì)方法主要是構(gòu)建一個(gè)線性架構(gòu),可以將數(shù)據(jù)從輸入發(fā)送到輸出,一般這種架構(gòu)也可以詳細(xì)描述為三種:作業(yè)處理類型、過(guò)濾器類型和批處理的結(jié)構(gòu)。本質(zhì)上是一個(gè)數(shù)據(jù)處理單元,組件之間的連接器是處理單元通過(guò)的通道。以過(guò)濾器類型為例,具有獨(dú)立過(guò)濾器的特性,每個(gè)過(guò)濾器都有一組輸入和一組輸出。數(shù)據(jù)會(huì)進(jìn)行變換、計(jì)算等內(nèi)部處理操作,經(jīng)過(guò)下一次粗略的操作后,將數(shù)據(jù)流送到輸出集,依次進(jìn)行完整的一系列計(jì)算[3]。
虛擬體作為軟件架構(gòu)的一種,可以避免底層硬件的異構(gòu)性對(duì)軟件運(yùn)行的影響,因此系統(tǒng)的適應(yīng)性結(jié)構(gòu)非常好。在虛擬架構(gòu)中,組件類型主要包括虛擬機(jī)執(zhí)行引擎、存儲(chǔ)輸入數(shù)據(jù)的組件、存儲(chǔ)虛擬機(jī)當(dāng)前狀態(tài)的組件等。連接器通常是直接存儲(chǔ)的訪問(wèn)或過(guò)程調(diào)用組件。虛擬架構(gòu)的指令體現(xiàn)在機(jī)器指令集中,例如基于解釋器建立Java虛擬架構(gòu),設(shè)計(jì)者可以使用解釋器來(lái)構(gòu)建彌補(bǔ)計(jì)算引擎之間差距的虛擬機(jī)。
軟件框架設(shè)計(jì)包括組件層、中間件層、應(yīng)用層和容器層。中間件屬于應(yīng)用軟件的基礎(chǔ)平臺(tái),可以安裝在服務(wù)器的不同節(jié)點(diǎn)上。容器層為組件提供了生存環(huán)境。組件是軟件應(yīng)用的主體,軟件的配置是通過(guò)將組件組裝成一個(gè)容器來(lái)實(shí)現(xiàn)的。
云計(jì)算可以利用系統(tǒng)間統(tǒng)一的接口和協(xié)議進(jìn)行數(shù)據(jù)交換,利用中間件實(shí)現(xiàn)通信功能和控制,提高系統(tǒng)的穩(wěn)定性、通用性和可靠性。但系統(tǒng)軟件模塊之間的耦合度比較高,如果應(yīng)用算法的復(fù)用度沒有得到有效解決,將很難提高軟件開發(fā)效率。
在云計(jì)算環(huán)境中,往往需要?jiǎng)討B(tài)調(diào)整內(nèi)部結(jié)構(gòu)配置以適應(yīng)不斷發(fā)展的環(huán)境和用戶需求。獨(dú)立組件與軟件框架相關(guān)聯(lián),其中容器層是分布式中間件和組件之間的通信橋梁,為組件提供通信基礎(chǔ)。根據(jù)組件管理和通信抽象出容器模型,并根據(jù)容器模型的需要,分為開發(fā)環(huán)境支持和系統(tǒng)運(yùn)行支持兩大功能模塊。開發(fā)環(huán)境支持是指容器在開發(fā)云應(yīng)用軟件時(shí)必須提供給用戶的能力[4]。系統(tǒng)運(yùn)行支持是指容器為上層應(yīng)用系統(tǒng)提供必要的運(yùn)行環(huán)境。主要由組件管理器、執(zhí)行狀態(tài)監(jiān)控、資源調(diào)度與分配、組件生命周期管理、系統(tǒng)自動(dòng)化部署和應(yīng)用權(quán)限管理等六部分組成。這些服務(wù)可以被各種功能組件或較低級(jí)別的中間件使用。
通過(guò)深入研究軟件開發(fā)與云計(jì)算的關(guān)系,可以得到相關(guān)的互聯(lián)網(wǎng)軟件架構(gòu)和基于云計(jì)算的相關(guān)核心內(nèi)容,而架構(gòu)的核心是云客戶端和服務(wù)器。在開發(fā)和設(shè)計(jì)軟件的過(guò)程中,必須實(shí)現(xiàn)云客戶端和服務(wù)器的有效連接,以滿足互聯(lián)網(wǎng)軟件的需求。可以在實(shí)際連接過(guò)程中使用光纖網(wǎng)絡(luò)或無(wú)線網(wǎng)絡(luò)進(jìn)行連接,以滿足軟件開發(fā)設(shè)計(jì)的相關(guān)基本需求??梢钥闯觯诋?dāng)前互聯(lián)網(wǎng)軟件的整體架構(gòu)中,通過(guò)應(yīng)用云計(jì)算技術(shù),可以有效實(shí)現(xiàn)存儲(chǔ)空間分配、CPU資源分配、通信鏈路分配等各種功能。
云計(jì)算組件在軟件開發(fā)中的應(yīng)用,充分發(fā)揮了軟件的分析和設(shè)計(jì)能力,并對(duì)軟件重用產(chǎn)生了巨大的影響,通過(guò)設(shè)置特定的服務(wù),為用戶提供各種接口,為軟件的有效應(yīng)用提供了方便??紤]到組件的使用接口,可以將底層的多個(gè)邏輯組合成新的高層組件,便于實(shí)現(xiàn)軟件的模塊功能。為了保證軟件的安全性,通常需要隱藏組件模型,沒有直接為組件接口分配地址。
一般來(lái)說(shuō),基于云計(jì)算組件的軟件開發(fā)需要經(jīng)過(guò)以下流程:第一,對(duì)組件進(jìn)行合理分類。為了復(fù)用組件,需要在現(xiàn)場(chǎng)搭建可復(fù)用的組件庫(kù),但是對(duì)一個(gè)大型組件進(jìn)行分類是一項(xiàng)復(fù)雜而龐大的任務(wù),因?yàn)橥ǔP枰泻芏嗫蓮?fù)用的組件庫(kù)[5]。另外,由于用戶的需求不同,因此與開發(fā)者對(duì)可復(fù)用組件的理解往往存在很大差異,從這個(gè)角度來(lái)看,可以通過(guò)組件組合、調(diào)用、繼承、框架這四種相互關(guān)系來(lái)發(fā)現(xiàn)潛在的可復(fù)用組件。第二,可重用組件的選擇??芍赜媒M件的選擇是組件重用的關(guān)鍵部分,軟件開發(fā)人員要時(shí)刻清楚,選擇的可重用組件必須充分適應(yīng)新系統(tǒng)的要求,從而提高軟件開發(fā)的效率。此過(guò)程應(yīng)通過(guò)多種方式優(yōu)化選定可重用組件,最大化系統(tǒng)開發(fā)需求。最后,開發(fā)和設(shè)計(jì)新的可重用組件。設(shè)計(jì)軟件需要具有開發(fā)意識(shí),并構(gòu)建一個(gè)完整的系統(tǒng),該系統(tǒng)能夠很好地理解現(xiàn)有的可重用組件,并將它們記錄下來(lái)供其他人查詢和理解。雖然這項(xiàng)工作會(huì)在一定程度上增加工作量和成本消耗,但從長(zhǎng)遠(yuǎn)來(lái)看,這項(xiàng)工作對(duì)于減少后續(xù)軟件開發(fā)的工作量和成本具有重要意義。
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,軟件的重要性越來(lái)越高,軟件和硬件的獨(dú)立性越來(lái)越明顯,但是當(dāng)云計(jì)算技術(shù)將軟件的發(fā)展推向更加服務(wù)化的方向時(shí),軟件和硬件的結(jié)合就成了現(xiàn)實(shí),這些成果的出現(xiàn)是由于云計(jì)算方法的整合。分析整個(gè)軟件開發(fā)過(guò)程,不難發(fā)現(xiàn)云計(jì)算技術(shù)的出現(xiàn),逐漸增加了軟件開發(fā)的抽象性和開放性。尤其是Web軟件已經(jīng)成為未來(lái)軟件發(fā)展的一大趨勢(shì),其特點(diǎn)主要是自主性、協(xié)同性和進(jìn)化性。互聯(lián)網(wǎng)軟件將是基于云計(jì)算技術(shù)的軟件開發(fā)的發(fā)展趨勢(shì)之一[6]。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,軟件開發(fā)技術(shù)也得到了進(jìn)一步的提升,從過(guò)去的結(jié)構(gòu)化系統(tǒng)向系統(tǒng)化轉(zhuǎn)變。未來(lái),組件軟件的不斷發(fā)展將走向系統(tǒng)化發(fā)展。相比之下,結(jié)構(gòu)化開發(fā)方法最初是為了滿足軟件開發(fā)的需要而廣泛采用的,主要是利用軟件的內(nèi)部數(shù)據(jù)結(jié)構(gòu)優(yōu)化系統(tǒng)結(jié)構(gòu)。對(duì)于結(jié)構(gòu)化開發(fā),必須借助結(jié)構(gòu)化設(shè)計(jì),遵循從上到下逐步完善的過(guò)程,才能更好地實(shí)現(xiàn)模塊化設(shè)計(jì),提高整體系統(tǒng)結(jié)構(gòu)的運(yùn)行效率。這種開發(fā)方式還需要進(jìn)一步發(fā)展,以滿足大規(guī)模軟件開發(fā)的需要。
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,軟件的應(yīng)用要求也越來(lái)越高,互聯(lián)網(wǎng)軟件需要更好的開發(fā)和設(shè)計(jì)來(lái)滿足不同用戶的需求,而云計(jì)算技術(shù)可以有效實(shí)現(xiàn)這個(gè)目標(biāo)。云計(jì)算組件技術(shù)的應(yīng)用改變了現(xiàn)有的軟件開發(fā)模式,極大地提高了軟件開發(fā)的效率。云計(jì)算組件技術(shù)能夠滿足不同應(yīng)用的要求,允許最大限度地重復(fù)使用不同技術(shù)形成的組件,人們現(xiàn)在越來(lái)越期待具有分布和協(xié)同處理能力的開放分布式組件技術(shù)。分布式組件技術(shù)的目標(biāo)是實(shí)現(xiàn)開放的組件產(chǎn)品,允許應(yīng)用程序互操作,并降低開發(fā)和管理成本。迄今為止,還沒有完整的開放組件系統(tǒng)實(shí)現(xiàn),但組件化是軟件產(chǎn)業(yè)化的必然和最終選擇。