应用d技术在远程教育中实现组件化的网络虚拟实验室探讨

应用d技术在远程教育中实现组件化的网络虚拟实验室探讨

ID:9659623

大小:50.00 KB

页数:3页

时间:2018-05-04

应用d技术在远程教育中实现组件化的网络虚拟实验室探讨_第1页
应用d技术在远程教育中实现组件化的网络虚拟实验室探讨_第2页
应用d技术在远程教育中实现组件化的网络虚拟实验室探讨_第3页
资源描述:

《应用d技术在远程教育中实现组件化的网络虚拟实验室探讨》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、应用D技术在远程教育中实现组件化的网络虚拟实验室探讨摘要:为了使虚拟实验室适合远程网络教学的需要,使它能够在网络上工作,利用D技术以C/S方式实现了组件化的虚拟实验室。将模拟计算部分作为服务器端,界面输入/输出作为客户端。在多用户的情况下D没有提供分布式策略,则利用调度对象来平衡负载,从而引入分布式处理方式。关键词:远程教育;D;虚拟实验室;客户/服务器(C/S)Abstract:Inordertomakethevirtuallaboratoryforteachingtheneedforlong-distanceulationaspartoftheserver-side

2、,theinterfaceI/Oasaclient.Inmanycases,usersdidnotprovideDDistributedstrategy,theuseoftargetedschedulingtobalancetheload,sotheintroductionofdistributedprocessingoteProcedureCall)来完成的。客户与对象必须通过Proxy和Stub来进行通信。Proxy工作在客户进程中,Stub工作在服务器进程中。此外,D提供了所有在网络上工作的软件都应有的特殊性与安全性。3/D在网络虚拟实验室中的应用从程序设计的角度

3、来看,/D的结构是这样的:对象是构建组件的基本元素,而服务器为组件提供进程内/外的服务,提供了组件工作的场所。对象是一个自包含的结构,提供一定的功能,它不能直接被客户使用,客户必须通过接口访问它。对象必须通过接口来表现自己的功能,甚至对象的创建都不能由客户直接完成,对象的创建必须借助一个特殊的对象,即类厂来完成。对于客户,它可以是一个组件对象也可以是一个支持的普通程序。它通过API来调用类厂创建对象,并增加引用计数,来决定对象的生存期。这样库和服务器会在适当的时候卸载。虽然C++对象和对象有本质的区别,但是它们在二进制一级的构造上有一定的相似性,C++对象和对象都使用V

4、Table。而且,C++的对象描述能力使它很容易创建。因此C++是实现的最佳选择。VisualC++在COM编程方面提供了两种方式:一种是MFC(MicrosoftFoundationClass);一种是ATL(ActiveTemplateLibrary)。MFC是以嵌套类的方式来实现的;ATL大量地使用于模板,采用多重继承的方式来实现。但不管是MFC还是ATL,都为开发软件提供了极大的方便,很多的处理都由MFC提供,比如引用计数、服务器锁计数、类厂等。尽管MFC和ATL都能实现,但MFC是一种开发完全应用程序的有效手段。相比之下,ATL是专为设计的。所以,ATL更适合

5、创建快速小型化的组件。3.1服务器在本文设计的网络虚拟实验室系统中,将模拟计算部分作为服务器。对于单用户服务器的情况,可以使用STA(SingleThreadApartment)线程模型。在这种情况下,分作为一个对象。对于在这个组件来说,它至少应该提供一个Simulator对象、一个Isimulate接口和两种方法。interfaceIDatdT’:IUnknoent)方式工作。调度对象负责建立服务对象Simulator,维护主机列表COSERVERINFOServer[N]、对象列表ISimulate*pISimulate[N]和对象状态列表IntState[N]。主

6、机列表保存主机名字,对象列表存放对象接口指针,状态列表是一个对象的状态值。对于对象来讲,它有三种状态:(1)未创建或创建失败;(2)忙;(3)闲。三个列表都以全局变量的形式出现。由于使用了STA,可以不必考虑对象的同步问题。但是,多个同类对象访问全局变量仍然可能造成对象在线程上的安全问题。因此,本文使用临界区(CriticalSection)来同步。此外,调度对象是一个可连接对象,它必须与服务对象通信并获得服务对象的状态。调度对象负责在主机列表指定的主机上创建服务对象,并初始化。所有的客户在需要服务的时候应向调度对象发出请求。当有客户向调度对象请求服务时,调度对象检索主

7、机列表、对象列表和状态列表,在选定主机上查询并检查对象的有效性,获取服务对象接口指针,并返回给客户,然后客户与服务对象通信。根据的特性,此时客户和服务对象之间的通信是直接进行的,不经过调度对象。调度对象根据什么原则来获取某个主机上的对象是一个策略上的问题,实际应用中必须考虑主机的负载平衡。对于复杂的系统,这种策略可能相当的复杂。然而,为了简单起见,本文采用了以执行任务的对象在主机上的数量多少作为平衡负载的标准。在客户使用完毕对象后,对象激发一个调度对象事件,调度对象负责将对象状态复位。因此,调度对象是一个可连接对象,实现了一个接收器,接收

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。