资源描述
毕业设计(论文)
题 目:
基于Linux的云校园桌面
虚拟化系统的设计与实现
学 生:
指导老师:
柯
院 别:
软件学院
专 业:
计算机科学与技术
班 级:
1301
学 号:
2015年5月
福建工程学院本科毕业设计(论文)作者承诺保证书
本人郑重承诺: 本篇毕业设计(论文)的内容真实、可靠。如果存在弄虚作假、抄袭的情况,本人愿承担全部责任。
学生签名:
年 月 日
福建工程学院本科毕业设计(论文)指导教师承诺保证书
本人郑重承诺:我已按有关规定对本篇毕业设计(论文)的选题与内容进行了指导和审核,且提交的毕业设计(论文)终稿与上传至“大学生论文管理系统”检测的电子文档相吻合,未发现弄虚作假、抄袭的现象,本人愿承担指导教师的相关责任。
指导教师签名:
年 月 日
目 录
1. 绪论 1
1.1本文的研究背景 1
1.2国内外研究现状 1
1.3系统的概述 2
2. 系统相关技术介绍 3
2.1 JavaEE 3
2.2 SSH 3
2.3 MySQL数据库 3
2.4 CentOS 7 3
2.5 KVM 3
2.6 RFB协议(VNC) 4
3. 系统分析 5
3.1需求分析 5
3.2系统功能概述 6
3.3系统数据流图 7
3.3.1顶级数据流图 7
3.3.2 0层数据流图 7
3.3.3 一层数据流图 8
3.4系统功能需求分析 8
3.4.1管理员功能需求 8
3.4.2用户功能需求 9
4. 系统设计 11
4.1网络拓扑图 11
4.2数据库设计 12
4.2.1 E-R图设计 12
4.2.2关系模式 15
4.2.3数据模型图 15
4.2.4数据库表结构设计 16
4.3服务端接口设计 19
4.3.1验证用户登录 20
4.3.2注册用户 21
4.3.3查询所有用户信息 21
4.3.4根据状态查询用户列表 21
4.3.5根据id查询用户 22
4.3.6更新用户信息 22
4.3.7检查昵称或用户名是否存在 22
4.3.8检测邮箱和电话是否重复 23
4.3.9查询母板信息 23
4.3.10查询所有的镜像 23
4.3.11添加镜像 24
4.3.12查询镜像 24
4.3.13更新镜像 24
4.3.14删除镜像 25
4.3.15根据用户编号查看是签到的积分 25
4.3.16根据用户编号查看积分明细 25
4.3.17添加申请表 26
4.3.18查询申请列表 26
4.3.19根据申请id查询申请信息 26
4.3.20根据镜像编号查询申请信息 27
4.3.21同意申请 27
4.3.22不同意申请 27
4.3.23删除申请记录 28
4.3.24查询安全问题表 28
4.3.25删除安全问题 28
4.3.26添加安全问题 29
4.3.27查询接收人所有的消息记录 29
4.3.28查询接收人已读和未读消息 29
4.3.29根据消息的id查询消息记录 30
4.3.30更新消息记录 30
4.3.31查询价目列表 30
4.3.32根据元件查询价目 31
4.3.33删除价目列表 31
4.3.34修改价目列表 31
4.3.35添加价目列表 32
4.4系统功能模块设计 32
4.4.1系统总体功能模块图 32
4.4.2系统详细功能模块设计 33
5. 系统实现 38
5.1登录模块的实现 38
5.1.1登录界面的实现 38
5.1.2密码找回的界面 39
5.1.3注册用户界面 40
5.1.4意见反馈界面 40
5.2虚拟系统管理模块实现 42
5.2.1虚拟系统申请界面 42
5.2.2虚拟系统查看界面 43
5.2.3虚拟系统的详细信息界面和编辑界面 43
5.2.4虚拟系统的启动界面 44
5.3虚拟机资源管理模块实现 45
5.3.1申请列表界面 45
5.4用户管理模块实现 47
5.4.1用户列表界面 47
5.5个人中心模块实现 48
5.5.1个人信息界面 48
6. 系统测试 51
6.1系统测试 51
6.2系统测试方案 51
6.3测试结果 53
总结与展望 54
致谢 55
参考文献 56
插图索引
图3-1云校园桌面虚拟化系统顶层数据流图 7
图3-2 0层数据流图 7
图3-3一层数据流图 8
图3-4管理员权限用例图 9
图3-5用户权限用例图 10
图4-1云校园桌面虚拟化系统网络拓扑图 11
图4-2整体E-R图 12
图4-3问题表实体属性图 13
图4-4用户实体属性图 13
图4-5镜像实体属性图 13
图4-6申请单实体属性图 14
图4-7积分记录表实体属性图 14
图4-8价目实体属性图 14
图4-9消息实体属性图 15
图4-10管理员系统数据模型图 16
图4-11系统服务端功能结构图 33
图4-12系统客户端功能结构图 33
图4-13查看虚拟机 34
图4-14添加/派生虚拟机系统 34
图4-15修改/删除虚拟机系统 35
图4-16启动/关闭虚拟机系统 35
图4-17虚拟机资源管理 36
图4-18管理员编辑虚拟机资源 36
图4-19管理源对用户的编辑 37
图4-20个人中心 37
图5-1 登录页面 38
图5-2 忘记密码发送邮件接口界面 39
图5-3 忘记密码找回界面 39
图5-4 注册页面 40
图5-5 意见反馈接口1 41
图5-6 意见反馈接口2 41
图5-7 申请虚拟系统 42
图5-8 虚拟系统列表界面 43
图5-9 虚拟系统详细信息查看界面 44
图5-10 虚拟系统信息编辑界面 44
图5-11 虚拟系统启动界面 45
图5-12 资源申请单列表界面 46
图5-13 资源申请界面 46
图5-14 资源价目管理界面 47
图5-15 用户信息列表界面 47
图5-16 个人信息界面 48
图5-17 个人信息编辑界面 48
图5-18 密码修改界面 49
图5-19 消息列表界面 49
图5-20 签到界面 50
图5-21 积分明细界面 50
附表索引
表4-1积分记录表 16
表4-2用户信息表 17
表4-3申请表 17
表4-4镜像表 18
表4-5价目表 18
表4-6安全问题表 18
表4-7消息表 19
表4-8 TUserInfoManager里的loginUser接口定义 20
表4-9 TUserInfoManager里的addUser接口定义 21
表4-10 TUserInfoManager里的selUserList接口定义 21
表4-11 TUserInfoManager里的selUserListToState接口定义 21
表4-12 TUserInfoManager里的selUserToId接口定义 22
表4-13 TUserInfoManager里的selUserToId接口定义 22
表4-14 TUserInfoManager里的checkUserOrNickName接口定义 22
表4-15 TUserInfoManager里的checkTelOrEmail接口定义 23
表4-16 ImgInfoManager里的selImgM接口定义 23
表4-17 ImgInfoManager里的selImgAll接口定义 23
表4-18 ImgInfoManager里的addImg接口定义 24
表4-19 ImgInfoManager里的getTimginfo接口定义 24
表4-20 ImgInfoManager里的updateImg接口定义 24
表4-21 ImgInfoManager里的delImg接口定义 25
表4-22 IntegralManager里的selIntegralById接口定义 25
表4-23 IntegralManager里的selIntegralInfoById接口定义 25
表4-24 TapplicationManager里的addAppliction接口定义 26
表4-25 TapplicationManager里的selApplictionAll接口定义 26
表4-26 TapplicationManager里的selApplictionToapplyId接口定义 26
表4-27 TapplicationManager里的selApplictionToImgId接口定义 27
表4-28 TapplicationManager里的agreeApplictionOfSystem接口定义 27
表4-29 TapplicationManager里的disAgreeApplictionOfSystem接口定义 27
表4-30 TapplicationManager里的delApplictionOfSystem接口定义 28
表4-31 securQuestionManager里的selSecurQuestionAll接口定义 28
表4-32 securQuestionManager里的delSecurQuestion接口定义 28
表4-33 securQuestionManager里的addSecurQuestion接口定义 29
表4-34 MessageManager里的selMsgAll接口定义 29
表4-35 MessageManager里的selMsgToState接口定义 29
表4-36 MessageManager里的selMsgByID接口定义 30
表4-37 MessageManager里的updateMsg接口定义 30
表4-38 PriceListManager里的selPriceList接口定义 30
表4-39 PriceListManager里的selPriceToElement接口定义 31
表4-40 PriceListManager里的delPriceList接口定义 31
表4-41 PriceListManager里的updatePriceList接口定义 31
表4-42 PriceListManager里的addPriceList接口定义 32
表6-1登录测试用例表 52
表6-2虚拟系统申请测试用例表 52
表6-3虚拟系统启动测试用例表 52
表6-4找回密码测试用例 53
表6-5虚拟系统资源申请测试用例表 53
viii
基于Linux的云校园桌面虚拟化系统的
设计与实现
摘 要
在现在企业网络和学校教育网络的建设过程中,传统的管理方案已经不能满足管理上的需求。为了使我们的校园网络能够更便捷的管理和维护,让管理员能够从大量的机房设备管理中解放出来,本文结合云技术和具有良好的资源分配的Linux系统,提出了基于Linux的云校园桌面虚拟化系统的设计与实现。
本文是根据云校园桌面虚拟化系统的的开发背景、意义以及国内外的研究现状和发展的趋势,提出了云校园虚拟化系统的实现方案。根据实际的需求,采用Linux的KVM虚拟服务器作为基础开发进行分析。同时对整个系统做了需求分析、数据库的设计、业务流程的设计和功能模块的详细设计。
本系统主要包括虚拟机管理、资源管理、用户管理、和个人中心等模块。主要是采用了Linux系统的KVM服务器和VNC服务器进行网络传输。实现了虚拟系统的资源管理和分配。并以云的方式进行部署,测试表明,系统性能稳定,有很好的发展前景。
关键词:虚拟桌面;云校园;KVM;VNC
Design and Implementation of Cloud Campus Desktop Virtual System based on Linux
Abstract
In the construction of enterprise and school education network, the traditional management scheme cannot meet the needs of management. In order to make our management and maintenance of campus network to be more convenient, allowing administrators to liberate from the large number of computer equipment management, this paper include cloud technology and Linux system with a good resource allocation, propose based on the design and implementation of campus cloud desktop virtualization system based on Linux.
This paper is based on the development background of significance and the research status of development trend of cloud campus desktop virtualization system, and puts forward the realization scheme of the cloud campus virtualization system. According to the actual demand, the KVM Linux virtual server is used as the basic development analysis. At the same time, developing the system needs analysis, database design, business process design and function module design.
The system includes the virtual machine management, resource management, user management, personal center and other modules. KVM and VNC server are used for network transmission in Linux system. Resource management and distribution of virtual system is implemented. With the deployment of the cloud, the test shows that the system performance is stable and has a good prospects for development.
Key words:Virtual desktop cloud campus; KVM; VNC
2
1. 绪论
本章从论文研究背景出发,分析了虚拟桌面的发展历程,从而提出基于Linux的云校园桌面虚拟化系统的设计方案,并就国内外研究现状及相似产品进行描述和总结,同时引出本论文的研究方案及方向同时说明了论文组织。
1.1本文的研究背景
云计算:Cloud Computing,它有四个很关键概念,第一,用户可以根据自身的需求申请资源并可以动态的配置和扩展这些资源;第二,云把硬件和软件都认为是资源,是以网络的方式提供给用户服务;第三,用户可以使用这些资源,但不需要去管理这些资源;第四,最终展现给用户的都是以单一的整体形式,尽管实际上这些资源更多的是以分布式的方式存在[1]。
而云校园网络:Cloud Campus Network,简称 CCN。从概念上可以理解,它是用在高校的整体发展战略和在教学科研业务,同时还用在广泛师生用户的网络基础设施和公共支撑平台,它是一种普适接入、统一的架构、虚拟化、泛载、可信、绿色低碳的信息服务环境,是一种按需分配、按需使用的服务交付和使用模式[1]。
虚拟化桌面是一种云计算应用相对比较典型的,它的目的就是在云中为用户提供远程的计算机桌面的服务[2]。在云校园云桌面上的内容、各类应用和主机租用服务为了能够让用户可以直接定制和使用。现通过搭建统一的软件资源、应用以及服务的平台后,用户只需通过手机、个人PC或其他云终端设备,然后只要通过4G网络或固定网络就能轻松获取云上资源[3]。
在云校园中学习办公桌面环境是让学生老师提高学习和工作效率的技术手段,这桌面上运行的各种学习软件、应用系统是人们协同工作和学习的良好工具。同时现在很多人基本都拥有个人的PC和学习桌面电脑,但在获得这样的便利的同时当然也带来和管理和维护上的挑战。因为IT中办公学习环境的深入和普及[4]。
本报告给出的解决方案,实现在云校园网内搭建虚拟桌面子系统,可以在云校园网中实现虚拟桌面取代传统电脑,这样在云网络上操作系统、游戏、工具软件等各类的应用服务,就只需通过安装简易的瘦终端就可以使用。
1.2国内外研究现状
亚马逊的云平台,它需要的桌面虚拟化的可扩张型很强,规模很大。它的桌面虚拟化的后台支持是云(cloud),是通过使用虚拟化集群实现的云[5]。还有google的云计算平台使用分布式的方法[6]。使用服务器虚拟化实现的云,作为桌面虚拟化的后台。它的桌面的分配与虚拟机桌面通过远程桌面的方式传输给用户的方案类似。
最近的几年,“云”的概念变得流行,虚拟桌面技术也越来越受关注。曾经2010年被Citrix称为“桌面虚拟化元年”[7]。并在多种调查中发现,欧美国家中,虚拟桌面的被用户了解的程度已经有33%,企业中有27%左右在使用。16%正打算使用并在规划和部署[8]。所以要使用这个虚拟桌面主流应用,在云校园中运用虚拟桌面进行教学和办公,还有许多工作要做。
1.3系统的概述
本系统通过使用CentOS 7的KVM组件实现多个虚拟系统。采用JavaEE的SSH技术来搭建KVM服务器管理系统,通过B/S模式来访问管理KVM服务器中虚拟机系统的相关操作,对虚拟机系统资源动态分配管理,有用户资料的管理,处理用户申请等操作。而用户只要输入帐号和密码进行登录,并得到虚拟桌面系统的连接串,并通过VNC viewer远程登录KVM中的虚拟机系统。同时用户可以根据自身的资格申请不同的虚拟机系统资源如:内存、CPU、硬盘等资源。用户可以根据自身的需求来定制自己的虚拟机系统。
以下的几个方面就是本文主要的研究工作:KVM虚拟服务器的搭建,VNC访问KVM虚拟系统,用B/S模式管理KVM虚拟系统,具体说明如下:
(1) KVM虚拟服务器的搭建
在CentOS 7安装KVM、qemu-kvm、需要CPU支持硬件虚拟化,本系统需要在KVM虚拟服务器的基础之上进行系统的虚拟化,达到云校园桌面系统的虚拟化。
(2) VNC访问KVM虚拟系统
完成KVM系统的虚拟化后,需要使用VNC服务器来将KVM虚拟系统的端口发布出去,使得用户在云校园上访问到KVM虚拟系统,并达到和真机一样的使用效果。
(3) 用B/S模式管理KVM虚拟系统
完成云校园桌面的虚拟化后,用Tomcat作为本系统的服务器,对于KVM虚拟服务器、服务器的资源、以及VNC服务端口的开关则采用浏览器的方式进行配置和管理,方便快捷。
2. 系统相关技术介绍
本系统基于JavaEE SSH(Struts 2.1+Spring 3.1+Hibernate 4)框架,采用Myeclipse 8.5作为开发平台,并结合CentOS 7系统上的KVM技术和VNC技术,开发基于B/S模式的云校园桌面虚拟化系统的设计与实现。
2.1 JavaEE
JavaEE是由组件构成的的应用程序,它的开发是基于组件的。它是Java三种平台中的一种,适用于企业级的应用。在开发web应用上,它具有很好的兼容性。不仅具有Java2平台的标准,而且还拥有多种框架可以集成。方便数据的交互、存取等操作。能开发、管理和部署很多复杂的结构体系项目。其主要目的就是为了减低开发者的开发时间,缩短开发周期。
2.2 SSH
SSH不是一个框架,是由Struts+Spring+Hibernate集成的,是现在比较流行的框架结合,在公司中比较经常使用,而且是开源的,方便框架的完善、配置和扩张。这样的框架集合在职责上分为:域模块层、业务逻辑层、表示层和数据持久层。这样就构成了MVC的架构,是得三层分离。这样就方便了开发以及以后的维护。
2.3 MySQL数据库
MySQL数据库是关系型的数据库,起源于瑞典。现在是由Oracle公司运营。也是一个主流的数据库。在多种应用上都有很好的表现,而且它体积小、速度上也比较快,关键一点是成本低还是开源的。一般的中小的企业都会选择MySQL作为运营的数据库。采用的也都是标准且常用的SQL语言,所以对于开发人员来说也是一款便捷的数据库。
2.4 CentOS 7
CentOS是红帽子公司的Linux发行版,是一款免费的的操作系统,常在中小企业中作为服务器使用。而且具有很好非常好的稳定性。
2.5 KVM
KVM是Kernel-based Virtual Machine的简称,是Linux内的一个虚拟化模块。在多种Linux发行版本中都有,它的资源调度是由Linux自身的调度器管理的。而且核心的源码不多,是现在主流的VMM之一。
2.6 RFB协议(VNC)
VNC是远程控制的软件,分为服务端和客户端,主要是在Linux操作系统中。是Virtual Network Computer的缩写,远程控制的能力强大。可以媲美Wndow和MAC的远控软件。其中主要的命令有:vncserver,vncviewer,vncpasswd,和 vncconnect。其中这边两个命令是用户最经常使用到的:vncserver 和 vncviewer。
3. 系统分析
本章主要对桌面虚拟化系统进行分析,主要分析:总体的业务处理流程、系统总体功能需求、系统的目标、系统逻辑结构,以及系统功能流程,来达到实现系统需求的目的,并提出具体的分析。
3.1需求分析
本系统主要是针对目前云校园技术的设计与实现,针对现在客户机资源的浪费现象提出使用瘦客户端来对云校园上系统资源的访问和使用,实现用户根据自身需求,并可以去云上面去申请系统资源。具体分析如下:
核心问题:为什么要在云校园上搭建桌面虚拟化系统?
方案提出的动机:目前,在云校园平台的建立,而教学和办公还是采取传统的学习和办公模式,采用多人使用同一台电脑桌面。这样一来资料的携带的不方便,以及办公学习的桌面的变换使得办公和学习的效率低下。同时老式的PC机已经跟不上新的学习软件所需要的计算机资源。在这IT行业的迅速发展,管理和分配不同用户使用适合的桌面已经不再是技术上的难点。所以本系统要完成云校园虚拟桌面的功能,实现方便快捷的分配虚拟桌面给用户,并提供不同的用户根据需要个性化的申请需要的系统资源。
拟采用的解决方案:在KVM上搭建虚拟机系统,通过Java调用shell命令qemu-kvm来开启虚拟机系统和VNC server端口,然后在客户端上用VNC viewer访问服务器上KVM虚拟机上虚拟机系统。
方案描述:本系统要基于CentOS 7操作系统,在CentOS 7上搭建tomcat服务器来承载该系统,是使用JavaEE技术编写,利用B/S模式来管理系统的后台。其中核心部分是利用CentOS 7上的KVM技术搭建虚拟机系统,利用Java调用shell命令控制KVM服务器上的虚拟机系统的开启、关闭、添加和删除以及虚拟机系统的资源管理等操作。使用VNC技术来实现客户端和KVM服务器的虚拟机系统之间的通信。并开通虚拟机系统资源申请通道,如果用户需要更多的资源,那么就可以通过申请得到。通过这样的方案从而实现云校园的虚拟桌面,达到用户随时随地在云校园上使用专属于自己的虚拟系统。具体目标如下:
(1) 用户基础资料的添加删除修改等操作,以及用户的注册功能。
(2) 管理员对虚拟系统的编辑操作,以及虚拟系统资源的费用管理。
(3) 用户根据任务、签到得到的本系统的img币,去申请虚拟系统以及虚拟系统资源。
(4) 管理源受理用户的申请。
(5) 用户启动虚拟系统,并用VNCviewer访问虚拟系统进行使用。
(6) 密码的管理机制,密保问题、邮箱找回。
(7) 用户的意见反馈。
3.2系统功能概述
本系统主要是实现用户在云校园上访问本系统的虚拟系统,并使用。还可以根据自身需求在本系统的管理界面上定制属于自己的虚拟系统。
客户端主要内容:
(1) 系统注册、登录模块
实现用户在线登录以及注册的功能,具有动态检查注册信息的合法性,用发送用户名和密码到邮箱的方式来查找密码,登录成功后跳转主页。
(2) 虚拟系统资源申请
登录成功后,用户可以根据任务、签到得到的img币申请系统或虚拟机系统的cpu、硬盘、内存等资源。
(3) 虚拟系统管理
用户登录成功后可以对虚拟系统的名称、简述等信息资料进行简单的修改,有恢复出厂设置的功能,并且可以对虚拟系统进行开启或关闭。开启后可以用VNCviewer进行使用。
(4) 个人中心
管理和查看个人基本信息。查看积分明细,和消息情况。
(5) 签到和意见反馈模块
用户可以签到,并根据连续签到的天数得到img币。用户对本系统如果有建议,可以通过接口发送邮件给系统管理人员。
服务端主要内容:
(1) 用户管理
用户的增删改查,默认用户的信息。
(2) 虚拟系统管理
添加母板虚拟系统,提供用户进行派生。统一管理用户的虚拟系统。
(3) 资源管理
基本资源管理,受理用户的资源申请。添加和修改虚拟系统资源的价值。
3.3系统数据流图
3.3.1顶级数据流图
云校园桌面虚拟化系统的顶层交互数据流图,如图3-1所示:
图3-1云校园桌面虚拟化系统顶层数据流图
图3-1描述的是本系统总的数据交互流向,用户总的数据流可以概括为向服务器发送操作指令,并得到系统的界面展示。而管理员的数据流也是可以总结为向服务器发送操作指令,同时得到服务器的返回信息,再做出对应的操作。
3.3.2 0层数据流图
云校园桌面虚拟化系统的0层交互数据流图,如图3-2所示:
图3-2 0层数据流图
图3-2是本系统的0层数据流图,同时描述了系统内部具体的数据流,用户的指令先通过虚拟桌面客户端的处理向虚拟服务器发送开启虚拟系统的命令,由虚拟桌面服务器处理后,服务器会向KVM服务器发送qemu-kvm的虚拟机启动指令,然后经过KVM服务器处理后返回虚拟系统的端口给虚拟桌面服务器,然后虚拟桌面服务器加上服务器的域名返回给虚拟桌面客户端,虚拟桌面客户端就可以发送连接字符串到KVM服务器进行处理后,KVM服务器会返回虚拟机的操作界面给客户端,用户就可以通过客户端得到系统界面,并可以操作。
3.3.3 一层数据流图
云校园桌面虚拟化系统的一层交互数据流图,如图3-3所示:
图3-3一层数据流图
图3-3是本系统的一层流程图中的一部分,是虚拟桌面服务器的细化,具体描述的是虚拟桌面服务器的5个管理功能以及数据流的流向。有虚拟系统、用户、虚拟机资源、个人信息、安全问题等数据操作以及数据流向。很清楚的描述出服务器上的数据流细节。
3.4系统功能需求分析
3.4.1管理员功能需求
本系统中管理员在后台能够对所有功能模块进行操作管理,对各个模块都应该具备添加、删除和修改等操作权限,其中对用户的申请资源操作进行审核。
通过对管理员拥有操作权限的相关描述,对管理员这个角色有了进一步的认识,从管理员需求的管理范围,对管理员的用例如图3-4所示。
图3-4管理员权限用例图
3.4.2用户功能需求
在本系统中用户可以通过登录界面登录个人的帐号,登录成功后用户可以对自身的联系电话、电子邮箱和密码等信息进行修改。在本系统中可以对虚拟系统或虚拟系统的资源进行申请的操作。并可以对自己的虚拟系统进行恢复出厂,开启和关闭等操作。
通过以上对普通用户的权限说明,可以清楚的了解到普通用户所具备的操作权限,明白了普通用户在该系统中所需求的功能权限。为了能够更直观的体现出来,对普通用户的用例描述如图3-5所示。
图3-5用户权限用例图
4. 系统设计
本章在上一章系统分析的基础上,展开对系统总体网络设计、总体功能结构设计、数据库设计、及系统主要功能模块设计。主要叙述了系统的功能模块设计,数据库的一些设计为后面的开发做好了基础。
4.1网络拓扑图
本系统有使用的模式有B/S和小部分C/S模式,在客户端和服务端之间的通讯是靠无线或有线传输的。客户端通过网络将数据传递给云。然后,数据被传输到服务端。这时候防火墙过滤非法数据。最后传递到服务器进行处理。处理完成后的数据,将存储到数据库中。如图4-1所示:
图4-1云校园桌面虚拟化系统网络拓扑图
通过图4-1本系统的网络拓扑图,可以看出它和普通的B/S模式的拓扑图是类似的,有不一样的就是,本系统添加了一台KVM服务器。这KVM服务器是本系统的基础,本系统需要使用KVM虚拟机服务器,虚拟出虚拟的系统,并通过WEB服务器进行管理。最后以这样的拓扑结构来搭建本系统的网络。
4.2数据库设计
4.2.1 E-R图设计
图4-2是本系统设计的总体E-R图。
授权的过程:一个申请单只能有一个管理员(用户)受理,里面只能授权一个镜像的资源;一个管理员可以授权多个申请单同样的每个申请单中只能有一个镜像。
安全问题的设置:一个用户可以设置一个安全问题用于找回密码;而一个安全问题可以被多个用户进行设置。
消息记录获取:一条消息只能属于一个用户;一个用户可以获取多条消息。
积分/img币记录:一个用户可以有多条积分/img币的记录;一个积分/img币的记录只能属于一个用户。
镜像所属:一个用户可以拥有多个镜像资源;一个镜像资源只能属于一个用户。
申请单申请:一个用户可以提交多个申请单;一个申请单只能属于一个用户。
图4-2整体E-R图
图4-3至图4-9是各实体具体属性
图4-3问题表实体属性图
图4-4用户实体属性图
图4-5镜像实体属性图
图4-6申请单实体属性图
图4-7积分记录表实体属性图
图4-8价目实体属性图
图4-9消息实体属性图
4.2.2关系模式
安全问题(问题编号,安全问题,编辑时间,预留)
用户(用户编号,用户名称,用户昵称,称号,用户,密码,邮箱,电话,性别,生日,身份,密保问题编号,密保答案,img币,积分,状态,创建时间,编辑时间,预留)
镜像(镜像编号,镜像名,所属母板编号,所属用户,镜像位置,端口,属性,系统类型,内存,硬盘,CPU,实际大小,价值,状态,介绍,创建时间,编辑时间,预留)
申请(申请编号,申请人,申请类别,镜像编号,内存,硬盘,CPU,价值,申请状态,授权人编号,申请时间,授权时间,预留)
积分记录(记录编号,用户编号,类型,所得积分/币,得分时间,签到天数,预留)
价目(产品编号,元件,基础资源,增长单价,单位,编辑时间,预留)
消息(消息编号,用户编号,消息内容,消息类型,消息状态,发送者编号,发送时间,编辑时间,预留)
4.2.3数据模型图
根据数据库设置得到系统数据模型图,如图4-10所示:
图4-10管理员系统数据模型图
4.2.4数据库表结构设计
表4-1积分记录表
标识符:T_integral数据定义:记录积分记录的数据结构
编号
名称
类型
大小
标识
主码
约束
说明
1
integralId
int
是
是
primary key
记录id
2
userId
int
not null,fk
用户id
3
integralType
varchar
10
not null
类型
4
integralValue
int
not null
所得积分/币
5
scoreTime
datetime
not null
得分时间
6
days
int
null
签到天数
7
mark
varchar
200
null
预留
表4-2用户信息表
标识符:T_userInfo数据定义:记录用户信息的数据结构
编号
名称
类型
大小
标识
主码
约束
说明
1
userId
int
是
是
primary key
用户id
2
userName
varchar
20
not null,unique
用户名称
3
nickName
varchar
20
null,unique
用户昵称
4
uRank
varchar
20
null
称号
5
userFKey
varchar
20
null
用户
6
uPassword
varchar
20
not null
密码
7
email
varchar
20
not null
邮箱
8
tel
varchar
20
null
电话
9
sex
int
null
性别
10
birthday
varchar
10
null
生日:2014/01/01
11
uIdentity
varchar
10
not null
身份
12
questId
int
null,fk
密保问题id
13
questAnswer
varchar
200
null
密保答案
14
imgCoin
int
not null
img币
15
integral
int
not null
积分(默认100)
16
uState
int
not null
状态(1/0默认1)
17
createTime
datetime
not null
创建时间
18
editTime
datetime
not null
编辑时间
19
mark
varchar
200
null
预留
表4-3申请表
标识符:T_application数据定义:记录申请信息的数据结构
编号
展开阅读全文