基于云的信号处理虚拟实验系统设计
2019-06-19王必成胡剑凌周敏孙一帆游善红曹洪龙
王必成 胡剑凌 周敏 孙一帆 游善红 曹洪龙
摘 要: 虚拟实验室利用远程真实资源或虚拟设备资源构建实验系统,并通过实验教学资源的集中网络存储及数据库的统一管理来改善资源获取与信息交流方式。文中采用JSP Web,Android应用开发,MySQL数据库等技术设计一个基于云的开放式信号处理虚拟实验系统,实现对现有实验室资源的网络化与虚拟化。该系统采用TCP协议与自定义应用层协议构建内部网络,通过云端服务器管理虚拟实验,使用应用网关监控实验板卡,并通过手机APP,Web浏览器为用户提供交互界面,用户接入网络即可进行实验操作。
关键词: 虚拟实验; 信号处理; 实验教学; 网络化; 虚拟化; 实验系统
中图分类号: TN911.72?34; G434 文献标识码: A 文章编号: 1004?373X(2019)11?0113?04
Abstract: The remote real resources or virtual device resources can be used to build the virtual experiment system of virtual laboratories, and the centralized network storage of experimental teaching resources and unified management of database are used to improve the resource acquisition and information exchange mode. The JSP Web technology, Android application development technology, MySQL database technology are used to design the cloud?based open signal processing virtual experiment system, which can realize the networking and virtualization of existing laboratory resources. The system uses TCP protocol and user?defined application layer protocol to build the internal network, manages the virtual experiments with the cloud server, adopts the application gateway to monitor the experimental boards, and provides a friendly interactive interface via App or Web browser. Users can perform experiment operation while accessing the network.
Keywords: virtual experiment; signal processing; experiment teaching; networking; virtualization; experiment system
0 引 言
虚拟实验的概念最早可见于1989年美国弗吉尼亚大学William Wolf教授提出的虚拟实验室(Virtual Laboratory)[1?3]。它有如下三个特点:以网络为基础,可以在逻辑上进行限制,但没有物理空间的限制;能够在计算机支持下联合多人完成多件事项;可以充分地实现资源共享。
实验教学是虚拟实验一个重要的应用领域,为贯彻《教育信息化十年发展规划(2011—2020年)》,国内众多高校将虚拟技术应用到实验教学当中[4?5]。包括北京大学的地球科学、考古专业,清华大学的自动化系统专业,以及上海交通大学医学虚拟仿真实验教学中心等,教育部近三年已批准了200项国家级虚拟仿真实验教学中心。虚拟实验室给实验教学领域带来了许多益处:提升教学质量,将理论结果与实际结果相比较,从而验证理论;提升开放性,弥补课堂教学的不足;提高现有资源利用率,减少实验仪器损坏率;实现网络化管理与远程实验教学[6?7]。
信号处理虚拟实验系统是针对电子信息类信号与系统、数字电路等课程实验教学工作而设计的,可支持用户随时随地登录系统进行网络远程虚拟实验,并提供实验内容的说明及实验结果的考核[8?10]。该系统具备以下优势:
1) 低受限:支持地理位置分散的用户,除了要考虑时区,不具有时空上的限制;
2) 可存储:操作步骤和实验数据被云端服务器记录在数据库中;
3) 多访问:支持数百名用户同时请求实验,由实验管理系统进行监视;
4) 高安全:实际动手实验可能具有潜在人身安全危险,而虚拟实验系统可充分保证人身安全;
5) 低维护:减少高成本、高耗损设备的维护费用。
本文设计一个用于信号处理教学的虚拟实验系统,可实现信号发生、数据采集等实验内容。该系统由云端服务器、数据库、网关和实验板卡组成,实现对实验板卡、实验操作和数据的跟踪与管理,不仅支持浏览器访问,还支持移动终端进行实验。
1 信号处理虚拟实验系统的构建
基于云的信号处理虚拟实验系统由Android APP、Web浏览器、实验系统数据库、云端服务器、虚拟实验应用网关以及信号处理实验板卡等部分组成,其系统架构如图1所示。
图1 基于云的虚拟实验系统结构图
系统各组成部分的具体功能如下:
1) 终端实现了APP与Web浏览器的实验界面设计,支持用户自由选择便捷的实验途径。
2) 架设于云端的虚拟实验管理系统连接着数据库,向上接收用户实验操作指令,向下管理各应用网关对应的虚拟教室及实验板卡,将实验信息记录在数据库中。
3) 应用网关管理与之连接的实验板卡,负责与板卡的直接数据交互,监测其状态并将结果上传到云端。
4) 底层实验板卡针对信号处理实验课程设计,采用LWIP协议与应用网关通信,解析实验参数、执行实验操作、采集实验数据并上传至网关。
2 系统各部分的分析与设计
2.1 用户端设计
用户端以提供友好实验界面为主要目标,为用户提供登录、注册、注销、实验类型选择、实验执行、结果绘图等功能。
虚拟实验系统前端Web浏览器和Android APP分别采用JSP Web技术和标准Java接口(Java.net.*)实现界面设计。APP采用TCP/IP协议与系统进行通信,开发时结合Thread和Handler方法优化多线程技术,减少响应延迟。
用户端主要工作流程如图2所示。用户登录系统后获取来自云端服务器的访问码,从而具有选择系统内实验板卡的权限。确认实验类型后,由云端服务器检索库中空闲板卡并自動分配给用户,板卡匹配成功后进入实验界面,用户指令最终会通过应用网关传递给信号处理实验板卡,由现有的实验板卡执行实验操作并返回数据。为实现数据的可视化,创建视图模型来实时绘制实验波形。
图2 用户端程序工作流程
2.2 基于云的虚拟实验管理系统设计
实验管理系统(LIMS)是虚拟实验系统的中枢部分。为了同时支持Web和APP的实验操作,采用混合架构设计,总体框架如图3所示。
图3 实验管理系统功能框图
LIMS包含系统数据库与云端服务器两部分,采用Java+MySQL技术,以Eclipse for JEE为平台开发服务器应用程序,并使用Navicat辅助工具设计基于MySQL5.7的数据库管理系统。
云端服务器采用继承Thread类的阻塞式多线程Socket通信,添加三级线程池管理服务线程,实现数据库运行,并根据系统自定义的应用层通信协议解析与处理指令。它具有以下特征:
1) 采用多线程技术。云端服务器监测到Socket连接时,从池中取出线程为该用户服务,并将通信连接的Socket类通过参数传递到子线程中,使服务器可以为大量用户或应用网关服务,而不会出现数据覆盖问题。
2) 采用池化线程管理技术。用户端与服务器通常只构建短连接,每次执行完实验操作,服务线程就会被释放。线程池使JVM节省了线程创建、撤销造成的开销,同时限制了最大线程数,保证了在线用户的响应速度。
3) 各线程I/O阻塞式通信。I/O阻塞使用户服务线程处于指令等待状态,此时该线程将释放CPU的占用,从而使云端服务器合理地为各用户分配CPU资源,避免过长时间的响应等待。
2.3 虚拟实验应用网关设计
基于C#设计的虚拟实验应用网关,将不同网段里的实验板卡与用户端连接起来,相当于连接局域网和外网的转接口,可以实时将接收的实验板卡数据和用户数据进行传输转发,构建外网和内网中指定板卡通信的链路。
在本系统中,网关既要负责与板卡的直接数据交互,还与服务器和用户终端进行通信,为此,它配备了双网卡。网关的工作界面如图4所示,其内部执行的功能如下:监听板卡在线状态并上传至服务器;处理用户端实验请求,下传实验参数并上传实验数据。
图4 网关监控界面
2.4 信号处理实验板卡设计
为满足信号处理实验需求,并支持虚拟实验系统的网络架构,本文设计了专用的实验板卡,其结构见图5。
图5 板卡结构框图
板卡以STM32F107VCT6为核心,集成了2路AD/DA、以太网PHY控制器DP83848CVV、网络接口、USB口及JTAG接口。采用LWIP协议与应用网关通信,并使用内置的高精度DAC产生指定类型、频率、幅度的信号,或利用ADC以指定频率采集信号,并定时向应用网关发送心跳包。
3 虚拟实验系统的实现与成果
完善的模块间数据交互机制是鲁棒系统的基本要素。为此,本文在服务器、网关和板卡间建立了心跳机制,使管理系统能实时监测虚拟教室和板卡的状态。
通过浏览器登录系统,用户可以对操作记录、实验板卡等对象进行访问和管理,如图6所示。
图6 Web访问界面
为了提高CPU利用率,服务器将连接但没有传输数据的通信线程放置在I/O阻塞状态,以等待客户端发送数据。每当服务器收到用户使用板卡的申请,就先将请求存放在数据库中,当收到相应的应用网关发送来的心跳包时,将请求以反馈的形式传递给应用网关。这样的等待延迟主要取决于心跳包的周期,将周期设置为秒级,对于实验用户来说是可接受的。
用户端发起实验后,打开APP触发与服务器的连接,并进入用户注册/登录界面,如图7a)所示。登录成功后,服务器将开始跟踪用户访问记录,同时为其生成一个唯一的访问码。用户获取访问码后,才可进入实验选择界面,并将实验请求发送给服务器,如图7b)所示。服务器会根据用户请求分配可用的虚拟教室与信号处理板卡,并将板卡使用申请添加到数据库缓存表中,等待应用网关审核,如图7c)所示。下一次心跳包到来时,云端服务器以反馈形式将待处理事件告知应用网关。网关与板卡协商后,给予指定用户使用板卡的权限,然后服务器将所选网关IP地址及板卡号发送给用户,APP即可与应用网关建立连接,如图7所示,并进入实验界面。用户将设定的实验内容和参数发送到应用网关,由网关传递给板卡。板卡执行实验操作后,采集实验数据并最终上传给APP并采用图形方式显示在界面上,如图7d)所示。
图7 APP实验界面
用户执行完实验任务后,自动通知应用网关释放板卡,同时云端服务器将释放相应线程。如果用户在实验过程中强行退出,服务器超过等待时间也将跳出阻塞状态释放服务线程并通知应用网关释放绑定的板卡。
使用Intel[?] i7?4510U @2.00 GHz处理器、4.00 GB内存的计算机作为服务器,对该虚拟实验系统进行性能测试。结果表明,该系统可支持150~200个并发用户,响应延迟低于1 s,且无丢包现象。考虑到现实中并非所有在线用户并发数据,可支持的在线用户数可达到200~500人。为避免丢包现象,系统访问上限为500人。
4 结 语
本文设计了一个信号处理虚拟实验系统,介绍了系统的结构框架、各模块的设计方案,以及一个典型的信号处理实验流程。测试结果表明,该系统可以为数百名用户同时提供虚拟实验服务,是一个具备低受限、可存储、多访问、高安全和低维护等优势的实验系统。
目前,该系统支持信号发生和信号采集实验,信号处理实验板卡设计时留有扩展接口,未来有望用于更多数字电路等课程的实验。
注:本文通讯作者为胡剑凌。
参考文献
[1] HERADIO R, TORRE L D L, GALAN D, et al. Virtual and remote labs in education: a bibliometric analysis [J]. Compu?ters & education, 2016, 98(C): 14?38.
[2] WANG C P, KOVED L, DUKACH S. Design for interactive performance in a virtual laboratory [J]. ACM SIGGRAPH computer graphics, 1990, 24(2): 1?5.
[3] SANCHEZ J, MORILLA F, DORMIDO S, et al. Virtual and remote control labs using Java: a qualitative approach [J]. IEEE control systems, 2002, 22(2): 8?20.
[4] 刘亚丰,苏莉,吴元喜,等.虚拟仿真教学资源建设原则与标准[J].实验技术与管理,2017,34(5):8?10.
LIU Yafeng, SU Li, WU Yuanxi, et al. Principles and standards of constructing virtual simulation teaching resources [J]. Experimental technology & management, 2017, 34(5): 8?10.
[5] KUGURAKOVA V, ABRAMOV V, ABRAMSKIY M, et al. Visual editor of scenarios for virtual laboratories [C]// 2017 International Conference on Developments in Systems Enginee?ring. [S.l.]: IEEE, 2017: 242?247.
[6] HERADIO R, TORRE L D L, DORMIDO S. Virtual and remote labs in control education: a survey [J]. Annual reviews in control, 2016, 42: 1?10.
[7] 领兄.基于物联网的图形化虚拟仿真实验平台设计[J].现代电子技术,2017,40(1):32?35.
LING Xiong. Design of graphical virtual simulation experiment platform based on Internet of Things [J]. Modern electronics technique, 2017, 40(1): 32?35.
[8] LI Z. An interactive virtual experiment platform for digital logic education [C]// 2016 International Conference on Digital Home. Guangzhou: IEEE, 2016: 238?242.
[9] AHMAD A, NORDIN M K, SAAID M F, et al. Remote control temperature chamber for virtual laboratory [C]// 2017 IEEE International Conference on Engineering Education. [S.l.]: IEEE, 2017: 206?211.
[10] VAUGHAN A S, LEWIN P L, MACDONALD A M. Virtual experiments: providing students with a unique online laboratory experience [C]// 2016 European Workshop on Microelectronics Education. Southampton: IEEE, 2016: 1?4.