




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论本章从论文研究背景出发,分析了虚拟桌面的发展历程,从而提出基于Linux的云校园桌面虚拟化系统的设计方案,并就国内外研究现状及相似产品进行描述和总结,同时引出本论文的研究方案及方向同时说明了论文组织。1.1本文的研究背景云计算:CloudComputing,它有四个很关键概念,第一,用户可以根据自身的需求申请资源并可以动态的配置和扩展这些资源;第二,云把硬件和软件都认为是资源,是以网络的方式提供给用户服务;第三,用户可以使用这些资源,但不需要去管理这些资源;第四,最终展现给用户的都是以单一的整体形式,尽管实际上这些资源更多的是以分布式的方式存在[1]。而云校园网络:CloudCampusNetwork,简称CCN。从概念上可以理解,它是用在高校的整体发展战略和在教学科研业务,同时还用在广泛师生用户的网络基础设施和公共支撑平台,它是一种普适接入、统一的架构、虚拟化、泛载、可信、绿色低碳的信息服务环境,是一种按需分配、按需使用的服务交付和使用模式[1]。虚拟化桌面是一种云计算应用相对比较典型的,它的目的就是在云中为用户提供远程的计算机桌面的服务[2]。在云校园云桌面上的内容、各类应用和主机租用服务为了能够让用户可以直接定制和使用。现通过搭建统一的软件资源、应用以及服务的平台后,用户只需通过手机、个人PC或其他云终端设备,然后只要通过4G网络或固定网络就能轻松获取云上资源[3]。在云校园中学习办公桌面环境是让学生老师提高学习和工作效率的技术手段,这桌面上运行的各种学习软件、应用系统是人们协同工作和学习的良好工具。同时现在很多人基本都拥有个人的PC和学习桌面电脑,但在获得这样的便利的同时当然也带来和管理和维护上的挑战。因为IT中办公学习环境的深入和普及[4]。本报告给出的解决方案,实现在云校园网内搭建虚拟桌面子系统,可以在云校园网中实现虚拟桌面取代传统电脑,这样在云网络上操作系统、游戏、工具软件等各类的应用服务,就只需通过安装简易的瘦终端就可以使用。1.2国内外研究现状亚马逊的云平台,它需要的桌面虚拟化的可扩张型很强,规模很大。它的桌面虚拟化的后台支持是云(cloud),是通过使用虚拟化集群实现的云[5]。还有google的云计算平台使用分布式的方法[6]。使用服务器虚拟化实现的云,作为桌面虚拟化的后台。它的桌面的分配与虚拟机桌面通过远程桌面的方式传输给用户的方案类似。最近的几年,“云”的概念变得流行,虚拟桌面技术也越来越受关注。曾经2010年被Citrix称为“桌面虚拟化元年”[7]。并在多种调查中发现,欧美国家中,虚拟桌面的被用户了解的程度已经有33%,企业中有27%左右在使用。16%正打算使用并在规划和部署[8]。所以要使用这个虚拟桌面主流应用,在云校园中运用虚拟桌面进行教学和办公,还有许多工作要做。1.3系统的概述本系统通过使用CentOS7的KVM组件实现多个虚拟系统。采用JavaEE的SSH技术来搭建KVM服务器管理系统,通过B/S模式来访问管理KVM服务器中虚拟机系统的相关操作,对虚拟机系统资源动态分配管理,有用户资料的管理,处理用户申请等操作。而用户只要输入帐号和密码进行登录,并得到虚拟桌面系统的连接串,并通过VNCviewer远程登录KVM中的虚拟机系统。同时用户可以根据自身的资格申请不同的虚拟机系统资源如:内存、CPU、硬盘等资源。用户可以根据自身的需求来定制自己的虚拟机系统。以下的几个方面就是本文主要的研究工作:KVM虚拟服务器的搭建,VNC访问KVM虚拟系统,用B/S模式管理KVM虚拟系统,具体说明如下:KVM虚拟服务器的搭建在CentOS7安装KVM、qemu-kvm、需要CPU支持硬件虚拟化,本系统需要在KVM虚拟服务器的基础之上进行系统的虚拟化,达到云校园桌面系统的虚拟化。VNC访问KVM虚拟系统完成KVM系统的虚拟化后,需要使用VNC服务器来将KVM虚拟系统的端口发布出去,使得用户在云校园上访问到KVM虚拟系统,并达到和真机一样的使用效果。用B/S模式管理KVM虚拟系统完成云校园桌面的虚拟化后,用Tomcat作为本系统的服务器,对于KVM虚拟服务器、服务器的资源、以及VNC服务端口的开关则采用浏览器的方式进行配置和管理,方便快捷。系统相关技术介绍本系统基于JavaEESSH(Struts2.1+Spring3.1+Hibernate4)框架,采用Myeclipse8.5作为开发平台,并结合CentOS7系统上的KVM技术和VNC技术,开发基于B/S模式的云校园桌面虚拟化系统的设计与实现。2.1JavaEEJavaEE是由组件构成的的应用程序,它的开发是基于组件的。它是Java三种平台中的一种,适用于企业级的应用。在开发web应用上,它具有很好的兼容性。不仅具有Java2平台的标准,而且还拥有多种框架可以集成。方便数据的交互、存取等操作。能开发、管理和部署很多复杂的结构体系项目。其主要目的就是为了减低开发者的开发时间,缩短开发周期。2.2SSHSSH不是一个框架,是由Struts+Spring+Hibernate集成的,是现在比较流行的框架结合,在公司中比较经常使用,而且是开源的,方便框架的完善、配置和扩张。这样的框架集合在职责上分为:域模块层、业务逻辑层、表示层和数据持久层。这样就构成了MVC的架构,是得三层分离。这样就方便了开发以及以后的维护。2.3MySQL数据库MySQL数据库是关系型的数据库,起源于瑞典。现在是由\t"/subview/24816/_blank"Oracle公司运营。也是一个主流的数据库。在多种应用上都有很好的表现,而且它体积小、速度上也比较快,关键一点是成本低还是开源的。一般的中小的企业都会选择MySQL作为运营的数据库。采用的也都是标准且常用的SQL语言,所以对于开发人员来说也是一款便捷的数据库。2.4CentOS7CentOS是红帽子公司的Linux发行版,是一款免费的的操作系统,常在中小企业中作为服务器使用。而且具有很好非常好的稳定性。2.5KVMKVM是Kernel-basedVirtualMachine的简称,是Linux内的一个虚拟化模块。在多种Linux发行版本中都有,它的资源调度是由Linux自身的调度器管理的。而且核心的源码不多,是现在主流的VMM之一。2.6RFB协议(VNC)VNC是远程控制的软件,分为服务端和客户端,主要是在Linux操作系统中。是VirtualNetworkComputer的缩写,远程控制的能力强大。可以媲美Wndow和MAC的远控软件。其中主要的命令有:vncserver,vncviewer,vncpasswd,和vncconnect。其中这边两个命令是用户最经常使用到的:vncserver和vncviewer。系统分析本章主要对桌面虚拟化系统进行分析,主要分析:总体的业务处理流程、系统总体功能需求、系统的目标、系统逻辑结构,以及系统功能流程,来达到实现系统需求的目的,并提出具体的分析。3.1需求分析本系统主要是针对目前云校园技术的设计与实现,针对现在客户机资源的浪费现象提出使用瘦客户端来对云校园上系统资源的访问和使用,实现用户根据自身需求,并可以去云上面去申请系统资源。具体分析如下:核心问题:为什么要在云校园上搭建桌面虚拟化系统?方案提出的动机:目前,在云校园平台的建立,而教学和办公还是采取传统的学习和办公模式,采用多人使用同一台电脑桌面。这样一来资料的携带的不方便,以及办公学习的桌面的变换使得办公和学习的效率低下。同时老式的PC机已经跟不上新的学习软件所需要的计算机资源。在这IT行业的迅速发展,管理和分配不同用户使用适合的桌面已经不再是技术上的难点。所以本系统要完成云校园虚拟桌面的功能,实现方便快捷的分配虚拟桌面给用户,并提供不同的用户根据需要个性化的申请需要的系统资源。拟采用的解决方案:在KVM上搭建虚拟机系统,通过Java调用shell命令qemu-kvm来开启虚拟机系统和VNCserver端口,然后在客户端上用VNCviewer访问服务器上KVM虚拟机上虚拟机系统。方案描述:本系统要基于CentOS7操作系统,在CentOS7上搭建tomcat服务器来承载该系统,是使用JavaEE技术编写,利用B/S模式来管理系统的后台。其中核心部分是利用CentOS7上的KVM技术搭建虚拟机系统,利用Java调用shell命令控制KVM服务器上的虚拟机系统的开启、关闭、添加和删除以及虚拟机系统的资源管理等操作。使用VNC技术来实现客户端和KVM服务器的虚拟机系统之间的通信。并开通虚拟机系统资源申请通道,如果用户需要更多的资源,那么就可以通过申请得到。通过这样的方案从而实现云校园的虚拟桌面,达到用户随时随地在云校园上使用专属于自己的虚拟系统。具体目标如下:用户基础资料的添加删除修改等操作,以及用户的注册功能。管理员对虚拟系统的编辑操作,以及虚拟系统资源的费用管理。用户根据任务、签到得到的本系统的img币,去申请虚拟系统以及虚拟系统资源。管理源受理用户的申请。用户启动虚拟系统,并用VNCviewer访问虚拟系统进行使用。密码的管理机制,密保问题、邮箱找回。用户的意见反馈。3.2系统功能概述本系统主要是实现用户在云校园上访问本系统的虚拟系统,并使用。还可以根据自身需求在本系统的管理界面上定制属于自己的虚拟系统。客户端主要内容:系统注册、登录模块实现用户在线登录以及注册的功能,具有动态检查注册信息的合法性,用发送用户名和密码到邮箱的方式来查找密码,登录成功后跳转主页。虚拟系统资源申请登录成功后,用户可以根据任务、签到得到的img币申请系统或虚拟机系统的cpu、硬盘、内存等资源。虚拟系统管理用户登录成功后可以对虚拟系统的名称、简述等信息资料进行简单的修改,有恢复出厂设置的功能,并且可以对虚拟系统进行开启或关闭。开启后可以用VNCviewer进行使用。个人中心管理和查看个人基本信息。查看积分明细,和消息情况。签到和意见反馈模块用户可以签到,并根据连续签到的天数得到img币。用户对本系统如果有建议,可以通过接口发送邮件给系统管理人员。服务端主要内容:用户管理用户的增删改查,默认用户的信息。虚拟系统管理添加母板虚拟系统,提供用户进行派生。统一管理用户的虚拟系统。资源管理基本资源管理,受理用户的资源申请。添加和修改虚拟系统资源的价值。3.3系统数据流图3.3.1顶级数据流图云校园桌面虚拟化系统的顶层交互数据流图,如图3-1所示:图3-SEQ图3-\*ARABIC1云校园桌面虚拟化系统顶层数据流图图3-1描述的是本系统总的数据交互流向,用户总的数据流可以概括为向服务器发送操作指令,并得到系统的界面展示。而管理员的数据流也是可以总结为向服务器发送操作指令,同时得到服务器的返回信息,再做出对应的操作。3.3.20层数据流图云校园桌面虚拟化系统的0层交互数据流图,如图3-2所示:图3-SEQ图3-\*ARABIC20层数据流图图3-2是本系统的0层数据流图,同时描述了系统内部具体的数据流,用户的指令先通过虚拟桌面客户端的处理向虚拟服务器发送开启虚拟系统的命令,由虚拟桌面服务器处理后,服务器会向KVM服务器发送qemu-kvm的虚拟机启动指令,然后经过KVM服务器处理后返回虚拟系统的端口给虚拟桌面服务器,然后虚拟桌面服务器加上服务器的域名返回给虚拟桌面客户端,虚拟桌面客户端就可以发送连接字符串到KVM服务器进行处理后,KVM服务器会返回虚拟机的操作界面给客户端,用户就可以通过客户端得到系统界面,并可以操作。3.3.3一层数据流图云校园桌面虚拟化系统的一层交互数据流图,如图3-3所示:图3-SEQ图3-\*ARABIC3一层数据流图图3-3是本系统的一层流程图中的一部分,是虚拟桌面服务器的细化,具体描述的是虚拟桌面服务器的5个管理功能以及数据流的流向。有虚拟系统、用户、虚拟机资源、个人信息、安全问题等数据操作以及数据流向。很清楚的描述出服务器上的数据流细节。3.4系统功能需求分析3.4.1管理员功能需求本系统中管理员在后台能够对所有功能模块进行操作管理,对各个模块都应该具备添加、删除和修改等操作权限,其中对用户的申请资源操作进行审核。通过对管理员拥有操作权限的相关描述,对管理员这个角色有了进一步的认识,从管理员需求的管理范围,对管理员的用例如图3-4所示。图3-SEQ图3-\*ARABIC4管理员权限用例图3.4.2用户功能需求在本系统中用户可以通过登录界面登录个人的帐号,登录成功后用户可以对自身的联系电话、电子邮箱和密码等信息进行修改。在本系统中可以对虚拟系统或虚拟系统的资源进行申请的操作。并可以对自己的虚拟系统进行恢复出厂,开启和关闭等操作。通过以上对普通用户的权限说明,可以清楚的了解到普通用户所具备的操作权限,明白了普通用户在该系统中所需求的功能权限。为了能够更直观的体现出来,对普通用户的用例描述如图3-5所示。图3-SEQ图3-\*ARABIC5用户权限用例图系统设计本章在上一章系统分析的基础上,展开对系统总体网络设计、总体功能结构设计、数据库设计、及系统主要功能模块设计。主要叙述了系统的功能模块设计,数据库的一些设计为后面的开发做好了基础。4.1网络拓扑图本系统有使用的模式有B/S和小部分C/S模式,在客户端和服务端之间的通讯是靠无线或有线传输的。客户端通过网络将数据传递给云。然后,数据被传输到服务端。这时候防火墙过滤非法数据。最后传递到服务器进行处理。处理完成后的数据,将存储到数据库中。如图4-1所示:图4-SEQ图4-\*ARABIC1云校园桌面虚拟化系统网络拓扑图通过图4-1本系统的网络拓扑图,可以看出它和普通的B/S模式的拓扑图是类似的,有不一样的就是,本系统添加了一台KVM服务器。这KVM服务器是本系统的基础,本系统需要使用KVM虚拟机服务器,虚拟出虚拟的系统,并通过WEB服务器进行管理。最后以这样的拓扑结构来搭建本系统的网络。4.2数据库设计4.2.1E-R图设计图4-2是本系统设计的总体E-R图。授权的过程:一个申请单只能有一个管理员(用户)受理,里面只能授权一个镜像的资源;一个管理员可以授权多个申请单同样的每个申请单中只能有一个镜像。安全问题的设置:一个用户可以设置一个安全问题用于找回密码;而一个安全问题可以被多个用户进行设置。消息记录获取:一条消息只能属于一个用户;一个用户可以获取多条消息。积分/img币记录:一个用户可以有多条积分/img币的记录;一个积分/img币的记录只能属于一个用户。镜像所属:一个用户可以拥有多个镜像资源;一个镜像资源只能属于一个用户。申请单申请:一个用户可以提交多个申请单;一个申请单只能属于一个用户。图4-SEQ图4-\*ARABIC2整体E-R图图4-3至图4-9是各实体具体属性图4-SEQ图4-\*ARABIC3问题表实体属性图图4-SEQ图4-\*ARABIC4用户实体属性图图4-SEQ图4-\*ARABIC5镜像实体属性图图4-SEQ图4-\*ARABIC6申请单实体属性图图4-SEQ图4-\*ARABIC7积分记录表实体属性图图4-SEQ图4-\*ARABIC8价目实体属性图图4-SEQ图4-\*ARABIC9消息实体属性图4.2.2关系模式安全问题(问题编号,安全问题,编辑时间,预留)用户(用户编号,用户名称,用户昵称,称号,用户,密码,邮箱,电话,性别,生日,身份,密保问题编号,密保答案,img币,积分,状态,创建时间,编辑时间,预留)镜像(镜像编号,镜像名,所属母板编号,所属用户,镜像位置,端口,属性,系统类型,内存,硬盘,CPU,实际大小,价值,状态,介绍,创建时间,编辑时间,预留)申请(申请编号,申请人,申请类别,镜像编号,内存,硬盘,CPU,价值,申请状态,授权人编号,申请时间,授权时间,预留)积分记录(记录编号,用户编号,类型,所得积分/币,得分时间,签到天数,预留)价目(产品编号,元件,基础资源,增长单价,单位,编辑时间,预留)消息(消息编号,用户编号,消息内容,消息类型,消息状态,发送者编号,发送时间,编辑时间,预留)4.2.3数据模型图根据数据库设置得到系统数据模型图,如图4-10所示:图4-SEQ图4-\*ARABIC10管理员系统数据模型图4.2.4数据库表结构设计表4-SEQ表4-\*ARABIC1积分记录表标识符:T_integral数据定义:记录积分记录的数据结构编号名称类型大小标识主码约束说明1integralIdint是是primarykey记录id2userIdintnotnull,fk用户id3integralTypevarchar10notnull类型4integralValueintnotnull所得积分/币5scoreTimedatetimenotnull得分时间6daysintnull签到天数7markvarchar200null预留表4-SEQ表4-\*ARABIC2用户信息表标识符:T_userInfo数据定义:记录用户信息的数据结构编号名称类型大小标识主码约束说明1userIdint是是primarykey用户id2userNamevarchar20notnull,unique用户名称3nickNamevarchar20null,unique用户昵称4uRankvarchar20null称号5userFKeyvarchar20null用户6uPasswordvarchar20notnull密码7emailvarchar20notnull邮箱8telvarchar20null电话9sexintnull性别10birthdayvarchar10null生日:2014/01/0111uIdentityvarchar10notnull身份12questIdintnull,fk密保问题id13questAnswervarchar200null密保答案14imgCoinintnotnullimg币15integralintnotnull积分(默认100)16uStateintnotnull状态(1/0默认1)17createTimedatetimenotnull创建时间18editTimedatetimenotnull编辑时间19markvarchar200null预留表4-SEQ表4-\*ARABIC3申请表标识符:T_application数据定义:记录申请信息的数据结构编号名称类型大小标识主码约束说明1applyIdint是是primarykey申请id2applyUserIdintnotnull,fk申请人3applyTypevarchar10notnull申请类别4imgIdintnotnull,fk镜像id5ramintnull内存(M)6hardDiskintnull硬盘(G)7cpuintnullCPU(个)8costintnull价值img币9applyStateintnotnull申请状态10authorizeUserintnull,fk授权人id11applyTimedatetimenotnull申请时间12authorizeTimedatetimenull授权时间13markvarchar200null预留表4-SEQ表4-\*ARABIC4镜像表标识符:T_imgInfo数据定义:记录虚拟系统镜像的数据结构编号名称类型大小标识主码约束说明1imgIdint是是primarykey镜像id2imgNamevarchar20notnull镜像名3imgForMonthintnull,fk所属母板id4userIdintnotnull,fk所属用户5imgPathvarchar200notnull镜像位置6imgPortvarchar20notnull,unique端口(唯一)7imgNaturevarchar20notnull属性8systemTypevarchar20notnull系统类型9ramintnotnull内存(M)10hardDiskintnotnull硬盘(G)11cpuintnotnullCPU(个)12fullSizeintnotnull实际大小(M)13costintnull价值img币14imgStateintnotnull状态15presentationvarchar200null介绍16createTimedatetimenotnull创建时间17editTimedatetimenotnull编辑时间18markvarchar200null预留表4-SEQ表4-\*ARABIC5价目表标识符:T_priceList数据定义:记录资源价目的数据结构编号名称类型大小标识主码约束说明1productIdint是是primarykey产品id2elementvarchar20notnull元件3basicintnotnull基础资源4priceintnotnull增长单价(币)5unitvarchar10notnull单位6editTimedatetimenotnull编辑时间7markvarchar200null预留表4-SEQ表4-\*ARABIC6安全问题表标识符:T_securQuestion数据定义:记录安全问题的数据结构编号名称类型大小标识主码约束说明1questIdint是是primarykey问题id2questContentVarchar50notnull安全问题3editTimedatetimenotnull编辑时间4markvarchar200null预留表4-SEQ表4-\*ARABIC7消息表标识符:T_message数据定义:记录消息的数据结构编号名称类型大小标识主码约束说明1messageIdint是是primarykey消息id2receiveUserIdintnotnull,fk用户id3messageValuevarchar200null消息内容4messageTypevarchar10null消息类型5messageStatevarchar10notnull消息状态6sendUserIdintnull,fk发送者id7sendTimedatetimenotnull发送时间8editTimedatetimenotnull编辑时间9markvarchar200null预留4.3服务端接口设计服务端接口列表loginUseraddUserselUserListselUserListToStateselUserToIdupdateUsercheckUserOrNickNamecheckTelOrEmailselImgMselImgAlladdImggetTimginfoupdateImgdelImgselIntegralByIdselIntegralInfoByIdaddApplictionselApplictionAllselApplictionToapplyIdselApplictionToImgIdagreeApplictionOfSystemdisAgreeApplictionOfSystemdelApplictionOfSystemselSecurQuestionAlldelSecurQuestionaddSecurQuestionselMsgAllselMsgToStateselMsgByIDupdateMsgselPriceListselPriceToElementdelPriceListupdatePriceListaddPriceList接口详细说明如表4-8至表4-42所示:4.3.1验证用户登录表4-SEQ表4-\*ARABIC8TUserInfoManager里的loginUser接口定义接口标识符:loginUser定义项项目属性接口定义publicTUserInfologinUser()描述登录用户返回值返回:TUserInfo对象登录成功返回:null登录失败参数TUserInfotuser用户对象异常用户不存在、密码不正确4.3.2注册用户表4-SEQ表4-\*ARABIC9TUserInfoManager里的addUser接口定义接口标识符:addUser定义项项目属性接口定义publicTUserInfoaddUser()描述注册用户返回值返回:TUserInfo对象添加成功返回:null登添加失败参数TUserInfotuser用户对象异常用户名存在4.3.3查询所有用户信息表4-SEQ表4-\*ARABIC10TUserInfoManager里的selUserList接口定义接口标识符:selUserList定义项项目属性接口定义publicListselUserList()描述查询所有用户信息返回值返回:List用户列表返回:null查询失败参数异常没有查到数据4.3.4根据状态查询用户列表表4-SEQ表4-\*ARABIC11TUserInfoManager里的selUserListToState接口定义接口标识符:selUserListToState定义项项目属性接口定义publicListselUserListToState()描述根据状态查询用户列表返回值返回:List用户列表返回:null查询失败参数intuState用户状态异常没有查到数据4.3.5根据id查询用户表4-SEQ表4-\*ARABIC12TUserInfoManager里的selUserToId接口定义接口标识符:selUserToId定义项项目属性接口定义publicTUserInfoselUserToId()描述根据id查询用户返回值返回:TUserInfo用户信息参数intuserid用户编号异常没有查到数据4.3.6更新用户信息表4-SEQ表4-\*ARABIC13TUserInfoManager里的selUserToId接口定义接口标识符:selUserToId定义项项目属性接口定义publicTUserInfoselUserToId()描述根据id查询用户返回值返回:TUserInfo用户信息参数intuserid用户编号异常没有查到数据4.3.7检查昵称或用户名是否存在表4-SEQ表4-\*ARABIC14TUserInfoManager里的checkUserOrNickName接口定义接口标识符:checkUserOrNickName定义项项目属性接口定义publicintcheckUserOrNickName()描述检测用户名和昵称是否重复返回值返回:1用户名和昵称重复返回:0用户名和昵称没有重复参数StringstrName用户名或昵称异常4.3.8检测邮箱和电话是否重复表4-SEQ表4-\*ARABIC15TUserInfoManager里的checkTelOrEmail接口定义接口标识符:checkTelOrEmail定义项项目属性接口定义publicintcheckTelOrEmail()描述检测邮箱和电话是否重复返回值返回:1电话和邮箱重复返回:0电话和邮箱没有重复参数Stringstr电话或邮箱异常4.3.9查询母板信息表4-SEQ表4-\*ARABIC16ImgInfoManager里的selImgM接口定义接口标识符:selImgM定义项项目属性接口定义publicListselImgM()描述查询母板信息返回值返回:List镜像列表返回:null查询失败参数Stringstr电话或邮箱异常查找不到镜像信息4.3.10查询所有的镜像表4-SEQ表4-\*ARABIC17ImgInfoManager里的selImgAll接口定义接口标识符:selImgAll定义项项目属性接口定义publicListselImgAll()描述查询所有的镜像返回值返回:List镜像列表返回:null查询失败参数异常查找不到镜像信息4.3.11添加镜像表4-SEQ表4-\*ARABIC18ImgInfoManager里的addImg接口定义接口标识符:addImg定义项项目属性接口定义publicTImgInfoaddImg()描述添加镜像返回值返回:TImgInfo镜像对象返回:null添加失败参数TImgInfoimg镜像对象异常4.3.12查询镜像表4-SEQ表4-\*ARABIC19ImgInfoManager里的getTimginfo接口定义接口标识符:getTimginfo定义项项目属性接口定义publicTImgInfogetTimginfo()描述查询镜像返回值返回:TImgInfo镜像对象返回:null添加失败参数intid镜像id异常查不到镜像信息4.3.13更新镜像表4-SEQ表4-\*ARABIC20ImgInfoManager里的updateImg接口定义接口标识符:updateImg定义项项目属性接口定义publicintupdateImg()描述更新镜像返回值返回:1参数TImgInfoimg镜像对象异常更新失败4.3.14删除镜像表4-SEQ表4-\*ARABIC21ImgInfoManager里的delImg接口定义接口标识符:delImg定义项项目属性接口定义publicintdelImg()描述删除镜像返回值返回:1参数TImgInfoimg镜像对象异常删除失败4.3.15根据用户编号查看是签到的积分表4-SEQ表4-\*ARABIC22IntegralManager里的selIntegralById接口定义接口标识符:selIntegralById定义项项目属性接口定义publicList<TIntegral>selIntegralById()描述根据用户编号查看是签到的积分返回值返回:List<TIntegral>积分信息列表参数intuserId用户编号异常查询失败4.3.16根据用户编号查看积分明细表4-SEQ表4-\*ARABIC23IntegralManager里的selIntegralInfoById接口定义接口标识符:selIntegralInfoById定义项项目属性接口定义List<TIntegral>selIntegralInfoById()描述根据用户编号查看积分明细返回值返回:List<TIntegral>积分信息列表参数intuserId用户编号异常查询失败4.3.17添加申请表表4-SEQ表4-\*ARABIC24TapplicationManager里的addAppliction接口定义接口标识符:addAppliction定义项项目属性接口定义publicvoidaddAppliction()描述添加申请表返回值参数TApplicationta申请表对象异常添加失败4.3.18查询申请列表表4-SEQ表4-\*ARABIC25TapplicationManager里的selApplictionAll接口定义接口标识符:selApplictionAll定义项项目属性接口定义publicList<TApplication>selApplictionAll()描述查询申请列表返回值返回:List<TApplication>申请列表返回:null查询失败参数异常查询失败4.3.19根据申请id查询申请信息表4-SEQ表4-\*ARABIC26TapplicationManager里的selApplictionToapplyId接口定义接口标识符:selApplictionToapplyId定义项项目属性接口定义publicTApplicationselApplictionToapplyId()描述根据申请id查询申请信息返回值返回:Tapplication申请对象返回:null查询失败参数intapplyId申请对象编号异常查询失败4.3.20根据镜像编号查询申请信息表4-SEQ表4-\*ARABIC27TapplicationManager里的selApplictionToImgId接口定义接口标识符:selApplictionToImgId定义项项目属性接口定义publicList<TApplication>selApplictionToImgId()描述根据镜像编号查询申请信息返回值返回:List<TApplication>申请列表返回:null查询失败参数intImgId镜像编号异常查询失败4.3.21同意申请表4-SEQ表4-\*ARABIC28TapplicationManager里的agreeApplictionOfSystem接口定义接口标识符:agreeApplictionOfSystem定义项项目属性接口定义publicTApplicationagreeApplictionOfSystem()描述同意申请返回值返回:Tapplication申请对象参数TApplicationta申请表对象异常4.3.22不同意申请表4-SEQ表4-\*ARABIC29TapplicationManager里的disAgreeApplictionOfSystem接口定义接口标识符:disAgreeApplictionOfSystem定义项项目属性接口定义publicintdisAgreeApplictionOfSystem()描述不同意申请返回值返回:int参数int[]idList申请id列表异常4.3.23删除申请记录表4-SEQ表4-\*ARABIC30TapplicationManager里的delApplictionOfSystem接口定义接口标识符:delApplictionOfSystem定义项项目属性接口定义publicintdelApplictionOfSystem()描述删除申请记录返回值返回:int参数int[]idList申请id列表异常4.3.24查询安全问题表表4-SEQ表4-\*ARABIC31securQuestionManager里的selSecurQuestionAll接口定义接口标识符:selSecurQuestionAll定义项项目属性接口定义publicList<TSecurQuestion>selSecurQuestionAll()描述查询安全问题表返回值返回:List<TSecurQuestion>安全问题列表返回:null参数异常查询失败4.3.25删除安全问题表4-SEQ表4-\*ARABIC32securQuestionManager里的delSecurQuestion接口定义接口标识符:delSecurQuestion定义项项目属性接口定义publicintdelSecurQuestion()描述删除安全问题返回值返回:int1返回:int0参数TSecurQuestionquestion安全问题对象异常删除失败4.3.26添加安全问题表4-SEQ表4-\*ARABIC33securQuestionManager里的addSecurQuestion接口定义接口标识符:delSecurQuestion定义项项目属性接口定义publicintaddSecurQuestion()描述添加安全问题返回值返回:int1返回:int0参数TSecurQuestionquestion安全问题对象异常添加失败4.3.27查询接收人所有的消息记录表4-SEQ表4-\*ARABIC34MessageManager里的selMsgAll接口定义接口标识符:selMsgAll定义项项目属性接口定义publicList<TMessage>selMsgAll()描述查询接收人所有的消息记录返回值返回:List<TMessage>消息列表返回:null参数StringReceiveUserId接收人编号异常查询失败4.3.28查询接收人已读和未读消息表4-SEQ表4-\*ARABIC35MessageManager里的selMsgToState接口定义接口标识符:selMsgToState定义项项目属性接口定义publicList<TMessage>selMsgToState()描述查询接收人已读和未读消息返回值返回:List<TMessage>消息列表返回:null参数StringmessageState消息状态
StringReceiveUserId接收人编号异常查询失败4.3.29根据消息的id查询消息记录表4-SEQ表4-\*ARABIC36MessageManager里的selMsgByID接口定义接口标识符:selMsgByID定义项项目属性接口定义publicTMessageselMsgByID()描述根据消息的id查询消息记录返回值返回:Tmessage消息对象返回:null参数intmessageId消息编号异常查询失败4.3.30更新消息记录表4-SEQ表4-\*ARABIC37MessageManager里的updateMsg接口定义接口标识符:updateMsg定义项项目属性接口定义publicTMessageupdateMsg()描述更新消息记录返回值返回:Tmessage消息对象返回:null参数TMessagemsg消息对象异常更新失败4.3.31查询价目列表表4-SEQ表4-\*ARABIC38PriceListManager里的selPriceList接口定义接口标识符:selPriceList定义项项目属性接口定义publicList<TPriceList>selPriceList()描述查询价目列表返回值返回:List<TPriceList>价目列表返回:null参数异常查询失败4.3.32根据元件查询价目表4-SEQ表4-\*ARABIC39PriceListManager里的selPriceToElement接口定义接口标识符:selPriceToElement定义项项目属性接口定义publicList<TPriceList>selPriceList()描述根据元件查询价目返回值返回:TPriceList价目对象返回:null参数Stringelement元件名称异常查询失败4.3.33删除价目列表表4-SEQ表4-\*ARABIC40PriceListManager里的delPriceList接口定义接口标识符:delPriceList定义项项目属性接口定义publicintdelPriceList()描述删除价目列表返回值返回:int1返回:int0参数TPriceListpriceList价目对象异常删除失败4.3.34修改价目列表表4-SEQ表4-\*ARABIC41PriceListManager里的updatePriceList接口定义接口标识符:updatePriceList定义项项目属性接口定义publicintupdatePriceList()描述修改价目列表返回值返回:int1返回:int0参数TPriceListpriceList价目对象异常修改失败4.3.35添加价目列表表4-SEQ表4-\*ARABIC42PriceListManager里的addPriceList接口定义接口标识符:addPriceList定义项项目属性接口定义publicTPriceListaddPriceList()描述添加价目列表返回值返回:TPriceList价目对象返回:null参数TPriceListpriceList价目对象异常添加失败4.4系统功能模块设计4.4.1系统总体功能模块图基于Linux的云校园桌面虚拟化系统,整个系统的服务端从功能上可以分成管理虚拟机、管理虚拟机资源、管理用户、个人中心共4个子功能。客户端可以分为管理申请资源、管理虚拟机、个人中心、用注册4个功能。本系统的核心功能是:服务端管理虚拟机的部分和虚拟机资源管理的部分。在客户端向服务器申请虚拟机或虚拟机资源的时候,就会产生申请记录,并等待管理员审核,因为这些涉及服务器上硬件资源的分配,涉及到权限问题,所以需要管理员审核通过后才能使用。在客户端功能特点有,开启虚拟机并使用,还可以通过系统的img币进行购买虚拟机资源,如硬盘、CPU、内存等资源。同时还具有恢复出厂设置功能,只需要点击恢复出厂设置就可以在几秒内完成,方便快捷。解决用户重装系统的烦恼。如图4-11和图4-12所示:图4-SEQ图4-\*ARABIC11系统服务端功能结构图图4-SEQ图4-\*ARABIC12系统客户端功能结构图4.4.2系统详细功能模块设计对于云校园桌面虚拟化系统,进过初步的了解后,将主要的功能模块分别进行详细的描述,主要如下:虚拟机管理模块。该模块主要是用来对虚拟机查看、添加、修改、删除、启动、关闭以及恢复出厂设置等操作,实现对虚拟机的管理,系统最核心的部分,主要如图4-13所示:图4-SEQ图4-\*ARABIC13查看虚拟机图4-SEQ图4-\*ARABIC14添加/派生虚拟机系统图4-SEQ图4-\*ARABIC15修改/删除虚拟机系统图4-SEQ图4-\*ARABIC16启动/关闭虚拟机系统虚拟机资源管理模块。该模块主要是用来管理分配虚拟机的资源,如硬盘、CPU、内存等资源的申请和受理。这也是云桌面系统的一块重要的模块,其操作如图4-17所示:图4-SEQ图4-\*ARABIC17虚拟机资源管理图4-SEQ图4-\*ARABIC18管理员编辑虚拟机资源用户管理模块。管理员可以对其进行一些添加、删除、修改等操作,其操作如图4-19所示:图4-SEQ图4-\*ARABIC19管理源对用户的编辑个人中心模块。该模块主要是用户对自己的信息的查看和编辑,以及对于自己的积分消费情况的查看、消息提醒等操作,其操作如图4-20所示:图4-SEQ图4-\*ARABIC20个人中心系统实现系统的后台的开发工具是Myeclipse8.5,数据库是MySQL数据库,JavaEE为开发语言,采用的是SSH(Struts+Spring+Hibernate)三大主流框架,在CentOS7环境中使用KVM技术实现本系统的底层服务,目前服务端和客户端是以网页的形式进行展现的。以下展示本系统主要模块界面:5.1登录模块的实现5.1.1登录界面的实现登录界面:要使用该系统都必须进行登入后才有权限。所以这也是本系统的起始页面。如图5-1所示:图5-SEQ图5-\*ARABIC1登录页面登录界面关键代码段:@Override publicStringexecute()throwsException{ //可以用学号登录就是username。 tuserinfo=tuserinfomanager.loginUser(tuserinfo); if(tuserinfo!=null) { if(tuserinfo.getUstate()==1) { //设置seccion ActionContext.getContext().getSession().put("userId",tuserinfo.getUserId()); ActionContext.getContext().getSession().put("userName",tuserinfo.getUserName()); ActionContext.getContext().getSession().put("nickName",tuserinfo.getNickName()); ActionContext.getContext().getSession().put("uIdentity",tuserinfo.getUidentity()); //查询消息条数 setReslutStr("登录成功"); setUrl("toSystem.action"); returnSUCCESS; } } //接收异常,惊醒异常处理 setReslutStr("系统繁忙!稍后重试。。。"); returnERROR; }5.1.2密码找回的界面密码找回功能:主要是用来密码找回,通过将密码发送到注册邮箱进行找回。如图5-2和图5-3所示:图5-SEQ图5-\*ARABIC2忘记密码发送邮件接口界面图5-SEQ图5-\*ARABIC3忘记密码找回界面密码找回的关键代码段://找回密码发送邮箱 publicStringsendEmail(){ try{ Stringstr="该邮箱未在本系统注册。您可以注册该帐号!"; Listtuserinfo=tuserinfomanager.selUserListToState(1); for(TUserInfouser:Listtuserinfo){ if(user.getEmail().equals(tuserinfo.getEmail())){ //该邮箱有被注册 mySendMailmyEmail=newmySendMail(); str=myEmail.send(user.getEmail(),"imgsys找回密码",""+ "Youregisteredwiththeimgsyspasswordis:"+user.getUpassword()+";ForyoursafetypleaseZhangnumberchangepassword,deletethemessage."); break; } } setReslutStr(str); setUrl("goLogin.action"); returnSUCCESS; }catch(Exceptione){ setReslutStr("系统繁忙!请稍后再试!"); setUrl("goLogin.action"); returnERROR; } }5.1.3注册用户界面注册功能:注册后用户才能够正常的进行使用该系统。如图5-4所示:图5-SEQ图5-\*ARABIC4注册页面5.1.4意见反馈界面意见反馈功能:该功能是对于使用该系统的用户提供一个反馈的接口,如图5-5和图5-6所示:图5-SEQ图5-\*ARABIC5意见反馈接口1图5-SEQ图5-\*ARABIC6意见反馈接口2意见反馈功能的关键代码段:publicStringsend(StringtoEmail,StringemailTitle,StringemailValue){ StringreturnStr=""; try{ if(emailTitle==null||"".equals(emailTitle)){ return"标题不能为空"; } SimpleEmailemail=newSimpleEmail(); email.setTLS(true); email.setHostName(""); email.setAuthentication("2760859874@","ruowen520");//用户名和密码 email.addTo(toEmail);//接收方 email.setFrom("2760859874@");//发送方 email.setSubject(emailTitle);//标题 email.setMsg(emailValue);//内容 email.send(); returnStr="发送成功,密码已发送至邮箱!请即使查收!"; }catch(Exceptione){ returnStr="发送失败,请检查邮箱是否被注册。信息是否正确。"; //e.printStackTrace(); } returnreturnStr; }5.2虚拟系统管理模块实现5.2.1虚拟系统申请界面申请虚拟系统功能:该界面是提供用户进行申请虚拟机的界面,用户可以根据自身img币的多少进行不同系统的申请。界面如图5-7所示:图5-SEQ图5-\*ARABIC7申请虚拟系统申请界面的关键代码段: publicStringapplicationSystem(){ url="toSystem.action"; try{ TApplicationtApplication=newTApplication(); tApplication.setTUserInfoByApplyUserId(timginfo.getTUserInfo()); tApplication.setApplyType("系统"); tApplication.setTImgInfo(timginfo.getTImgInfo()); tApplication.setRam(timginfo.getRam()); tApplication.setHardDisk(timginfo.getHardDisk()); tApplication.setCpu(timginfo.getCpu()); tApplication.setCost(timginfo.getCost()); //暂时把mark存镜像的位置 tApplication.setMark(timginfo.getImgPath()); tapplicationManager.addAppliction(tApplication); reslutStr="操作成功"; url="toSystem.action"; }catch(Exceptione){ System.out.println(e.toString()+""); reslutStr="申请失败"; returnERROR; } returnSUCCESS; }5.2.2虚拟系统查看界面云校园虚拟系统列表查看功能:该界面可查看用户自己的且管理员审核通过的虚拟系统列表,其中管理员可查看所有的虚拟机列表。界面如图5-8所示:图5-SEQ图5-\*ARABIC8虚拟系统列表界面5.2.3虚拟系统的详细信息界面和编辑界面云校园虚拟机的详细信息查看功能:该界面可以查看云校园虚拟系统的详细信息。界面如图5-9所示:图5-SEQ图5-\*ARABIC9虚拟系统详细信息查看界面虚拟机编辑功能:该界面可以修改虚拟系统的基本信息操作。界面如图5-10所示:图5-SEQ图5-\*ARABIC10虚拟系统信息编辑界面5.2.4虚拟系统的启动界面虚拟系统的启动功能:该界面可以通过启动按钮对虚拟系统进行启动,然后通过VNCViewer进行连接。效果如图5-11所示:图5-SEQ图5-\*ARABIC11虚拟系统启动界面虚拟系统启动关键代码段:Stringkvm="qemu-kvm-m"+timginfo.getRam()+"-usbdevicetablet-smp"+timginfo.getCpu()+"-hda"+timginfo.getImgPath()+"-netnic,model=rtl8139-netuser"+ "-name"+timginfo.getImgName()+",process="+timginfo.getImgName()+"-vnc:"+vncNum[1]; System.out.println(""+kvm); //开启kvm系统 //ExecLinuxCMD.exec(kvm).toString(); MyThreadmt1=newMyThread(kvm); mt1.start();5.3虚拟机资源管理模块实现5.3.1申请列表界面管理员处理申请资源列表:该界面管理员可以查看资源的申请单,并审核这些申请单。界面如图5-12所示:图5-SEQ图5-\*ARABIC12资源申请单列表界面资源申请功能:用户可以花费相应的img币对自己的虚拟系统进行申请对应的资源,硬盘、CPU、内存等资源。界面如图5-13所示:图5-SEQ图5-\*ARABIC13资源申请界面资源价目管理功能:管理员可以在该界面进行对虚拟系统的资源价目进行管理。界面如图5-14所示:图5-SEQ图5-\*ARABIC14资源价目管理界面5.4用户管理模块实现5.4.1用户列表界面云校园虚拟桌面系统的用户列表管理功能:用户列表这一在这边进行查看,管理员可以直接对选中用户进行限制和恢复。界面如图5-15所示:图5-SEQ图5-\*ARABIC15用户信息列表界面5.5个人中心模块实现5.5.1个人信息界面云校园虚拟桌面系统的基本信息查看功能:个人的信息可在该界面进行查看。界面如图5-16所示:图5-SEQ图5-\*ARABIC16个人信息界面云校园虚拟桌面系统的基本信息编辑功能:个人信息可以在该界面进行编辑。界面如图5-17所示:图5-SEQ图5-\*ARABIC17个人信息编辑界面云校园虚拟桌面系统的密码修改功能:密码可以在该界面进行修改。界面如图5-18所示:图5-SEQ图5-\*ARABIC18密码修改界面云校园虚拟桌面系统的消息查看功能:系统或管理员发送给用户的消息可以在该界面进行查看。界面如图5-19所示:图5-SEQ图5-\*ARABIC19消息列表界面签到和积分明细功能:该界面可以进行每日签到,以及查看积分的消费、任务、签到等使用和所得详情。界面如图5-20和图5-21所示:图5-SEQ图5-\*ARABIC20签到界面图5-SEQ图5-\*ARABIC21积分明细界面系统测试6.1系统测试软件测试的基本步骤为如下四个步骤:单元测试:即模块测试,就是对对每个单元模块进行正确与否的测试,验证是否有完成详细设计说面的功能要求,找出模块内粗存在的一些问题。集成测试:即组装测试,就是将模块组合后进行测试,查看组合后模块之间是否存在问题。确认测试:检测系统是否满足规格说面数的要求,是否配置正确。而且还需要和用户进行确认。系统测试:模拟出真实的环境进行测试,查看整个系统是否能够正常的运行且是否满足规格说明书的要求。验收测试:根据双方任务书、项目合同或约定的进行验收测试。根据用户需求来查找系统问题就是测试。找出不符合定义或相反的功能等问题所在。从小模块到最后整合在一起的系统进行逐步检测,就是为了能够在交付系统给用户之前,尽量多的找出潜在的问题,并及时的修复。这样才能够给用户带来良好的体验。系统测试通常只要有两大类测试活动,功能性测试和非功能性测试。功能测试通常检查软件功能的需求是否与用户的需求一致,包括功能测试、用户界面测试、安装/卸载测试、可适用性测试。非功能测试一般是检测软件的是否存在安全问题,安装是否有问题,还有就是软件的配置和兼容性等问题。6.2系统测试方案本系统用的是系统测试中最基本的测试:功能测试,通过功能测试可以很好的知道本系统所存在的不足。根据功能需求和性能需求为本系统制定以下主要功能的测试用例。有登录的测试用例、虚拟机申请的测试用例、找回密码的测试用例、虚拟机资源申请测试用例和虚拟机的启动测试用例。测试用例如表6-1至表6-4所示。登录测试用例表6-SEQ表6-\*ARABIC1登录测试用例表用例编号操作输入数据预期结果实际结果test1输入正确的用户名和密码,点击登录用户名:admin
密码:123456登录成功提示登录成功,再转入系统列表界面。test2输入正确的用户名,错误的密码,点击登录用户名:admin
密码:123不能正常登录,提示“用户名或密码错误”然后转回登录页面提示“用户名或密码错误”然后转回登录页面test3用户名和密码为空,点击登录按钮用户名:
密码:不能正常登录,弹出提示“用户名或密码不能为空”弹出提示“用户名或密码不能为空”虚拟系统申请测试用例表6-SEQ表6-\*ARABIC2虚拟系统申请测试用例表用例编号操作输入数据预期结果实际结果test1普通用户未选派生母板镜像,其他填写完整,点击申请镜像名:testXP弹出框提示:“请选择要派生的镜像”弹出框提示:“请选择要派生的镜像”test2选择MinWinXp母板镜像,镜像名用MinWinXp,其他填写完整镜像名:MinWinXp在镜像位置后面会有提示:“该路径有问题,请修改”在镜像位置后面会有提示:“该路径有问题,请修改”test3选择MinWinXp母板镜像,镜像名为空镜像名:弹出框提示:“请填正确且完整的信息!”弹出框提示:“请填正确且完整的信息!”test4选择win8母板镜像(需要200img币,当前用户有100img币)其他填写完整镜像名:testWin8操作成功,但会发送消息提示img币不足,申请列表显示申请失败操作成功,消息列表消息提示img币不足,申请列表显示申请失败状态test5选择MinWinXp母板镜像,其他填写完整镜像名:testXP操作成功,消息列表提示img币消费情况,申请列表是等待管理员审核操作成功,消息列表提示img币消费情况,申请列表是等待管理员审核虚拟系统启动测试用例表6-SEQ表6-\*ARABIC3虚拟系统启动测试用例表用例编号操作输入数据预期结果实际结果test1点击启动按钮,用VNCViewer连接5901端口在VNCViewer输入:01:5901显示系统界面,虚拟系统启动按钮变成:强制关闭显示系统界面,虚拟系统启动按钮变成:强制关闭test2点击启动按钮,用VNCViewer连接5902端口在VNCViewer输入:01:5902VNCViewer显示登录失败,启动按钮变成:强制关闭VNCViewer显示登录失败,启动按钮变成:强制关闭找回密码测试用例表6-SEQ表6-\*ARABIC4找回密码测试用例用例编号操作输入数据预期结果实际结果test1输入:732649784@点击发送EMAIL:732649784@发送成功,提示:发送成功,密码已发送至邮箱!请即使查收!发送成功,提示:发送成功,密码已发送至邮箱!请即使查收!test2输入:123@点击发送EMAIL:123@提示:该邮箱未在本系统注册。您可以注册该帐号!提示:该邮箱未在本系统注册。您可以注册该帐号!test3注册123@后,输入:123@点击发送EMAIL:123@提示:发送失败,请检查邮箱是否被注册。信息是否正确。提示:发送失败,请检查邮箱是否被注册。信息是否正确。虚拟系统资源申请测试用例表6-SEQ表6-\*ARABIC5虚拟系统资源申请测试用例表用例编号操作输入数据预期结果实际结果test1对testXP系统申请512内存,管理员通过,再启动系统消费成功后,在启动的系统中查看内存为1536消费成功后,在启动的系统中查看内存为1536test2对testXP系统申请10G硬盘,管理员通过,再启动系统消费成功后,在启动的系统中资源管理里面看到10G未分配的硬盘消费成功后,在启动的系统中资源管理里面看到10G未分配的硬盘test3对testXP系统申请1个CPU,管理员通过,再启动系统消费成功后,在启动的系统中通过系统工具查看CPU核数为2消费成功后,在启动的系统中通过系统工具查看CPU核数为2test4点击恢复出厂设置操作成功,启动系统查看资源为1核CPU,1025内存、3.5G硬盘。和刚申请的时候一样操作成功,启动系统查看资源为1核CPU,1025内存、3.5G硬盘。和刚申请的时候一样6.3测试结果通过测试用例对本系统进行了功能测试,其测试的结论:该系统基本上满足了云校园桌面虚拟化系统的基本功能,且功能基本上可以实现。总结与展望本文探讨了基于Linux的云校园桌面虚拟化系统的设计与实现,并就本设计编写了系统需求分析、详细设计各个阶段性成果文档,即以软件的生命周期来实现本设计的整个过程。围绕着生命周期的开始和收尾阶段,一步一步的完善设计。论文的研究成果以及创新点如下:采用Linux的KVM虚拟机和VNC服务器来搭建一个云校园的虚拟桌面的方案在未来4G全面覆盖的时代,是有着很大的实现可能。对于实现云校园的方案来说,采用WEB架构对于系统的部署,更新、推广有着很大的优越性,而且采用的JavaEE技术有着很好的跨平台性。采用VNC的连接方式,使得客户端的实现也有了很多的渠道,VNCViewer的实现可以在多个平台上,Android、IOS、MAC、Window、Linux等上面都有可以实现。当然目前的系统还是存在很多不足的地方,比如对于系统安全的处理还是不够的,有些验证还是可以被绕过的。今后,如果要深入的研究,那必须要去研究以下几个方面:系统的整个安全方面的验证必须严格,以为这涉及到了服务器上的硬件资源分配的问题。如果没有把权限控制好,那必将给服务器带来严重的后果。如果要实现虚拟桌面的普及,必然需要对VNCViewer进行二次封装,目前觉得Html5技术在这方面倒是可以去做尝试。在这个互联网普及的时代,以及4G网络的到来,这个云校园虚拟桌面将会有非常大的机会得到应用和普及。致谢时间过的很快,大学的生涯就快要结束了,本科的学习跟之前专科的学习比较,这两年让我学会了什么才是项目。去年从选题,到查找该系统的解决方案,再后来整理资料,直到系统的完成,得到了很多人的帮助,在这表达一下对他们的谢意。首先,我必须要感谢我的父母,没有他们的努力我是不可能在踏入大学的门槛的,更不可能学习到这些宝贵的知识,宝贵的友谊与帮助。所以我最感激的是我的父母。感谢柯晓昱老师在整个毕业设计的过程中对我耐心的指导,作为我的指导老师他总能够在百忙之中抽出时间来为我解答疑惑,在每个阶段对我的开发技术和文档都做了认真的指导和批注。常常忙到凌晨,从开始到现在系统的完成,老师为我做出了很大的付出,在这我非常的感谢老师的教导和帮助。其次,我要感谢我们的辅导员兰博兰导。感谢辅导员在我们来到福建工程学院的这段时间里对我们的照顾和关心。在这本科的这几年里,正因为学院老师们的严格的教诲,让我在学习上,得到的巨大的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体检中心服务质量提升与2025年增值服务个性化拓展分析报告
- 基于2025年城市公园改造的社区稳定风险评估及对策分析报告
- 财务数据安全的试题及答案
- 2025年财务管理考试深入分析试题及答案
- 员工合租宿舍协议书
- 商标转让和解协议书
- 2025体育场馆租赁合同书
- 卫浴战略采购协议书
- 厂长安全生产协议书
- 地税授权扣款协议书
- 江苏省盐城市射阳实验中学2023-2024学年中考二模物理试题含解析
- 2023年-2024年邮储银行大堂经理岗位资格认证考试题库(含答案)
- YJ-T 27-2024 应急指挥通信保障能力建设规范
- 察右后旗宿泥不浪铁矿2023年度治理计划
- 【部编版】道德与法治六年级下册第9课《日益重要的国际组织》精美课件
- 模具管理系统解决方案课件
- 高考日语-必考11个语法
- 杏芎氯化钠注射液-药品临床应用解读
- PCS7临时授权安装
- (外标两点法对数方程)桔梗含量为例
- 【校本作业】六年级下册语文校本作业与单元练习(附参考答案)
评论
0/150
提交评论