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