设为首页 加入收藏 期刊导航 网站地图
  • 首页
  • 期刊
    • 数学与物理
    • 地球与环境
    • 信息通讯
    • 经济与管理
    • 生命科学
    • 工程技术
    • 医药卫生
    • 人文社科
    • 化学与材料
  • 会议
  • 合作
  • 新闻
  • 我们
  • 招聘
  • 千人智库
  • 我要投搞
  • 办刊

期刊菜单

  • ●领域
  • ●编委
  • ●投稿须知
  • ●最新文章
  • ●检索
  • ●投稿

文章导航

  • ●Abstract
  • ●Full-Text PDF
  • ●Full-Text HTML
  • ●Full-Text ePUB
  • ●Linked References
  • ●How to Cite this Article
Computer Science and Application 计算机科学与应用, 2013, 3, 273-277
http://dx.doi.org/10.12677/csa.2013.36047 Published Online September 2013 (http://www.hanspub.org/journal/csa.html)
The Remote Call and Parallel Processing of
Matlab Based on JSP*
Jiaqing Sun, Yunxiao Zu#, Weihai Li, Zhe Li, Zhixian Li
School of Electronic Engineering, Beijing University of Posts and Telecommunications, Beijing
Email: zuyx@bupt.edu.cn
Received: Jun. 17th, 2013 revised: Jul. 4th, 2013; accepted: Jul. 28th, 2013
Copyright © 2013 Jiaqing Sun et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unre-
stricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
Abstract: As one of the development directions of the Internet in the future, migrating a variety of services, software,
operating system to the Web has been recognized by most people in the field. This paper developed a set of system in
which the JSP Web site works together with Matlab, so that users can call the communication networks simulation plat-
form by logging onto the site. In the system, the channel parameters are input at the front page, the simulation program
is called, and the results are feedback to the user through the Web pages. Taking account of the large calculation of the
simulation platform, the Matlab Parallel Computing Toolbox is used to achieve parallel computing and added to the
system. The validity and advantages of parallel computing are verified by example.
Keywords: JSP; Matlab; Remote Calling; Parallel Computing
基于 JSP的Matlab 远程调用和并行处理*
孙佳庆,俎云霄*,李巍海,李 喆,李志先
北京邮电大学电子工程学院,北京
Email: zuyx@bupt.edu.cn
收稿日期:2013 年6月17 日;修回日期:2013年7月4日;录用日期:2013 年7月28 日
摘 要:将各种服务、软件、甚至是操作系统移植到Web 上,作为互联网未来的一个发展方向,已经被很多业
内人士所认同。本文设计了一套 JSP 网站与 Matlab 协同工作的系统,使用户可以通过登录网站调用通信网络仿
真平台,通过前端网页输入信道参数,调用仿真程序,并通过页面将结果反馈给用户。由于仿真平台的计算量
非常大,因此利用 Matlab 并行计算工具箱实现并行计算功能,并加入到系统中。通过程序实例验证了并行计算
的正确性及优势。
关键词:JSP;Matlab;远程调用;并行计算
1. 引言
随着信息高速公路的日益扩展,互联网技术突飞
猛进的发展,网站功能的日趋多样化,人们已经不满
足于仅仅从互联网上获得信息和咨询,而希望将各种
软件能够实现的功能移植到互联网上,例如,已经实
现的在线翻译、网页版 PS 等等。因此,科技工作者
开始研究直接将操作系统搬到Web 平台上,例如气象
观测的网页发布和可视化、宿舍管理、词语翻译等[1-3],
并且已经取得重大进展。在当今的信息化社会,方便
与快捷才能赢得主动权,而在线仿真平台的推广无疑
*北京市科技计划项目(No:Z111100066511007)资助课题。
#通迅作者。
Copyright © 2013 Hanspub 273
基于 JSP 的Matlab 远程调用和并行处理
将会使平台技术获得进一步推广,适应网络技术发展
的潮流,这一趋势已不可避免。
基于 Matlab 的大型通信系统仿真平台具有强大
的通信仿真功能,可以完成链路级乃至系统级的信道
仿真。用户输入信道参数,系统经过复杂的运算便可
以得到反应信道性能和质量的若干张仿真图纸。
Matlab 平台上可以实施并行计算,利用多台处理器并
行处理任务,提高效率,缩短时间。如果能将结合了
并行计算功能的仿真平台移植到互联网平台上,使用
户可以通过登录网站使用仿真平台的功能,将会大大
方便用户的使用,既可避免下载、安装等诸多麻烦,
也可避免用户自己的服务器不能承载运算压力的风
险,可谓一举多得。本文就针对这一问题进行研究,
通过远程操作实现在线仿真技术,客户端用户只需要
输入相应的参数,提交仿真,即可获得仿真结果。
2. Web 远程调用 Matlab
Web 服务是松散耦合、可复用的软件模块。从语
义上看,它封装了离散的功能,在Internet 上发布后,
能够通过标准的 Internet 协议在程序中访问。典型情
况下,Web 服务体现为一些包装在 Internet 通信协议
之中,可以在 Internet 之中组装和运行的软件部件。
网络上的其它应用程序可以访问并使用它们,集成功
能更强大的应用程序[4,5]。
JSP 是一种动态网页编程技术标准,它能以最经
济的开销维护和支持扩充一个网络服务器,为企业领
域提供独立的平台,任何厂商都可以在自己的系统上
实现 JSP。其网页生成过程为:在传统的网页 HTML
文件中加入Java 程序片段和JSP 标记就构成了 JSP 网
页。Java Servlet是一种 Web应用开发的理想构架[6]。
2.1. Web 服务的实现模型
Web 服务主要建立在三个角色的交互上,他们是
服务提供者、服务注册中心、服务申请者,这三个角
色需要执行三类基本操作:发布、查找、绑定。这些
角色和操作都围绕 Web 服务的两个构建——Web 服
务软件模块及描述展开。
Web 服务最典型的实现模型是服务提供者拥有
一个可以通过网络访问的软件模块,它为这个 Web
服务定义服务说明,并把它发布给服务的请求者或服
务的注册处,服务的申请者使用查找操作从本地或服
务的注册处得到服务说明,并使用服务说明中的信息
与服务的提供者实现绑定,然后与Web服务交互,调
用其中的操作。服务的提供者和服务的申请者是Web
服务的逻辑基础。一个 Web服务既可以是提供者又可
以是申请者。图 1显示了这些操作模块及它们之间的
交互。
2.2. JSP 网站与 Matlab之间的交互机制
JSP技术使用 Java编程语言编写类XML的TAGS
和Scriptlets,封装产生动态 网页的处理 逻辑。Java
Servlet 是JSP 的技术基础,大型的Web 应用程序的开
发需要 Java Servlet和JSP 配合才能完成。当 Web 服
务器上的一个 JSP页面第一次被请求执行时,JSP 引
擎先将 JSP页面文件转译成一个 Java 文件,即Servlet。
Java Servlet 是基于服务器端编程的 API,用 Java
Servlet 编写的 Java 程序称为 Servlet,Servlet 通过
HTML 与客户交互。服务器将前面转译成的Java 文件
编译成字节码文件,再执行这个字节码文件来响应客
户的请求。当这个JSP 页面再次被请求时,将直接执
行编译生成的字节码文件来响应,从而加快执行的速
度。
利用 JSP 进行与Matlab 的交互机制如下:
首先正确安装Web服务器、JSP 服务器和 Matlab
运行服务器,然后把共享库 JmatLink 和Java 类
JmatLink.class 放在相应的目录下。根据操作系统和
JSP 服务器的不同,这个目录可能会有一定的不同。
通常,共享库应该放在系统目录下或 JRE 的BIN 目录
下,JmatLink.class 放在 JSP 服务器的类目录下,其中
要包含通过查询数据库或其他方式得到的数组,存储
待可视化的数据。在engine.EngEvaiString(" ")的引号
里写入 Matlab命令,对数据进行处理,就像在 Matlab
窗口中一样。也可以把已有的数据可视化程序直接写
到这里。
服务提供者
服务申请 服务注册中心
1. 发布
2. 查找
3. 绑定
Figure 1. The model of web service
图1. Web服务实现模型
Copyright © 2013 Hanspub
274
基于 JSP 的Matlab 远程调用和并行处理
其次,用户通过浏览器提交查询数据库并把查询
结果可视化,JSP向数据库提交查询,并把返回的结
果赋值给一个数组变量,然后使用 engPutVariabie()函
数把数组发送到Matlab Runtime Server。Matlab Run-
time Server 根据 JSP 的后续指令,对数组进行预处理,
最终绘制图形,并把图形保存在硬盘上。
最后,JSP 输出含有指向该图片文件超链接的动
态网页,Web Server把该网页连同图形文件一起传送
到用户浏览器,使用对象中相应的方法。
2.3. 远程调用 Matlab 引擎
Matlab 引擎是 Matlab提供的一系列程序的集合,
它允许用户在自己的应用程序中对Matlab 进行调用,
将Matlab 作为一个操作引擎使用,使其在后台运行。
一般 Matlab 引擎采用客户机/服务器计算方式。通过
Matlab 引擎,用户可以将 Matlab 作为一个功能强大、
可编程的数学函数库,调用Matlab 中大量的数学计算
函数,完成复杂的计算任务;可以为一个特定的任务
构建一个完整的系统,前台的用户界面用高级语言编
写,后台的计算任务由 Matlab引擎来完成;用户不但
可以在本地计算机上调用Matlab引擎,而且还可以通
过网络调用远程计算机上的Matlab 引擎,这样可以很
好地实现资源的共享和作业的分工合作[7,8]。
针对本文的研究工作,需要访问网站并调用一个
大型的通信系统,网站系统和仿真系统保持一定的相
对独立性可以提高各自的工作效率,所以选择使用网
页功能调用 Matlab 引擎的方式来实现远程调用仿真
平台的目的。
仿真平台的工作主要分两步:1) 获得仿真平台参
数;2) 获得开始仿真的命令,其中包括选择并行配置。
利用网页输入框获取参数,然后将参数保存到文件
中,由 Matlab 读取文件。将启动仿真平台的一系列动
作录制为一个脚本,由网页启动脚本,进而调用仿真
平台,这样就可以在保持两者相对独立性的前提下使
二者协同工作,并且都保持较高效率。这样做的另一
个好处是便于修改和调试。因为二者只是通过文档和
脚本简单的相连,所以,如果网站系统或者仿真平台
的某些功能需要改进或者出现问题,我们可以分别对
其进行修改和调试,而其他部分不需要为了适应这些
修改和调试进行大规模改动,避免了“牵一发而动全
身”的麻烦。
仿真完成后,会生成若干幅仿真图片,将图片保
存起来,由JSP 文件读取并显示图片,而不是由 Matlab
直接将图片信息发送给网站。这样可以保持二者的相
对独立性,提高工作效率,为系统的开发维护人员降
低工作成本。
3. Matlab并行计算
利用 Parallel Computing Toolbox (并行计算工具
箱),可在多核和多处理器计算机上使用 Matlab和
Simulink 来解决计算问题和数据密集型问题。并行处
理结构包括并行 for 循环和代码块、分布式数组、并
行数值算法,以及消息传递函数等,可以以较高的级
别在 Matlab 中执行任务及数据并行算法,而无需为特
定的硬件和网络架构编写程序。这样,将串行 Matlab
应用程序转换为并行Matlab 应用程序,几乎不需要修
改代码,且不需要使用低级语言编写程序。此外,还
可以在各种批处理环境中交互运行或脱机运行应用
程序。
3.1. Matlab读取参数和结果返回
3.1.1. 参数传递
前端网页输入参数后,JSP文件将参数保存在文
本文档中,然后由 Matlab读取文件,获得参数[9]。为
了便于编写和调试代码,本文在原有的Matlab工程中
新建了一个prereaddata.m 文件,在其中新建了一个全
局类:prereaddata,将读取的参数放到其变量中,然
后将 prereaddata中的变量赋给主程序中的变量。参数
主要分为两种:整型数和字符串。
3.1.2. 指令操作
网站的功能不仅包括将参数传递到后台,还要负
责操作 Matlab,具体为选择并行配置,然后运行仿真
程序。为了实现这一功能,需要一个可以记录鼠标和
键盘行为的软件。从方便使用、容易上手的角度考虑,
选择按键精灵。
3.1.3. 结果返回
仿真结束后会生成一定数量的仿真图,仿真图显
示了仿真的结果,需要在前端页面上将仿真图显示出
来,将仿真结果呈现在用户面前。过程如下:首先,
让Matlab 将画出的仿真图以规定的名称和格式保存
在指定目录下;图片保存到指定目录后,即可通过 JSP
Copyright © 2013 Hanspub 275
基于 JSP 的Matlab 远程调用和并行处理
的显示图片代码在网页将图片呈现出来。
3.2. Matlab并行处理技术
3.2.1. 机群的概念
机群是一组独立的计算机(节点)的集合体,节点
间通过高性能的互联网络连接。各节点除了可以作为
一个单一的计算资源供交互式用户使用外,还可以协
同工作表现为一个单一的、集中的计算资源供并行计
算任务使用。机群是一种造价低廉、易于构筑并且具
有较好可扩展性的并行机体系结构。
3.2.2. Matlab 机群的工作原理
Matlab 并行计算就是把一个大规模的工作分解
成若干小任务,让不同的计算机去处理,最后把结果
收回来,以达到提高效率的目的[10]。在每台参与计算
的计算机中启动一个叫Matlab Parallel Computing
Engine 的服务,该服务能启动参与计算的worker的
Matlab session 和管理各台计算机workers 的Job
manager。Job manager对workers 进行管理,给workers
分配计算任务,接收 workers计算后的结果。而 client
把工作分解为多个任务,然后把任务给 Job manager。
Job manager 根据workers 的多少和空闲情况,适当地
把任务分配给workers 去做。workers完成任务后,会
把结果返回给Job manager。当所 有workers 都完成任
务后,Client 就可以从Job manager 里取回结果。
实验室 Matlab并行机集群如图 2所示,node5 扮
演了 Job manager 的角色,它负责管理四个workers,
即node1 到node4的工作情况。
4. 运行结果及分析
首先在本机 local 模式下启用单核,运行如下循
环并记时。
Node 1
主机
Node 5
Node 2
Node 3
Node 4
Figure 2. Matlab parallel computer luster c
图2. 实验室Matlab并行机群
>> tic:x=0;
parfor i=1:10000000
x=x+i;
end
x:toc
Elapsed time is 6.511772 seconds.
>> matlabpool close
Sending a stop signal to all the labs…stopped.
然后在本机上开启两核,运行如下循环并记时。
>> tic:x=0;
parfor i=1:10000000
x=x+i;
end
x:toc
Elapsed time is 3.311485 seconds.
>> matlabpool close
Sending a stop signal to all the labs…stopped.
可见,运算时间缩短近一半。
再启用双机四核,运行如下循环并记时。
>> matlabpool
Starting matlabpool using the ‘job_1’ configura-
tion…connected to 4 labs.
>> tic:x=0;
parfor i=1:10000000
x=x+i;
end
x:toc
Elapsed time is 1.970535 seconds.
可见,运算时间缩短至三分之一至四分之一。
程序中的仿真模式分为“parallel”和“normal”,
即并行运算和常规运算。需要注意,有时并行运算时
间会大于常规运算时间,这是由程序本身的设计不合
理以及循环内容少造成的。如果每循环一次就要重新
分配工作站,循环完一次就要断开工作站,分配和断
开都很耗时间,在以秒计的时间范围内表现得更为明
显。而分配、断开所耗的时间基本固定,如果循环的
内容太少将导致循环一次的时间反而比分配、断开的
时间少,导致不用并行反而比较快的情况。
5. 结论
本文以一个大型通信系统仿真平台为背景,研究
Copyright © 2013 Hanspub
276
基于 JSP 的Matlab 远程调用和并行处理
Copyright © 2013 Hanspub 277
了基于 JSP 的Matlab远程调用和并行计算的实现方
法,通过 Web 服务的实现模型、JSP 网站与 Matlab
之间的交互机制、Matlab 调用和并行机制等环节,设
计了一套 JSP 网站与 Matlab协同工作的系统,使用户
可以通过登录网站调用通信网络仿真平台,通过前端
网页输入信道参数,调用仿真程序,并通过页面将结
果反馈给用户。
参考文献 (References)
[1] 赵铁松, 王晓云, 李伟, 陈邵友, 贾志宏. 基于B_S 架构和开
源WebGIS 平台的气象观测站网可视化系统[J]. 气象科技,
2013, 41(1): 57-61, 96.
[2] 孙楠, 杨佳颖. 基于 Web 的宿舍管理系统的设计分析研究[J].
福建电脑, 2013, 1: 114-116, 130.
[3] 斯琴其木格. 基于Web 应用的蒙汉术语双向翻译词典研究[J].
内蒙古民族大学学报, 2012, 18(1): 35-36.
[4] 蒋晓肖. 基于Web Services的电站仿真开放平台研究[D]. 上
海大学, 2009.
[5] 李相育, 钱宇. 基于 Web 服务的 Matlab 功能封装模型[J]. 计
算机工程与设计, 2007, 28(20): 5021-5022.
[6] 罗建华. 浅析JSP 开发技术的现状与发展前景[J]. 电脑与电
信, 2011, 9: 62-63.
[7] 郭富强. 基于WEB 的MATLAB 的远程在线编译系统设计[J].
渭南师范学院学报, 2008, 23(5): 46.
[8] 马景涛, 郑斌, 张利益, 孔伟伟. Java Web 网站应用 Matlab 问
题解决方案[J]. 现代电子技术, 2013, 36(6): 56-58, 62.
[9] 郝雪峰, 须德, 范莹. JSP 环境下基于MATLAB 引擎的数据
可视化方法[J]. 计算机工程与应用, 2004, 40(22): 110-111.
[10] 高媛媛, 蔡乐才, 刘强国. 基于Matlab 机群的分布式并行图
像匹配算法[J]. 四川理工学院学报, 2011, 24(5): 545-547.

版权所有:汉斯出版社 (Hans Publishers) Copyright © 2012 Hans Publishers Inc. All rights reserved.