//Logo Image
作者:劉子吉(2004-05-17);最近更新:劉子吉(2004-12-30);推薦:徐業良(2004-05-18)

最佳化設計軟體網頁介面WebOpt的建立

本文將說明如何建立WebOpt的網頁,包括所需應用的軟體,以及各個軟體間如何轉換資料,及如何透過網頁介面來執行伺服端的應用程式。

1.     應用軟體的準備

WebOpt使用Internet Information Services (IIS)建立基本網頁功能,使用Matlab WebServer達到網頁與伺服器端應用程式相互連結,而此處伺服器端應用程式為GAMS,以下針對這些軟體說明其安裝與其參數設定的注意事項,以及在此應用時網頁語法特性。

1.1 IIS的設定

IIS的建立主要是提供伺服端網頁服務的功能,建立方式請參考IIS的相關安裝資訊。在安裝完成後須設定一虛擬目錄,設定方法如圖1所示,建議虛擬目錄名為cgi-bin,而此虛擬目錄所包含的內容為我們的網頁檔案與所撰寫matlab程式檔案的資料夾(如:<matlab>toolbox/webserver/wsdemos的資料夾),並在設定的過程中需將此虛擬目錄設定為擁有「執行」功能。另外因為此網頁伺服端必須是可以執行共通的閘道介面,也就是可執行cgi網頁程式,所以需要在伺服端安裝perl程式,此程式可在http://www.activestate.com下載並安裝之。

1. 虛擬目錄的設定

1.2 Matlab Web Server的設定

設定Matlab Web Server前須先進行一些準備工作,如安裝Matlab主程式與Matlab Web Server工具箱,並且須先進行一些必要參數設定程序,包括:

(1)    matweb.conf內容中的matlabserver_host_name,更改為伺服電腦的名稱,此檔案為位於<matlab>/toolbox/webserver/wsdemos的資料夾中,如圖2所表示。此外在此圖中所顯示的[gams_01]為網頁呼叫matlab程式的方式,gams_01matlab程式m檔的檔案名稱,圖中亦需更改的為mldir,此設定需為gams_01.m檔的所在目錄路徑。

2. matlab.conf檔案的設定

(2)    將檔案matweb.conf複製到先前由虛擬目錄所包含的路徑資料夾下,如:<matlab>/toolbox/webserver/wsdemos

(3)    複製matweb.exematlabserver.exe/cgi-bin的資料中,此二檔案可在<matlab>/webserver/bin/arch的資料夾中找到。

進行到此已完成Matlab Web Server的初步設定,matweb.confmatlab.exe兩個檔案溝通方式,將在後續章節中說明。

1.3 網頁語法的特性

WebOpt網頁應用基本上以網頁上空格來接受資料的輸入,輸出則以設定的變數名來表達,使用者按下傳送按鍵時,網頁設定指定呼叫matweb.exe檔案,如圖3中紅框A所示(action = /cgi-bin/matweb.exe),其傳送值為所需對應的matlab程式檔,如圖3中紅框B所示(value = gams_01)

3. 網頁呼叫matlab程式的語法

2.     軟體間的溝通說明

完成以上必須的程序與參數設定後,接下所要進行的工作則為軟體間的溝通,包括取得WebOpt網頁輸入的資料,接著進行資料的整理並執行應用程式,最後輸出所需展示的結果,本段即說明各個軟體間溝通方式與其應注意的地方。

WebOpt的網頁顯示上先由使用者輸入相關數據定義最佳化設計模型變數與函數數目後,才動態產生主要的輸入網頁。圖4所示為WebOpt的初始網頁,在此網頁中變數是由網頁空格輸入,所以在網頁的程式碼中傳送動作與其傳送值的均有特定的對象,圖3即為產生此初始網頁的部分程式,如前所述其傳送動作設為action = /cgi-bin/matweb.exe,傳送值為value = gams_01,其中的傳送動作為一特定的語法,而傳送值則為對應game_01.mmatlab程式。

4. WebOpt的初始輸入介面

5gams_01.m的程式碼,在此副程式中所被輸入的數值為由網頁空格所獲得的資料(變數instruct),在程式中有執行另一matlab的副程式creat_html.m,此程式主要的作用在於產生應用程式的輸入格式網頁,亦就是先前所提及的動態網頁,所產生的網頁亦將在被下一步指定為開啟的網頁“gams_02.html”

gams_02.html之網頁語法與gams_01.htm的表達方式並無太大差異,需注意的為gams_02.html的傳送值為value = gams_02,所以當傳送指令下達時,網頁需對應至matlab副程式gams_02.m。在此副程式gams_02.m中將會執行伺服器端應用程式GAMS,所以在此程式中分為兩個主要部分,一為執行應用程式,另一為判斷應用程式是否正確的被執行完成,若正確被執行完成將產生results.html網頁,反之若執行應用程式發生錯誤的情形或是產生不正確的應用程式輸入檔,則會產生error.html的網頁,圖6為整個WebOpt的程式流程圖。

5. gams_01.m副程式的程式碼

6. WebOpt網頁程式的流程圖

3.     應用程式GAMS設定說明

應用程式GAMS是由“GAMS Development Corporation”所提供的試用版本,可在http://www.gams.com的網頁中下載其試用版本,將其輸入介面改由網頁的輸入來建立時,需修改其中的一些參數設定,如在呼叫執行的指令需給定為“gams Filename logoption=0”,使執行GAMS的過程中無須顯示執行過程訊息訊息,以及在gamsparm.的檔案中設定“errmsg = 1”,使若發生錯誤訊息時,其顯示的錯誤判斷資訊是緊接著輸入列之後。