已阅读5页,还剩78页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 r 浙江大学硕士生毕业论文 摘要 浙江大学电工电子网络实验室( n e t l a b ) 是基于i n t e m e t 的远程实验室。 它采用双c s ( c l i e n t s e r v e r ,即客户端服务器) 结构,由客户端、控制端和服 务器三部分组成,所有实验设备经由控制端通过网络接入服务器平台,向远程用 户提供服务。 论文主要讲述了网络实验室系统的可扩展性设计,实验服务器的功能改进和 性能的优化,以及网络实验室用户管理系统的设计和实现。 论文首先介绍了国内外远程实验室的基本状况和本文研究的项目背景,并从 整体上简要介绍了浙江大学电工电子网络实验室。 系统可扩展性设计部分内容包括:建立实验服务器软件的版本控制系统;用 e c l i p s e 替换j b u i l d e r ,提高开发平台的可扩展性;对实验服务器软件代码进行全 面有效地静态代码分析,收集和整理代码信息;为实验服务器系统构建完整、可 扩展的测试体系;对实验服务器代码进行代码重构,改善代码的内部结构。 实验服务器功能改进和性能优化部分内容包括:对实验服务器系统资源( 包 括系统日志、t c p 连接、线程、数据库连接、实验设备) 的应用和管理进行了全 面设计、优化和实现;通过收集和分析系统软件运行过程中的状态信息,对系统 进行了有效的故障诊断和性能优化。 网络实验室用户管理系统设计部分,优化了用户管理规则,并说明了基于 j s p 技术的网络实验室用户管理系统的实现方案。 最后,论文还对网络实验室的进一步发展进行了技术探索,并提出了相应的 改进建议。 关键字:网络实验室,服务器,扩展性,版本控制,测试,重构,系统优化,用 户管理 1 r 浙江大学硕士生毕业论文 a b s t r a c t n e t l a bi sa l li n t e r a c t - b a s e dr e m o t el a b o r a t o r y i ti sb a s e do nd o u b l ec s ( c l i e n t s e r v e r ) a r c h i t e c t u r ea n di n c l u d e sc l i e n t ,c o n t r o l l e ra n ds e r v e r a l le x p e r i m e n t d e v i c e sa r ec o n n e c t e di n t os e r v e rv i an e t w o r ka n du s e db yr e m o t eu s e r s 。 t h et h e s i sp r e s e n t st h ed e s i g no ft h ee x p a n s i b i l i t yo fn e t l a b ,t h ea p p r o a c ht o t h ef u n c t i o n i m p r o v e m e n t a n dt h e p e r f o r m a n c eo p t i m i z a t i o n ,a n d a l s ot h e i m p l e m e n t a t i o no ft h eu s e rm a n a g e m e n ts y s t e m a f t e ri n t r o d u c i n gt h ed e v e l o p m e n to ft h er e m o t el a b o r a t o r ya th o m ea n db o a r d , a n dt h ep r o j e c tb a c k g r o u n do ft h et h e s i s ,a l li n t r o d u c t i o no fn e t l a bi sp r e s e n t t h ec o n t e n to ft h ed e s i g ni nt h ee x p a n s i b i l i t yo ft h ee x p e r i m e n t a ls e r v e ri n c l u d e s : t h ee s t a b l i s h m e n to ft h ev e r s i o nc o n t r o ls y s t e mf o rt h ep r o j e c t ;u s i n ge c l i p s et o r e p l a c ej b u i l d e r , i m p r o v i n gt h ee x p a n s i b i l i t yo fd e v e l o p m e n tp l a t f o r m ;c a r r y i n go u t a ne f f e c t i v es t a t i cc o d ea n a l y s i st ot h ee x p e r i m e n t a ls e r v e r , c o l l e c t i n gt h ei n f o r m a t i o n o ft h ee x i s i t i n gc o d e ;t h ec o n s t r u c t i o no ft h ee x t e n d i b l et e s t i n gs y s t e mf o rt h es e r v e r ; r e f a c t o r i n gt h ec o d ea n di m p r o v i n gt h ei n t e r n a ls t r u c t u r eo ft h ec o d e t h er e l e v a n t p a r t so f t h ea p p r o a c ht ot h ef u n c t i o n i m p r o v e m e n ta n dt h e p e r f o r m a n c eo p t i m i z a t i o n i n c l u d e s :t h e o p t i m i z a t i o n o ft h e m a n a g e m e n ta n d a p p l i c a t i o no ft h ee x p e f i m e n 瞧s e r v e rs y s t e mr e s o u r c e s ;t h ec o l l e c t i o na n da n a l y s i s w i t ht h es t a t u si n f o r m a t i o no ft h es y s t e mi nt h em n t i m e ,c a r r y i n go u ta ne f f e c t i v ef a u l t d i a g n o s i sa n dp e r f o r m a n c eo p 矗m i z 雉。珏f o rt h es y s t e m 。 t h ed e s i g no ft h eu s e rm a n a g e m e n ts y s t e mi n c l u d e st h eo p t i m i z a t i o no ft h eu s e r m a n a g e m e n tr u l e s ,a n da ni m p l e m e n t a t i o nt ot h eu s e rm a n a g e m e n tu s i n gt h ej s p t e c h n o l o g yi sp r e s e n t e d a tt h ee n d ,d i s c u s s i o na n dp r o p o s a lo ft h ef u r t h e rd e v e l o p m e n to fn e t l a ba r e g i v e n k e yw o r d s :n e t l a b ,s e r v e r , e x p a n s i b i l i t y , v e r s i o nc o n t r o l ,t e s t i n g ,r e f a c t o r , s y s t e mo p t i m i z a t i o n ,u s e rm a n a g e m e n t 1 r 浙江大学硕士生毕业论文 1 1 引言 第一章概述 众所周知,实验技术是对科学理论进行验证及对未知知识进行探索的主要手 段,实验教学相对于理论教学而言更具有直观性、实践性和创新性,实验教学在 加强学生素质教育与培养创新能力方面有着重要的、不可替代的作用。 然而,在网络教育中,学生远离学校,不能在实验室里做实验,这对于理工 科的学生学习技术类课程来说,网上学习将会带来许多困难。于是如何实现这一 从感知到理解的过渡,是网络教育系统中需要迫切解决的艰难问题。对于在校学 生来说,某些环境恶劣、耗资大的,无法在实验室完成的实验也有同样的问题需 要解决。另外,由于实验系统是一个资源高度密集的系统,维护实验设备、实验 体系以及实验教学需要大量资金和人力成本的投入,所以从降低实验系统成本并 兼顾实验教学的角度考虑,需要引入一个新的实验系统实现方案。网络实验室及 网络实验技术的出现,为解决这些难题提供了一种有效的途径。 网络实验室及网络实验技术,是近年来信息技术迅速发展的产物。虚拟实验 室,美国国家研究委员会将其定义为:“一个无墙的中心。研究人员能在其中从 事科学研究和工程设计,不必顾及地理位置的限制,实现同行间、同事间的互动, 共享仪器、设备、数据、计算资源以及数字图书馆的信息【l 】。 网络实验室及网络实验技术通过综合使用虚拟仪器、虚拟现实、数据库、网 络和计算机实时控制等多种技术,为实验者营造虚拟的实验环境。实验者的指令 通过网络发送给实际的设备或者仿真对象,实验的结果以图表、示意图、动画等 形式反馈给用户,以达到与普通实验室相同的实验效果。它不仅仅能够提高远程 教育的教学效果,更加重要的是使一些缺乏实验条件的学生,通过网络同样能够 “身临其境的观察实验现象,甚至和异地的学生合作进行实验。通过远程实验 系统可以解除传统实验所无法克服的场地和时间的限制,同时可以大大地提高设 备的利用率,有效地降低实验成本,在相同经费的情况下,提供更加丰富的实验 内容和更加先进的实验设施【2 j 。 一方面,网络实验室及网络实验技术是今后实验教学技术发展的一个重要方 1 1 r 浙江大学硕士生毕业论文 向,另一方面,到目前为止,还没有一个统一、完善的网络实验室及网络实验技 术标准,而且网络实验室及网络实验技术也还没有得到广泛普及,所以在这种情 况下,对网络实验平台的研究、实践,技术的完善,经验的积累和总结具有重要 意义。 1 2 国内外网络实验室研究现状 网络实验室研究始于9 0 年代,是随着p c 机和网络的发展而出现和发展的, 总体来看,虚拟实验室的发展是一个控制虚拟设备到控制物理设备的过程。 2 0 世纪末2 1 世纪初,国内外开始大量出现对远程实验系统的研究和应用。 如美国麻省理工学院的w 曲l i b ,卡耐基梅隆大学的虚拟实验室,新加坡南洋理 工大学的网络控制实验室。国内的院校有中国矿业大学的网络虚拟机电测试实验 室,大连理工学院的远程虚拟实验室系统等【3 】。 目前多数的虚拟实验室采用如图1 1 所示的架构,客户端通常基于w e b ,通 过w e b 服务器自动下载客户端软件,然后客户端程序与真正的服务器建立通讯, 进行实验。整个系统由客户端,服务器端以及控制端实验设备组成吲。 浏览器- - 一 2 圆:i 一一 客户端服务端控制端 图1 1 远程虚拟实验室典型结构图 服务器负责实验系统的请求监听、实验调度、数据路由、用户管理、日志记 录等工作,是网络实验室系统的核心。 按照服务端的不同,远程实验系统大致可以分为以下3 类嗍: 基于l a b v i e w 构造的虚拟实验室; 基于m a t l a b 的s i m u l i n k 、r t w 等工具构造的虚拟实验室: 自行进行软硬件设计实现。 由于l a b v i e w 软件提供了便利的设备访问和强大的实时控制能力,尤其是 对虚拟仪器技术的强大支持,使得仅仅使用l a b v i e w 就可以构建一个完整的虚 2 v 浙江大学硕士生毕业论文 拟实验室,其组件提供的界面不仅功能强大,而且外观与真实仪器仪表近乎一样, 不但可以进行实验,而且可以作为训练学生掌握仪器仪表的辅助工具,因而成为 虚拟实验室中设备访问的首选标准。 m 削a b 软件由于强大的仿真和计算能力,直是控制领域最为重要的工具, 自然也被广泛地用于虚拟实验室的开发,尤其是对于控制类实验的开发。 但是,更多的系统采用开发者自行设计并实现的控制系统。自行开发可以最 大程度地适应设备的性能,但是在实现与前两种方式相同的功能时,难度也是最 大的。常见的做法是使用c c + + 开发具体的控制程序,通过c g i 或者s o c k e t 直接与客户端程序进行交互。 远程实验室在功能上正快速地接近真实的传统实验室,但是当前的网络实验 室还是存在着一些重要的缺陷:大部分大型的远程实验室都是基于计算机仿真实 现,而非基于实际的设备,缺乏真实性。而基于真实设备的远程实验大多是基于 单个对象,最多是一类对象,缺少综合实验管理系统,缺乏用户管理和实验数据 存储能力,缺乏实验自由度,实验过程不直观,为此开发一个综合的远程实验系 统有着重要的意义。 1 3 课题背景和本文研究的主要内容 浙江大学电工电子网络实验室是浙江大学9 8 5 振兴计划投资1 0 0 万,远程教 育学院投资4 5 万,自主研发兴建的远程综合虚拟实验室,以研制适合理工科电 工电子类实验教学的网络实验室为目标。策划至今已历时8 年,每年平均近2 0 位师生为其努力。目前,网络实验室已经初具规模。主要包括5 大类,2 3 组, 8 0 多个实验。所有实验都基于真实物理对象,涵盖了大部分电气工程类本科生 和部分研究生课程教学的实验部分。整个系统采用双c s 结构,即客户端( 或者 浏览器) + 服务端+ 控制端的结构。服务器部分主要负责储存实验数据,客户端 和控制端的通讯,对用户和实验进行管理,是网络实验室系统的核心。 本文介绍了对网络实验室的系统扩展性、资源管理和应用策略、实验访问控 制功能等进行的全面设计和改进,并设计实现了网络实验室用户管理系统。 第一部分说明了国内外远程实验室的基本状况和本文研究的项目背景。 第二部分从整体上简要介绍了浙江大学电工电子网络实验室,对网络实验室 3 1 r 浙江大学硕士生毕业论文 的物理拓扑结构,运行平台,基本功能以及网络实验室服务器的构成进行了一个 基本的描述、分析和整理。 第三部分详细介绍了对实验室服务器软件项目的可扩展性设计,具体内容包 括:建立实验服务器软件的版本控制系统;用e c l i p s e 替换j b u i l d e r 作为软件开 发平台;对实验服务器软件代码进行全面有效的静态代码分析,深入对代码的理 解的同时分析和整理代码信息;为实验服务器系统构建完整、可扩展的测试体系: 对实验服务器代码进行代码重构,改善代码的内部结构。 第四部分对服务器资源( 包括系统日志、t c p 连接、线程、数据库连接、实 验设备) 的应用和管理进行了全面的设计、优化和实现,并通过收集和分析软件 运行过程中的系统状态信息,对系统进行了有效的故障诊断和性能优化。 第五部分详细介绍了网络实验室用户管理系统的设计,包括用户管理规则的 设计和优化,以及利用j s p 技术对网络实验室用户管理系统的具体实现。 第六部分针对网络实验室应用进一步扩大后还有可能出现的问题,从数据库 性能优化和j a v ai 0 系统两个方面对网络实验室的技术改进进行了探索和思考, 提出了相应的技术改进建议。 4 v 渐大学m ¥n 赦 第二章网络实验室总体介绍 2 1 网络实验室物理拓扑结构 网络实验室采用烈c s 结构,由客户端、服务器端和控制端三部分组成,整 体的系统架构如| 墨_ 21 所示,服务器端和控制端在防火墙内部客户端既叫位十 局域网内,也可位丁广域网内,网络通讯通过白定义的t c p 控制命令实现”】。 霜星 ,嚣 :。乎磬曼 口口 囤向 图2 1 网络实验室的系统架构 和用户直接打交道的是客户端,用户无论在何时何地只要使自己的计算机联 入i n t e r n e t ,通过w e b 浏览器访问网络实验室的主页( h t t p :6 0 1 9 189 0 :8 0 9 0 t ) , 下载客户端或嵌到网页中前a p p l e t 到本地计算机,然后连接刚络实验宅服务器 就可以进行实验。多个客户端可以同时登陆到服务器上,进行不同的实验,实验 结束后即可注销,断开与服务器的连接。同样,每一个实验控制端都登陆到服务 器上,表示可以随时进行实验,如果控制端需要修改或者更换,u 丁以随时从服务 器上注销,断开连接。服务器是网络实验室系统的中心计算机,它时刻监昕着任 一客户端和控制端,随时接受它们的连接请求。服务器和所有实验控制端同处丁 实验室的高速局域嘲中,因此外界用户访问网络实验室的唯一入口就足通过客户 端直接连接服务器,而不能直接连接控制器端。服务器的后台连接个数据库, 们朋钢阿闭阿沙 1 甲浙江大学硕士生毕业论文 该数据库用来统一存取和管理网络实验室的所有数据信息。其实,对于服务器来 说,控制器端也是一种客户端。所以,我们把网络实验室系统的这种物理拓扑结 构称之为双c s ( c l i e n t s e r v e r ,即客户端朋艮务器) 结构。这种结构非常易于服 务器的稳定运行,既能方便客户端的连接,又能使控制端易于后期扩展和维护。 这种结构与通常的c s 结构相比,为用户调度和实验管理提供了更大的便利,更 加适合大规模网络实验系统的开发和扩展【3 】。 2 2 网络实验室运行平台 网络实验室的服务器、控制端和客户端的运行平台如下 4 1 : 1 ) 服务器 服务器采用d e l l 的专业服务器p o w e r e d g e6 6 0 0 ,内含两颗服务器处理器x e o n 2 g ,4 g 内存,6 个7 2 g 的s c s i 硬盘,使用w i n d o w s 2 0 0 0s e r v e r 作为服务器的 操作系统,为了保证跨平台、多线程、安全等要求,采用j a v a 编写网络实验室 的实验服务器程序,a p a c h e 作为w e b 服务器,o r a c l e 作为数据库服务器。 2 ) 控制端 为了保证控制端系统的稳定性,实验控制机由p m1 g 的工控机来担当,采 用w i n d o w s 2 0 0 0s e r v e r 作为操作系统,为了保证控制程序的高效性和实时性, 使用v i s u a lc + + 6 0 开发环境编写控制程序,保证了控制程序在运行时的高效性 和实时性。 3 ) 客户端 对于应用程序方式,使用v i s u a lc + + 编写客户端程序,所以要求用户使用 w i n d o w s 平台( 包括w i n d o w s 9 8 ,m e ,n t ,2 0 0 0 ,x p ,2 0 0 3 等) ;对于w e b 方 式访问,使用j a v a 编写客户端程序,对用户操作系统不做要求,只需用户的操 作系统支持浏览器即可。 2 3 网络实验室基本功能 网络实验室框架提供的功能大致可以分为:登陆功能,同步实验功能,异步 实验功能,用户管理功能和本地工具集。其中本地工具集目前包含:模块管理功 6 1 甲浙江大学硕士生毕业论文 能,系统帮助,操作记录等5 1 。 1 ) 登陆功能:包括登陆,注册,注销。 2 ) 同步实验功能:在客户端和控制端之间建立虚拟链路,客户端可与控制 端直接交互。 3 ) 异步实验功能:用户一次性把设计好的实验提交给服务器,由服务器安 排实验,实验结束后,实验结果在用户在线时由服务器提交用户,用户不在线时, 保存至数据库中。 4 ) 用户管理功能:主要包括用户的创建,删除,查询,修改功能。 5 ) 实验模块管理功能:提供对具体实验模块的管理能力,具体包括添加实 验模块,删除实验模块,排定实验模块在实验列表中的前后顺序,察看模块的具 体信息。 6 ) 帮助系统:主要由系统帮助,实验帮助,系统版本信息,实验版本信息 和实验欢迎界面五部分组成。 7 ) 记录管理系统:用于记录客户端所进行的操作,包括用户所有的操作, 如开始实验,停止实验,系统接收的命令,系统自身的错误和警告等。 2 4 网络实验室服务器构成 服务器主要由网页服务器、数据库服务器、实验服务器和视频服务器四部分 组成。其中,网页服务器主要提供实验室的网站支持及客户端程序的下载;数据 库服务器主要提供数据存储服务,这些数据包括用户信息、实验信息、实验设计 和实验结果等数据,以上两部分均采用现有的软件产品来实现其功能。实验服务 器负责系统的请求监听、实验调度、数据路由、用户管理、日志记录等工作,是 网络实验室服务系统的核心,采用j a v a 语言编写。j a v a 语言具有面向对象,面 向网络,可移植,与平台无关,多线程,安全等特点,目前在网络环境中得到了 广泛的应用,非常适合开发此实验服务器。视频服务器旨在提供基于i n t e m e t 的 实时观测网络实验室真实物理设备运行状况的功能。 服务器的核心为数据库和通讯部分。数据库维护了用户信息、实验历史数据 和实验设计等信息。通讯部分实现服务器与客户端和控制端的联系,维护登陆用 户队列和已启动的实验,并按照一定的规则为用户安排实验。 7 v * 江 ¥蚍生十n 论z 以下简要的介绍一下各服务器1 3 1 1 ) w e b 服务器 使用a p a c h e 提供w e b 服务。a p a c h e 是一个非常稳定的w e b 服务器,它功 能强大,响应迅速,可扩展性强,是目前使用晟多的w e b 服务器。使用该服务 器响应用户浏览器的请求,把请求的网页文件和当中的客户端a p p l e t 类文件下 载到用户计算机中。 2 ) 数据库服务器 采用o r a c l e 提供数据库服务。o r a c l e 数据库是种基于s q l 标准的关系数 据库产品,它支持大数据库、多用户和事务处理等,具有非常优秀的性能,o r a c l e 叮在所有主流平台上运行。为了便了数据处理和维护,片j 该数据库来统一已录、 存取和管理刚络实验室的所有数据信息,包括每个用户帐号的各种信息,每个实 验模块的配置信息,以及异步实验请求和异步实验结果等,数据库表间的相互关 系图如下。 图2 2 数据库表的相互关幕图 3 ) 实验服务器 实验服务器是一个采用j a v a 程序语舌独立实现的服务器应用程序,是网络 实验室系统中根本意义上的服务器,是网络实验室的中心环节,莲接了客户端、 控制器端和后台数据库。客户端、控制器端和后台数据库不存在直接芙联,都必 v 浙江大学硕士生毕业论文 须通过实验服务器进行交互和协作,易于后期的扩展和运行期的维护,为用户调 度和实验管理提供很大的便利,适合大规模系统的开发和扩展。它是本文分析、 研究、改进和优化的核心对象,论文接下来的部分提到网络实验室服务器,如果 没有特别说明都指的是这个实验服务器。 实验服务器的软件拓扑图如图2 3 所示。为了保证内部网络的独立性和安全 性,避免控制端和客户端之间相互影响,实验服务器分为客户端服务模块和控制 端服务模块,在不同的端口接受客户端和控制端的访问。同时,和大多数的服务 器一样,为了处理多个请求,实验服务器使用多线程技术。 图2 3 实验服务器软件拓扑图 服务器启动时,由n e t l a b s e r v e r 对象( 服务监控模块) 生成两个独立的服 务模块:u s e r s e r v e r 对象( 用户服务模块) 和e x p s e r v e r 对象( 实验服务模块) , 分别监听不同的端口,当有用户或实验联入时,系统生成u s e r t h r e a d ( 用户线程) 或e x p t h r e a d ( 控制线程) 来完成以后的对话。同步实验时,通过用户线程和控 制线程的绑定建立虚链路,实现实时的消息转发。异步实验时,通过数据库作为 媒质,进行数据的交互。预约实验模式,允许用户预约将来的一个单位时间进行 同步实验。实验预约后,系统将在预约的时间内,为用户保留所申请的实验,以 便其在该单位时间内随时进行实验。 9 1 r 浙江大学硕士生毕业论文 4 ) 视频服务器 视频监控系统用于实时观测网络实验室真实物理设备运行状况,该系统同时 具有录像功能,以满足实验者在同步实验以后或者在异步实验查询时的需要。整 个系统基于双c s 架构,主要由视频终端,负责接收、存储及调度转发压缩视频 的视频服务器,以及负责视频播放的客户端三部分组成。视频服务器是整个系统 运行的关键环节。视频服务器采用多网卡设计,分别处理来自客户端和视频终端 的连接,进而实现视频数据的转发。 2 5 本章小结 浙江大学网络实验室是本论文进行深入研究和具体改造的项目平台。所以, 本章对浙江大学网络实验室进行了一个全面的介绍,对网络实验室的物理拓扑结 构、运行平台、基本功能以及网络实验室服务器的构成进行了一个基本的描述、 分析和整理,为后续章节的工作做了一个最基本的准备,也为接下来内容的叙述 提供了一个基本的项目背景介绍。 l o v 浙江大学硕士生毕业论文 第三章实验服务器的可扩展性设计 实验服务器是整个网络实验室的中一t 5 环节,它连接了客户端、控制器端和后 台数据库,全面负责用户调度和实验管理等整个网络实验室运行逻辑的实现。但 是实验服务器的软件系统在2 0 0 3 年第一个版本发布并开始提供服务之后就基本 上没有再进行更新和扩展。这并不是因为第一个版本的实验服务器的软件系统在 功能、性能、安全性和稳定性等方面都己完善而无需改进和扩展,而是因为最初 的实验服务器软件系统缺少了对系统扩展性的相应设计。特别是从软件工程的角 度来说,实验室服务器软件系统作为一个软件项目缺少了一些必要的项目组成部 分,失去了项目层面上的扩展性支持。因此,实验服务器软件系统的改进和扩展 存在着非常大的风险,随着项目的不断交接,该风险更是不断增加。通过对系统 应用的观察和维护,发现实验服务器在性能、安全性和稳定性等方面都存在着相 应的问题,随着系统应用的扩展,一方面上述问题变得越来越突出,另一方面还 需要对实验服务器的功能进一步扩展和整强,如果不对当前的软件版本进行必要 的改进和扩展,将严重地影响到整个网络实验室的运行和扩展。为了对实验服务 器系统进行安全有效的完善和改进,我们首先需要的就是对系统的扩展性进行完 整、全面的设计,尤其是要从软件工程的角度把实验服务器作为一个软件项目进 行必要的补充和完善,提供对项目改进和扩展的全面支持,有效地提高系统的可 扩性,最大限度地降低软件改进和完善过程的风险,实现网络实验室的可持续性 发展。 3 1 建立实验服务器软件的版本控制系统 随着整个网络实验室软件系统的开发、维护、扩展和升级,整个项目产生了 大量的程序源代码、系统设计文档、通讯协议文档、数据库设计文档等各种各样 的项目文件,项目的开发、维护人员也随着时间不断地变换,发展到现在,整个 项目的资料成了实验室文件服务器上的好几个庞大的,错综复杂的文件夹和不同 开发人员各自电脑上与各人开发或维护任务相关的软件不同部分的不同版本。面 对这样一个庞大、复杂、不会说话的软件系统,如今已很难对整个软件系统的各 1 r 浙江大学硕士生毕业论文 个部分进行详细可靠的说明和解释,而对于项目演变的整个过程,大部分时候我 们也都只能依赖勉强的逻辑分析和想象了。管理和维护这样的一个项目的任务不 管交给谁都太过艰巨了,而且即使有人能担此重任,这样的管理维护任务向后的 交接也不是一件现实可行的事情。为了解决这样的问题,人们已经开发了一类被 称为“版本控$ i j ( v e r s i o nc o n t r 0 1 ) ”的软件。版本控制软件是一个文件管理系统它 可以让多个用户在同一个文件组中高效地协同工作。使用版本控制系统可以使 许多对项目文件的管理工作变得自动化,可以让程序员将更多的时间用在编程 上从而避免了许多潜在的灾难性错误。可以说,软件的开发和维护过程,离不 开版本控制,对于一个完整软件系统来说,它已经成为了不可或缺的工具【6 】。 3 1 1 版本控制技术 版本控制( r e v i s i o nc o n t r 0 1 ) 是一种软件工程技巧,籍以在开发的过程中, 确保由不同人所编辑的同一档案都得到更新。版本控制透过文档控制 ( d o c u m e n t a t i o nc o n t r 0 1 ) 记录程序各个模组的改动,并为每次变动编上序号【刀。 对于同一份文件,我们经常需要按不同的版本进行归档,或者从资料库里找出反 映文件修改历史的不同版本。这样一方面可以使各个阶段的代码和文档变得井井 有条,另一方面可以在当前版本出现问题时,找回先前的版本。当然我们希望的 还不止这些,我们希望可以规定谁在什么时候可以如何存取某个版本的内容,也 希望差异不大的版本按增量的方式存成一个文件,以节省存储空间;还希望某两 个版本的文件可以合二为一;因此,我们需要版本控制工具【8 】。 充分地利用版本控制软件能够对软件开发进行卓有成效的管理,其具体表现 有以下这样几个方面【9 】: 1 ) 随时将程序恢复到以前某一时间点 版本控制软件可以将某一程序恢复到以前的某一时间的状态,甚至将整个软 件版本恢复到以前的某一时间的状态。它能比较程序的不同版本,方便地识别出 被修改、删除或插入的具体行,可以将两个不同版本的源代码修改合并到一个新 文件中,如果一段重要的代码被删除了,它可以迅速恢复这段代码。 2 ) 实现程序的互斥性修改 1 2 丫浙江大学硕士生毕业论文 版本控制软件能够实现某一程序在同一时间只能一个开发人员修改。其具体 实现方式是:执行修改程序的开发人员从源文件存放处提出( c h e c k - o u t ) 一个 程序,这时其他开发人员就不可以再提出同一个程序了,只有当第一个开发人员 修改测试完成后,将更新版本的代码放入( c h e c k i n ) 操作,其他开发人员才能 提出同一个程序。当然,如果有必要,现在有些版本控制软件也可允许多人修改, 即同时提出同一个程序,最后可以将不同版本的修改合并到一个新程序中。 3 ) 对程序修改进行有效的管理 在版本控制软件中可以将用户分为管理员和程序员两种角色,只有管理员可 以将程序冻结( f r e e z e ) 和解冻( u n f r e e z e ) ,被冻结的程序是不允许修改的。在软件 开发后期或者软件正式投入使用时,这种功能对保证软件的稳定运行能起到非常 重要的作用。 4 ) 将开发环境与测试环境、运行环境进行有效的隔离 比较大型的软件开发项目都有专门的测试小组。采用版本控制软件后,开发 人员有自己单独的开发环境,测试人员有自己的测试环境。项目进行到一定阶段, 可随时用版本控制软件生成一个新的版本投入运行。生成运行版本时可以选择丢 弃以前所有的修改记录。 5 ) 评估软件开发人员编写的程序质量,控制软件开发的进度 版本控制软件完整地保存开发中对应用程序每一个源文件所有的修改记录, 这些记录包括完成修改程序的开发人员、修改的时间、所进行的具体修改以及对 本次修改的解释。通过调阅这些记录,对程序修改的次数、修改原因和修改情况 进行统计,就能够对每一个程序员编写的程序进行理解和综合评估。这些记录还 能方便对整个项目的进度的了解。 6 ) 管理文档 版本控制软件不仅为各种开发软件提供了存放对象的接口,还能存放任意类 型的文件,这样我们可以在版本控制软件中建立专门的文件夹,用来存放软件开 发过程中生成的各种文档,对于每个文档可以存放它的多个版本,供随时查阅。 1 3 1 r 浙江大学硕士生毕业论文 3 1 2s u b v e r s i o n 项目 当前,有很多优秀的版本控制工具供我们选择,主流的版本控制工具包括: s t a r t e a r n ,p v c sv e r s i o nm a n a g e r ,c l e a r c a s e ( c c ) ,v i s u a ls o u r c e s a f e ( v s s ) ,c v s ( c o n c u r r e n tv e r s i o n ss y s t e m ) ,s v n ( s u b v e r s i o n ) 等。我们选择了s u b v e r s i o n 来建立网络实验室的版本控制系统。 s u b v e r s i o n 是一个自由、开放源码的版本控制系统。它是一个通用系统,可 用来管理任何类型的文件,其中包括程序源码0 1 。它的初始目标很明确,实现 绝大部分c v s 的已有功能;充分考虑现有的c v s 用户,在使用方式上模仿c v s , 同时开发了一系列工具,使得基于c v s 的项目能够顺利迁移到s u b v e r s i o n 上。 和c v s 相比,它有很多优点,并将很多新特性引入版本控制领域。s u b v e r s i o n 的系统架构如下图所示【1 1 】。 图3 1s u b v e r s i o n 系统架构 s u b v e r s i o n 支持的特性包捌1 1 】: 1 4 1 y 浙江大学硕士生毕业论文 1 ) 版本化的目录 c v s 只能跟踪单个文件的变更历史,但是s u b v e r s i o n 实现的“虚拟 版本 化文件系统则可以跟踪目录树的变更。在s u b v e r s i o n 中,文件和目录都是版本化 的。 2 ) 真实的版本历史 由于只能跟踪单个文件的变更,c v s 无法支持如文件拷贝和改名这些常见 的操作这些操作改变了目录的内容。同样,在c v s 中,目录下的文件只要 名字相同即拥有相同的历史,即使这些同名文件在历史上毫无关系。而在 s u b v e r s i o n 中,可以对文件或目录进行增加、拷贝和改名操作,也解决了同名而 无关的文件之间的历史联系问题。 3 ) 原子提交 一系列相关的更改,要么全部提交到版本库,要么一个也不提交。这样用户 就可以将相关的更改组成一个逻辑整体,防止出现部分修改而另一部分未修改的 情况提交到版本库中。 4 ) 版本化的元数据 每一个文件和目录都有自己的一组属性键和它们的值。可以根据需要建 立并存储任何键值对。和文件本身的内容一样,属性也在版本控制之下。 5 ) 可选的网络层 s u b v e r s i o n 在版本库访问的实现上具有较高的抽象程度,利于人们实现新的 网络访问机制。s u b v e r s i o n 可以作为一个扩展模块嵌入到a p a c h e 之中。这种方 式在稳定性和交互性方面有很大的优势,可以直接使用服务器的成熟技术一认 证、授权和传输压缩等等。此外,s u b v e r s i o n 自身也实现了一个轻型的,可独立 运行的服务器软件。这个服务器使用了一个特定的协议,这个协议可以轻松的用 s s h 封装。 6 ) 一致的数据操作 s u b v e r s i o n 用一个二进制差异算法描述文件的变化,对于文本( n - i 读) 和二 进制( 不可读) 文件其操作方式是一致的。这两种类型的文件压缩存储在版本库 中,而差异信息则在网络上双向传递。 1 5 1 r 浙江大学硕士生毕业论文 7 ) 高效的分支和标签操作 在s u b v e r s i o n 中,分支与标签操作的开销与工程的大小无关。s u b v e r s i o n 的 分支和标签操作用只是一种类似于硬链接的机制拷贝整个工程。因而这些操作通 常只会花费很少且相对固定的时间。 8 ) 可修改性 s u b v e r s i o n 没有历史负担,它以一系列优质的共享c 程序库的方式实现,具 有定义良好的a p i 。这使得s u b v e r s i o n 非常容易维护,和其它语言的互操作性很 强。 3 1 3 使用s u b v e r s i o n 建立实验服务器的版本控制系统 s u b v e r s i o n 建立在一个可移植层上,叫做a p r a p a c h ep o r t a b l er u n t i m e l i b r a r y ,提供了许多s u b v e r s i o n 在多种操作系统上需要的功能:磁盘访问、内存 管理等等。虽然s u b v e r s i o n 可以使用a p a c h e 作为服务器程序,但这种对a p r 的 依赖并不意味着a p a c h e 是必需的组件,a p r 是可以独立使用的库。这意味着 s u b v e r s i o n 可以在所有可以运行a p a c h e 服务器的平台上工作:w i n d o w s 、l i n u x 、 各种b s d 、m a co sx 、n e t w a r e 以及其他。 根据网络实验室现有的设备情况和对于系统的使用习惯,实验服务器b a n 本 控制系统的服务器和客户端都使用w i n d o w s 系统,通讯使用s v n 协议。依照下 面的步骤来建立网络实验室的版本控制系统。 1 ) 软件获取与安装 到h t t p :s u b v e r s i o n t i g r i s o r g 下载所需的服务端软件:s v n x y z s e t u p e x e ( x 、 y 、z 表示可选的软件版本号) ,安装在服务器端。 到h t t p :t o r t o i s e s v n n e t l 网站下载t o r t o i s e s v n ( 一个提供了图形界面并和 w i n d o w s 系统菜单集成的s v n 客户端软件,当然客户端也可以使用s u b v e r s i o n 本身) ,安装在客户端。 2 )( 在服务器端) 创建s v n 仓库 在命令行执行如下命令: s v n a d m i nc r e a t ee :i a e t l a b s e r v e r _ _ r e p o s s v n a d m i nc r e a t e 1 6 1 l r 浙江大学硕士生毕业论文 在服务器的e :n e t l a b s e r v e r _ r e p o s 目录下创建s v n 仓库。 3 )( 在服务器端) 修改s v n 配置文件 打开s v n 仓库对应的系统文件目录中c o n f 子目录下的配置文件 s v n s e r v e c o n f ,修改配置参数。 去掉以下内容之前的注释符# 【g e n e r a j 】 a n o n a c c e s s = n o n e a u t h a c c e s s = w r i t e p a s s w o r d d b = p a s s w d 说明: a n o n - a c c e s s = n o n e 禁止匿名访问。 a u t h a c c e s s = w r i t e 允许提交修改 p a s s w o r d d b = p a s s w d 指定密码文件名字 4 )( 在服务器端) 修改密码配置文件 打开s v n 仓库对应的系统文件目录中c o n f 子目录下的密码配置文件p a s s w d ( 由上面的s v n s e r v e c o n f 中的p a s s w o r d d b 属性指定) ,使有效文本( 指前面不 加注释符的) 为: u s e r s 】 m i r r o r _ l h y = 19 8 3 012 0 m i r r o r _ l h y 为用户名,1 9 8 3 0 1 2 0 为相应的密码,可以添加多个这样的用户名 密码对。 5 )( 在服务器端) 运行s v n 服务 在命令行执行如下命令: s v n s e r v e d re :u e t l a b s e r v e r _ r e p o s s v n s e r v e d r 这样s v n 系统就以后台服务的模式启动了。 1 7 1 r 浙江大学硕士生毕业论文 6 ) 把s v n 服务添加为服务器端的系统服务 在w i n d o w sn t 中( 包括w i n d o w sx p , w i n d o w s2 0 0 0 ,w i n d o w s2 0 0 3s e r v e r ) 本身包含了一个安装服务的工具,叫做“s e r v i c ec o n t r o l ”,也就是s c e x e 。借用 s c 命令可以把s v n 服务添加为服务器端的系统服务。实验室服务器的s u b v e r s i o n 服务器端软件安装在“c a p r o g r a mf i l e s s u b v e r s i o n v ,软件版本库的目录为 e a n e t l a b s e r v e r _ _ r e p o s ”,相应的s v n 服务名定为s v ns e r v i c e ,于是,添加这个 s v n 服务的完整的命令如下: s cc r e a t es v n _ s e r v i c e b i n p a t h = ”i t c a p r o g r a mf i l e s s u b v e r s i o n b i n k s v n s e r v e e x e ”一s e r v i c e - r o o te a n e t l a b s e r v e r _ r e p o s ” d i s p l a y n a m e = ”s v n _ s e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习中考趋势题3项目式学习课件
- 第七八单元及总复习教案
- 物流配送司机招聘合同模板
- 四年级科学下册教案
- 城市广场改造专业施工合同范本
- 七台河市公园公共艺术展示规范
- 市政工程工字钢租赁合同
- 公共交通建设资金使用暂行条例
- 医疗中心雨污管网维护合同
- 企业车辆更新政策样本
- 办公用品售后服务方案范文
- 风电机组吊装作业安全管理
- 高校教师职业介绍
- 飞行器制造职业生涯规划书
- 货物运输方案计划书
- 2024年的重要事件
- 会计基础 课件 知识点10:会计要素-收入、费用和利润
- 婴幼儿发展引导员
- oracle数据库巡检内容
- 产品系统设计开发 课件 第3、4章 产品系统设计程序与方法、产品系统设计类型
- 房地产质量保证体系
评论
0/150
提交评论