姜元政 左嘉
一、引言
Matlab(Matrix Laboratory,矩陣實(shí)驗(yàn)室的縮寫)是是由美國(guó)Mathworks公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境.它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語(yǔ)言(如C、Fortran)的編輯模式,代表了當(dāng)今國(guó)際科學(xué)計(jì)算軟件的先進(jìn)水平[1].MATLAB擁有一個(gè)獨(dú)立的計(jì)算環(huán)境,不僅可以在個(gè)人計(jì)算機(jī)上運(yùn)行,還可以網(wǎng)絡(luò)服務(wù)運(yùn)行,移植性也非常好,公認(rèn)的功能強(qiáng)大,應(yīng)用廣泛,MATLAB還提供了編程接口,可擴(kuò)充能力強(qiáng),適于二次開發(fā).隨著Internet的發(fā)展,Matlab還提供了虛擬處理環(huán)境的網(wǎng)絡(luò)計(jì)算模式,大提高了科學(xué)計(jì)算、實(shí)驗(yàn)仿真、信息處理等方面的能力,充分利用了資源,我們可以通過(guò)安裝MATLAB Web Server[2],利用Web技術(shù)來(lái)實(shí)現(xiàn)無(wú)終端計(jì)算,即所謂的B/S計(jì)算模式.
二、B/S模式下MATLAB Web應(yīng)用的原理
要實(shí)現(xiàn)MATLAB的Web應(yīng)用,所需的關(guān)鍵組件是WebServer Daemon和MATLAB Web Server.MATLAB Web Server通過(guò)TCP/iP在客戶端和MATLAB服務(wù)器之間傳送數(shù)據(jù).在最簡(jiǎn)單的配置里,Web瀏覽器在客戶端運(yùn)行,而MATLAB、Matlabserver和Web ServerDaemon在服務(wù)器上運(yùn)行.Web Server能夠運(yùn)行通用網(wǎng)關(guān)接口CGI程序,常用的有Apache和IIS等.Matlabserver采用多線程的TCP/IP服務(wù)方式,橋接于Matlab與Web應(yīng)用程序的信息通訊,而matweb是Matlabserver的TCP/lP客戶端程序,它利用CGI從HTML文件中提取數(shù)據(jù)并傳給Matlabserver.
MATLAB Web應(yīng)用的原理如圖l所示.首先,當(dāng)客戶端將網(wǎng)頁(yè)中的輸入?yún)?shù)后,再提交給http服務(wù)程序,http服務(wù)程序通過(guò)CGI調(diào)用matweb服務(wù)代理,而matweb通過(guò)內(nèi)部協(xié)議與Matlabserver通訊, Matlabserver調(diào)用相應(yīng)的M文件到MATLAB進(jìn)行計(jì)算,任務(wù)完以后,Matlabserver以文本或HTML的形式把結(jié)果傳送到matweb服務(wù)代理,matweb再通過(guò)http服務(wù)程序?qū)⒔Y(jié)果以網(wǎng)頁(yè)形式輸出給客戶端.
圖1MATLAB Web應(yīng)用的原理圖
三、配置 MATLAB Web Server
1.安裝 MATLAB 和 Matlabserver ,并啟動(dòng) Matlabserver 服務(wù)
在安裝有 Windows 2008 Server 和 IIS7.0 的計(jì)算機(jī)上,通過(guò)運(yùn)行 MATLAB的安裝程序來(lái)安裝 MATLAB 和Matlabserver,安裝完畢后重新啟動(dòng)計(jì)算機(jī),啟動(dòng)Matlabserver 服務(wù).
2.配置 IIS
打開IIS管理器,新建一個(gè)Web 站點(diǎn) ,并在該站點(diǎn)建立三個(gè)目錄 ,分別是cgibin,icons和mages,其中cgibin用來(lái)存放 CGI 文件,icons用來(lái)存放 MATLAB生成的圖片文件和應(yīng)用程序所需的圖片文件 , mages用來(lái)存放HTML 文件和 M 文件,最后為各目錄設(shè)置好目錄屬性.
3.建立并設(shè)置 MATLAB 配置文件
在新建Web站點(diǎn)的根目錄下,建立配置文件matweb.conf 和 Matlabserver. Conf,并對(duì)其進(jìn)行配置.
matweb.conf 的內(nèi)容如下 :
[bhmathxx]
mlserver = 192.168.1.10
mldir =E:/webserver
每增加一個(gè)MATLAB Web應(yīng)用,需在 matweb.conf 中增加一項(xiàng)配置.
Matwebserver.conf 的內(nèi)容如下:
-m 1
-p 80
四、MATLAB Web應(yīng)用程序
相應(yīng)配置完成以后,針對(duì)具體的應(yīng)用可以開發(fā)相應(yīng)的MATLAB Web應(yīng)用程序.要解決的兩個(gè)關(guān)鍵問(wèn)題,分別是MATLAB程序如何通過(guò)HTML輸入文件獲取輸人參數(shù)問(wèn)題和如何生成包含輸出數(shù)據(jù)和圖片的HTML文件問(wèn)題?其中主要工作包括:
1.設(shè)計(jì)HTML輸入網(wǎng)頁(yè)
設(shè)計(jì)HTML輸入的網(wǎng)頁(yè),其中輸入的參數(shù)主要是通過(guò)頁(yè)面中的表單來(lái)完成,形式如