王 娜, 徐鲁雄
(福建师范大学福清分校 电子与信息工程学院, 福建 福清 350300)
基于Unity 3D的计算机网络虚拟实验室建设研究
王娜, 徐鲁雄
(福建师范大学福清分校 电子与信息工程学院, 福建 福清350300)
针对传统的计算机网络实验教学中存在实验设备成本高、维护难的问题,将Unity 3D与3D Max相结合,以面向对象的软件工程方法为指导思想,提出了一种基于Unity 3D的计算机网络虚拟实验室的解决方案。该方案应用Unity 3D和3D Max构建三维场景,用Apache为Web服务器,并运用PHP网络脚本语言实现后台数据库MySQL与Apache服务器的连接。系统设计采用三层的 B/S 架构,表示层、业务逻辑层和数据存储层的分离有利于各层逻辑的复用,并便于维护。
计算机网络; 虚拟实验室; Unity 3D
计算机网络课程是计算机、网络、通信等专业的必修课程。学生通过学习网络知识和亲身实践,能够掌握计算机网络的基本概念和基本原理,从而具备熟练安装及调试网络设备的能力。近年来,随着高校规模的不断扩大,一些传统的计算机网络实验室存在着设备老化、数量短缺或亟需修缮等问题,无法适应教学需要。在传统的实物实验教学中,实验的地点和时间是被限定的,通常只是让学生完成数据读取、分析与处理等规定操作,因而大大制约了对学生的工程创新能力的培养[1]。虚拟实验可以实现真实实验不具备或难以完成的教学功能,特别是在具有一定危险性或高成本的大型实验环境中,虚拟仿真技术能够改变实验系统的构建模式,提升实验仪器的整体性能,提供可靠、安全和经济的实验项目[2]。基于Web的虚拟实验室虽然在一定程度上满足了网络实验的需要,但是仍存在建模效果与实际的实验环境差异较大的问题。因此,基于Unity 3D的计算机网络虚拟实验室采用Unity 3D和3D Max开发三维场景,让使用者,特别是学生用户在非常接近真实实验环境的情况下进行实验,有助于激发他们的学习兴趣,提高其动手能力。
计算机网络虚拟实验室采用了基于浏览器/服务器(Browser/Server,简称B/S)的体系架构。所谓B/S架构,是在服务器端安装数据库和应用程序,客户只需通过浏览器便可访问服务器端的Web 应用程序和进行相应的操作[3]。相对于客户端/服务器架构(Client/Server,简称C/S),B/S架构将开发和维护工作集中在服务器端,构件的重用性较好,具有维护简便、成本低和安全性高的特点。计算机网络虚拟实验室的体系架构见图1。
图1 计算机网络虚拟实验室的体系架构图
计算机网络虚拟实验室采用的是3层B/S结构,在数据管理层和用户界面层增加了1层结构,称为中间件,利用中间件将应用分别表示为表示层、业务逻辑层和数据存储层3个不同的处理层[4]。用户通过Web浏览器向Web服务器发送登录虚拟实验室的请求,Web服务器根据用户请求生成相应的虚拟机资源并管理远程桌面和虚拟环境供用户进行实验。场景库包括虚拟实验室内及周边环境以及声音等的数据;模型库包括用户在虚拟实验中用到的各种实验设备的信息;文件数据库中存储了各种用户的信息、实验内容及其过程的相关数据和表格等。
计算机网络虚拟实验室采用Windows作为开发平台,运用PHP网络脚本语言和MySQL数据库,在Apache服务器上实现了B/S模式的体系架构。
基于Unity 3D的计算机网络虚拟实验室的用户角色有3种,分别是学生、教师和管理员,每种角色的权限不同。本文采用面向对象的软件工程方法Rational Unified Process(统一开发过程,RUP)[5-6]作为软件开发策略,以Unified Modeling Language(统一建模语言,UML)和Rational Rose分别作为建模语言和可视化建模工具,对系统进行需求分析。UML是由一系列标准的图形符号组成的建模语言,它用于描述软件系统分析、设计和实施中的各种模型[7]。
2.1学生对于实验的操作
学生注册并通过管理员审核后,可以登入计算机网络虚拟实验室。在课前,学生可以预习实验内容,观看实验教学的PPT及教学视频。在实验过程中,学生查看实验项目,在逼真的虚拟实验环境中选择适当的虚拟实验设备进行连线及调试,在实验过程中保存实验结果并在实验结束前提交实验报告。对于验证性实验,学生能够在线向教师提问;对于多人协作性实验,学生之间可以进行交流;对于实验测试,学生与他人不能进行交流。将上述功能模型通过用例图可以清晰地描述出来,以便从用户的角度展示系统的功能。用例图是由参与者、功能用例以及它们之间的关系构成的图,其目的是描述系统功能[8]。每个用例描述了参与者和系统之间的交互序列[9]。计算机网络虚拟实验室的用例见图2。
2.2教师对于实验的管理
教师注册并通过审核后,可以查看本班学生的信息、制定实验计划、添加或删除虚拟实验器件、上传PPT或教学视频。在一些需要交流和讨论的实验中,教师可以对学生进行在线指导,包括发出提示性文字信息或者远程协助等。在实验过程中,教师可以在线监控各个学生机,实时把握学生的操作进度。在实验结束后,教师要批改学生的实验报告,给出评语并导出学生成绩。
2.3管理员对于用户信息、实验和实验室的管理
管理员账号能够对任何用户的个人信息进行增加、删除、编辑、查询。管理员具有用户角色分配功能,即在提交的用户注册申请中,赋予部分用户的权限为教师,而大部分用户的权限为学生。管理员可以删除转专业学生的信息或者禁止恶意用户的登录,还可以查询学生、教师的个人信息,保管其账号和密码。管理员负责添加实验项目或者对已有的实验项目进行编辑或修改,还可以删除不必要的实验项目。在实验室管理方面,管理员在计算机网络虚拟实验室中可以添加或编辑与实验相匹配的实验室的信息,编写实验室使用说明或注意事项等。
图2 计算机网络虚拟实验室的用例图
3.1三维建模
计算机网络虚拟实验室的三维建模主要包括对虚拟环境和虚拟设备的建模。
(1) 虚拟环境。对虚拟环境进行建模之前要收集足够的素材,包括确定实验楼的规模大小及其周围建筑物及设施的位置、尺寸。由于人工测量的方法会带来巨大的数据量,因此本文选取拍照并结合电子地图的数据完成了场景素材的收集。首先利用Photoshop对照片进行处理,然后用3D Max将模型导入Unity,在Unity的编辑面板中编写脚本代码,使三维模型能够成为能够编辑的虚拟对象。最后,利用Unity的场景面板对场景全貌进行渲染,实验环境中的3D场景能够实现全方位的移动、缩放和旋转。
(2) 虚拟设备。由于虚拟设备真实反映了客观世界中的实验设备,因此虚拟设备建模的好坏会对整个虚拟实验室系统的性能产生重大的影响。虚拟设备的构建是在Unity模型的基础上通过纹理映射和渲染等效果实现的。计算机网络虚拟设备主要包括个人计算机或服务器、中继器、交换机、网桥、路由器、网关、防火墙、光纤等。如路由器模型,其外观大小和与实物成比例,颜色、纹理来源于数码相机拍摄的照片。利用3D Max提供的建模工具对路由器模型进行分层渲染,新建一个长方体,用切片法将网络接口、电源接口等几何图形从长方体上分离出来,再将数码照片图像附于路由器的表面,即贴图。在不影响视觉效果的前提下去除模型中冗余的部分并合并部分面片,这样做能够降低模型的复杂度。在3D Max中合成的路由器的三维效果见图3。由于用户不直接接触实验设备,虚拟实验室中设计了可供用户进行360度观察的三维虚拟设备以增强实验的真实感。
图3 路由器的三维效果图
3.2漫游交互
在仿真过程中,系统将仿真数据和三维场景实体实时地显示给用户,并支持实时交互控制[10]。用户通过输入正确的用户名和密码登录虚拟实验室后,通过鼠标和键盘操作来实时更改视点位置和观察方向以实现对场景环境漫游的交互控制,此外使用鼠标的滚轮可以放大场景局部的三维图片[11]。漫游交互的开发过程主要是通过编写交互式脚本并将其以组件的形式添加到相机。用户使用键盘或鼠标能够控制模型的观看角度,相机旋转的部分脚本代码如下:
if(Input.GetKey(KeyCode.W))
{
this.transform.Translate (Vector3.forward *Time.deltaTime*1);
}
else if(Input.GetKey(KeyCode.S))
{
this.transform.Translate(Vector3.forward*Time.deltaTime*-1 );
}
if(Input.GetKey(KeyCode.A ))
{
this.transform.Rotate (Vector3.up*Time.deltaTime*-11);
}
else if(Input.GetKey(KeyCode.D))
{
pos=Input.mousePosition.x;
this .transform.Rotate (Vector3.up*Time.deltaTime*11);
}
3.3错误检测
色彩丰富、图文并茂的人机交互方式激发了学生的学习兴趣,但是当学生在进行实验的过程中难免会出现各种错误,虚拟实验室作为一种教学方式应该给予学生直观的出错提示。在学生进行实验的过程中如果出错,出错信息以弹窗外加警示音的方式提示给学生。如网络接口配置实验中的命令较多,如果学生没有熟记这些命令就有可能出错,虚拟实验室的诊断功能能够帮助学生对实验错误进行纠正,这样节约了教师帮助学生调试实验的时间。
4.1用户管理的实现
用户输入计算机网络虚拟实验室的IP地址后,系统打开虚拟实验室的登录界面,见图4。用户在首次使用虚拟实验室的时候需要注册,以后使用设置好的账号和密码进行登录即可。用户输入用户名和正确的密码即可登录成功。如果用户是在自己的计算机上进行登录,可以勾选“十天免登录”复选框,这样在下次登录的时候可以省去输入账号和密码的过程。
图4 计算机网络虚拟实验室的登录界面
4.2虚拟实验
以路由连接虚拟实验为例。该实验考查学生对路由的使用,桌面上设有6台电脑,包括3台笔记本和3台台式机,要把桌面上的电脑连接起来,需要用多少个路由器(有4个LAN口)才能保证每台都能上网,并且节省路由。 参考答案是用一个路由A的WLAN口连接外网,路由A3个LAN口连接3台电脑,路由A的另一个LAN口连接路由B的WLAN,路由B的3个LAN口连接另外3台电脑,共用需要2个路由器。为了培养学生独立思考的精神,界面中没有给出路由A、B的标志。
4.3网上发布
Unity 3D引擎支持多平台,包括 PC、Android和 IOS 平台的发布。在Unity 3D中,把作品发布成网页形式非常便捷,导出的作品放在Web服务器中,供用户使用。Unity 3D发布的流程为:在菜单栏选择【File】→ 【Build Settings】打开Build Settings 窗口,选择【Web Player】,然后选择【Switch Platform 】将当前工程转为Web Player 工程[12]。
计算机网络是计算机类、通信类、信息类等专业的重要课程之一,由于其内容丰富,理论性、实践性强,学生如果不认真做实验将难以把握课程的重点和难点。传统的实验教学方式存在设备更新缓慢、器件不容易购买、场地限制等问题,利用基于Unity 3D的计算机网络虚拟实验室能够很好地解决此类问题。本文设计了计算机网络虚拟实验室的体系架构,以3层B/S架构将数据信息的传递和动态网页的生成及虚拟实验室对数据库的访问等工作交给Web Server完成,虚拟设备可以根据需要进行增减,整个系统具有可扩展性。采用Unity 3D技术实现的计算机网络虚拟实验室能够带给用户身临其境的漫游效果,弥补了实验设备陈旧、短缺的不足,扩充了教学内容,是传统教学方式的有益补充。
References)
[1] 蔺智挺.基于虚拟仿真实验的模拟集成电路实验教学[J].实验技术与管理,2016,33(1):121-126.
[2] 银玉容,朱能武,施召才,等. 虚拟仿真实验系统在给排水工程专业实验教学中的应用[J]. 实验技术与管理,2016,33(1):111-113.
[3] 郭涛,曹建,安晨光,等. 基于B/S 架构的DGA 在线监测数据平台设计与实现[J].计算机应用与软件,2014,31(8):82-85.
[4] 何波,傅由甲. C#网络程序开发[M]. 北京:清华大学出版社,2014.
[5] Akhunzada A,Gani A,Hussain S,et al. Towards experiencing the pair programming as a practice of the Rational Unified Process (RUP)[C].IEEE International Conference on SAI Intelligent Systems (IntelliSys),2013:537-542.
[6] Rao G S,Krishna C V P,Rao K R. Rational unified process for service oriented application in extreme programming[C].IEEE International Conference on Computing,Communications and Networking Technologies (ICCCNT),2013:1-6.
[7] 袁涛,孔蕾蕾. 统一建模语言UML[M]. 北京:清华大学出版社,2014.
[8] 王安生. 软件工程化[M]. 北京:清华大学出版社,2014.
[9] Gomaa H. 软件建模与设计:UML、用例、模式和软件体系结构[M]. 彭鑫,吴毅坚,赵文耘,等译. 北京:机械工业出版社,2014.
[10] 钟登华,练继亮,吴康新,等,高混凝土坝施工仿真与实时控制[M]. 北京:中国水利水电出版社,2008.
[11] 靳海亮. 海量三维地形数据实时绘制技术研究[M]. 徐州:中国矿业大学出版社,2009.
[12] 金玺曾. Unity 3D手机游戏开发[M]. 北京:清华大学出版社,2013.
Research on construction of computer network virtual laboratory based on Unity 3D
Wang Na, Xu Luxiong
(School of Electronics and Information Engineering, Fujian Normal University (Fuqing),Fuqing 350300,China)
Regarding the problem of high cost and difficult maintenance of the traditional computer network experimental equipment,a network virtual laboratory based on Unity 3D is proposed,which comes from the idea of object-oriented software engineering method. The three-dimensional scenes are built with Unity 3D and 3D Max. Apache and PHP are adopted to construct the connection of the background database MySQL and Apache server. The three layers of B/S architecture are designed to achieve the separation of presentation layer,business logic layer and data storage layer,which is beneficial for multiplexing logic layers and easy maintenance.
computer network; virtual laboratory; Unity 3D
10.16791/j.cnki.sjg.2016.09.064
2016-03-21修改日期:2016-05-11
福建省自然科学基金项目(2016J01293);福建省中青年教师教育科研社科A类项目(JAS14789);福建省中青年教师教育科研项目(JA15574)
王娜(1978—),女,河北保定,硕士,副教授,研究方向为计算机图形学和虚拟现实.
E-mail:studyres@126.com
TP391.9
A
1002-4956(2016)9-0242-04