摘 要:網(wǎng)絡(luò)軟件越來越顯示出其優(yōu)勢性,專業(yè)計(jì)算軟件也可以實(shí)現(xiàn)網(wǎng)絡(luò)化模式。本文提出一種在擴(kuò)展計(jì)算能力的在線專業(yè)計(jì)算平臺。該平臺采用B/S結(jié)構(gòu)搭建,采用服務(wù)器和計(jì)算引擎分離的方法,將計(jì)算引擎作為一個(gè)終端接入。該設(shè)計(jì)有可保護(hù)軟件知識產(chǎn)權(quán)保護(hù)、升級維護(hù)方便等優(yōu)點(diǎn),能夠適時(shí)調(diào)整計(jì)算吞吐能力,具有推廣應(yīng)用價(jià)值。
關(guān)鍵詞:在線計(jì)算;Matlab引擎;跨平臺
中圖分類號:TP311.52
在高速發(fā)展的當(dāng)今社會中,各行各業(yè)越來越多依賴計(jì)算機(jī)軟件來提高生產(chǎn)和管理效率。隨著網(wǎng)絡(luò)發(fā)展,信息化又給軟件業(yè)帶來新技術(shù)升級,極大的促進(jìn)了國民經(jīng)濟(jì)的發(fā)展。傳統(tǒng)的單機(jī)版本軟件已經(jīng)被壓縮到了有限的專業(yè)軟件領(lǐng)域,并且專業(yè)軟件領(lǐng)域也開始出現(xiàn)了網(wǎng)絡(luò)化版本,軟件網(wǎng)絡(luò)化,是必由之路。
網(wǎng)絡(luò)版本的專業(yè)軟件與單機(jī)版本的專業(yè)軟件相比較,有許多優(yōu)點(diǎn)。(1)軟件安裝上,單機(jī)版軟件必須在每臺使用軟件的PC機(jī)上安裝,網(wǎng)絡(luò)版軟件則能實(shí)現(xiàn)任何電腦無須安裝軟件,僅需電腦能實(shí)現(xiàn)上網(wǎng)即可;(2)軟件兼容性上看,單機(jī)版軟件極大地受制于計(jì)算機(jī)系統(tǒng)的軟硬件平臺。網(wǎng)絡(luò)版本軟件則只需服務(wù)器滿足軟件運(yùn)行的軟硬件需求即可;(3)軟件的升級上,單機(jī)版軟件的功能升級后,如果用戶不主動安裝升級,則新功能并不能得到有效的推廣。網(wǎng)絡(luò)版軟件則能實(shí)現(xiàn)服務(wù)器一次升級,所有用戶的功能同步升級,一切由管理員操作完成;(4)版權(quán)保護(hù)上,單機(jī)版軟件由于復(fù)制了一份拷貝給用戶,無論軟件做了如何等級高的版權(quán)保護(hù)手段,都不可能完全避免軟件被盜版的情況。而網(wǎng)絡(luò)版的軟件,由于核心算法放在服務(wù)器上,訪問權(quán)限被限制,用戶只能接觸到相關(guān)服務(wù)接口,因此網(wǎng)絡(luò)版軟件被盜版的可能性非常小,目前未見相關(guān)報(bào)道;(5)軟件穩(wěn)定性上,單機(jī)版軟件要考慮現(xiàn)存的幾個(gè)操作系統(tǒng)版本,每個(gè)版本都要進(jìn)行相應(yīng)的測試。網(wǎng)絡(luò)版軟件則只需在服務(wù)器平臺上做單一平臺測試,能夠最大限度測試可能出現(xiàn)的各種錯(cuò)誤;(6)跨平臺性,單機(jī)版軟件一般無法實(shí)現(xiàn)同一軟件的跨平臺運(yùn)行。網(wǎng)絡(luò)版軟件由于可基于B/S框架構(gòu)建,在手機(jī)、平板電腦這些移動設(shè)備上只需支持上網(wǎng)功能,就可實(shí)現(xiàn)跨平臺使用軟件。
因此,專業(yè)軟件若走網(wǎng)絡(luò)發(fā)展方向,將能進(jìn)一步提升專業(yè)軟件的發(fā)展?jié)摿?,擴(kuò)大市場份額,降低使用難度,為專業(yè)軟件的普及提供一個(gè)較好的解決方案。本文我們將設(shè)計(jì)一個(gè)專業(yè)計(jì)算軟件(如數(shù)據(jù)處理、科學(xué)計(jì)算等)的網(wǎng)絡(luò)化版本。
1 平臺框架總體設(shè)計(jì)
本文設(shè)計(jì)的專業(yè)計(jì)算軟件網(wǎng)絡(luò)版系統(tǒng)主要功能是數(shù)據(jù)處理及科學(xué)研究等復(fù)雜的數(shù)值計(jì)算,這些計(jì)算過程通常耗時(shí)較長。當(dāng)用戶較多、計(jì)算任務(wù)并發(fā)時(shí),計(jì)算任務(wù)較為繁重,影響計(jì)算機(jī)響應(yīng)速度,因此本軟件平臺不宜將計(jì)算任務(wù)放在服務(wù)器上。
本系統(tǒng)框架分為兩大部分:服務(wù)器平臺和計(jì)算引擎。本系統(tǒng)搭建是基于B/S框架結(jié)構(gòu),因此客戶端的界面UI無需另外設(shè)計(jì)。服務(wù)器平臺設(shè)計(jì)完成后,用戶直接登陸服務(wù)器平臺即可實(shí)現(xiàn)人機(jī)對話效果。服務(wù)器平臺用于處理用戶請求,管理用戶數(shù)據(jù)及用戶狀態(tài)。用戶向平臺提交相關(guān)計(jì)算請求后,服務(wù)器平臺將用戶請求記錄到數(shù)據(jù)庫中。計(jì)算引擎從數(shù)據(jù)庫中獲取用戶請求,將計(jì)算任務(wù)下載到引擎所在計(jì)算機(jī),進(jìn)行相關(guān)科學(xué)計(jì)算。計(jì)算完成后,引擎自動將計(jì)算生成的成果上傳至服務(wù)器。用戶通過服務(wù)器平臺可以得到相關(guān)計(jì)算成果。
在這樣的框架中,計(jì)算引擎也成為一個(gè)能夠理論上無限擴(kuò)張的網(wǎng)絡(luò)終端。引擎可以放在任何安全的地方,便于知識產(chǎn)權(quán)保護(hù)。當(dāng)一個(gè)計(jì)算引擎不足以應(yīng)付眾多用戶的計(jì)算請求時(shí),可以適當(dāng)增加幾臺計(jì)算引擎專用的計(jì)算機(jī),服務(wù)器的用戶請求任務(wù)將被按隊(duì)列分派至各計(jì)算引擎,完成計(jì)算后將自動上傳計(jì)算成果等相關(guān)件。
2 服務(wù)器平臺設(shè)計(jì)
服務(wù)器平臺是系統(tǒng)處理用戶請求及管理服務(wù)器數(shù)據(jù)庫的中樞,因此,服務(wù)器平臺包括兩大部分:用戶頁面設(shè)計(jì)及接口設(shè)計(jì)。用戶頁面設(shè)計(jì)主要分為三大版塊:用戶管理版塊、軟件功能分布版塊及參數(shù)設(shè)置版塊。用戶管理版塊主要用于管理本平臺的用戶,包括申請賬號、審批賬號、賬號權(quán)限管理等;軟件功能分布版塊是系統(tǒng)的主體,是系統(tǒng)提供計(jì)算服務(wù)的功能區(qū),用戶在這里可以進(jìn)行相應(yīng)的科學(xué)計(jì)算,并得到計(jì)算結(jié)果;參數(shù)設(shè)置版塊提供用戶設(shè)置個(gè)性化平臺界面、自定義計(jì)算參數(shù)及相關(guān)系統(tǒng)設(shè)置等。
接口設(shè)計(jì)包括數(shù)據(jù)庫接口設(shè)計(jì)和計(jì)算引擎接口設(shè)計(jì)。數(shù)據(jù)庫選型采用Mysql數(shù)據(jù)庫,在考慮數(shù)據(jù)庫接口時(shí),重點(diǎn)關(guān)注Mysql在Java下的連接、查詢、插入、修改、刪除等SQL接口,并應(yīng)用這些接口設(shè)計(jì)平臺專用的數(shù)據(jù)庫交互接口。計(jì)算引擎接口主要考慮與計(jì)算引擎的網(wǎng)絡(luò)數(shù)據(jù)交互,包括計(jì)算引擎獲取任務(wù)、下載數(shù)據(jù)、上傳數(shù)據(jù)等,相關(guān)功能可以使用TCP/IP協(xié)議實(shí)現(xiàn)。
服務(wù)器平臺設(shè)計(jì)工具軟件采用MyEclipse,MyEclipse是一個(gè)十分優(yōu)秀的用于開發(fā)Java、J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,對各種開源產(chǎn)品的支持十分不錯(cuò)。服務(wù)器平臺Web服務(wù)器選用Tomcat服務(wù)器,Tomcat服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器。
3 計(jì)算引擎設(shè)計(jì)
計(jì)算引擎開發(fā)環(huán)境選用Matlab。由于計(jì)算引擎數(shù)量相對較少,且多數(shù)由管理員維護(hù),因此引擎的開發(fā)采用擅長于科學(xué)計(jì)算的Matlab軟件有較大的優(yōu)勢。Matlab環(huán)境下,可以快速的將科研課題成果轉(zhuǎn)換為直接可使用的系統(tǒng)模塊,可以省去大量的算法開發(fā)時(shí)間。
Matlab軟件提供了使用外圍環(huán)境開發(fā)的Java軟件包,通過調(diào)用外圍Java軟件包,Matlab可以通過Java語言去實(shí)現(xiàn)自身不能實(shí)現(xiàn)的功能。本計(jì)算系統(tǒng)的計(jì)算引擎訪問服務(wù)器平臺http服務(wù)器的功能可以采用該種方法實(shí)現(xiàn)。
引擎主線程設(shè)計(jì)如下:進(jìn)入主線程首先進(jìn)行查看本地引擎數(shù)據(jù)庫是否有新的計(jì)算任務(wù)需要計(jì)算,若無計(jì)算任務(wù),則跳轉(zhuǎn)到收發(fā)數(shù)據(jù)模塊;若有計(jì)算任務(wù),則根據(jù)任務(wù)的類型調(diào)用相應(yīng)計(jì)算模塊進(jìn)行計(jì)算。計(jì)算成功則存儲計(jì)算成果,并向引擎數(shù)據(jù)庫更新相關(guān)信息;計(jì)算失敗則向數(shù)據(jù)庫登記相關(guān)的出錯(cuò)信息。完成計(jì)算后,主線程進(jìn)行計(jì)算成果的數(shù)據(jù)上傳,完成一個(gè)工作流程。
4 結(jié)束語
綜上所述,本文搭建的計(jì)算平臺系統(tǒng)基于B/S結(jié)構(gòu)的網(wǎng)絡(luò)平臺,可以適應(yīng)當(dāng)前知識產(chǎn)權(quán)保護(hù)、軟件升級維護(hù)及用戶使用多方面的需求,能夠根據(jù)當(dāng)前不同的用戶需用提供不同的計(jì)算服務(wù),并能適時(shí)調(diào)整計(jì)算吞吐能力。本文設(shè)計(jì)的這種專業(yè)計(jì)算軟件的設(shè)計(jì)模式值得推廣。
參考文獻(xiàn):
[1](英)薩默維爾.程成,譯.軟件工程[M].北京:機(jī)械工業(yè)出版社,2011.
[2](美)霍爾澤.Eclipse集成開發(fā)工具[M].南京:東南大學(xué)出版社,2005.
[3](美)??藸?Java編程思想(第4版)[M].北京:機(jī)械工業(yè)出版社,2007.
[4](美)穆爾.高會生,譯.MATLAB實(shí)用教程(第二版)[M].北京:電子工業(yè)出版社,2010.
作者單位:安徽省城建設(shè)計(jì)研究院,合肥 230051