已阅读5页,还剩51页未读, 继续免费阅读
(计算机应用技术专业论文)vlbc中组件调度和可扩展性研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机虚拟技术和网络教学的不断发展,计算机虚拟实验室 逐渐成为的研究热点之一。近年来,国内外各高校和研究机构都致力 于研制和开发自己的虚拟实验室系统,并已取得一系列研究成果。本 文设计和实现的基于组件的虚拟实验室( v l b c ) 采用j a v aa p p l e t 为 客户端,集成j a v ab e a n 作为实验组件,m a t l a b 作为计算后台,具有 良好的可扩展性、可移植性和可重用性。 论文首先介绍当前国内外虚拟实验室的研究趋势和研究成果。说 明了v l b c 目前的研究现状,阐述了其运行机制和各种关键技术的选 取和其在系统中的运用。v l b c 采用有向无环图( d a g ) 的拓扑排序 机制管理组件。 针对v l b c 平台的运行效率问题,本文在分析各组件之间的数据 依赖和运行次序关系的基础上,提出了一种新的基于j a v a 多线程机 制和“唤醒”机制的d a g 并行算法。与拓扑排序算法相比,降低了 算法的时间复杂度。通过实验,验证了算法的正确性和快速性。将算 法应用到密码学虚拟实验室后,系统运行结果表明:在新算法下,较 大地缩短了运行时间,提高了资源使用效率,提高了用户满意度,能 更好地完善v l b c 。 为提高系统的可扩充性,设计并实现了用户自定义组件模块,该 模块可以让用户通过编程的方式自由搭建新的实验组件,并实时添加 到原有系统中与系统无缝整合,使得系统拥有极大的扩充性。预留了 自定义组件的网络接口,使得系统网络化时,可以接受网上用户提交 的自定义组件。 本文最后对基于组件的虚拟实验室平台目前工作情况和研究成 果进行总结,阐述了将来如何对系统进行扩充和完善。 关键词基于组件的虚拟实验室,d a g 并行算法,j a v a 多线程,自定 义组件,网络接口 a bs t r a c t w i t ht h ef a s td e v e l o p m e n t o fv i r t u a l t e c h n o l o g y a n dr e m o t e e d u c a t i o n ,t h er e s e a r c ho fc o m p u t e rv i r t u a ll a b o r a t o r yg r a d u a l l yb e c o m e s o n eo ft h eh o t s p o t s i nr e c e n ty e a r s ,c o l l e g e sa n dr e s e a r c hi n s t i t u t i o n si n b o t hd o m e s t i ca n df o r e i g na r ec o m m i t t e dt od e v e l o pt h e i ro w ns y s t e m s , h a sm a d eas e r i e so fa c h i e v e m e n t v i r t u a ll a b o r a t o r yb a s eo nc o m p o n e n t ( v l b c ) u s i n gj a v aa p p l e tf o rc l i e n t s i d e ,j a v ab e a na sac o m p o n e n t , m a t l a ba st h ec a l c u l a t i n gb a c k g r o u n d ,h a sag o o ds c a l a b i l i t y , p o r t a b i l i t y a n dr e u s a b i l i t y t h ep a p e ri n t r o d u c e st h ec u r r e n tr e s e a r c ht r e n d sa n dt h ec u r r e n t s t u d yo nv l b c ,e x p l a i n si t so p e r a t i o n a lm e c h a n i s ma n dt h ea p p l i c a t i o n o fk e yt e c h n o l o g i e si nt h es y s t e m v l b cu s et o p o l o g i c a ls o r t i n g i n d i r e c t e da c y c li cg r a p h ( d a g ) t om a n a g et h eo p e r a t i o no fs y s t e m f o rt h es y s t e m sl o wo p e r a t i n ge f f i c i e n c y ,t h i sa r t i c l ep r o p o s e san e w d a gp a r a ll e la r i t h m e t i cb a s e do nt h ej a v a t h r e a da n d w a k e ” m e c h a n i s m c o m p a r e d t o t o p o l o g i c a ls o r t i n g ,n e w a r i t h m e t i c s t i m e c o m p l e x i t y w a s h i g h l yr e d u c e d e x p e r i m e n t s v e r i f i e dt h e c o r r e c t n e s so ft h ea l g o r i t h m t h ea l g o r i t h ma p p l i e dt ov i r t u a ll a b o r a t o r y o fc r y p t o g r a p h y , t h es y s t e m sr u n n i n gr e s u l t ss h o wt h a t :v l b cw o r k s m u c hf a s t e ra n dt h eu s a g er a t eo fr e s o u r c ei sh e i g h t e n e d ,a n dm a k e su s e r m o r es a t i s f i e d i no r d e rt oi m p r o v es y s t e m ss c a l a b i l i t y , t h i sp a p e rd e s i g n e da n d i m p l e m e n t e dac u s t o mc o m p o n e n tm o d u l e s ,w h i c ha l l o w su s e r st of r e e l y b u i l dc o m p o n e n t s ,a n dr e a l - t i m es e a m l e s s l yi n t e g r a t ew i t ht h es y s t e m ; m a k i n gt h es y s t e mh a sag r e a td e a lo fs c a l a b i l i t y r e s e r v e dan e t w o r k i n t e r f a c e ,w h e ns y s t e mc o n n e c tt on e t w o r k ,i tc a nr e c i v er e q u e s tc o m e f r o mi n t e r n e t f i n a l l y , t h ep a p e r s u m su po u rw o r kd u r i n gt h ed e s i g na n d d e v e l o p m e n t a n dd i s c u s s e sh o w t oi m p r o v et h es y s t e mi nt h ef u t u r e k e yw o r d sv l b c ,d a gp a r a l l e la l g o r i t h m s ,j a v at h r e a d ,c u s t o m c o m p o n e n t s ,n e t w o r k i n t e r f a c e 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均已在论文中作了明确的说明。 作者签名:烂日期:盟年 月丝日 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文并根据国家或湖南省有关部门规定送交学位论文, 允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 作者签名:避导师签名垄逝i 日期:缸年上月生日 硕七学位论文 第一章绪论 第一章绪论 科学实验是验证科学理论的唯一标准。实验对人类的学习、发明和创造有重 要意义,与人类科技的发展息息相关。随着科技的不断发展,实验技术逐步由实 物实验发展为虚拟实验。与实物实验相比,虚拟实验具有成本低、可重复性强、 精确度高、不受地域,外界条件影响等优点。因此,越来越多的国内外科研机构 和学术单位投入了大量人力物力研究虚拟实验技术,并取得一系列进展i l 】。同时 由于网络的发展,网络虚拟实验也成为2 1 世纪新型教育实验方式,在共享教学资 源、分享实验成果、推动理论发展等方面具有重要意义。运行速度是一个计算系 统成功与否的重要指标,并行计算和多线程技术的出现,为提高系统运行效率奠 定了重要基础。系统的可扩充性制约着系统的生命周期,如何提高系统的可扩展 性具有重要研究意义。 1 1 课题的研究背景 2 1 世纪将是人类全面进入信息化社会的世纪,科技的进展特别是互联网和 大量网络应用技术的出现,使得网络与现代教育发展同益紧密地相连,网络逐步 成为实现学习和教育供给的基础性技术平台之一。虚拟教学【2 】赋予了教育学概念 的新内涵,必将随着现代虚拟技术的发展【3 】,给教育思想、教育内容、教育模式 和教育结构带来重大的变革。当前,在世界范围内,网络时代信息化社会的到来 正一步步推动高校教育的改革,传统的课堂教学方式受到了挑战。远程教学作为 一种新型的教育模式已成为近年来各国教育界的重要研究课题。 网络虚拟实验室【4 j ,1 5 】作为远程教育和虚拟教学结合的重要产物应运而生,为 人们展示出信息社会科研环境和方式的发展趋势。虚拟实验室( v i r t u a l l a b o r a t o r y ) ,亦称为“合作实验室( c o l l a b o r a t o r y ) 的概念【6 】最早在1 9 8 9 年由美国 u n i v e r s i t yo f v i r g i n i a 的w i l l i a m w u l f 教授提出,用来描述一个计算机网络化的虚 拟实验室环境。在1 9 9 5 年,美国爱荷华州立大学举行的虚拟实验室专家会议采 用的正式定义是:“虚拟实验室是利用分布式信息通信技术,为研究和创新活动 提供远程协作和实验的一个电子平台 【7 1 。这次会议后,各大著名学术性研究机 构和大学纷纷投入巨大的人力物力进行研究,并取得一系列成果1 8 厶【9 j 。 基于网络的虚拟实验室以计算机网络为核心,将各类虚拟实验综合在一起, 通过网络连接来实现全网络的数据采集、资源共享和远程操作,并通过统一的身 份验证机制进行统一管理【l o 】。对比传统的实验技术,具有如下优点: 1 资源利用率高。因特网提供了海量的资源,用户通过网络共享自己的实 l 硕士学位论文第一章绪论 验技术和理论成果,大大加速了学术沟通和交流,促进科学发展。 2 可重用性高。在每个学科和领域,只要有新成果或者新突破就能立刻发 布在互联网上。通过网络共享已有的劳动成果,节省了人力物力进行重复劳动, 降低了科研成本,可以使人们更专注于更新更前沿的实验并取得突破。 3 方便性。虚拟实验室突破了传统教学受到时间、地点、空间等各方面限 制,用户只要登录互联网就能进行需要的实验。同时,由于虚拟实验室的统一管 理和标准化,更加方便了用户查询所需要的实验。 因此,基于网络的各类虚拟实验室与虚拟技术、远程教学等方面结合起来, 成为近年来国内外的研究热点之一。 1 2 课题的研究现状 威廉沃尔夫( w i l l i a m w o l f ) 教授于1 9 8 9 年首先提出虚拟系统实验室的概念 后】,由g e n t r a lf l o r i d a 大学教育训练研究院建立,其目标旨在提高计算机图形 的艺术表现力以及改进仿真过程中的人机接口设计。 由于虚拟实验室的种种优点和诱人的前景,随后的十余年中,各大科技强国 纷纷开发研制了自己的虚拟实验室系统。研发能力和财力强大的美国在虚拟实验 室的开发处于世界领先地位。摩约翰霍普金斯大学的卡尔威教授( p r o f e s s o r m i c h a e lk a r w e i t ) 在电脑网络上建立了一个“虚拟实验室,在电脑上模拟各种化 工系列的实验,让学生在虚拟环境中尝试解决实际工程上遇到的各种问题【l 列; 佛罗旱达大学建立的v s l ( v i r t u a ls y s t e m sl a b o r a t o r y ) 虚拟实验系统,能够进行网 络和并行计算,实时物理仿真等与虚拟实验相关的支撑技术的研究;密歇根大学 化工系创建的v r i c h e l ( v i r t u a lr e a l i t yi nc h e m i c a le n g i n e e r i n gl a b o r a t o r y ) 实验 室能用来探索和开发虚拟现实技术在化工领域的应用;美国俄勒冈大学的虚拟物 理实验室可以进行天体物理、能量与环境、力学、热学等方面的实验:美国亚利 桑那州大学开发的j d s p 就是一种面向对象的,利用j a v a 语言和数字信号处理技 术相结合开发的仿真系统,学生和远程学习者可以通过w e b 浏览器远程使用该系 统,在线进行数字信号处理的仿真实验【1 3 】 1 1 4 】1 1 5 1 。德国r u h r 大学网络虚拟实验室 【1 6 】是一个有关控制工程的学习系统,它通过直观的三维实验场景视觉效果,依 赖各虚拟实验设备的仿真特性,实现对虚拟实验的交互式操作。除此之外,欧洲 的西班牙【1 7 】、意大利1 1 8 】等国家的虚拟实验室系统也纷纷面世。 在国内,虚拟实验室的研究和开发尚处于起步阶段,但是对其建设也得到了 足够的重视。目前部分高校已经建立或j 下在研发各具特色的虚拟实验室。例如: 清华大学与美国国家仪器公司州i ) 在精密仪器和机械系新建虚拟仪器联合教学 实验室,并开设了l a b v i e w 和虚拟仪器技术的相关课程,虚拟仪器技术已经广 2 硕士学位论文 第章绪论 泛地应用于清华大学各工程院系的项目中,如远程机器加工监测、桥梁振动测试、 汽车引擎测试等。北京大学乔学斌博士在2 0 0 8 年1 1 月为进一步推动8 6 3 项目“高 性能计算化学应用系统的建设,应“计算化学虚拟实验室”的邀请来网络中心 作了题为h i g h l ys c a l a b l ea l g o r i t h m sf o rm o l e c u l a rd y n a m i c ss i m u l a t i o n 的学术 报告。武汉大学研发的三维城市模型自适应可视化1 1 9 的技术内涵,提出了基于 对象组法线的遮挡剔除算法以加速复杂建筑场景的绘制速度,并将三维城市模型 实时可视化过程中的数据装载和绘制等各个环节作为一个整体,综合考虑可见性 识别、数据动态调度、渐进绘制、硬件性能等因素,基于多元统计理论,对三维 城市模型的调度及绘制时间做出准确估计;并结合视觉感知理论和最优选择理 论,选择出在限定时间内可达到最佳图像效果的模型集合并进行绘制。复旦大学 于2 0 0 4 年1 1 月成立了开放系统实验室( o p e ns y s t e ml a b ,简称o s l ) ,并构建了国 内第一个可远程访问的在线虚拟l i n u x 实验室;北京邮电大学开发了一个基于网 络交互式的m a t l a b 虚拟实验仿真平台系统,并初步建立了一个通信网络虚拟实验 室;中国科学院上海有机化学研究所计算机化学和化学信息学研究室先导化合物 筛选系统( l e a d i n gc o m p o u n d ss c r e e n i n gs y s t e m ) ,该系统对输入的数据文件中 化合物及其相关信息可进行实时分析,是个既可作为辅助药物先导筛选系统, 也可作为大批量化合物相关性质分析的系统。 从技术角度来看,虚拟实验室的系统设计方案分为2 大类:第一类是以硬件 组建主要系统并搭配软件辅助。这类虚拟实验室的代表有:澳大利亚s w i n b u m e 大学的i s e c u r e s 实验室就已经通过基于v h d l 标准硬件描述语言实现了基于 f g p a 平台的密码分析技术。f g p a 为a e s 密码提供了一个方便的可改编程的平 台,学生可以用v h d l 语言来实现a e s 密码算法,并把其作为f g p a 内的硬件, 因此f g p a 为密码学系统提供了一个较好的软硬件相结合的方式。第二类是以纯 软件的方式开发实现【2 们,通常采用流行的w w w 技术,包括h t m l 、j a v aa p p l e t 、 j a v as e r v l e t ,j 2 e e ,c o m 等技术。由于使用纯软件的方法可以实现“以软代硬”, 既节约经费,亦可满足内容的广泛性,所以更加主流的虚拟实验室构建方案都是 以纯软件为主。 中南大学设计的基于组件的虚拟实验室【2 i 】系列,采用组件技术作为系统实 现的关键,已经成功的开发了密码学虚拟实验室【2 2 、数字图象处理实验室【2 3 1 、 数字信号处理实验室【2 4 1 、数字通信原理实验室【2 5 】、计算机网络实验室【2 6 】、入侵 检测系统实验室【2 7 】,【2 8 】。 组件【2 9 】是一种可复用指的一段软件或代码。基于组件的设计是在面向对象 的设计上发展起来的种软件设计方法,该方法采用层次化、模块化、标准化的 思想来分析和设计系统,提高了系统的重用性,减少了应用开发的工作量,便于 硕士学位论文 第一章绪论 系统的升级和扩充。 组件技术独立于语言,面向应用程序,只规定组件的外在的接口和参数,而 不关心其内部实现方法;开发者可以通过j a v a 这类面向对象的设计语言实现【3 0 】, 也可以通过c 这类非面向对象的设计语言实现。只要遵循组件技术的规范,各个 软件开发商就可以用自己方便的语言去实现可被复用的组件。 1 3 课题的研究目标 1 对已有的平台运行机制进行优化。原有系统采用单线程运行,计算速度 较慢,而且不能充分利用资源。为了在网络中能够同时处理大批量的用户请求, 必须对原有运行机制进行彻底改造,加入并行计算机制,这样才能满足平台对于 计算时间上的需求。 2 提出一种适用于虚拟实验平台的的d a g 并行算法,通过理论分析说明算 法的可行性,通过实验验证算法的f 确性和快速性。以密码学虚拟实验室为平台, 利用该算法对系统进行重构,证明在新算法下系统在保持j 下确性、稳定性的基础 上,提升运行效率。 3 原有系统对于自定义组件的支持不够。新增的组件不能无缝的与以丌发 的系统整合到一起,为此设计一套新的自定组件上传、注册功能,以实现自定义 组件能够与原系统完美整合,做到“即插即用”。同时设计网络接口,以便在下一 步工作时能方便用户从网络上传组件到本地系统中。 1 4 论文的组织结构 论文全文共分五章: 第一章绪论。这一章主要论述了基于组件的虚拟实验室的研究背景和在国内 外各高校的现状和成果。介绍了基于组件技术的特点和其在虚拟实验室中的应 用。最后,提出基于组件的虚拟实验室研究的目标。 第二章虚拟实验室的设计与实现。这一章介绍了基于组件的虚拟实验室的整 体架构的设计方案,阐述了系统实现的各种关键技术以及这些技术在系统中的应 用。最后以密码学虚拟实验室为例,说明在虚拟实验平台下,一次虚拟实验的运 行流程。 第三章一种新的应用于基于组件的虚拟实验室的d a g 并行算法。在这一章 中通过对原有的系统运行机制进行分析,发现系统运行速度上存在瓶颈。对此提 出一种新的d a g 并行算法,并通过理论分析和实验证明了新算法的实际可行性。 通过系统重构,将新的d a g 并行算法植入系统取代原算法后,极大提升了系统 4 硕十学位论文 第章绪论 运行效率。 第四章用户自定义组件模块的设计与实现。这一章从系统可扩展性的需求入 手,解释了设计和实现一个用户自定义组件模块的重要性。通过介绍该组件的整 体结构和关键细节,阐明了该模块是如何设计和实现的。为了方便后续工作,留 出网络接口以便将来实现用户从网络注册自定义组件。 第五章结束语。对所做的研究和开发工作进行了总结,并阐述了将来扩展与 完善基于组件的虚拟实验平台需要考虑的一些关键技术和进一步的研究工作。 5 硕十学位论文第二章密码学虚拟实验室的设计与实现 第二章基于组件的虚拟实验室的设计与实现 本章首先阐明了系统的设计思想,并通过详细介绍基于组件的虚拟实验室 ( v i r t u a ll a b o r a t o r yb a s eo nc o m p o n e n t ,v l b c ) 的整体设计框架。通过 阐述关键实现技术来说明整个系统的实现方案对比已有的其他系统所具有的无 可比拟的优势和特点。通过具体的实例,分析本系统如何根据已有的组件搭建具 体实验,并通过平台计算获取实验结果。 2 1 基于组件的虚拟实验室的整体框架 根据对基于组件的虚拟实验室平台的需求,并综合考虑软件性能、人机界面、 软件可重用性、软件可扩充性等方面的要求,设计并实现了基于组件开发的虚拟 实验平台。具体结构图如图2 1 所示。 图2 1 系统体系结构图 系统主要由如下几个主要组成部分: 6 硕士学位论文第二章密码学虚拟实验室的没计与实现 1 身份验证和管理系统。该模块是所有系统的入口,用户需要通过登录才 能访问特定的虚拟实验室。系统为用户维护了身份信息、权限信息等,提高了系 统的安全性和易管理性。 2 客户端。客户端采m j a v a a p p l e t 实现,可以运行在任何装有j a v a 虚拟机的 系统上。j a v a a p p l e t 通过c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ,公 共对象请求代理体系) 与c + + 语言编写的c o r b a 服务器对象、c o m 及o l e a u t o m a t i o n 通信。c o r b a 是由o m g 组织定义的一种用于异种对象通讯和分布式 处理的工业标准。i 它为可移植的,面向对象的分布式计算应用程序提供了不依赖 于平台的编程接口和模型,具有不依赖于编程语言,计算平台,网络协议的特点, 使其非常适合于现有的分布式系统新的应用程序开发和系统集成。用户通过身份 验证后进入客户端展示界面,即可以进行符合其操作权限的实验或其他操作。客 户端接收到用户请求后,向服务器端提交这个请求,并接收服务器端的回复,最 后展示给用户。 3 服务器端。服务器端用j a v a 语言丌发,主要包含了基于j a v ab e a n 的各 种实验组件。当服务器接收到客户端发来的请求后,解析这个请求并调用相应的 实验模块组件。组件根据相应的参数进行运算,并将计算的结果发往客户端。同 时,在系统运行一个实验时,服务器端负责与自定义组件模块、x m l 库【3 、实 验场景库、实验组件库、和经典实验库进行数据交换,以完成计算过程。虚拟实 验室采用m a t l a b 作为服务端计算引擎1 3 2 】。m a t l a b 是目前最通用的计算处理程序 之一,提供了丰富的数字图像、数字信号处理、信号仿真、人工智能、模式识别 等许多领域的算法处理包,并且提供功能强大,简单易用的脚本语言和c c + + 等语言的编程接口。 4 子定义组件模块。该模块主要用于满足本系统的可扩展性需求。经典算 法库中不可能包含所有的实验过程;随着时间的发展,也会出现更多新的理论, 此时必然需要往系统中添加新的实验。此时用户可以通过该组件将新编写的组件 无缝的添加到系统中来,搭建成一组新的实验。同时预留网络接口,使得本模块 支持网络传输。 5 。库文件。库文件包含了系统的基本配置信息和已开发的实验组件描述资 料。系统通过查询这些信息才能有效的完成自省功能以便完成计算和实验过程。 在自定义组件注册到实验室时,需要服务器端对这些库进行验证以完成最后的注 册工作。 硕十学位论文第二章密码学虚拟实验室的设计与实现 2 2 基于组件的虚拟实验平台的关键技术 2 2 1j a v ab e a n 技术 s u n 公司的定义,j a v a b e a n l 3 3 】是一个可重复使用的软件组件。实际上j a v a b e a n 是一种j a v a 类,通过封装属性和方法成为具有某种功能或者处理某个业务的对 象,简称b e a n 。由于j a v a b e a n 是基于j a v a 语言的,因此j a v a b e a n 不依赖平台, 具有以下特点: 1 可以实现代码的重复利用。 2 易编写、易维护、易使用。 3 可以在任何安装了j a v a 运行环境的平台上的使用,而不需要重新编译。 编写j a v a b e a n 就是编写一个j a v a 的类,所以会写类就能编写一个b e a n ,这 个类创建的一个对象称做一个b e a n 。为了能让使用这个b e a n 的应用程序构建工 具( 比如j s p 引擎) 知道这个b e a n 的属性和方法,只需在类的方法命名上遵守 以下规则: 1 如果类的成员变量的名字是x x x ,那么为了更改或获取成员变量的值, 即更改或获取属性,在类中可以使用两个方法: g e t x x x o ,用来获取属性x x x 。 s e t x x x ( ) ,用来修改属性x x x 。 2 对于b o o l e a n 类型的成员变量,即布尔逻辑类型的属性,允许使用”i s i 代 替上面的”g e t ”和”s e t ”。 3 类中方法的访问属性都必须是p u b l i c 的。 4 类中如果有构造方法,那么这个构造方法也是p u b l i c 的并且是无参数的。 为写成j a v a b e a n ,类必须是具体的和公共的,并且具有无参数的构造器。通 过提供符合一致性设计模式的公共方法将内部域暴露称为属性,其他j a v a 类可 以通过自省机制发现和操作这些j a v a b e a n 属性。用户可以使用j a v a b e a n 将功能、 处理、值、数据库访问和其他任何可以用j a v a 代码创造的对象进行打包,并且 其他的开发者可以通过内部的j s p 页面、s e r v l e t 、其他j a v a b e a n 、a p p l e t 程序或 者应用来使用这些对象。可以认为j a v a b e a n 提供了一种随时随地的复制和粘贴 的功能,而不用关心任何改变。 从用户的观点来看,一个组件可以是一个与用户交互的按钮或是一个当按下 按钮它便开始的小计算程序。从开发者的观点来看,那个按钮组件和计算器组件 是分别被创建的,并且他们可以一起使用或是在不同的应用程序或情况下和不同 的组件产生不同的组合来使用。 j a v a b e a n 的跨平台性、组件性、自省功能和可重用性等特点非常符合基于组 硕士学位论文第二章密码学虚拟实验室的设计与实现 件的虚拟实验室设计思想,因此成为本系统设计和实现的关键技术之一。 2 2 2 自省机制 自省机制是指:一个j a v a 类自己能分析自己的一种方法,常常运用于 j a v a b e a n 的相关设计中。自省是j a v a 程序开发语言的特征之一,它允许运行中 的j a v a 程序对自身进行检查,并能直接操作程序的内部属性,详细透视任何j a v a 程序的内部组件( 类本身) ,并能在运行时与其交互作用。通过r e f l e c t i o n 这个a p i , 可以实现如下功能: 1 确定一个对象的类。 2 取出类的修改函数,数据成员,方法,构造器和超类。 3 找出某个接口里定义的常量和方法说明。 4 创建一个类实例,这个实例在运行时刻才有名字( 运行时间才生成的对 象) 。 5 取得和设定对象数据成员的值,如果数据成员名是运行时刻确定的也能 做倒。 6 在运行时刻调用动念对象的方法。 在虚拟实验室中,一个实验组件就是一个设计为j a v a b e a n 的j a v a 类。当用 户点击客户端上某一个组件时,系统需要知道用户选择的是哪一个组件,还需要 知道这个组件的名字、i d 号、参数个数、数据格式等一系列的信息。这些信息 就是j a v a b e a n 中的值,通过g e t s e t 方法对获取和设值。组件的参数作为自身 的原始属性,它的初始化和重新设置,不仅仅可以反映算法输入组件的初始状态, 也直接影响到系统实验的整体性能和显示结果。 在本系统中实现自省,除开使用r e f l e c t i o n 等j a v a 相关的a p i ,还使用到了 x m l 技术。为了设计上的方便,x m l 文件中包含了一些常用或重复的类的描述 信息。系统通过查询x m l 文档也可以获得关于组件的一些描述。例如:英文统 计组件的x m l 文档代码如下: c s u :c sa n a l y s e r 英文统计 英文统计 【求英文统计】:求出每个字母在英文经典样本中山现的频率,输入为任意字符 串i n p u t 。 a n a l y s e r a n a l y s e r ( s h o w ) 求英文统计 9 硕十学位论文 第二章密码学虚拟实验室的设计与实现 图2 2 描述了系统自省的效果。当用户点选某个组件时,系统会将该组件的 信息在右侧显示出来。 1 曛性量性喳每1 追壁名 ”1 0 kf r l , l t i ; 皇毋鲁名谤船车原根 i 勰旰l i d 法h t “ 1_ - 10 b 巧玎 n e 毗 2t 1 2i l 正工 l 兰鐾l 也叫怛 酐 3一t i l u 一j 卜。 占 图2 2 系统自省图 2 2 3 反射技术 反射的概念是由s m i t h 在1 9 8 2 年首次提出的,主要是指:程序可以访问、检 测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学 领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在l i s p 和 面向对象方面取得了成绩。其中l e a d l e a d + + 、o p e n c + + 、m e t a x a 年l l o p e n j a v a 等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统 和文件系统中。 在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是 说,这类应用通过采用某种机制来实现对自己行为的描述( s e l f r e p r e s e n t a t i o n ) 和监测( e x a m i n a t i o n ) ,并能根据自身行为的状态和结果,调整或修改应用所描 述行为的状态和相关的语义。 j a v a 中反射是一种强大的工具。它能够创建灵活的代码,这些代码可以在运 行时装配,无需在组件之间进行源代表链接。反射允许代码在编写与执行时,使 我们的程序代码能够接入装载到j v m 中的类的内部信息,而不是源代码中选定的 类协作的代码。这使反射成为构建灵活的应用的主要工具。j a v a 语言反射提供一 种动态链接程序组件的多功能方法。它允许程序创建和控制任何类的对象( 根据 安全性限制) ,无需提前硬编码目标类。这些特性使得反射特别适用于创建以非 常普通的方式与对象协作的库。 反射经常和j a v a b e a n 机制和自省机制联系起来。在虚拟实验室中,每个组件 是一个具有j a v a b e a n 结构的j a v a 类对象。系统要使用这个对象的时候,需要对象 进行自省来获取对象信息。自省的方式就是基于反射a p i 获取类的信息。 1 0 硕士学位论文 第二章密码学虚拟实验室的设计与实现 2 3 系统运行分析 整个系统运行大致可以分为三个部分。如图2 3 所示: ,、 ,、 厂、 ,、 a前门,八 0i 101 0 l0 0 i v 沁v 1i l l0 10 0li 赠 组件选择和参数配置容器运行 图2 3 系统运行示例图 显示结果 1 组件选择和参数配置 用户进入系统界面后,在界面左侧选择需要的组件。鼠标点击事件触发后, 系统调用回调函数,根据j a v a b e a n 的反射和自省功能,收集用户需要的组件资料, 同时查询x m l 获取相关信息。j a v a 虚拟机获取这些信息后即从组件库中构造一个 j a v a b e a n 对象并将这个对象可视化置于实验面板上。主要代码如下: t h i s s e t s e l e c t e d ( e g e t p o i n t 0 ,f a l s e ) ;如果选中一个组件 i f ( e g e t m o d i f i e r s ( ) 一m o u s e e v e n t b u t t o ni _ m a s k ) i n tt y p e2 - l ; 获取这个组件的信息,并构造 c l a s s n o d en o d e = r e g i s t e r e d c l a s s p a n e g e t s e l e c t e d n o d e 0 ; i f ( n o d e ! = n u l l ) t y p e2 ( n o d e t y p e c l a s s n o d e c l a s s ) ? n o d e t y p e :- 1 ; i i f ( t y p e ! = - 1 ) a d d c a r f i e r ( n o d e n a m e ,n o d e 。t i t l e ,e g e t p o i n t 0 ) ; ) e l s e s e t s e l e c t e d ( e g e t p o i n t 0 ,t r u e ) ; ) 将这个组件可视化 t h i s p r o p e r t y e d i t s e t e d i t t a b l e o ; 刷新界面 t h i s d r a w c a n v a s r e p a i n t ( ) ; 硕士学位论文第二章密码学虚拟实验室的设计与实现 , 2 容器运行 用户配置好实验后,点击运行按钮。系统运行时可以视为一个容器。容器作 为一个黑盒子,各种组件在运行时被装载在这个黑盒子内运行。系统维护一个组 件数组和一个连线数组,通过连线的首尾关系确定一个拓扑图。由于连线是单向 的,则组件数组和连线数组可视为一个有向无环图图。根据拓扑排序,在系统中 得到各组件的一个线性序列,然后系统顺序执行各算法组件。 每一个组件的计算结果通过连线传给下一个组件作为输入。当一个组件计算 完毕时,通过g e t 方法提取结算结果;由于连线的关系,该组件知道下一个组件 以及下一个组件暴露的对应接口。下一个组件的s e t 方法接受传送过来的结果, 设置为组件的参数并继续下一次计算。如此循环直到输出最终计算结果。 伪代码如下: w h i l e ( t r u e ) c a r d e r = t h i s d p a n e c a r d e r s g e t ( ) ;获取下一个组件 l e a d s = c a r r i e r g e t l e a d s 0 ;获取引脚 s e t p r o p e r t y v a l u e ( ) ;设置引脚参数 m e t h o d o u t = c a r r i e r e x e c u t e m e t h o d o ;执行组件运算 o u t = s e t o u t p u t v a l u e ( ) ;将计算结果设置为下一个组件的输入 i f ( o u t n u l l ) d i s p l a y ( ) ;! t h 果是最后一个组件,则显示计算结果 r e t u r n ; ) ) 3 结果显示 结果显示同样作为组件的一种,在运行实验前可以提供给用户配置。 系统具有文字显示、矩阵显示、a p p l e t 显示三种不同方式,如图2 4 、图2 5 、 图2 6 所示的显示组件如下供用户选择,具体选择哪一种显示方式取决于用户的 个人喜好和实验的方式。 系统每运行一个组件首先判断这个组件是不是输出组件。显示组件对象被设 计为j i n t e m a l f r a m e 类的子类,继承j i n t e m a l f r a m e 类并添加新的功能。这样利用了 多态性的原理,使得系统具有更高级的抽象、提高了重用性。代码根据 c a r r i e r g e t l n s t a n c e o i n s t a n c e o fj i n t e m a l f r a m e l 来识别一个输出组件。 图2 4 是英文统计实验的输出结果。这种统计类型的实验结果通常由表格和 文字说明的方式作为输出,并配上相应的说明性文字置于表格右端。 1 2 硕士学位论文第二章密码学虚拟实验室的设计与实现 图2 4 支字结果显示图 图2 5 是d e s 加密算法 3 4 l 的显示结果图。这类算法通常是对矩阵数组进行各 种数学变换,生成新的矩阵。算法的结果通常输出是一个数组矩阵所以采用矩 阵式的显示图比较直观。 图2 5 敷组结果显示图 图2 - 6 是指数分布随机数生成实验的显示结果图。我们采用交互式图形程序 来显示这类型实验的结果显示图。 图2 石a p p l e t 图 硕十学位论文第二章密码学虚拟实验室的设计与实现 交互式图形程序是指使用者通过在运行界面上自行修改、选择图形参数和算 法来观察和验证实验结论的程序。图形属性参数的修改是程序运行之前需要考虑 的问题。图形的参数作为自身的原始属性,它的初始化和重新设置,不仅可以反 映图形的原始状态,也直接影响到数论相关算法的显示结果。为了能准确地反映 出图形变化的动态过程,让用户能够根据需求初始化图形的各个属性值,我们编 写了多种工具包( p a c k a g e ) 把界面设计、算法实现和执行间隔计数器的各个j a v a 类分别聚集起来并结合s w i n g 技术完成用户对图形参数的修改及相关算法的选 择过程。 2 4 本章小结 通过介绍基于组件的虚拟实验室的整体架构,详细说明了组成系统的五大部 分:身份验证和管理系统、客户端,服务器端、定义组件模块库文件,并介绍了 各个组件的用途。在系统的关键技术中,说明了各种技术的特点以及采用这些技 术构建基于组件的虚拟实验平台的原因。其中自省技术和反射是构建组件的关 键。最后给出了系统的运行过程,分析了一次实验的运行情况,并给出了关键代 码和伪代码进行示意。 1 4 硕士学位论文第二章一种新的应用于v l b c 的d a g 并行算法 第三章一种新的应用于v l b c 的d a g 并行算法 基于组件的虚拟实验平台是面向多用户的实验系统,使用有向无环图 ( d i r e c t e da c y c l i cg r a p h ,d a g ) 拓扑排序机制管理组件的运行。 本章从d a g 拓扑排序机制入手,讨论了该机制存在的缺陷。针对v l b c 基 于组件的特点,提出一种新的基于d a g 的并行算法。通过实验证实了算法的正 确性;并将该算法运用于系统申,取代d a g 拓扑排序机制。在新算法下,系统 运行速度有显著提高。 3 1 多用户和网络化面临的问题 基于组件的虚拟实验室作为面向多用户的分布式教学平刽3 5 】,势必可能同 时通过网络接收上百个甚至上千个用户请求。系统对于用户的请求的响应时间将 成为是否能满足用户需求的重要因素之一。 系统反馈消息的时间主要由三部分构成: 1 用户下载j a v aa p p l e t 的时间。用户通过支持j a v a 的浏览器与虚拟实验室 系统的w e b 服务器建立连接,选择进入的虚拟实验室后,浏览器会自动下载服 务器端的a p p l e t 到本地客户端,并在客户端浏览器的j a v a 虚拟机上运行。这一 部分时间很难从软件和代码的角度进行优化,只能依赖于高性能的计算机和网络 提高速度。 2 消息在系统中的传输。用户点击客户端界面上的按钮,系统针对不同的 响应产生不同的消息。消息通过网络在服务器、客户端之间传输,如果是分仰式 的系统,其间可能穿过多个服务器节点。同时,不同的消息可能需要在j a v a 、m m l a b 、c + + 这些异种对象之问的通信。对于消息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 零星维修工程项目实施服务方案
- 四川招聘考试真题与答案解析
- 2026云南红河州个旧大通天然气有限公司招聘5人笔试历年参考题库附带答案详解
- 2026中国电建集团河北工程有限公司海外事业部/南方公司国际市场开发总监招聘3人笔试历年参考题库附带答案详解
- 2025贵州贵阳产业发展控股集团有限公司招聘9人(第一次)笔试历年参考题库附带答案详解
- 2025浙江金华市义乌市建设投资集团有限公司人员招聘18人笔试历年参考题库附带答案详解
- 2025浙江绍兴滨海新区控股集团有限公司下属合资公司社会化招聘总及人员笔试历年参考题库附带答案详解
- 2025浙江温州市瑞安市市属国有企业招聘(第二批)考察(一)笔试历年参考题库附带答案详解
- 交易中心签买卖合同
- 交易猫中介签合同
- T/CNFIA 217-2024干纯(低糖)黄酒
- 湖北省武汉市部分学校联合体2022-2023学年高一下学期期末联考物理 无答案
- 《堤防工程险工险段安全运行监督检查规范化指导手册》
- 第15课 戴上红领巾 课件-2024-2025学年道德与法治一年级下册统编版
- 科研项目风险评估与防范措施
- 蒸压轻质加气混凝土板应用技术规程
- 25春国家开放大学《中级财务会计(二)》形考任务1-4参考答案
- 7权力受到制约和监督 第1课时 权力行使有边界(教学设计)-部编版道德与法治六年级上册
- 人教版(2025)七年级下册地理教材活动题答案
- 《妊娠剧吐》课件
- 《基于火电厂电气运行的安全管理及故障排除处理研究》20000字(论文)
评论
0/150
提交评论