




已阅读5页,还剩63页未读, 继续免费阅读
(计算机软件与理论专业论文)支持ipv6的远程虚拟实验系统架构研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文摘要 摘要 现代远程教育是正规学校教育的重要补充手段,其市场需求十分强烈。随着 中国i p v 6 网络的普及,更是迫切需要支持下一代互联网的远程教育软件系统的应 用。电子电路课程的远程实验教育,作为远程实验教育的一个重要组成部分,目 前还处于摸索阶段,国内外很少有成熟的能够进行网上在线仿真并且具有良好用 户界面的电子电路仿真系统,无法满足远程电子电路实验教育的需求。至于基于 i p v 6 的虚拟电子试验系统更是凤毛麟角。因此,远程实验系统作为远程教育中实 验课程的唯一手段,更是大有研究空间。 有鉴于此,本文以电子技术基础实验为切入点,利用现有的虚拟现实技术、 网络技术、仿真技术设计并丌发了一套远程虚拟电路实验平台该系统采用b s 模式,实现了一个远程虚拟电子实验环境,能够完成基本的数字电路和模拟电路 实验功能,并能够做到电路对用户操作的实时响应,具有较好的用户体验。由s p i c c o p 鸺仿真引擎提供的仿真结果较为精确,能够提供正确的实验结果本虚拟电子 实验系统支持口v 6 网络,并且能够向后兼容i p v 4 网络,满足了国内碑v 6 网络对 远程教育应用的需求。 系统基于a p a c h e 网络服务器和浏览器实现通信功能,简化了通信模式,提 高了系统的集成度,并能够做到穿越防火墙提供服务。由于采用了a p r 系统兼容 层,也提高了系统的可移植性。 客户端采用f l a s h 技术提供用户接口,同时支持多种平台,并且无需安装, 具有良好的可部署性。同时,得益于f l a s h 技术良好的图形表达能力和用户交互 能力,系统提供了良好的沉浸性,使用户体验到近乎真实试验的效果。 该系统可以用于远程教学中的电子电工试验课程,也可以作为学生对真正实 验课程的预习、复习手段,有着广泛的应用前景。 关键词远程虚拟实验,v 6 ,a p a c h e ,s 曲、e 浙江人学硕士学位论文a b s t r a c t a b s t r a c t a sa ni m p o r t a i l ts u p p l e m e n to ff b r n l a lc 0 1 l e g ee d u c a t i o n ,m o d e n ld i s t a t l c e e d u c a t j o nh a sas 廿o n gd 哪a i l d 舳m l em a r k e t w i t ht h ep 9 p u l a r i t yo fi p v 6n e t w o r k i nc 1 1 i n a ,t h en e e df o rm ed i s t a l l c ee d u c a t i o ns y s t e m 印p i i c a t i o n sw h i c hs u p p o r tm e n e x tg e n e r a d o ni n t e m c tb e c o m e su r 彦e t l t a sa ni m p o r t a n tp a r to fd i s t a n c ee x p e r i m e n t e d u c a t i o n ,d i s 协n c ee d u c a i o no nd e c t m n i cc i f c u i t si ss t i no ni t sb e 百n n i n 鲁t h e r e 盯e f e wp r a c t i c a lo n l i n ee l e c t r o n i cs i i n u l a t es y s t 锄sw i t ha p p e a l i n gi n t e r f a c eo nt h e i n 缸l e t ,a 1 1 do b v i o u s l yt h en e e do fd i s t a i l c ee d u c a t i o no ne l e c t m 血cc i r c u i t sc a n tb e m e e t ,n o tt om 训o nt h es y s t 锄so ni p v 6 s om er 啪o t ee x p e f i m e n ts y s t 锄h a sag r c a t p o t e n t i a lf o ri m p r o v e i i l e n t a c c o r d i n gt om ep r e v i o u sd e s c r i p t i o n ,f o 饥s i n go ne l e c l m n i cc i r c u i t se x p e r i m e n t s , t h i sp a p c rd e s i 弘e d 觚di m p l 锄锄t c dar 锄o t e 、,i 咖a le l e c t r c i n i ce x p e r i m e n ts y s t 锄 b a s 酣o ne x i s t i n g “r t u a 王r c a l i 坝n e 研o r k i n ga i i ds i m u l a t i n gt e c h n o l o 百e s t h i ss y 或e m , w h i c hi sb u i l to nb sm o d e l ,i m p l 锄e n t e da nv i m a l 胁v i r o n i n e n to f r 锄o t ed e c 仃u n i c c i r 嘶t se x p 嘶m e l l t ,a 1 1 di ts u p p o n sb o md i 鲥a la 1 1 da i l a l o gc i r 叨i t sc x p e r i m e n tw i m r e a l t i m er e s p o n s ea n dg o o du s 既e x p c r i c l l c e a sm es i m u l a t i o ne i l g i n e ,s p i c ec ) p u s p r o v i d e s c u r a t es i m u l a t i o nr e s u l t sa n dt h u st h es ”t e m sc o n c 协e s si sg u a f 趾t e e d 1 1 1 i ss y s t e ms u p p o r t s 伊v 6n e t w o r k 丽mb a 出w a r d 唧a 曲i l i t y 丽mi p v 4 ,s ot h e d c m a l l do f d i s t a n c ee 小l c a t i o na p p l i c a t i o n so v e rl p v 6i sm e t b yu t i l i z i n ga p a c h eh r r ps e r v e ra i l dw e bb r o w s e ra st 1 1 eo o m m u n i c a t i o nl a y t h ec o m l u n i c a t i o ni ss i m p l m e da n dt l l ew h o l es y s t e ! mb e 咖e sm o r e c o m p a c t ,b c s i d e s i tc 锄a l s os e r v eo v e rf i r e w a l l s 1 1 h a n k st oa p r ,b e t t e rp o r t a b i l i t yi sa c h i e v e d c l i e n tu s e sf l a s ht e c h n o l o g yt op m v i d ei t su s e ri n t c r f a c e ,s oi tc a ns u p p o r t v 撕o u sp l a t f o 姗sa n di t s e a s yt ob ed 印1 0 y e d w i t ht h ee x c e l l e n t 掣a p h i c sa n d i n t e r a c t i o np 确n n a i l c eo f f l 鹊h ,t l l es y 蚍c i l lp r o v i d e sag o o di m m e r s i o nt ou s e r s t h i ss y s t e mc a nb eu s e df o rd i s t a n c ee d u c a t i o no nd e c 廿o n i cc i r c u i t se x p e r i m e n t , a sw l l i l ea sb eu s e da st h ep r e v i e wa n dr e v i e wt o o lf o r 咖d e i l t s ,s ot h ea p p l i c a t i o n p r o s p e c t sa r ew i d e k e y w o r d sr 锄o t ev i n u a le x p 嘶m e n t ,i p v 6 ,a p a c h e ,s p i c e 浙江大学硕士学位论文 图目录 图目录 图2 1a p a c h e 整体结构图 图2 2a p a c h c 多处理机制概要图 图2 3a p a c h e 请求处理机制与挂钩图 图2 4a p a c h e 挂钩控制流程概要图 图3 1 系统结构概要图 图3 2 系统功能模块图 图3 3 服务端进程关系图 图3 4 服务端功能模块图 图3 5 服务端数据流向图 图3 6 仿真交互关系图 图3 7 共享内存结构图 图4 1c r e a t ed v l a bs e r v e rc o 娟g 流程图 图4 2 仿真处理流程图 图4 3 登录会话图 图4 4 重复登录会话图 图4 5 模拟会话图 图4 6 登出会话图 图5 1 计数器逻辑图 图5 2 计数器连线图 图5 3 数字电路试验效果图 图5 - 4 单管放大电路逻辑图 图5 5 单管放大电路连线图 图5 6 模拟电路试验效果图l 图5 7 模拟电路试验效果图2 i i i 1 0 1 3 1 5 1 6 3 0 3 1 3 4 3 5 3 5 3 6 3 8 4 7 4 8 4 9 5 0 5 1 5 2 5 4 5 4 5 5 5 6 5 7 5 8 5 8 浙江大学硕士学位论文表目录 表目录 表2 1a p r 中支持的基本类型8 表2 2 不同系统上的默认m p m 模块9 表2 3i f s 文件结构2 7 表4 1e x d c r i m e t 节点说明4 1 表4 2 请求消息中e x p 耐m e n t 子节点与a c t i o n 的关系4 1 表4 3 应答消息中e x p e r i m e n t 子节点与a c t i o n 的关系4 2 表4 4t i n l e 节点取值一4 3 表5 1 测试环境清单5 3 表5 2 相关元件属性5 6 i v 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1 本文研究背景 远程教育是学生与教师、学生与教育组织之间主要采取多种媒体方式进行系 统教学和通信联系的教育形式,是将课程传送给校园外的一处或多处学生的教 育。现代远程教育是随着现代信息技术的发展而产生的一种新型教育方式。计算 机技术、多媒体技术、通信技术的发展,特别是因特网( i n t e m e l ) 的迅猛发展, 使远程教育的手段有了质的飞跃,成为高新技术条件下的远程教育。 现代远程教育的特点是: 学生与教师分离; 采用特定的传播系统和传播媒体进行教学; 信息的传播方式多种多样; 学习的场所和形式灵活多变 与面授教育相比,远距离教育的优势在于它可以突破时空的限制,提供更多 的学习机会,扩大教学规模,提高教学质量,降低教学的成本。 传统教学是以集中的校园和课掌为基础的教学模式,而远程教育则是采用与 之不同的全新的方式、使受教育者在与教师相分离的情况下接受教育的教学模式 和方法,是为了达到远距离施教的目的而采用的现代化多媒体远程通信的技术手 段。 远程教育由于信息传送方式和手段的不同,其发展经历了以下三个阶段。 第一阶段是以邮件传输和纸介质为主的函授教育阶段。在2 0 世纪早期和中 期,远程教育技术( 如打印机、收音机和电视) 的特征是单向传输。这一时期远 程教育技术主要用于从老师到学生的信息传递,这种传递模式没能起到学生之间 沟通的作用,仅实现了师生之间有限的交流。当时传输技术还受到时间的限制, 师生交流的主要手段是以纸为介质的邮件交流。 第二阶段是以广播电视、录音录像为主的广播电视教学阶段。这一阶段大大 改进了第一代技术对时间的限制,将录制好的课程内容的录像带发给学生,使他 们可以随时观看,但学生之问、师生之间的交流还是很少。 第三阶段使通过计算机、多媒体与远程通信技术相结合的网上远程教育阶 浙江大学硕七学位论文第l 章绪论 段2 0 世纪8 0 年代中期以后,计算机技术、多媒体技术、通信技术的发展,特 别是因特网的迅猛发展,使远程教育的手段有了质的飞跃,成为高新技术条件下 的远程教育。与过去的教育技术不同的是,教员可以传送大量更加复杂的信息给 学生,使学生之问、师生之间可以通过辅助教学、计算机模拟以及其他通过计算 机磁盘、光盘和互联网等途径的电子资源进一步表现出这一代远程教育的特征 学生之间、师生之间的交流得到了加强。进行交换的信息的数量和种类显著增加, 信息更新更快捷,从而减少了远程教育对时间和空问的依赖性,使实现真正意义 上的虚拟大学成为可能。 如何提供一个出色的虚拟系统实验环境在国内外一直都是非常重要的研究 课题。目i ; 国内外许多院校陆续展歼网络虚拟实验系统的研究和开发工作,特别 是在国内外的一些知名大学中已经建成了不少出色的虚拟实验系统。虚拟实验系 统的刀:发一般采用两种技术路线,远程控制实验和软件仿真虚拟实验【l 】: 远程控制实验的核心部件是可以接受数字控制的实验装置和同时连接实 验装置和网络的控制器。学生在进行实验时通过网络访问控制器,调节 实验装置的算法、参数等实验要素,并通过数据反馈、视频直播等方式 实时得到实验结果。此类远程实验适合真实性、精确性要求较高的远程 科学实验。如卡耐基梅隆大学的虚拟实验室 2 】,麻省理工学院的 w 曲【丑b m ,浙江大学的电子电工网络实验室嗍等。 软件仿真虚拟实验( 以下简称仿真虚拟实验) 系统主要由一组仿真引擎 模块组成,通过对实验数据的建模和数学求解对实验过程、结果进行计 算机仿真,并可以结合计算机网络技术、图形图像处理技术和虚拟现实 技术等以网络化、可视化的方式向远程学生提供直观的具有真实感的实 验结果,使学生获得真实的实验感受。 现在,随着v 6 和以其为基础的下一代互联网的逐步部署,给远程教育提供 了新的平刨5 】。我国在i p v 6 的部署上处于国际领先地位,c e r n e t 2 基本上连接 了各大知名高校,初步构成了教育网内部的m v 6 网络。巨大的地址空间、简便的 寻址和路由方法、自动化的配置方式以及内置的安全机制,都展现了新的优势。 因此,如何发挥i p v 6 平台的优势,提供更好地远程教育服务,成为了近年来的研 究热点,例如,利用坤v 6 提供的组播优势的远程视频授课系统等【6 】。同样,如何 将虚拟实验系统迁移到口v 6 平台上并同口v 4 网络无缝集成也具有很高的研究价 值 2 浙江大学硕士学位论文第1 章绪论 1 2 国内外研究现状 1 2 1 远程控制实验 美国麻省理工大学与微软研究院合作开发了基于w 曲的远程实验室的i 【a b 提供了用于进行微电子学和电路设计课程的实验教学的w 曲l a b 虚拟实验室,它 允许学生在自己的计算机上设计并修改电路模型,然后通过一个w 曲接口使用在 远程实验室里的昂贵的测试设备来获取测试数据,验证自己的设计。最近,还实 现了从手机远程控制实验的功能r 玎。加拿大的q l i l a 璐盯c o 咖l t i n g 公司研制的 w 曲l a b 系统在w 曲上通过远程控制的方式进行直升机模型的控制实验,并用三 维模型和视频将控制结果在客户端上进行演示。 l a b v i e w s 】是一种以图形化编程语言为基础设计虚拟仪器的软件开发环境, 是用于数据采集、仪器控制、数据分析和表达的软件系统。加拿大蒙特利尔的 l i c e f 研究中心的h h s a l i a h 等人设计的了远程交互式虚拟电子工程实验系统、 美国的n e s ea tc h a n a n o o g a 大学的j i i i ih 朋r y 设计的网上工程实验室等都采 用这种技术来开发远程控制实验室。大连理工大学的丁晓红【9 】等也使用l a b v i e w 开发了远程电子线路实验室系统。 日本的f u j i i n 确h i r o 和k o i k e n o b u l l i k o 【l o 】设计开发了一套基于互联网的远程 f p g a 设计实验系统。整个系统由客户端p c 及其上的i d e 、控制服务器、f p g a 开发板、逻辑分析仪及图形发生器组成。每一套实验服务器系统都由一台p c 、 一个f p g a 开发板以及配套的逻辑分析仪、图形发生器组成。每一套实验服务器 同时只能有一个远程客户使用。若要同时支持大量用户,需要多套设备。 美国f l 嘶d aa t l 甜t i cu n i v 吲t y 的a l ia b l l e lh 砌o s ,b a s s e ma l h a l a b i 等人【l l 】 设计开发了一个虚拟实验环境,该环境通过w 曲接口实现了网络控制电路实验 远程控制实验的优点是由于在实际的实验装置上进行实验,所以实验结果具 有相当的真实性。但是由于依赖实际的实验装置,所以这种方式的虚拟实验也存 在一些缺陷: 同时支持的学生少。由于实验最终是在实际的实验装置上进行的,所以 同时只能有一个学生独占实验资源,造成实验资源的利用率不高; 交互性差。有些远程控制实验采用分时调度的方法来解决学生共享的问 题,但这使得学生不能在一台实验装置上进行需要一定操作时间的延续 性实验,学生在实验中的交互性难以保证,这就会对学生的实验感受、实 验教学效果造成严重的影响; 浙江人学硕上学位论文第l 章绪论 教学适应性低由于受到实际实验装置的限制,所以在这种方式的虚拟 实验上难以灵活地开设出新的实验,也难以按照教师的实际教学要求对 实验内容做出调整,所以对教学内容变化的适应性不好; 成本高,维护工作流大。由于远程控制实验需要使用实际的实验装置, 而且在实验过程中实验装置是被一个学生独占的,因此当需要面向大量 学生开课的时候需要采购许多实验装置,造成成本高昂:由于学生的误 操作有可能会损坏昂贵的实验装置,因此实验室的维护工作量很大; 对网络的要求高。由于许多远程控制实验需要使用视频来传输实验结果, 因此需要大量的网络带宽和较好的网络质量保证。然而在目前的互联网 环境下,远程学生的视频传输的质量难以保证,因此难以在远程教学环 境中大规模使用。 因此,在学生人数众多、教学要求灵活的基础课程实验中,例如模拟电子技 术基础、数字电子技术基础实验,远程控制实验并不是理想的解决方案。 1 2 2 远程虚拟实验 目前国内外普遍研究的另一种类型的虚拟实验是软件仿真虚拟实验。这种类 型的远程实验系统所面临的最大的挑战是能否对物理世晃进行真实的计算机仿 真。随着计算机仿真技术的快速发展,软件仿真虚拟实验已经能够提供越来越真 实的实验过程和实验结果。 牛津大学的虚拟化学实验室采用视频和虚拟现实技术设计了一个用于化学 教学的三维仿真实验室,生动地向学生展示化学课程中的多种现象。美国l i i s 人学芝加哥分校的v 砌c l l e l 实验室研制的v i c h 盯系统【1 2 】将虚拟现实技术应用在 化学工程教育领域,设计了多个虚拟实验。美国1 e x 勰a & m 大学的h a q u e ,m e 使用w l 等技术开发了一个交互式虚拟土木工程实验室,在这个虚拟实验室中 可以进行虚拟士壤力学、虚拟结构设计等实验。美国c l a 成n 大学的r c d o r f 和j a s v o b o d a 用j a v aa p p l e t s 设计的基本电路教学课程e l c c 咖l l i ct c a c h j n g a s s i s t 觚f 【1 3 】提供了电路设计、交互演示和作业等功能。法国的j p g e r v a l 和yl e r u 设计实现了一个基于j 啪和洲l 技术的远程虚拟电子实验环鲥,在这个 邱境中,所有的电路元器件都采用三维模型,用户可以自由连线组合各种元器件, 并且提供了信号发生器和示波器用户观察电路。该系统的缺点是提供的元器件种 类较少,不能动态改变电路状态,而且在三维空间中处理电路的连接也给用户带 来了一些不便 4 浙江大学硕士学位论文第l 章绪论 国内许多大学也提出了许多软件仿真虚拟实验,并在实际教学中得以应用。 北京大学计算机系设计的基于w w w 的网上虚拟实验室3 w n a b 【”l 就是一种 支持大计算量和交互式的网上虚拟实验室的通用基本框架,并已经初步实现了 c a c h e 设计与流水线设计两个实验。北京邮电大学远程教育学院采用f i 鹪h 和 h l 技术开发出虚拟物理实验、虚拟电子电路实验等。北京师范大学现代教育 技术研究所研制的e v l 曲系统【l6 】采用q t v r 和v r m l 技术,构建了一个基于虚 拟空问的三维电子线路实验环境,为学生提供电子线路中常见仪器的操作方法。 此外,国内许多高校,如北京广播学院等使用e w b ( e l c c 呐i l i cw b r kb 锄c h 电子 工作台) 软件进行虚拟实验。 与传统实验和远程控制实验相比,仿真虚拟实验具有以下优势: 学生可以在计算机上进行各种实验操作,因此进行实验时可以不受时问 和空间的限制。这一点对于远程教育、网络教育来说尤其重要; 可以同时进行实验的学生数量不会受到实验设备装置数量的限制,因此 可以大大扩大教学范围; 过去由于安全或成本原因而不能进行的实验,可以在仿真虚拟实验中进 行,而且学生观察实验现象的角度可以超过现实的限制,从而可以大大 提高教学效果; 能够提供良好的交互性能,使学生能在实验过程中真正“动手”参与实 验过程,从而可以获得更真实的实验感受; 由于仿真虚拟实验只需要修改软件就可以随着课程教学任务的改变而提 供不同的实验内容,甚至可以由教师来直接开设新的实验,因此具有良 好的教学适应性; 由于仿真虚拟实验只需要一台服务器就可以支撑许多学生同时进行实 验,而不需要实际的实验装置,因此开设实验的成本低,便于维护,适 于大规模推广。 由于仿真虚拟实验存在上述优点,因此已经成为目前远程虚拟实验的一种重 要的实现手段。 1 3 论文主要工作 作者所在的实验室从2 0 0 4 年开始即进行基于b s 架构的远程虚拟电子试验 系统的开发在工作中,我们实现了基于讲v 4 的,通过f 1 鹪h x m l s o c k e t 和b s d c i 机制进行通信的远程虚拟电路实验系统v l “1 7 1s 】【嘲,并获得了成功应用 浙江大学硕上学位论文 第l 章绪论 这套系统的缺点是客户端同服务器的交互需要两种通信机制,用户管理等功 能通过h r r p 协议通信,而仿真服务通过传统的c k c t 通信,系统结构比较复杂。 另外,由于目前网络普遍采用防火墙进行端口过滤,因此采用c k c t 进行通信对 部署也不那么方便。而且,这套系统只能支持m v 4 网络,不能满足口v 6 网络对 远程教育应用的需求。 为此,本文在这套系统的基础上,采用a p a c h e 作为统一的服务器平台,整 合了所有的前后台通信,用a p a c h e 模块的机制实现了支持口v 6 的远程虚拟电子 实验系统。该系统采用b s 模式,实现了基本的数字电路和模拟电路实验教学功 能,并能够做到电路对用户操作的实时响应,具有较好的用户体验。由s p i c eo p 璐 仿真引擎提供的仿真结果较为精确,能够提供正确的实验结果。 由于系统采用a p a c h e 网络服务器和浏览器作为统一的通信平台,提高了系 统的集成度,简化了通信模式,并能够做到穿越防火墙提供服务此外,由于采 用了a p r 系统兼容层,还提高了系统的可移植性。 客户端采用f l a s h 技术提供用户接口,同时支持多种平台,并且无需安装, 只要客户机的浏览器中具有f l a s h 插件即可,具有良好的可部署性。同时,得益 于f l a s h 技术良好的图形表达能力和用户交互能力,系统提供了良好的沉浸性。 1 4 论文组织 本文共分为六章: 第一章主要讲述本文的研究背景和国内外的研究现状,并简述了本文的主要 工作。 第二章介绍了支持口v 6 的远程虚拟实验系统所使用的相关技术,如a p a c h e 的模块机制、挂钩机制、s p i c eo p 璐仿真引擎的二次开发、f l a s h 技术等。这一章 的内容是后面各章的基础。 第三章介绍了本文的远程虚拟实验系统的系统设计和系统架构。这一章中详 细介绍了系统的功能模块划分,前后台系统交互过程、后台各部分问的通信设计 等内容。 第四章讲解了远程虚拟实验系统的系统实现,包括详细的通讯协议设计以及 后台各个子系统之间的交互过程。 第五章给出了系统的测试方案、测试过程以及系统的运行效果。 第六章是整个论文的总结,在综述本文的工作后,进一步展望了未来的工作。 6 浙江大学硕上学位论文 第2 章相关技术 第2 章相关技术 2 1a p a c h e 模块开发 作为世界上应用最为广泛的w 西服务器,a p a c h e 【2 0 】以其优异的稳定性、可 扩展性而得到了广泛的应用。通过采用模块机制,a p a c h e 极大地扩展了应用领域, 同时可以满足各种各样的应用需求,从普通的网页服务到w 曲d a v l 2 垤0f t p ,甚 至还可以作为版本控制软件s u b v e r s i o n 【捌的服务器。正因为如此,我们的虚拟实 验系统也选择a p a c h e 作为基础平台,并将模拟服务器作为模块集成到a p a c h e 中, 以这个成熟的服务器框架为基础,充分利用a p a c h e 强大的w 西请求处理能力、 稳定性和扩展能力。 作为a p a c h e 的核心技术,高效的多处理机制和灵活的模块体系为a p a c h e 打 造了坚实的基础。本章中,我们先介绍a p a c h e 的整体结构,然后对开发a p a c h c 模块所需的技术进行讲解。 2 1 1a p a c h e2 o 整体架构 a p a c h e 是一个跨平台的网络服务器,广泛支持u n 、l i 眦x 、w i n d o w s 、0 s ,2 等各种平台。从a p a d 瞎2 o 开始,为了更好地支持非u n 类平台,a p a c 嵋将平 台相关代码和无关代码进行了划分,将原有的a p a c h e 软件包分为了a p a d l e 可移 植运行时a p r ( a p a c h ep 硎抽l er l m t i m e ) 和a p a c h e 服务器h r r p d 两部分。a p r 对i r r r p d 用到的系统功能如进程、线程、m c 、s o c k c t 等a p l 进行了封装,提高 了整个系统的可移植性;h 下r p d 服务器以a p r 为基础,实现了多进程多线程的 h r l l p 服务程序。 2 1 1 1 a p r 简介 a p r 的目的主要是为上层的应用程序提供一个可以跨越多种操作系统平台 使用的底层支持接口库。目前a p r 主要还是由a p a c h e 使用,不过由于a p r 的较 好的移植性,因此一些需要进行移植的c 程序也开始使用a p r ,如日益流行的开 源版本控制系统s u b v e 描i 。 a p r 的最早的一个目标就是为所有的平台提供一个公共的统一操作函数接 7 浙江大学硬上学位论文第2 章相关技术 口但是现实情况是a p r 不可能支持所有平台的所有特征,因此a p r 目前只能 为大多数平台提供所有的a p r 特性支持,包括w i l l 3 2 、o s 2 、b e o s 、d a 州i n 、 l i n 弧等等。 目前a p r 中支持的基本类型包括下面几种: 表2 - la l r 中支持的基本类型 融黼薹二麟糕墨 獬删嘲簿瓣缈獬“辩i 掣砰w 哪嘴舻键 a t o l c 8 r c l i “a p r a t o - i c坂子操作接u d s o s r c l i b a ”d s o动态加载共享库 f i l e i o s r c l i b a p r f i l e - i o文件i o 处理 删a p s r c l i b a p r m 印内存映射文件 l o c k s s r c l i h a p r l o c k s进程和线程互斥锁 m e m o r y s r c l i b a p r m e o r y内存池操作 n e t r ki os r c l i b a p r n e t 们r k i o网络1 0 处理 p 0 1 ls r c l i b a p r p o l l p o l l 语义实现 t a b l e s r c l i b a p r t a b l e s数组、堆栈、表格以及哈希表等常用数据结构 p r o c e s s s r c l i b a p r t h r e a d p r o c进程和线程操作 s r c l i b a p r u s e r用户和用户组操作 t i ” s r c l i b a p r t i m e时间操作 s t r l n g s r c l i b 印r s t r i n g s 字符串操作 p a s s - o r d s r c l i b a p r p a s s - d终端密码处理 m 1 s c s r c l i b a p r - i s c杂项功能 s r c l i b a p r s h m 共享内存操作 fr a n d o m s r c l i b a p r r a i l d 随机数生成 2 1 1 2 a p a c h e 多处理机制 作为一个网络服务程序的核心功能,如何高效地同时为大量的用户提供网路 服务是a p a c h c 需要解决的核心问题。同微软s 这种服务器不同的是,a p a c h e 需要支持大量的平台,既包括p o s 平台也要支持n t 系列平台。但是各个平台 上小同的进程线程实现机制为a p a c h e 带来了极大的挑战。a p a c h e 组织曾经试图 在a p r 中实现跨平台的多处理支持,但是经过尝试后发现,在维持一致的接口前 提i i 保证在各种平台上的高效率几乎是不可能的。为此,a p a c h e 采用了全新的机 制,即将不同平台上的多处理机制封装为多处理模块( m p m ,m l l l t i p r o 嘲s i l l g 浙江大学硕t 学位论文 第2 章相关技术 m o d l l l e ) ,在不同的平台上使用最合适的模块。这样一来,就实现了软件可管理 性和性能需求的平衡。 从用户层面来讲,m p m 更像其他a p a d 屺模块。其主要的不同在于:不论何 时,有且仅有一个m p m 必须被载入到服务器中。下表列出了不同操作系统下默 认的m p m 。如果没有在编译时指定其他值,会按照表2 2 中的值进行加载。 表2 2 不同系统上的默认h 但m 模块 m p m 中使用记分板和管道进行信息交换,而其中记分板则占据主要地位, 并且是理解a p a c h e 多处理机制的基础。可以参见下图了解a p a c h e 的整体结构, 。氟要江意的是,为了突出主题,我们没有表现出a p r 的存在。 9 浙江人学硕上学位论文 第2 章相关技术 图2 1 a p a c h e 整体结构图 在图2 1 中可以看出,记分板充当了主控进程和服务进程问的通信中枢。下 面我们将依次介绍记分板、通用多处理框架,然后举例讲解a p a c h e 在u n 上 的p r e f o d d n g m p m 实现。 l o 浙江大学硕士学位论文第2 章相关技术 记分板 记分板在功能上类似于共享内存,主要用于父子进程之间进行数据交换。任 何一方都可以将对方需要的信息写入到记分板上,同时任何一方也可以到记分板 上获取需要的数据。而在实现上,记分板也确实是一块共享内存块,同时可以被 父进程和子进程访问。尽管如此,记分扳还是更多地用于父进程对子进程进行控 制。在a p a c h c 中主控进程的一个重要的职责就是控制空闲子进程的数目:如果 空闲子进程过多,则父进程将终止一些子进程;如果空闲子进程太少,则父进程 将创建一些新的空闲子进程以备使用。因此,父进程必须随时能够知道予进程的 数目以便进行调整。子进程把自己的状态信息忙碌或者空闲写入到记分板中,这 样通过读取记分板,父进程就可以知道子进程的数目了。 记分板的数据结构定义如下: t y p c d e f s 虮l c t g l o b a l 翼:o + 9 1 0 b a l ; p i o c e 鹳- s | c o m + p a r e f i t ; w o r k e fs c o r e s e r v e 墙; o 】幽a r d ; 可以看出,a p a c h e 中的记分板可以记录三种类型的信息:全局信息( g l o b a l ) 、 进程信息( p 硼1 t ) 以及线程信息( s e r v e 撂) 。 全局信息 g l o b a ls c o m 是记分板中描述整个a p a c h e 服务器的全局信息的结构,全局的 共享信息包括下面的几个内容: s e r v 盯l i l n i t :进程个数的最大值。 t l l r c a dl i f n i t :线程个数的最大值。 s bt y p e :有两个可选值s bn o ts h a i 逭d 和s bs h a r e d ,分别表示该 记分板是否在进程问共享。 f i l i m j n g - g e r a t i o n :当前的代( g 髓啪t i ) 数,由主控进程写入,该值 主要用于控制平稳重启( g r a c e f h lr c s t a n ) 。a p a c h c 中允许在不终止a p h e 的情况下对a p a c h e 进行重新启动,这种启动称之为平稳重启平稳重启 的时候,主服务进程将重启,更新该变量,同时创建新的子进程。同一 个主控进程创建的所有子进程都属于同一代。每一个进程在执行完任务 之后都会检查它与当前的主控进程是否属于同一代:如果属于,则继续 等待处理下一个任务;否则其将退出。a p a c h e 在进行平稳重启的时候不 强行将其终止正在服务的子进程,仅仅重新启动主控进程。当新的主控 浙江大学硕上学位论文第2 章相关技术 进程启动之后,这些残余的子进程显然已经跟它不属于同一代,因此它 们在执行完任务之后立即退出。 r e s 切r t6 m e :则记录了主控进程重新启动的时间 进程信息 进程间通信使用p r o c 鼯ss o o r e 进行,其定义如下: t y p e d e f s 由m dp r o c 鼯s _ s c o mp r o c e 鹋s 他; s m l c tp r o o e 鹳s c o 他 p i d jp i d ; a pg 啪啪t i o l l jg c n 酬;严g 铋枷“t h i si i l i l d + , a ps c o 他b o a r d js b 哦; i m q u i 鹤c i n g ) ; 通常情况下,父进程往该数据结构中写入数据,而子进程则从其中读取数据。 p i d :主控进程的进程号。 g c n e r a t i :当前主控进程以及其产生的所有子进程的代数。 s b - t y p e :有两个可选值s b o t _ s h a r e d 和s b _ s h a r e d ,分别表示该 记分板是否在进程问共享。 q u i 髂c 如g :停顿标志。 线程信息 与伽) c e s ss c 0 用于主控进程和子进程通信不同,w o f l 【盯s c o r e 则用于记录 线程的运行信息,其内容包括: t l l r e a d 啪:a p a c h e 识别该线程的唯一识别号。该值只对a p a c h e 有意义。 通常,n l r e a dn 哪= 线程所在的进程的索引每个进程允许产生的线程极 限+ 线程在进程内的索引。 甜:该线程的线程号。该值由操作系统或者线程库分配。 s t a t 懈:当前线程的状态,它的状态种类与进程的状态种类相同,用 s e r v e rx x x 常量进行识别。 其他:其他字段主要用于统计线程的服务信息,它们会被 m o ds 蛐0 dg t a c i l s 用到。如s t a nt i l i l e 记录线程的启动时间,s c o p 衄l e 记录线程的停止时问,l a s tl l s e d 是线程最后一次使用的时间而 a c c 鹤sc 0 蛐t 是线程的访问计数。d i e n t 是请求客户端的主机名称或者是 m 地址。r 嘲u e g t 则是客户端发送的请求行信息,而v h o s t 则是当前请求 所请求的虚拟主机名称。 1 2 浙江大学顾上学位论文 第2 章相关技术 服务器调度框架 a j a d h c 采用主控进程服务进程的模式,主服务器负责预创建服务进程( 线 程) ,建立一个进程线程池,并动态地维护服务进程的数目。同时,主服务进程 还要负责响应管理者发出的停止、重启、平稳重启等信号,根据信号执行相应的 动作。整个服务器的控制流程如图所示: 图2 _ 2 a p a c h c 多处理机制概要图 从图2 2 中可以看出,在完成初始化和进捌线程池的创建后,主服务进程就 进入了一个循环。在这个主服务循环中,主控进程检测子进程的状态,如果有子 进程意外中止或者已经到达了配置文件中规定的服务次数上限,就调整活跃的子 进程的数目,这涉及到创建杀死子进程。之所以要杀死到达最大服务次数上限的 子进程,是为了避免程序编写不当而造成的资源泄露。由于进程是操作系统管理 资源的基本单位,所以一般来说这种机制可以避免潜在的软件设计错误带来的问 题。这对于基于模块体系的a p a c h e 来说是至关重要的,因为第三方模块很可能 浙江大学硕上学位论文 第2 章相关技术 会引入错误。 再看子进程中的两重循环,外循环的每个迭代都用于处理h c t p 请求,在一次 请求处理完成之后,就会递增该服务进程相应的计数器,该计数器被主控进程用 来控制是否需要杀死服务进程。在每次请求处理过程中,还有一个循环用来处理 i t r p l 1 所要求的持续连接特性。 p 怕f o 一j n gm p m u n 平台上可以使用的第一个m p m 就是p 他f o r k i n gm p m ,也是默认的 m p m 。该模型实现的功能同a p a d l e l 3 的调度模型是一致的 在该m p m 中,存在一个主控进程和多个子进程。每个子进程都会为所进行 的请求侦听一个套接字当接受到请求之后,子进程就会接受它并且提供响应。 父进程会监控所有的子进程以确保总是可以使用最少数量的进程来处理请求,并 且确保等候请求到达的闲置进程不能过少。如果没有足够的空闲进程来处理潜在 的请求高峰,那么父进程就会启动新的子进程;反之,如果存在过多的进程,那 么父进程会每次终止一个空闲进程,直到服务器回到最大空闲子进程数量之下 通过保持一定数量的空闲子进程来接受所引入的请求,服务器就可以避免在接受 到请求时再去启动新进程的开销。其实p f o r k i n g 模型就是一种进程池模型。该 模型的缺点是性能不如是用线程池的模型,但是优点也很明显,如果一个服务进 程出现错误,那么只会有一个请求被中止,不像线程池模型那样有可能需要中止 一批服务请求。 主控进程和子进程之问通过记分板进行通信。对于每一个产生的予进程,它 的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年神经内科临床实践模拟考试答案及解析
- 关于烟草新质生产力的建议
- 工程力学 课件 力的性质
- 2025年产科妇科妇科护理常见问题考察试卷答案及解析
- 2025年病理科白细胞计数的实验操作模拟考试答案及解析
- 2025年麻醉药理学专业知识检测答案及解析
- 2025年护理学基本技能实操考核答案及解析
- 2025年消化内科十二指肠溃疡并发症预防评估试卷答案及解析
- 2025年病毒学HIV病毒的抗病毒治疗模拟考试卷答案及解析
- 2025年麻醉科无痛分娩操作技能考核模拟试卷答案及解析
- 2025年保安证考试沟通能力试题及答案
- 2025年禁毒社工考试试题及答案
- 全套课件-工程建设监理概论
- 餐饮服务与数字化运营 习题及答案 项目三
- 人教板七年级至九年级英语单词表
- 安全主任竞聘演讲稿
- 污水处理中的自动化控制技术
- 输电线路导地线悬垂双串使用情况探讨
- 维护保养及售后服务说明
- 《女鞋FAB销售》课件
- AI技术赋能体育课堂教学评价
评论
0/150
提交评论