專利名稱:基于matlab及com技術(shù)的b/s結(jié)構(gòu)遠(yuǎn)程計(jì)算平臺的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及基于MATLAB及COM技術(shù)的B/S結(jié)構(gòu)遠(yuǎn)程計(jì)算平臺,屬于計(jì)算機(jī) 網(wǎng)絡(luò)應(yīng)用領(lǐng)域,。
背景技術(shù):
MATLAB是一款被廣泛應(yīng)用于科學(xué)與工程計(jì)算的通用計(jì)算軟件,具有強(qiáng)大的數(shù) 值計(jì)算功能,并包含用于不同科學(xué)領(lǐng)域的工具箱。然而,其全功能軟件價格卻 高達(dá)百萬元人民幣之巨,對于小型科研單位或個人,這是不可接受的。
為能夠充分利用軟件,很多科研單位、高校使用MATLAB早期版本中一個叫 MATLAB Web Server的組件,開發(fā)基于MATLAB的遠(yuǎn)程計(jì)算平臺。當(dāng)前的基于 MATLAB的B/S結(jié)構(gòu)應(yīng)用都是基于該組件的,由于該組件功能的限制,只能開發(fā) 一些簡單的、模式固定的應(yīng)用,使用本文中闡述的遠(yuǎn)程計(jì)算機(jī)平臺可以使用戶 能夠通過Web方式任意訪問MATLAB的所有功能模塊,包括MATLAB控制臺、 MATLAB程序編譯器、Simulink等幾乎所有核心功能。通過Simulink和Realtime Workshop還可以進(jìn)行遠(yuǎn)程實(shí)時控制操作,進(jìn)行遠(yuǎn)程實(shí)驗(yàn)。
發(fā)明內(nèi)容
本發(fā)明提供了一種基于MATLAB及COM技術(shù)的B/S結(jié)構(gòu)遠(yuǎn)程計(jì)算平臺,使得 用戶可以突破時間與空間的限制,隨時隨地通過網(wǎng)絡(luò)使用MATLAB,為用戶提供 便利,也使得資源得到充分利用。使用Simulink和Realtime Workshop工具箱 還可以進(jìn)行實(shí)物仿真,通過WEB操作,可以進(jìn)行遠(yuǎn)程實(shí)驗(yàn),進(jìn)行基于Internet 的遠(yuǎn)程實(shí)驗(yàn)室建設(shè)。 基于MATLAB的B/S結(jié)構(gòu)遠(yuǎn)程計(jì)算平臺主要分為以下幾個部分WEB客戶端 模塊、WEB服務(wù)器、命令處理模塊、文件上傳模塊、MATLAB控制模塊、MATLAB。
(1) WEB客戶端模塊通過HTML和JavaScript等客戶端腳本給用戶提供一個 友好的交互界面;
(2) WEB服務(wù)器負(fù)責(zé)處理客戶端的HTTP請求;
(3) 文件上傳模塊負(fù)責(zé)處理用戶上傳*.111程序文件和tmdl模型文件;
(4) 命令處理模塊出于安全因素考慮,對用戶輸入的命令進(jìn)行過濾、格式 化;
(5) MATLAB控制模塊使用C0M技術(shù),調(diào)用MATLAB,執(zhí)行用戶請求,并取回 執(zhí)行結(jié)果;
(6) MATLAB:執(zhí)行MATLAB命令或程序,完成計(jì)算任務(wù)。 用戶進(jìn)行工作流程如下
(1) 用戶通過客戶端模塊提供的WEB界面編輯MATLAB命令或選擇要上傳到服 務(wù)器用以執(zhí)行的.m文件或.mdl模型文件,并向WEB服務(wù)器提交請求。
(2) WEB服務(wù)器接到用戶的請求之后,根據(jù)不同的請求調(diào)用不同的模塊。
如果用戶需要執(zhí)行MATLAB命令,WEB服務(wù)器直接將命令傳送給命令處 理模塊,對命令字符串進(jìn)行處理,主要包括兩方面的處理①去掉有可能 損壞系統(tǒng)的命令,主要是"!"字符開頭的命令,因?yàn)樵贛ATLAB中可以通 過"!"字符后跟系統(tǒng)命令來執(zhí)行系統(tǒng)命令,特別 是!format, !del, !copy, !move等命令,如果不對這些命令進(jìn)行限制, 惡意的MATLAB程序或錯誤的MATLAB程序很可能損壞服務(wù)器的文件系統(tǒng), 甚至損壞重要數(shù)據(jù);②在命令末尾增加回車符,因?yàn)镸ATLAB命令以回車 結(jié)尾時才開始運(yùn)行,從客戶端上傳的命令字符串末尾可能沒有回車符,該
模塊為這些命令字符串增加回車符。
如果用戶要運(yùn)行.m程序文件或.mdl模型文件仿真,則調(diào)用文件上傳 模塊上傳用戶的文件;.m程序文件上傳后,出于安全考慮,與用戶上傳的 命令字符串一樣,都要經(jīng)過命令處理模塊才能夠被送往MATLAB控制模塊, 然后由MATLAB執(zhí)行。
(3) 命令處理模塊處理后的MATLAB命令或文件上傳模塊得到的用戶上傳的文 件,被提交給MATLAB控制模塊;
(4) MATLAB控制模塊通過COM技術(shù),產(chǎn)生一個MATLAB的COM對象,通過該對 象執(zhí)行MATLAB命令或.m或.mdl文件,并得到執(zhí)行結(jié)果;
如果有硬件設(shè)備連接到MATLAB服務(wù)器,用戶就可以通過程序或者 Simulink模型對設(shè)備進(jìn)行控制、操作,這也就是遠(yuǎn)程控制,即使用本方案 不僅可以MATLAB的共享、遠(yuǎn)程計(jì)算,還可以實(shí)現(xiàn)基于MATLAB的遠(yuǎn)程實(shí)驗(yàn) 平臺。
(5) 執(zhí)行結(jié)果被轉(zhuǎn)交給WEB服務(wù)器,由WEB服務(wù)器作為HTTP響應(yīng)返回給客戶 端,客戶端便可以以圖表或曲線等格式看到執(zhí)行結(jié)果,或者下載原始數(shù)據(jù)。 至此一次遠(yuǎn)程科學(xué)計(jì)算的請求便完成。
有益效果
本發(fā)明為基于MATLAB的WEB應(yīng)用開發(fā)提供了一個框架,而對使用的WEB技 術(shù)、編程語言以及WEB服務(wù)器的種類并沒有特別限制,使用該框架可以利用 MATLAB的功能開發(fā)各種遠(yuǎn)程應(yīng)用,例如,通過開發(fā)不同的MATLAB控制模塊功能, 可以開發(fā)各種基于MATLAB的仿真實(shí)驗(yàn),使用MATLAB的Real-Time Workshop工 具箱,還可以開發(fā)各種遠(yuǎn)程實(shí)驗(yàn),等等。
圖1為本發(fā)明涉及基于MATLAB及COM技術(shù)的B/S結(jié)構(gòu)遠(yuǎn)程計(jì)算平臺的系統(tǒng) 架構(gòu)具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步說明。
本發(fā)明是一種方案,對WEB應(yīng)用系統(tǒng)及編程語言沒有具體要求,只要可以實(shí)現(xiàn) 用戶交互,并支持COM組件調(diào)用即可,下面以IIS為WEB服務(wù)器,以ASP. NET 作為WEB實(shí)現(xiàn)技術(shù),以Ctt為編程語言為例,說明本發(fā)明的實(shí)施方式。
(1) 安裝并配置ns服務(wù)器;
(2) 安裝MATLAB軟件;
(3) 分別設(shè)計(jì)用戶界面,即WEB客戶端模塊,用于編寫在線命令或上傳文件;
(4) 用戶通過客戶端模塊提供的WEB界面編輯MATLAB命令或選擇要上傳到 服務(wù)器用以執(zhí)行的.m文件,并向WEB服務(wù)器提交請求。
(5) WEB服務(wù)器接到用戶的請求之后,用戶需要執(zhí)行MATLAB命令,WEB服 務(wù)器直接將命令傳送給命令處理模塊,對命令字符串進(jìn)行處理,主要包括兩方 面的處理O去掉有可能損壞系統(tǒng)的命令,主要是"!"字符開頭的命令,因?yàn)?在MATLAB中可以通過"!"字符后跟系統(tǒng)命令來執(zhí)行系統(tǒng)命令,特別 是!format, !del, !copy, !move等命令;②在命令末尾增加回車符,因?yàn)?MATLAB命令以回車結(jié)尾時才開始運(yùn)行,從客戶端上傳的命令字符串末尾可能沒 有回車符,該模塊為這些命令字符串增加回車符。
(6) 命令處理模塊處理后的MATLAB命令或文件上傳模塊得到的用戶上傳的文 件,被提交給MATLAB控制模塊;
(7) MATLAB控制模塊通過COM技術(shù),產(chǎn)生一個MATLAB的COM對象,通過該對
象執(zhí)行MATLAB命令,并得到執(zhí)行結(jié)果; (8)執(zhí)行結(jié)果被轉(zhuǎn)交給WEB服務(wù)器,由WEB服務(wù)器作為HTTP響應(yīng)返回給客戶 端,客戶端便可以以圖表或曲線等格式看到執(zhí)行結(jié)果,或者下載原始數(shù)據(jù)。 至此一次遠(yuǎn)程科學(xué)計(jì)算的請求便完成。
權(quán)利要求
1.基于MATLAB的B/S結(jié)構(gòu)遠(yuǎn)程計(jì)算平臺,包括WEB客戶端模塊、WEB服務(wù)器、命令處理模塊、文件上傳模塊、MATLAB控制模塊、MATLAB;其特征在于WEB客戶端模塊通過HTML和JavaScript等客戶端腳本給用戶提供一個交互界面;WEB服務(wù)器負(fù)責(zé)處理客戶端的HTTP請求;文件上傳模塊負(fù)責(zé)處理用戶上傳*.m程序文件和*.mdl模型文件;命令處理模塊出于安全因素考慮,對用戶輸入的命令進(jìn)行過濾、格式化;MATLAB控制模塊使用COM技術(shù),調(diào)用MATLAB,執(zhí)行用戶請求,并取回執(zhí)行結(jié)果;MATLAB執(zhí)行MATLAB命令或程序,完成計(jì)算任務(wù);其特征還在于工作步驟如下(1)用戶通過客戶端模塊提供的WEB界面編輯MATLAB命令或選擇要上傳到服務(wù)器用以執(zhí)行的.m文件或.mdl模型文件,并向WEB服務(wù)器提交請求;(2)WEB服務(wù)器接到用戶的請求之后,根據(jù)不同的請求調(diào)用不同的模塊;如果用戶需要執(zhí)行MATLAB命令,WEB服務(wù)器直接將命令傳送給命令處理模塊,對命令字符串進(jìn)行處理,主要包括兩方面的處理①去掉有可能損壞系統(tǒng)的命令,主要是“!”字符開頭的命令,因?yàn)樵贛ATLAB中可以通過“!”字符后跟系統(tǒng)命令來執(zhí)行系統(tǒng)命令,特別是!format,!del,!copy,!move等命令,如果不對這些命令進(jìn)行限制,惡意的MATLAB程序或錯誤的MATLAB程序很可能損壞服務(wù)器的文件系統(tǒng),甚至損壞重要數(shù)據(jù);②在命令末尾增加回車符,因?yàn)镸ATLAB命令以回車結(jié)尾時才開始運(yùn)行,從客戶端上傳的命令字符串末尾可能沒有回車符,該模塊為這些命令字符串增加回車符;如果用戶要運(yùn)行.m程序文件或.mdl模型文件仿真,則調(diào)用文件上傳模塊上傳用戶的文件;.m程序文件上傳后,出于安全考慮,與用戶上傳的命令字符串一樣,都要經(jīng)過命令處理模塊才能夠被送往MATLAB控制模塊,然后由MATLAB執(zhí)行;(3)命令處理模塊處理后的MATLAB命令或文件上傳模塊得到的用戶上傳的文件,被提交給MATLAB控制模塊;(4)MATLAB控制模塊通過COM技術(shù),產(chǎn)生一個MATLAB的COM對象,通過該對象執(zhí)行MATLAB命令或.m、.mdl文件,并得到執(zhí)行結(jié)果;(5)執(zhí)行結(jié)果被轉(zhuǎn)交給WEB服務(wù)器,由WEB服務(wù)器作為HTTP響應(yīng)返回給客戶端,客戶端便以圖表或曲線等格式看到執(zhí)行結(jié)果,或者下載原始數(shù)據(jù);至此一次遠(yuǎn)程科學(xué)計(jì)算的請求完成。
全文摘要
本發(fā)明公開了基于MATLAB的B/S結(jié)構(gòu)遠(yuǎn)程計(jì)算平臺,包括WEB客戶端模塊、WEB服務(wù)器、命令處理模塊、文件上傳模塊、MATLAB控制模塊和MATLAB;向WEB服務(wù)器上傳.m文件或.mdl模型文件后,根據(jù)不同的請求調(diào)用模塊;處理后的MATLAB命令或文件上傳模塊得到上傳的文件,被提交給MATLAB控制模塊;MATLAB控制模塊通過COM技術(shù)產(chǎn)生一個MATLAB的COM對象并得到執(zhí)行結(jié)果;執(zhí)行結(jié)果通過WEB服務(wù)器后返回給客戶端,本發(fā)明為基于MATLAB的WEB應(yīng)用開發(fā)提供了一個框架,而對使用的WEB技術(shù)、編程語言以及WEB服務(wù)器的種類并沒有特別限制,使用該框架可開發(fā)各種遠(yuǎn)程應(yīng)用。
文檔編號H04L29/06GK101360126SQ200810167549
公開日2009年2月4日 申請日期2008年10月10日 優(yōu)先權(quán)日2008年10月10日
發(fā)明者遠(yuǎn) 姚, 戴亞平, 田德振 申請人:北京理工大學(xué)