论文部分内容阅读
摘 要:论述基于MATLAB Web Server的网络虚拟实验室的构架原理、构建方法,并给出示例调试的结果。
关键词:MATLAB Web Server;网络虚拟实验室;Web服务器
中图分类号:TP302文献标识码:A
Research Of Network Virtual Laboratory Based on MATLAB Web Server
XIE Xue-yan
(North University of China,Shanxi Taiyuan030051)
Key words: MATLAB web server;network virtual laboratory;web server
在教学和科研中往往会遇到复杂计算、数据分析、图像处理等问题,以往通过单机版MATLAB软件就可以解决问题,由于网络的发展,Math Works公司的MATLAB Web Server可以实现网络上的计算、分析以及图像处理,基于MATLAB Web Server的网络虚拟实验室也应运而生,利用这样的特性,教学和科研有了新的实验途径,同时也给教学和科研提供了方便。
1 基于MATLAB Web Server[1-2]的网络虚拟实验室系统构架
1.1网络虚拟实验室框架
基于MATLAB Web Server的网络虚拟实验室是一个纯软件虚拟实验分析系统,它采用B/S(Browser/Server)模式,在该模式下,用户端只需使用标准的Internet浏览器就可以展现实验的过程。其构架如图一所示:
其中包括Web服务器、Matlabserver服务器以及通过网络和服务器相连接的若干个浏览器。其构架简单,便于实现,不管是在广域网或是局域网构架相同。
1.2基于MATLAB Web Server网络虚拟实验室工作原理
MATLAB Web Server的核心是matweb.exe,它能够运行CGI程序,而且基于TCP/IP协议。通过创建一个MATLAB应用程序来接收从客户端传送过来的数据,该文件负责解释客户机通过HTML网页发送的请求,转换为运行MATLAB应用程序所需要的参数,接着启动一个MATLAB进程,并将指定的MATLAB应用程序及其参数传递给该进程进行计算。计算完毕后,MATLAB程序还要负责将计算结果以HTML网页的方式,通过matweb输出给客户端的浏览器,这个过程是网关程序matweb和用户编制的MATLAB应用程序协作完成的。其工作的原理图如图1所示:
图1中在浏览器端,用户通过浏览器访问Web服务器中的HTML页面,填写相关实验参数,提交给Web服务器,Web服务器将提交的参数通过MATLAB中的matweb.exe文件传给Matlabserver服务器,并交MATLAB进行计算后,将结果通过Matlabserver服务器连接matweb.exe并回传给Web服务器,Web服务器再将实验结果通过HTML返回给用户浏览器端。
2 基于MATLAB Web Server的网络虚拟实验室构建
基于MATLAB Web Server的网络虚拟实验室构建主要有Web服务器的配置、MATLAB Web Server配置、编写html 和m文件。下面对这几点做详细介绍:
2.1Web服务器安装和配置[3]
本系统采用Windows XP Pro版本,MATLAB是7.0.4版本、Apache2.2版本Web服务器。现就Apache Web服务器的配置做详细的介绍。
在安装Apache时可以指定安装目录,也可以缺省目录安装,安装好后在安装目录中找到conf文件夹,对其中的httpd.conf文件进行配置;利用写字板或记事本打开该文件后,有"#"号标志的是注释行,主要是以下几点需要注意:
①ServerRoot “D:/Apache2.2”指定服务器的安装目录,注意所有路径中是"/"符号与windows系统路径"\"符号不同,本系统将Apache安装在D:\Apache2.2中;②ServerName obbo:80 服务器名称和开放端口,当然也可以用IP地址代替服务器名,本系统服务器名称是obbo端口号是80;③DocumentRoot“D:/wsdemos”设定虚拟目录,就是建立Web站点的目录,本系统将D盘中的wsdemos作为虚拟目录,另外还要将已经设置好的虚拟目录改写如:的设置;④ScriptAlias /cgi-bin/ “D:/wsdemos/cgi-bin/” 建立运行CGI应用程序的cgi-bin目录。
同时中也要做相应改动,而且在Options选项中的值修改为ExecCGI;⑤Alias /icons/ “D:/wsdemos/icons/”建立图形改写目录icons,同时也要修改中也要相应修改目录。以上修改完成后,Apache服务器配置基本完成,重启Apache服务器修改生效。
另外在服务器配置中还要在虚拟目录中创建好以上cgi-bin和icons两个文件夹,cgi-bin中存放运行的CGI程序如matweb.exe文件,icons中存放要输出的图像文件。
2.2MATLAB Web Server配置[1-4]
2.2.1MATLABserver.conf的配置
MATLABserver.conf位于/webserver/目录,文件包括内容:-m 1。
数字1表示能并发执行MATLAB的个数。当测试一切运行正常后,可以很方便地更改该数字。同样必须注意的是,参数改变后必须重新启动MATLAB Web Server,这些修改才能生效。
2.2.2matweb.conf的配置
所有的MATLAB网络应用都必须在配置文件matweb.conf中进行注册。这里以MATLAB自带的演示程序webpeaks应用为例(该配置文件位于MATLAB安装目录中的/toolbox/webserver/wsdemos),介绍配置文件matweb.conf的含义
[webpeaks]
mlserver=obbo 这里的服务名称应和Apache配置的服务器名称一致;
mldir=D:/wsdemos/icons
其中,webpeaks是网络应用的名称,必须用“[ ]”;mlserver表示MATLAB Web服务程序所在机器名字,也可以是IP地址;mldir指定MATLAB工作目录。特别说明,每增加一个MATLAB Web应用,都需要在代理服务的配置文件matweb.conf中增加一项配置,即在该配置文件中添加相应的应用名称、主机名以及工作目录路。
2.3HTML文件编写和建立m文件
HTML输入页用来请求MATLAB Web服务,主要完成两方面的功能,一方面是接收浏览器用户的输入,这与一般的Web应用的处理方法相同,可以通过HTML的表单来实现;另一方面是设置一个特殊的标志,将该请求重定向到MATLABWeb服务代理进行处理,它的实现方法也与一般的CGI程序调用方法相同。下面是一段简单的实例代码。
...
<form action=“/cgi-bin/matweb.exe” method=“POST” target=“outputwindow”>
<input type=“hidden” name=“mlmfile” value=“webpeaks”><p>
...
m文件的编程,例如MATLAB安装目录中自带的webpeaks.m文件,在源文件中有详细注释,由于篇幅有限不在赘述。
function rs=webpeaks(h)
mlid=getfield(h,'mlid');
cd(h.mldir);
wscleanup('ml*peaks.jpeg', 1);
rcolor=str2double(h.red);
gcolor=str2double(h.green);
bcolor=str2double(h.blue);
azimuth=str2double(h.AZ);
elevation=str2double(h.EL);
if(isfield(h,'shading'))
shdng=getfield(h,'shading');
if strcmp(shdng,'Interpolated');
shdng='interp';
end
end
f=figure('visible','off');
z=peaks;
surf(z);
pos=get(gcf, 'position');
pos(3)=380;
pos(4)=310;
l=light('color', [rcolor gcolor bcolor]);
shading(lower(shdng));
lighting phong;
set(gcf,'Position', pos, 'PaperPosition', [.5 .5 4 3]);
view(azimuth, elevation);
drawnow;
s.GraphFileName=sprintf('%speaks.jpeg', mlid);
wsprintjpeg(f, s.GraphFileName);
s.GraphFileName=sprintf('/icons/%speaks.jpeg', mlid);
close all;
templatefile=which('webpeaks2.html');
rs=htmlrep(s, templatefile);
2.4示例调试结果
在浏览器地址栏中输入http://localhost/webpeaks1.html后出现图2数据输入界面:
点击Generate Plot 按钮后,如图3,其中输出图形的大小在webpeaks.m中可以通过修改set()函数[3-5]中的参数来调整。
3 结束语
通过MATLAB Web Server实现网上实验,不必在客户端安装MATLAB软件,不管在何时何地,只要有浏览器,只要网络通畅,在浏览器中输入要访问的服务器地址,就可以在线浏览实验的全过程;科研人员不必知道太多有关MATLAB编程的知识,只需要知道要得到什么样的实验数据,选取相关实验即可。其出现极大的方便了教学和科研,对教学和科研展现了新的模式。
参考文献:
[1]何强,何英.MATLAB扩展编程[M].北京:清华大学出版社,2002.
[2]文玉梅.用MATLAB建立理工科教学虚拟实验室[J].重庆大学学报(社会科学版),2001,7(5):177-179.
[3]刘春英,张国煊.基于MATLAB网络服务器的虚拟实验室实现[J].杭州电子科技大学学报,25(6):71-74.
[4]曹建华,周建江,刘越等.基于MATLAB Web Server信号处理教学平台的实现方法[J].舰船电子工程,2008(8):113-116.
关键词:MATLAB Web Server;网络虚拟实验室;Web服务器
中图分类号:TP302文献标识码:A
Research Of Network Virtual Laboratory Based on MATLAB Web Server
XIE Xue-yan
(North University of China,Shanxi Taiyuan030051)
Key words: MATLAB web server;network virtual laboratory;web server
在教学和科研中往往会遇到复杂计算、数据分析、图像处理等问题,以往通过单机版MATLAB软件就可以解决问题,由于网络的发展,Math Works公司的MATLAB Web Server可以实现网络上的计算、分析以及图像处理,基于MATLAB Web Server的网络虚拟实验室也应运而生,利用这样的特性,教学和科研有了新的实验途径,同时也给教学和科研提供了方便。
1 基于MATLAB Web Server[1-2]的网络虚拟实验室系统构架
1.1网络虚拟实验室框架
基于MATLAB Web Server的网络虚拟实验室是一个纯软件虚拟实验分析系统,它采用B/S(Browser/Server)模式,在该模式下,用户端只需使用标准的Internet浏览器就可以展现实验的过程。其构架如图一所示:
其中包括Web服务器、Matlabserver服务器以及通过网络和服务器相连接的若干个浏览器。其构架简单,便于实现,不管是在广域网或是局域网构架相同。
1.2基于MATLAB Web Server网络虚拟实验室工作原理
MATLAB Web Server的核心是matweb.exe,它能够运行CGI程序,而且基于TCP/IP协议。通过创建一个MATLAB应用程序来接收从客户端传送过来的数据,该文件负责解释客户机通过HTML网页发送的请求,转换为运行MATLAB应用程序所需要的参数,接着启动一个MATLAB进程,并将指定的MATLAB应用程序及其参数传递给该进程进行计算。计算完毕后,MATLAB程序还要负责将计算结果以HTML网页的方式,通过matweb输出给客户端的浏览器,这个过程是网关程序matweb和用户编制的MATLAB应用程序协作完成的。其工作的原理图如图1所示:
图1中在浏览器端,用户通过浏览器访问Web服务器中的HTML页面,填写相关实验参数,提交给Web服务器,Web服务器将提交的参数通过MATLAB中的matweb.exe文件传给Matlabserver服务器,并交MATLAB进行计算后,将结果通过Matlabserver服务器连接matweb.exe并回传给Web服务器,Web服务器再将实验结果通过HTML返回给用户浏览器端。
2 基于MATLAB Web Server的网络虚拟实验室构建
基于MATLAB Web Server的网络虚拟实验室构建主要有Web服务器的配置、MATLAB Web Server配置、编写html 和m文件。下面对这几点做详细介绍:
2.1Web服务器安装和配置[3]
本系统采用Windows XP Pro版本,MATLAB是7.0.4版本、Apache2.2版本Web服务器。现就Apache Web服务器的配置做详细的介绍。
在安装Apache时可以指定安装目录,也可以缺省目录安装,安装好后在安装目录中找到conf文件夹,对其中的httpd.conf文件进行配置;利用写字板或记事本打开该文件后,有"#"号标志的是注释行,主要是以下几点需要注意:
①ServerRoot “D:/Apache2.2”指定服务器的安装目录,注意所有路径中是"/"符号与windows系统路径"\"符号不同,本系统将Apache安装在D:\Apache2.2中;②ServerName obbo:80 服务器名称和开放端口,当然也可以用IP地址代替服务器名,本系统服务器名称是obbo端口号是80;③DocumentRoot“D:/wsdemos”设定虚拟目录,就是建立Web站点的目录,本系统将D盘中的wsdemos作为虚拟目录,另外还要将已经设置好的虚拟目录改写如:
同时
另外在服务器配置中还要在虚拟目录中创建好以上cgi-bin和icons两个文件夹,cgi-bin中存放运行的CGI程序如matweb.exe文件,icons中存放要输出的图像文件。
2.2MATLAB Web Server配置[1-4]
2.2.1MATLABserver.conf的配置
MATLABserver.conf位于
数字1表示能并发执行MATLAB的个数。当测试一切运行正常后,可以很方便地更改该数字。同样必须注意的是,参数改变后必须重新启动MATLAB Web Server,这些修改才能生效。
2.2.2matweb.conf的配置
所有的MATLAB网络应用都必须在配置文件matweb.conf中进行注册。这里以MATLAB自带的演示程序webpeaks应用为例(该配置文件位于MATLAB安装目录中的/toolbox/webserver/wsdemos),介绍配置文件matweb.conf的含义
[webpeaks]
mlserver=obbo 这里的服务名称应和Apache配置的服务器名称一致;
mldir=D:/wsdemos/icons
其中,webpeaks是网络应用的名称,必须用“[ ]”;mlserver表示MATLAB Web服务程序所在机器名字,也可以是IP地址;mldir指定MATLAB工作目录。特别说明,每增加一个MATLAB Web应用,都需要在代理服务的配置文件matweb.conf中增加一项配置,即在该配置文件中添加相应的应用名称、主机名以及工作目录路。
2.3HTML文件编写和建立m文件
HTML输入页用来请求MATLAB Web服务,主要完成两方面的功能,一方面是接收浏览器用户的输入,这与一般的Web应用的处理方法相同,可以通过HTML的表单来实现;另一方面是设置一个特殊的标志,将该请求重定向到MATLABWeb服务代理进行处理,它的实现方法也与一般的CGI程序调用方法相同。下面是一段简单的实例代码。
...
<form action=“/cgi-bin/matweb.exe” method=“POST” target=“outputwindow”>
<input type=“hidden” name=“mlmfile” value=“webpeaks”><p>
...
m文件的编程,例如MATLAB安装目录中自带的webpeaks.m文件,在源文件中有详细注释,由于篇幅有限不在赘述。
function rs=webpeaks(h)
mlid=getfield(h,'mlid');
cd(h.mldir);
wscleanup('ml*peaks.jpeg', 1);
rcolor=str2double(h.red);
gcolor=str2double(h.green);
bcolor=str2double(h.blue);
azimuth=str2double(h.AZ);
elevation=str2double(h.EL);
if(isfield(h,'shading'))
shdng=getfield(h,'shading');
if strcmp(shdng,'Interpolated');
shdng='interp';
end
end
f=figure('visible','off');
z=peaks;
surf(z);
pos=get(gcf, 'position');
pos(3)=380;
pos(4)=310;
l=light('color', [rcolor gcolor bcolor]);
shading(lower(shdng));
lighting phong;
set(gcf,'Position', pos, 'PaperPosition', [.5 .5 4 3]);
view(azimuth, elevation);
drawnow;
s.GraphFileName=sprintf('%speaks.jpeg', mlid);
wsprintjpeg(f, s.GraphFileName);
s.GraphFileName=sprintf('/icons/%speaks.jpeg', mlid);
close all;
templatefile=which('webpeaks2.html');
rs=htmlrep(s, templatefile);
2.4示例调试结果
在浏览器地址栏中输入http://localhost/webpeaks1.html后出现图2数据输入界面:
点击Generate Plot 按钮后,如图3,其中输出图形的大小在webpeaks.m中可以通过修改set()函数[3-5]中的参数来调整。
3 结束语
通过MATLAB Web Server实现网上实验,不必在客户端安装MATLAB软件,不管在何时何地,只要有浏览器,只要网络通畅,在浏览器中输入要访问的服务器地址,就可以在线浏览实验的全过程;科研人员不必知道太多有关MATLAB编程的知识,只需要知道要得到什么样的实验数据,选取相关实验即可。其出现极大的方便了教学和科研,对教学和科研展现了新的模式。
参考文献:
[1]何强,何英.MATLAB扩展编程[M].北京:清华大学出版社,2002.
[2]文玉梅.用MATLAB建立理工科教学虚拟实验室[J].重庆大学学报(社会科学版),2001,7(5):177-179.
[3]刘春英,张国煊.基于MATLAB网络服务器的虚拟实验室实现[J].杭州电子科技大学学报,25(6):71-74.
[4]曹建华,周建江,刘越等.基于MATLAB Web Server信号处理教学平台的实现方法[J].舰船电子工程,2008(8):113-116.