张乃千 杨海 周丽涛
摘要:分析云计算的结构特点及在教学领域的发展趋势,提出“教学实验云”的想法,分析其技术优势,采用瘦客户端模式,完成虚拟实验云平台的总体构架和功能设计,以程序编译平台、电路仿真平台和硬件实验平台为例进行具体设计,同时提出运用最近最少使用算法(LRU)解决资源访问冲突和提高资源利用效率、建立预约机制等关键问题的方案,在云计算教学领域具有巨大的发展前景。
关键词:云计算;虚拟实验;实验云;云教学
0.引言
虚拟实验云平台是指通过融合云计算技术和远程实验技术提供的一项虚拟实验课程,可以改变传统的上机实验课程模式,实现利用任意终端的“瘦客户端”模式实现远程虚拟实验。随着云计算和信息网络的发展,虚拟实验平台得到了巨大的关注,相应的远程实验室产品也越来越多。卡拉罗纳州立大学设计研发了LAAP(learn anytime anywhere physics)物理实验系统,可以通过网页客户端直接访问实验室资源,实现虚拟实验室资源选取、相关实现模块实施、测试实验数据结果和测试评分等功能。华中科技大学开发的虚拟实验教学环境项目也在虚拟实验室建设和虚拟实验教学上取得了重大突破。杨龙军等人设计了一个基于云计算平台的计算机硬件远程实验室,通过在线网络连接方式控制实体硬件资源完成虚拟实验;刘福强等人基于云计算方式设计了一种开放式实验平台并完成整体规划设计;吴迪等人基于XEN云平台设计了网络安全实验课程,发挥了云计算的优势。基于目前计算机虚拟实验软件资源丰富,高等院校校园网络建设进入快速发展阶段,在线网络多媒体表达模式发生巨大变化的现状,我们设计了一款基于云计算的虚拟实验云平台,可以通过利用服务器模拟仿真和远程硬件操控等方式充分发挥云计算优势,解决传统计算机课程实验的不足,具有一定的发展前景。
1.云计算在实验教学领域的优势
云计算技术主要发展自并行计算(parallel computing)、分布式计算(distributed computing)和网格计算(grid computing),目前主要包括虚拟化(virtualization)、效用计算(utility computing)等概念。它包含基础设施、平台、应用3个逻辑层次,可以提供包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)等功能,具有超大规模、虚拟化、高可靠性、高拓展性、多功能性等技术特点。下面基于云计算的相关特点,分析将其应用于实验教学领域的优势。
1.1云计算的体系构架
基于广义云计算的定义,云计算提供的服务主要通过网络形式按需获得,资源提供者可以看做是“云”端,“云”中的资源具有获取实时性、使用按需性、扩展方便性等特点。目前的云计算体系主要分为5个构架层次:物理层、核心处理层、资源分布层、服务提供层和用户应用层。
1.2云计算在教学领域的发展
近几年,随着云计算的快速发展,云计算在国防工业、传媒、政务公务领域得到了一定的应用,发挥了相关优势。但是在教学领域,云计算与教学主体的融合还没有展开,教育信息化还停留在“传统课堂讲授+电子教案”的模式上,计算机等课程实验仍是基于单一计算机或硬件终端的调试实验。国家教育部《教育信息化十年发展规划(2011-2020年)》已明确提出:到2015年,初步建成国家教育云基础平台,支持相关教育云计算资源平台和管理服务平台的有效部署和应用,为用户提供教育基础类云服务。可以预见,推动云计算在教学领域的发展,具有广阔的应用前景。
基于云计算应用的教学云可以将相应的教育信息化资源虚拟化成巨大的云资源库,以云资源库为基础向学生提供广泛的云计算教学服务。在云计算应用的教学云中,用户不需要安装服务器程序或任何客户端软件就可以利用自己的移动设备终端,在任意时间、任意地点通过浏览器访问教学云资源,来完成各种课程学习或在线远程实验操作。云计算系统包含大量计算机集群进行海量数据存储与处理,可以为用户提供最新最快速的服务信息。如果将基于云计算的教学云与多媒体教学资源和虚拟实验资源进行整合优化,就可以构建成一个实时、全面的“多媒体教学实验云平台”,这对于提高教育信息化、促进教育发展具有重要意义。
2.虚拟实验云平台总体设计
2.1总体构架
虚拟实验云平台采用瘦客户端/云服务器模式,系统主要由用户端、云服务器和网络连接组成,包括相关的硬件系统和软件平台,整体平台构架如图1所示。
其中,用户端采用瘦客户端模式,要求用户可以使用终端连接实验云网络并可以实现页面浏览即可。实验云资源支持通过安全虚拟桌面连接,实验运行在虚拟桌面中,实验过程和结果保存在虚拟实验云服务器中。除去用户端以外的其他部分是平台的后台系统,后台系统综合运用存储设备、硬件设备、服务器集群设备、网络网关设备等,并基于云计算平台搭建后台虚拟仿真实验室及虚拟实验环境。这一平台实现了数据、软硬件设备等大规模资源的统一调度管理。其中,存储服务器主要负责用户实验数据的在线存储,实验服务器负责搭建虚拟实验环境并提供实验支持,监控服务器负责监控实验环境运行状态。
后台部分的最底层为磁盘阵列,用来为云平台服务器提供共享数据存储。上一层为服务器群和网络交换设备,通过高速物理网络联通。服务器集群中包含虚拟实验室的各种操作平台,平台内已含实验相关运行环境、实验数据、硬件资源及应用软件,用户可以在虚拟实验室基础上构建自己所需的各种实验环境。每个用户都可以平等地从云服务器获取相关资源并建立虚拟实验环境,并且用户之间的数据相互隔离,可以提供实验数据的存储功能等。
软件部分主要通过在云服务器中运行不同的虚拟实验环境,包括操作系统的选取和实验软件的安装,根据服务器的运算性能不同,在不同的服务器上部署不同的实验环境。系统管理部分将用来管理和维护创建的虚拟实验环境,并合理分配实验资源,将一个或多个云服务器整合为多个虚拟计算机集群系统。在实际应用中,使用负载均衡技术,保证每台虚拟实验环境的云服务器具有等价地位,可以单独提供虚拟实验服务,实现实验资源利用率的均衡化,提高实验环境的可用性。
除了虚拟实验程序仿真以外,针对用户需要硬件实验板进行实验的情况,我们设计了将实验板与云服务器连接成内部网络的结构,当用户提出硬件实验需求时,可直接将相关实验代码发送到硬件实验板上,通过云服务器返回实验数据。在这方面,国防科学技术大学独立研发的天河阳光实验板对此进行了积极的探索,取得了较大进展,在技术上积累了一定经验。天河阳光实验板与交换机、Web服务器等共同组成了B/S模式的云实验平台,用户只需要一个可以上网的终端就可以进行实验。天河阳光实验板由Web服务器进行控制,拥有丰富的硬件实验资源,可以将实验者的实验数据远程下载到FPGA,可实现相关的硬件实验。天河阳光实验板的硬件结构如图2所示,当用户发送实验请求时,实验板的STM32会控制命令CPLD完成FPGA的配置工作,同时将地址和数据传送给FPGA,并将实验数据通过STM32返回云服务器并最终发送给用户。
2.2实现功能
虚拟实验云平台实现的主要功能包括:用户在使用虚拟实验云平台之前先申请专门的用户账号以进行实验;实验的环境可以提前预约,也可以直接上机操作;在用户端完成登陆后即可搭建虚拟实验环境,进行相关实验;实验设计完成后可以将实验内容发送到云服务器端并进行实验仿真,模拟实验结束后将实验结果传送给用户;用户的实验数据不会永久存放在虚拟实验环境中,但可以将实验数据和结果存放在云存储端以便后续实验的调用;云服务端通过虚拟实验软件提供预置的实验环境以方便用户实验;用户在进行实验时还可以实时检索云服务端的参考文献资料并将相关实验情况实时共享。为简化用户操作,提高对系统的熟练性和实验效率以及考虑到系统的跨平台性,用户端提供安全虚拟桌面支持,主要由网页操作完成,实验环境安装在虚拟桌面平台,用户只要在动态网页中完成相关操作即可。实验完成后,用户可以对实验环境进行在线评价、指出存在问题,以便于云服务端系统维护和改进。系统的功能实现流程图如图3所示。
2.3具体应用设计
2.3.1虚拟实验云程序编译平台的设计
虚拟实验云程序编译平台主要提供程序编译服务,用户不需要在本机安装任何程序语言编译环境,通过云服务端的虚拟编译环境,在线搭建程序开发平台后即可实时编译程序代码,并得到相关程序编译情况和二进制程序。例如,在进行c语言代码编译实验时,可以根据实验需要选择Windows或Linux系统下的Visual C++、Java、Turbo C等编译环境作为虚拟实验环境,用户提交测试代码后由云服务器端根据用户设计需求选择实验服务器中对应的系统平台和编译环境进行远程编译并返回编译结果。虚拟实验云程序编译平台的主要设计功能如图4所示。
实验中,云服务端提前配置好不同系统平台下的不同编译环境,用户在登录后,即可选择需要的编译环境搭建自己的项目工程文件。对于常用的底层资源库,云实验环境支持实时的添加和调用。用户完成项目配置后即可进行根据系统文档规范的代码设计,设计完成后,可以选择进行编译。系统将用户的项目工程发送到云服务端,通过虚拟编译环境实时编译并反馈编译信息,如错误代码、二进制文件等,用户可以选择将这些实验数据保存在云服务器存储或者下载到本机保存。这种云编译平台不受本地客户端性能限制,拥有丰富的编译开发环境,可以极大提高用户的编程效率。
2.3.2虚拟实验云电路仿真平台的设计
虚拟实验云电路仿真平台的应用效果与程序编译平台类似,用户不需要在本机安装相关电路仿真软件,通过云服务端就可以完成电路的虚拟实验测试。但是基于电路实验的客观需要,虚拟电路仿真平台要求用户端提供更多的富文本信息,包括图形图像和必要的音视频资源,实验数据的发送和实验结果的反馈也有所不同。
为了提高浏览器端电路仿真平台的表达效果,可以采用HTML5技术进行网页的设计与表达。HTML5是HTML语言的最新版本,对于多元素网页有更好的支持,可以较好地解决数据存储、地理定位、音视频播放、网页绘图等问题,可以实现对语义化标签的直接支持,矢量绘图和支持网页内容编辑、多线程处理和离线存储等。目前主流的浏览器客户端均增加了对HTML5语言的支持。其中,HTML5提供了一种Canvas标记元素,这种元素可以在浏览器端直接实现画布功能。Canvas可以实现画矢量图、合成栅格图等操作,并将这些图形直接渲染在浏览器上,这样极大地简化了网页中图形等多媒体资源的交互过程。基于HTML5设计的电路仿真平台效果如图5。
实验中,云服务端提前配置电路仿真平台环境,用户登录后即可开展仿真操作。电路仿真平台基于富文本信息呈现,用户可以通过拖拽电子元件实现“所见即所得”的电路设计,并通过调用与服务端虚拟电路仿真平台进行电路仿真实验,实时返回仿真结果。
2.3.3虚拟实验云硬件实验平台的设计
虚拟实验云硬件实验平台包括硬件仿真和硬件实物操作,硬件仿真平台与程序编译平台相类似,硬件实物操作将云计算技术与真实硬件实验板相结合,用户可以通过远程云连接直接调用硬件实验板资源进行实验。使用云计算+实验板的模式可以有效提高资源利用效率,降低实验成本,减少不必要的用户等待时间,为更多的用户提供硬件实验操作。该用户端的功能类似于程序编译平台,用户只需要在线提交使用硬件描述语言描述的实验代码,云服务器接收相关代码并在特定的虚拟仿真环境中测试,如果仿真测试成功,则自动连接实验板进行硬件实物操作并返回实验结果,平台的主要设计功能如图6所示。
实验中,计算机综合硬件实验板整合了丰富的硬件实验资源,实验板直接与云服务器端连接并接受云服务器的资源调用,响应客户端请求。当用户提交实验代码后,云服务器接收到相关数据,选取相对占用率最低硬件实验板进行排队操作,将配置文件下载到FPGA后进行实验操作,记录实验结果并返回实验数据。
3.虚拟实验云平台关键技术研究
3.1资源访问最近最少使用法
在虚拟实验云平台设计中,大规模用户申请相关实验资源后,存在资源占用冲突的可能。如虚拟电路仿真平台需要提供大量配置文件,仿真环境配置准备时间较长;进行硬件实验板实验时,由于对实验板的反复连续操作,新下载的配置文件需要在较短时间内替换旧的配置文件等。如果每次不同用户配置的实验环境相差不大,实验环境一直处于运行状态,则没有必要每次重新配置实验环境。为了解决这一问题,可以将每一个实验环境类比Cache调度的替换算法,采用最近最少算法(LRU)合理配置虚拟实验室资源访问。
实验云平台运行中,服务器端记录每一个实验环境的相关参数信息,当上一个用户完成实验退出后,云服务器端实验环境并不随机清空,并同时记录相关服务资源或硬件实验板的访问次数。当新的用户申请实验环境时,如果所需实验环境与服务器记录某类实验环境资源类似,且该服务资源处于空闲状态,则优先分配空闲实验环境中使用次数最少的一个分配给用户操作。如果没有与用户提交相类似的实验资源,则找出空闲实验资源中使用次数最少的一个分配给用户操作。同时为了防止挂机现象的出现,当服务器长期未能与用户进行数据连接并确认时,将自动断开服务器与客户端的实验连接,同时回收相关实验环境。
3.2虚拟实验环境预约机制
当用户需要提前预约实验环境和实验时间时,可以通过预约机制完成。预约系统包括用户端、云计算服务器和数据库3部分组成。当用户通过用户端登陆并选择实验环境预约功能后,将从数据库资源中显示当前可以预约的虚拟实验环境。数据库中主要存放用户信息、虚拟实验室资源环境情况等。当用户确认实验环境预约后,可以由系统自动依据相关信息进行审核,审核完成后,系统即自动生成该用户的模拟使用信息并在特定时间点前占用相关虚拟实验资源,资源占用同样按照最近最少法原则,根据超时规则即如果用户在预约实验环境一段时间后,未登录系统或未实现数据连接,则自动取消占用并退出实验环境。
4.结语
随着云计算技术的快速发展,在相关领域的技术应用也将越来越普遍,利用云计算技术成功解决的实际问题也会越来越多。基于云计算的虚拟实验云平台可以借助云计算网络共享实验环境,扩大实现规模,实现教育资源整合,降低实验成本。通过服务器主机模拟和远程硬件操控等实现方式进行虚拟实验可以充分发挥云计算优势,解决传统计算机课程实验不足问题,同时为学生的创新实验、课程设计提供了方便灵活的技术支撑,避免了实验室硬件资源堆叠、利用率低、实验环境重复建设问题,具有一定的发展前景。
(编辑:孙怡铭)