一种基于异构资源集成的算法实验平台研究及其实现
杜镇,盛羽,彭悦,陈天赐
(中南大学 信息科学与工程学院,湖南 长沙,410083)
摘要:针对现有信息类课程算法设计型实验过程中存在实验环境搭建复杂、算法正确性和性能难以进行测试与分析等问题,设计并实现一种基于Web服务的面向异构资源集成的虚拟实验平台。该平台通过将各种算法在服务器端封装为Web服务并生成对应的客户端虚拟实验组件的方式,使学生可以将多种编程语言实现的算法源码直接提交到服务器,并在客户端中根据实验需求选择虚拟实验器件构建实验流程,以便对所提交算法的正确性进行测试和对性能进行分析。以数字信号处理课程虚拟实验为例说明系统的有效性。研究结果表明:该平台的使用可以使学生在无需配置复杂的实验环境的情况下将精力集中于算法的设计和优化,并可以获得直观的算法测试分析结果。
关键词:算法实验;异构资源;虚拟实验;数字信号处理
中图分类号:TP391.9 文献标志码:A 文章编号:1672-7207(2014)04-1143-08
A virtual laboratory platform based on integration of heterogeneous resources and its realization
DU Zhen, SHENG Yu, PENG Yue, CHEN Tianci
(School of Information Science and Engineering, Central South University, Changsha 410083, China)
Abstract: Due to the complexity in building experiment environment, and the difficulty to analysis correctness and performance of algorithm in algorithm design experiment in information science courses, a virtual experiment platform based on web-service for heterogeneous resources was designed and developed. In this platform, various algorithms were encapsulated as web-service on the server and the corresponding client component of virtual experiment was generated. Students were able to submit source code of their algorithms developed by a variety of programming languages to the server and choose corresponding virtual experiment component to build experiment process for testing their algorithms. Finally, the effectiveness of the platform was illustrated by a virtual experiment of digital signal processing course. The results show that with this platform students do not have to configure a complex experimental environment, and can focus on the design and optimization of the algorithm.
Key words: algorithm design experiment; heterogeneous resources; virtual experiment; digital signal processing
在信息类课程中存在很多算法设计类课程,如数字信号处理和数字图像处理,学生通过实验不同方法学习掌握相应算法的设计思想和实现方法,其中,实验是这些课程学习的一个重要环节。学生通过实验对所学的算法进行实现、改进和重新设计,并对算法的处理效果进行分析和比较,从而有效地加强学生的学习效果。目前,信息类课程中的算法设计型实验主要通过2种方式进行:(1) 学生使用一种编程语言,如C,C++,Java和汇编语言等,对在课程中所学习到的算法予以实现、改进和设计。这种方法使用灵活,与所学知识结合紧密,但是,学生使用这种方法进行实验前往往需要首先搭建复杂的软件开发环境,特别是当需要对第三方软件(如Matlab)进行调用时,这种设置过程将变得更加复杂,而这将导致学生在学习过程中难以将精力集中于算法设计。同时,在这种实验模式下,学生往往难以对其设计的算法的正确性和效果进行测试和分析。(2) 使用Multisim和LabVIEW等软件进行模拟仿真[1]。借助这些软件,学生可以在一定程度上摆脱繁琐的工程计算,将更多精力投入到基本概念的理解中。但是,这种方式只局限于在实验室中的计算机上使用,而且这种方法对学生的编程语言有很大限制。虚拟实验室是指借助于计算机软件和网络技术所建立的一个可辅助、部分替代甚至全部替代传统实验各操作环节的相关软硬件操作环境,目前,国内外众多学者对虚拟实验室进行了大量研究,如:Yaron等[2]建立了一个在线的普通化学虚拟实验室,学生可以自由选取虚拟实验室中的化学仪器和试剂进行组合配置以进行化学实验;Bal等[3]使用LabView作为用户操作界面,通过Matlab&Simulink实现对Matlab的调用,建立了一个开关磁阻电机的虚拟实验室;Olabarriaga等[4]基于荷兰的网格计算平台并利用MOTEUR数据流管理系统实现实验数据传送,建立了医学图像分析虚拟实验室;Schaffer等[5]基于HP集群服务器建立了虚拟计算实验室,用户可以通过RDP协议或SSH协议获取所需的虚拟机资源完成计算工作;Gustavsson等[6]利用网格技术建立了一个连接多台硬件实验设备的电子与机械震动虚拟实验室,使多个学生可以同时使用后台硬件设备进行实验;Kumar等[7]建立了一个基于Internet的心电图设备及数据虚拟实验室,使学生可以远程使用心电图设备或者数据以辅助学习;Araiza-Esquivel等[8]建立的数字化全息照相技术虚拟实验室应用于课堂及远程教学,学生可以在系统中对二进制全息图进行创建、删减和放大等操作。Li[9]建立了一种基于虚拟机的分布式入侵检测系统,并对不同虚拟机环境下的实验效果进行了比较分析。 Li等[10]从虚拟实验室的理论基础、框架和特点几个方面介绍了中学物理虚拟实验系统,其理论基础是受行为主义、认知主义和建构主义的启发,其框架面向于群组实验和指导性实验,包括提供了电子、光学和滑轮组几个实验类型。本文作者所在课题组[11-14]也基于Java Applet技术建立了计算机组成原理、数字图像处理和汇编语言等课程的虚拟实验室系统。这些虚拟实验室有着各自的特点和优势,但也普遍存在一些不足,如:它们大部分采用基于组件的软件开发技术,利用一种编程语言实现,普遍缺乏对异构资源的支持,不熟悉该语言则无法开发组件,并且很多成熟的异构资源也不能集成到平台之中,无法重用这些软件资源;利用CORBA和DOM技术虽然能够实现异构对象的通信,但是,它们基于特定的协议和标准,而且不能跨越防火墙,具有很大的局限性。针对这些问题,本文提出一种面向异构资源集成的虚拟实验平台。该平台利用Web服务技术,将异构组件发布为Web服务组件。Web服务组件是一种分布式组件,它具有语言独立性、高度可集成性、松散耦合和使用协议普遍等特点[15],因此,平台可以集成异构组件,实现组件的重用;并且平台支持用户利用自己熟悉的语言自主开发组件,平台会将它们自动注册为Web服务组件,集成到平台中,提高用户的动手实践能力和创新能力。利用Web服务技术通过重用异构组件和用户自主设计组件,可以迅速组装具有高度可重用性、可维护性和个性化的虚拟实验平台。
1 平台架构设计
通过分析,本文采用Java语言开发和实现平台功能,采用JavaBean技术开发同构的JavaBean组件,采用Web服务技术对异构组件进行封装,开发Web服务组件。其架构设计如图1所示。
图1 虚拟实验平台的架构设计图
Fig. 1 Architecture design of virtual laboratory platform
JavaBean组件在客户端运行,具有较高的运行效率,主要用于实现获取用户及系统的输入以及在客户端显示实验运行结果等功能;Web服务组件主要用于封装异构资源,实现异构资源的重用。在此基础上,虚拟实验平台采用B/S架构模式,由Applet客户端、Web服务器端和分布式Web服务资源3部分组成。
Java Applet客户端为用户提供图形化的操作界面,用户通过它与平台进行实时交互。用户可以通过浏览器直接访问客户端,从而屏蔽了不同操作系统之间的差异,具有良好的跨平台性。客户端开始运行后,通过网络向服务注册中心请求所有虚拟实验仪器的描述信息,并利用获取的描述信息动态地更新平台的组件信息列表。在平台中,用户可以通过鼠标拖拽创建虚拟仪器,并添加虚拟仪器之间的连接线,定制个性化的实验流程。当用户选中虚拟仪器时,可以在组件参数配置面板中设置或修改其参数内容,并且可以在组件说明面板中查看虚拟仪器所对应组件的描述说明信息,以增强对组件的理解。在搭建实验流程、设置虚拟仪器的参数内容之后,用户就可以开始执行实验并查看实验结果。平台还为用户提供了保存实验、装载实验、新建实验和运行经典实验等功能。更为重要的是,平台为用户提供了多种Web服务发布接口,用户可以提交自己设计的算法的源代码,平台会自动将其发布为Web服务,并与当前平台集成,供用户使用。客户端直接关系到用户的操作体验,是平台中非常重要的内容。
Web服务器端为用户提供Java Applet应用程序、配置文件以及其他一些资源,其中还包括服务注册中心和服务发布引擎。当用户通过浏览器登录客户端时,就会从服务器端获取Applet应用程序和平台支持文件,从而实现对平台的访问。服务器端的服务注册中心保存了JavaBean组件和Web服务组件的描述信息,其中主要包括组件的分类信息、访问地址信息、调用接口信息和组件说明信息等。客户端启动时,将向服务注册中心查询组件信息,从而更新自己的组件信息列表。服务发布引擎为用户提供Web服务发布的功能,当用户通过客户端提交算法实现的源码时,服务发布引擎根据用户提交源代码的程序设计语言的类型,自动将其发布为Web服务,并将该Web服务的描述信息注册到服务注册中心,同时返回给客户端,以便客户端更新组件信息列表,实现组件的即时发布。
Web服务资源层主要包括Web服务组件库、JavaBean组件库和经典实验库等。Web服务组件库是大量Web服务的集合,它可以位于不同的服务器上,减轻单一服务器的负载压力。Web服务组件是各种异构组件的服务化封装,JavaBean组件是Java类的组件化封装。为了方便用户的使用,本文采用一种可视化机制,对Web服务组件和JavaBean组件进行处理,将它们映射为可视化的虚拟仪器,如图2所示。经典实验库为用户提供了课程中所包含的经典实验集合,方便用户进行学习,提高学习效率。
虚拟实验平台采用J2EE体系结构实现,具有良好的稳定性、可移植性和跨平台性。利用Web服务技术,提高了平台的可重用性、可维护性、可扩展性以及个性化。
图2 服务及组件的可视化机制
Fig. 2 Visualization mechanism of services and components
2 平台关键技术
2.1 异构资源的Web服务化封装
Web服务技术通过Internet 和SOAP协议进行通信,具有很强的可移植性和互操作性。它向外界提供服务和资源的接口,而不涉及其内部的实现方式,屏蔽了异构系统之间的区别,从而实现了对异构资源的封装和调用。
学生在进行算法类课程实验时,经常会用到多种开发语言和开发工具,如OpenCV,C/C++,Java和MATLAB等。为了实现这些异构组件之间的通信,平台利用Web服务技术将它们统一封装为Web服务,组成Web服务组件库。Web服务技术作为Web服务发布和调用的规范,有效地解决了异构组件之间的互操作问题。为了进一步了解异构组件的服务化封装机制,本文以MATLAB组件为例说明系统对异构资源自动封装发布的过程。
MATLAB是一套科学计算软件,具有强大的计算机数据处理能力,很强的图形绘制与处理能力,并且拥有应用广泛的模块集合工具箱。但是,它局限于自己的运行环境,而不便于集成到其他应用程序中。将MATLAB组件封装为Web服务,有效地解决了这一问题。MATLAB作为后台服务器和服务提供者,可向服务请求者提供强大的功能支持,实现了对MATLAB功能组件的软件重用。由于目前还没有直接将MATLAB组件发布为Web服务的方法,所以,需要利用MATLAB与高级编程语言的接口,以高级编程语言作为桥梁,帮助实现这种转化。比较通用的就是利用C/C++作为中间桥梁来实现这种转化,本文也采用这种方式。
MATLAB与C/C++的接口有3种形式:MEX文件、MAT文件应用程序和引擎应用程序。为方便对MATLAB组件封装,本文采用引擎应用程序模式,实现C/C++与MATLAB的混合编程。引擎应用程序实质上是把MATLAB作为一个后台引擎,并允许C/C++程序通过引擎接口,从后台启动这个引擎,并利用引擎库函数实现对MATLAB的调用。常用的引擎库函数有:engOpen,用于开启MATLAB引擎;engClose,用于关闭MATLAB引擎;engPutVariable,用于给MATLAB引擎传输数据;engGetVariable,用于从MATLAB引擎获取数据;engEvalString,用于对MATLAB语句的调用执行。MATLAB和C/C++数据类型不同,为实现二者之间的数据传递,MATLAB提供了一个数据类型mxArray,用以在C/C++程序中表示MATLAB数据,并提供了mxCreateXXX和mxDestroyArray函数,在C/C++程序中实现mxArray类型数据的创建和删除。通过MATLAB与C/C++的编程接口,将MATLAB组件封装为一个C/C++组件,然后,利用C/C++组件的服务发布方法,将MATLAB组件发布为Web服务。
本文采用gSoap作为C/C++组件的SOAP运行环境,将C/C++与MATLAB混合编程的组件发布为Web服务。其服务发布过程如下:首先,创建一个C/C++的H头文件,在其中设置服务名称、服务调用方式、服务编码方式以及服务命名空间等信息;然后,提取C/C++组件中方法的函数声明,并将其按照gSoap要求的格式,保存在该头文件中,假设头文件的名称为ws.h;利用gSoap提供的工具soapcpp2,并以ws.h文件作为参数,生成服务发布需要的支持文件,主要有soapC.cpp,soapH.h,soapServer.cpp,soapStub.h,soapObject.h和ws.nsmap,还需要对C/C++组件按照gSoap的要求进行改装;最后,将C/C++组件和服务发布支持文件利用C/C++编译器进行编译,生成CGI文件,再将该CGI文件配置到Tomcat服务器,即完成了服务的发布工作。服务请求者便可以通过CGI方式访问该Web服务,调用MATLAB提供的强大功能。
为实现MATLAB组件的自动化发布,需要用户提供MATLAB组件中方法的C/C++类型的声明,平台可以利用此声明,自动化地生成ws.h文件和对MATLAB组件进行封装的C/C++组件文件。然后,调用soapcpp2工具,生成服务发布需要的支持文件。平台采用Makefile技术,将支持文件与C/C++组件文件组成一个编译项目,并对该项目进行自动化编译,生成CGI文件,实现MATLAB组件的自动化服务发布。例如,对于用户提交的函数Complex[] fft(double sig[], int size),经过包装后形成的代码部分为:
Int nsl_fft(struct soap *soap,Array in,Array &response)
{
Double *sig = convertFromNet(in);
Int size = in._size;
Complex *r = fft(sig,size);
convertToNet(r,response);
}
由于MATLAB语言是一种解释性语言,对于变量的类型是没有明确定义的,例如函数fft_sig(sig)中的变量sig既可以是复数,也可以是实数,它是根据用户输入的数据来判断类型的。由于C/C++是强制类型语言,因此,在M文件 (MATLAB语言编写的脚本文件)注册时,必须指定M函数中各种变量的具体类型,客户端向服务端传递了4种不同功能的参数类型:输入参数类型、输出参数类型、返回参数类型和执行类型。根据面向对象编程的思想,设计了一个抽象的Type类,该类记录了名字、类型类别和输出缓冲空间等信息,利用Java的List构成链表数据结构。拥有一个抽象的方法write( ),子类通过实现该方法来实现不同类型代码的自动生成。
最终代码自动生成的关键代码如下:
for (Element ele : configList)
{
if (ele.getName().equaIs("retum"))
TypeFactory.create(classmap.get(0), 0, out, urn, linked);
List type = ele.getChildren();
for (Element element: type)
{
TypeFactory.create(classmap.get(Integer.valueOf(element.getAttributeValue("type"))),
nteger.valueOf(element.getAttributeValue("type")), out, element.getText(), linked);
}
}
通过解析M文件注册的XML配置文档,利用基于反射的简单工厂模式生成不同的Type实例,在其初始化的过程便调用write方法完成了相应代码的生成。
2.2 实验运行的调度机制
在虚拟实验平台客户端中,用户可以根据实验需要,选择虚拟实验仪器组件通过连线的方式建立组建之间的数据通路。在一个实验流程中,各种虚拟一起组件之间通过连线形成了一个有机整体。由于组件之间的连接关系非常复杂,为了保证实验有序、顺利、高效地执行,需要设计一个合理的实验运行调度机制。
实验流程在视觉上给用户的展示就是多个虚拟实验设备之间通过连线连接起来,宏观上就是1个图。每个虚拟实验设备可以抽象为图结构中的1个节点, 2个引脚之间的连线可以抽象为1条有向边。在这个有向图中,对于每个节点,只有其所有的父节点执行完毕,并将数据传递给它,才能执行。因此,实验的执行顺序就是按照图的拓扑排序后的顺序来执行的。
第1种实验调度流程就是按照拓扑图的结构从上级到下级依次执行每个实验组件,这个调度流程简单明了,但存在一定缺陷。Web服务组件在调用时需要进行网络数据传输,假设A和B是2个Web服务组件,且A是B的父节点,C和D分别为A和B这2个节点对应的服务端的Web服务。按照这种调度流程,执行过程如下:A根据服务的接口信息和参数内容向C发送SOAP请求数据,C处理完毕后向A回发SOAP响应数据;A将数据传递给B,B同样根据服务的接口信息和参数内容向D发送SOAP请求数据,D处理完毕后向B回发SOAP响应数据。在整个过程中,客户端与服务器存在4次数据传输,但经过仔细分析后,4次数据传输可以减少为2次数据传输。可以将A和B看作为1个Web服务组合组件,客户端请求执行Web服务组合组件,将执行信息发送给服务端,服务端接收到请求后,依次执行A和B这2个Web服务组件,然后,将结果返回给客户端,这样,可以将原有的4次数据交换减少为2次数据交换。显然,若相互关联的Web服务组件越多,则节省的网络数据传送次数就越多。为此,本文提出了一种基于Web服务组件组合优化的实验调度流程,它可以在存在多个相互关联的Web服务组件的情况下,减少网络间的数据交换次数,提升实验的执行效率。
基于Web服务组件组合优化的实验调度流程的执行步骤如下。
步骤1 检查实验拓扑图是否为空,若为空,则实验执行流程结束。
步骤2 按照拓扑顺序,从实验拓扑图中取出实验组件,判断实验组件的类型。若组件类型为Web服务组件,则继续执行步骤1;若组件类型为本地组件,则转入步骤3。
步骤3 判断本地组件是否有前驱,若存在前驱,则转入步骤4;否则,执行本地组件,从实验拓扑图中删除该节点,转入步骤1。
步骤4 将本地组件的所有前驱节点取出来,行成1个待执行的Web服务组件列表,并从实验拓扑图中删除这些前驱节点。
步骤5 根据步骤4中的Web服务组件列表构建发往服务器的节点列表,将列表发往服务器;
步骤6 根据服务器执行的返回结果获取本地组件需要的参数执行本地组件,并将该节点从实验拓扑图中删除,转入步骤1。
通过步骤2和3可以保证实验流程图中连续的Web服务组件一起打包发往服务器上执行,原先的2N次数据传输(N是连续Web服务组件的个数)降为2次数据传输。图3所示为试验运行调度流程图。
本实验调度流程的正确执行程度主要取决于步骤4中的构建的发往服务器的节点列表。该列表不仅需记录组件的执行顺序,而且携带组件执行所需的参数。本文采用XML文档构造此节点列表。构造XML文档时,用1对描述1个Web服务组件的执行信息。method元素包括4个属性:serviceurl,nameSpace,methodName和id。其中:serviceurl记录Web服务的地址;nameSpace记录Web服务模式名字空间;methodName记录Web服务的接口名;id是按升序生成的序列值,用来唯一标识每个Web服务组件。method元素下面有2种类型子元素:param和ret。param用于表示参数方面的信息,它有一个固定的属性type,用于表示参数的类型。若这个参数的内容是依赖于其他Web服务组件执行的返回值,则会有另外一个属性pid,用来表示所依赖的组件的id。否则,元素param的内容就是参数内容字符形式。ret用于表示Web服务组件的返回类型。该文档中所有method标签对都是按照Web服务组件的执行顺序排列的。服务器为了保证这些Web服务组件的执行,需要建立一个Hash表,其键值是Web服务组件的id,映射的值就是Web服务组件执行的结果。服务器根据接收到的节点列表,依次解析出其中的每个method元素,若其参数值是依赖于其他组件,就根据其依赖的pid值到Hash表找到对应的内容,然后执行组件,执行完后将结果写入到Hash表中。所有的Web服务组件执行完后,将执行结果以XML格式返回给客户端,这样就完成多个Web服务组件的执行。另外,为了减少执行过程中的流量,本文对调度中传递的XML文档采用7Z技术进行压缩。
图3 实验运行调度流程图
Fig. 3 Flow chart of experimental running
3 平台应用实例
数字信号处理是一门内容十分抽象、公式繁多以及理论性很强的课程,单纯的理论教学容易使学生感到枯燥乏味,丧失学习兴趣,不利于学生对后续课程的学习。但是通过实验,学生可以跳出对理论的单一理解;通过观察实验结果,又可以激励学生对理论的进一步学习。这种理论-实验的良性循环有利于学生学习这门课程。而在传统的实验模式中,学生需要安装相应软件开发环境特别是需要安装Matlab软件才能完成实验,其过程比较复杂,且学生对其所实现的算法也难以进行性能和处理效果的比较分析。依托面向虚拟异构资源集成的虚拟实验平台,所开发的数字信号处理虚拟实验系统则可以为学生提供一个操作简单,能灵活定义实验流程并能对实验结果进行比较分析的开放式实验环境。
本文以数字信号处理课程中的巴特沃斯低通滤波实验为例说明虚拟实验系统中的实验流程的搭建和运行。其具体步骤如下。
首先,选择实验所需的各种实验组件。根据实验的需求,从信号源分类组件库中选取2个余弦波发生器,从信号处理组件库中选取信号滤波器(FIR)、巴特低通滤波系数产生器和FIR频率响应器,同时,根据观察实验结果需求,从图形展示组件库中选取若干图形展示组件。其中,巴特低通滤波系数产生器是Web服务组件,其他的是Java组件。根据实验流程,为组件之间搭线。图4所示为实验搭建后的流程图。
图4 巴特沃斯低通滤波实验
Fig. 4 Experiment of Butterworth LPF
然后,设置实验组件参数。完成实验流程的搭建后,还需对组件的参数进行设置。用鼠标左键单击设计面板中的1个实验组件,右边的参数编辑窗口就会自动装载组件的参数内容,单击相应的参数进行编辑。对1个余弦波发生器组件的参数进行设置,如表1所示。由表1可知:余弦波的频率被设为16,采样频率设为64次,相位设为0 V。
表1 配置组件参数表
Table 1 Parameters of component configuration
最后,执行实验流程。实验执行完毕后,单击结果展示面板组件会弹出实验结果窗口。输出面板是将1个实数数组用X-Y坐标系的方式展示出来。它首先遍历收到的数组,获取到最大值和最小值,通过最大值和最小值的差值得到图像展示区的相对高度H,以数组的长度作为图像展示区的相对长度L。根据实际可用于显示的区间,假设其高度为H1,宽度为L1,则映射到数组序列中的单位高度为H1/H,单位长度L1/L,以图像展示区的左下角作为X-Y坐标系的原点,将数组的每个元素布局在面板上。图5(a)和5(b)所示为2个输入信号的波形,图5(c)所示为2个输入信号混合叠加后的信号波形,图5(d)所示为经过巴特沃斯低通滤波之后形成的波形。从实验运行结果可知:可以通过实验输出面板很直观地看出实验结果,并可实验效果进行对比。
图5 实验运行结果
Fig. 5 Experiment results
从搭建实验到完成实验,与传统的虚拟实验平台相比,用户可以通过基于异构资源集成的虚拟实验平台将OpenCV组件和Matlab组件等自己熟悉的语言开发的组件集成到当前平台中,更能提高用户的动手实践能力和创新能力;通过异构组件发布的方式能为用户提供丰富的Web服务组件,为用户实验提供极大方便,提高了组建的重用度;而且平台简单易用,具有良好的互操作性、维护性、扩展性和重用性,为其他虚拟实验平台的建设提供了重要参考。
4 结论
(1) 针对信息类课程中传统实验模式中算法类型实验所存在的问题,提出了一种面向异构资源集成的虚拟实验平台。
(2) 以数字信号处理虚拟实验系统为例说明了该平台的应用方法和使用效果。
(3) 该平台能够为学生提供一个简单易用的算法类课程实验环境,使学生在无需配置复杂开发环境下能够集成异构实验资源对自己所设计算法进行正确性检测和性能分析。
参考文献:
[1] 王秋生, 袁海文. 《数字信号处理》课程的分层实验教学方法[J]. 北京航空航天大学学报(社会科学版), 2011, 24(5): 109-112.
WANG Qiusheng, YUAN Haiwen. Experimental teaching method based on hierarchy model for digital signal processing[J]. Journal of Beijing University of Aeronautics and Astronautics (Social Sciences Edition), 2011, 24(5): 109-112.
[2] Yaron D, Karabinos M, Lange D, et al. The ChemCollective-virtual labs for introductory chemistry courses[J]. Science, 2010, 328(5978): 584-585.
[3] Bal G, Bayhan S. Internet based virtual electric machine lab: Switched reluctance motor[C]//International Conference on Application of Information and Communication Technologies. Tashkent: IEEE Computer Society, 2010: 1-5.
[4] Olabarriaga S D, Glatard T, de Boer P T. A virtual laboratory for medical image analysis[C]//IEEE Transactions on Information Technology in Biomedicine. Piscataway: IEEE Computer Society, 2010: 979-985.
[5] Schaffer H E, Averitt S F, Hoit M I, et al. NCSU’s virtual computing lab: a cloud computing solution[J]. Computer, 2009, 42(7): 94-97.
[6] Gustavsson I, Nilsson J, L,et al.A flexible electronics laboratory with local and remote workbenches in a grid[J]. International Journal of Online Engineering, 2008, 4(2): 12-16.
[7] Kumar A, Malik J, Kuma V. Virtual lab:real-time acquisition and analysis of ECG signal[J]. International Journal of Online Engineering, 2011, 7(3): 19-23.
[8] Araiza-Esquivel M A, Tajahuerce E, Martínez-León L, et al. Learning digital holography through an interactive virtual lab: the holographic interface[C]//International Conference on Education and New Learning Technologies. Barcelona:International Association of Technology, Education and Development, 2011: 4774-4781.
[9] Li P. Exploring virtual environments in a decentralized lab[J]. ACM SIGITE Research in IT, 2009, 6(1): 4-10.
[10] LI Luyi, ZHENG Yanlin, ZHONG Shaochun. IWVL: A web-based virtual lab for physics teaching in junior high schools[J]. Communications in Computer and Information Science, 2011, 233: 192-199.
[11] WANG Yijun, ZHANG Liyuan, SHENG Yu, et al. Design and implementation of principles of computer organization virtual lab based on component//Second Workshop on Blended Learning. Jinhua: Springer Berlin Heidelberg, 2008: 35-45.
[12] 盛羽, 余进, 陈松乔, 等. 基于CPU 仿真器的汇编语言学习系统的设计与实现[J]. 中南大学学报(自然科学版), 2010, 41(6): 2224-2230.
SHENG Yu, YU Jin, CHEN Songqiao, et al. Design and implementation of assembly language learning system based on CPU simulator[J]. Journal of Central South University (Science and Technology), 2010, 41(6): 2224-2230.
[13] 盛羽, 张青龙, 陈松乔, 等. 面向最终用户编程的图像处理虚拟实验平台[J]. 系统仿真学报, 2011, 23(7): 1381-1386.
SHENG Yu, ZHANG Qinglong, CHEN Songqiao, et al. Business-end programming oriented virtual laboratory for digital image processing[J]. Journal of System Simulation, 2011, 23(7): 1381-1386.
[14] 盛羽, 王建新, 谢朝辉. 模型机虚拟实验平台的设计与实现[J]. 中南大学学报(自然科学版), 2009, 40(6): 1609-1615.
SHENG Yu, WANG Jianxin, XIE Zhaohui. Design and implementation of model computer virtual lab[J]. Journal of Central South University (Science and Technology), 2009, 40(6): 1609-1615.
[15] Herrero J L, Lucio F, Carmona P. Web services and web components[C]//International Conference on Next Generation Web Services Practices. Salamanca: IEEE Computer Society, 2011: 164-169.
(编辑 陈灿华)
收稿日期:2013-05-01;修回日期:2013-07-21
基金项目:国家自然科学基金资助项目(61202494,61103204,61103203);新世纪优秀人才支持计划项目(NCET-10-0798);金属矿山安全技术国家重点实验室开放基金资助项目(2012KFJJ02)
通信作者:盛羽(1977-),男,湖南长沙人,博士,从事虚拟实验环境、网络加速研究;电话:0731-88877709;E-mail:shengyu@csu.edu.cn