ReMLab:一个基于Java的远程教学测量实验室
摘要:
远程实验室的使用对于科技学校有的重大意义,尤其是工程学院。然而,实验室意味着一笔巨大的投资,包括钱和空间方面,不适用于学校,特别是当需要实验课程的学生数量和课程数量都增加的时候。远程实验室是一个非常经济的解决办法,提供给学生在任何地方用网络使用真实器具的机会,无需买商用软件。本文章展现了使用一个基于Java的客户-服务器系统,实现这个目标,使可以作为附属实验室帮助学生上电气工程的课程。
- 简介
科技教学课程,在任何级别的教学中,从高中到大学生学业教育到硕士到博士课程,都不能无视实验课。和真实世界的联系,处理真的设备提供了真实的,唯一的完成理论教学和提供给学生使他们能够成功解决真实问题的能力。
不幸的是,实验课程可能是最贵的教学活动:他们需要大量资金投资,来获得大量可以有效训练学生的设备,建设和完成实验室。更多的时候,因为安全和安全理由,实验室的使用不是完全放开的,要时刻被管制,为了保证监管人员的在场。越长时间对实验室的使用进行管制,人员的花费就越高。
最后但是最重要的是,学生总体上还是没有接受培训的操作员,因此他们使用设备的时候更可能引发错误和破坏,所以维护费会很大影响给远程培训的预算。
最近基于计算机的设备发展使互相交流变得容易,这是打开了网络虚拟远程实验室的实现的方法,大可能去除了物理实验室的所有缺点。
实施虚拟实验室的第一个尝试被限制在最普通的设备里。这些方法,尽管对让学生熟悉设备很有效果,但是不能给他们志愿近距离接触真的设备的技能和经验。
最近,几个实施的方法,通过一个远程连接提供了接触真的设备和真的测试的机会。最快的发展是在过去几年电脑系统和软件应用都早发现里一个关键点:实施费用,维护费用,安全,弹性,可移植性,交流成本。另一方面,最近Java语言和Java本地接口的发展提供了一个非常有效率的工具对以上问题作出回答。Java是一个独立语言平台,能确保最高等级的便携性,可以发展成安全传播系统。
因为以上理由,ReMLab作为一个基于Java的远程实验室被运用,并在本文章中展示,二至五章节讨论作为一个远程教学实验室的主要需求,是根据它的设计和使用指导,也是一些功能测试的指导。
图2用于实现远程实验室的客户端 - 服务器体系结构中的数据流。
- 需求
ReMLab的设计由一个细心的分析预想出来的伴随经济限制的远程需求,,一个为了教学的远程实验室必须满足。作为一个教学需求,以下几点需要重视起来。
真实性。学生必须用真的设备连接真的测试回路为了理解一次真实实验的不同部分,包括可能的错误,一个模仿实验很难做到这一点。所有可能的设定应该可以使用,根据学生使用实验室的不同技能等级。在设备设定上的错误必须不能被自动改正,而是应该被学生察觉并改正,所以他们就可以理解他的指令错在哪里了并改正。测量结果应该被以一个和原始值类似的方式提供。
可提供性。使用远程实验室不应该随时被限制,所以学生可以有他们自己的经验,通过使用实验室里他们使用最需要的和远程地点更让他们舒适(包括或不包括大学专业)。专业软件的需求,让远程实验室和从设备获取来的数据应该被严格管制,所以这样学生就不会强制下载和安装大型应用程序,软件许可证也不会出现问题。除此之外,每个学生应该远离使用他最熟悉的应用程序来处理测量结果。
安全性。上述条目引起了与仪器和测试台的安全性以及恶意攻击相关信息系统的安全性的安全问题。第一个问题可以通过防止超出允许范围的命令发给仪器,通知学生他们试图执行错误操作来解决。第二个问题可以通过限制只能通过用户名和密码方式的授权用户访问,并通过记录访问日期和时间,用户名,访问权限的站点的IP号码的站点来记录所有访问来解决。 站点是来源并是操作实验。
弹性。一个远程教学实验室变得很有效率,如果它可以实施不同实验,适用于不同等级的学生和他们的课程。基于相同设备的不同实验,因此应该在不同等级难度和不同等级与学生交互下实施。还应提供有效的在线帮助,以便在实验过程中指导学生。对于经济限制,下面几点可以考虑。
为学生做成本限制。 除了从大学校园实验室外使用的互联网连接费用外,学生不得被要求承担任何额外费用才能使用远程实验室。 从实际的角度来看,这意味着远程实验室的所有功能必须可以适应任何浏览器,并且学生不应该被要求购买和安装任何商业软件。 由于也可以从大学校园外部进行连接,因此也应避免使用具有校园许可证的软件应用程序。
实施和维护成本。 大学的资金过程以这样一种方式运作,就是开发一个新的教学实验室的预算在某种程度上比预算维护活动要更简单。目前,开发分布式系统的几个高级应用程序是可应用开源的:它们的运用有一个巨大的影响, 体现在首次实施成本和维护成本都降低了成本,是因为所有新版本都是可应用开源的。
可移植性。计算机,操作系统和软件应用程序的发展如此之快,以至于任何设计为持久的应用程序必须尽可能地可移植和平台独立,以便降低未来开发和迁移到改进的平台的系统的成本。 在这方面,本地语言的使用应尽可能地受到限制,并且应尽可能使用与平台无关的语言,例如Java。
图1 在客户端-服务器体系结构中实现远程实验室的数据流
图3 服务器体系结构中的数据流
图4.客户端体系结构中的数据流
- 体系结构
根据第II节中列举的要求和约束,已经开发了图1中所示的客户端 - 服务器体系结构。
远程访问的测量实验室是在服务器实现的,它配备了适合现场信号的接口(数字I / O,模到数(A / D)和数到模(D / A)转换板)和设备(IEEE 488,RS232,VXI接口)。
远程客户端将远程实验室作为网页访问,服务器内的数据流按照图2组织。
客户端通过单个URL地址访问服务器,激活Web服务器应用程序。 Apache v.1.3.19开源Web服务器已用于开发Web服务器。 所有和实验室演示,实验选择,文档和帮助相关联的静态网页均由此Web服务器管理。
打开实验选择静态页面时,可用的实验可以通过选择对应的链接来访问。
当链接被选中后,将在开源服务器引擎环境Tomcat v.3.2.1中激活Java 2 服务器程序引擎。 服务器程序引擎激活专用于所选实验的Java 服务器程序。 此服务器程序执行的第一步是自动生成动态网页,其中包含获取所有预设数据为了必须访问的仪器的正确形式,用来执行所选实验所需要的。 根据图2中的流程图,该网页被发送到网络服务器,使其可让客户端获取。
一旦客户端发布了所需的数据,这些数据就会被发送到服务器程序,根据图3中的图表,它访问用于控制器的Java类。 这些Java类从Java服务器程序接收必须发送到仪器的命令,并通过JNI访问适当的设备驱动程序。
一旦命令发布,他们统计设备以获得测量结果。 当结果可用时,Java类将它们发送回Java 服务器程序,该服务器程序创建一个新的动态网页,包含许多Java小程序,这些小程序负责把测量结果用图形表示。
根据图2所示的图表,服务器引擎将动态页面发送回网页 服务器,使其可供客户端获取。
用这种方式所描述的体系结构如图2和3所示,它们实现了高度模块化的结构:每个实验和每个设备都由专门的Java类以相对较高的抽象级别描述。 为了驱动设备(或面板),必须调用低级驱动程序,这取决于所使用的平台。 通常,这些低级驱动程序由设备(或板)的制造商提供,并且可作为本地代码提供。在此应用程序中,JNI已被利用,以便连接开发的Java类和设备和面板的低级驱动程序。 通过这种方式,可以获得最高的可移植性级别,因为如果系统必须转移到另一个平台,则依赖于所使用的平台的唯一部分开发软件必须重新编译,这是低级驱动程序的本地代码。
如果必须将新实验添加到远程实验室,则必须在服务器上实现新的Java类。 如果不需要将新仪器连接到服务器,则不需要其他操作。 在需要新设备的情况下,必须在图3所示的层次结构中的最低级别添加新的低级驱动程序。
服务器程序引擎的嵌入式功能用于通过用户名和密码对用户进行身份验证。 还实现了一项功能,用于记录对服务器本地文件的所有访问,所以那些访问数据和时间,用户名,客户端计算机的IP号以及访问的实验数被记录下来。
在多个最近访问请求的情况下,所有请求都排队并以FIFO方式提供服务。 根据图3中的架构,以FIFO方式访问的唯一资源是设备。 因此,排队的客户端的等待时间(被看作网络延迟)仅仅是测量时间,在最坏的情况下不超过几秒。 因此,考虑到大量用户的同时访问是不太可能发生的事件,每个用户可以经历的网络延迟不会超过十分之几秒。 无论如何,如果排队的用户超过十个,服务器会显示一条自动消息,警告用户服务器已达到最大用户数并要求他过会重试。
客户端体系结构如图4所示,并且是在具有Java虚拟机和公共域Java插件的网络浏览器周围实现的,不需要任何其他软件。
在该体系结构中,实验设置的界面是简单的HTML形式,如图5所示,其中用户输入所需的设置数据。 通过从服务器下载的JavaScript与表单一起在本地执行对数据有效性的第一次检查。 这样,网络不会因为从客户端流向服务器的错误数据而过载,并且错误消息从服务器流回客户端,因为数据在本地被检查,并且可能的错误消息也在本地自动生成。
如果所选实验需要以图形方式显示测量结果,一个从服务器下载并在客户端本地执行的合适的小程序,这样,网络不会因大量图形数据和命令而过载 这些都是在本地生成的。 客户端受到保护免受错误或恶意入侵,因为Java运行时环境和下载的Java小程序都在“沙箱”的受保护区域中执行,并且无法访问本地文件系统。
这种实现的客户端 - 服务器体系结构符合第II节中给出的要求,因为它是使用公共域,高度可移植的软件开发的,并且除了Web浏览器之外不需要任何其他应用程序来访问它。
图5.远程实验设置的输入数据表单示例
- 实现实验室
第三部分描述的架构已在米兰理工大学[13]实施。具有Pentium III,1-GHz处理器,512-MB RAM的PC用于服务器结构。该PC永久连接到学院LAN,并通过同一LAN连接到因特网。
PC配有NI MIO16E系列,12位A / D转换板,通过内部PCI总线连接到PC,通过NI SC2040板连接到输入信号,确保同时采样多达8个输入通道。该服务器还配备了NI PCI-GPIB板,以便通过IEEE 488接口控制仪器。
TTi TG1010波形发生器连接到GPIB板,用于生成信号。一阶RC低通滤波器连接到该发生器,输入和输出信号都发送到A / D板。
两个Fluke 45 DMM和一个Agilent E3634A可编程直流电源也连接到GPIB板。
使用这些装置,目前在远程实验室中实施了四种不同的实验。
为电路理论的基础课程建立了第一个实验,向学生展示了电容器充放电瞬态的电压和电流波形。允许学生仅改变充电电压的值,他们在范围图表上看到瞬态电压和电流波形。本实验旨在让学生熟悉典型的瞬态现象,使他们有机会对时间常数,上升时间等进行一些实验计算。
为数字信号处理高级课程设立了另外两个实验。允许学生设置波形发生器和A / D转换板的所有参数。第一个实验允许学生获取波形发生器生成的信号并将其显示在类似范围的图表上。第二个实验允许学生获得该信号,该信号也被发送到该滤波器,以及来自低通滤波器的输出信号。两个信号都在类似范围的图表中显示在客户端上。获取的样本也可以作为文本文件下载,并在本地保存在客户端上,以便进一步处理。这些实验旨在为高级学生提供获取信号和体验真实信号上的数字信号处理算法(DFT,FFT,数字FIR和IIR滤波器等)的行为的机会,而不仅仅是模拟数据。
图5显示了在客户端屏幕上显示的表单,用于设置用于获取两个信号的输入参数。图6显示了服务器提供的动态输出页面作为实验结果。可以注意到,提供了关于实验设置的完整信息,以及所获取波形的范围式显示。
最后一个实验旨在通过测量训练学生在直流条件下进行负载表征。负载稳定地连接到可编程直流电源,负载端子两端的电压和流过它们的电流由两个数字万用表测量。允许学生更改电源电压值和两个DMM的所有设置。本实验旨在培养初学者在确定负载特性方面的进展,以及高级学生对数字万用表进行的电压,电流和电阻测量的计量表征。
- 结构确认
已经进行了若干测试以验证所提出的结构是否满足给定的规格。特别是,通过校园外的56 kbit / s拨号连接,直接连接到园区LAN的客户端和连接到Internet的客户端进行了多次访问。
这些连接是在一天中的不同时间发布的,因此网络和提供商的不同负载情况已经过测试。由于客户端看到的等效延迟时间的最重要贡献是仪器响应服务器发出的命令所花费的时间,因此拨号连接被证明仅比来自园区LAN的连接稍慢。通过拨号连接所经历的平均延迟大约为15秒,由于Java虚拟机的激活时间,这在第一次调用浏览器时几乎翻了一番。
还重现了允许的最大用户数同时访问的情况,最大,最坏情况下的延迟大约为120秒,这在远程实验室的正常使用中仍然是可接受的。
- 总结
ReMLab是米兰理工大学电气测量学的远程教学实验室,已在本文中展示。由于大量使用公共领域软件,已实现的实验室证明符合所有设计规范,特别是那些降低成本与开发阶和维护阶段有关的规范。通过对所有开发的应用程序使用Java语言以及使用JNI连接仪器的低级驱动程序,也确保了实现结构的可移植性。
教学规范也已得到满足,因此学
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[441516],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。