电子教室中的电子白板系统_第1页
电子教室中的电子白板系统_第2页
电子教室中的电子白板系统_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子教室中的电子白板系统

随着社会对计算机技术人员的高度需求以及计算机网络技术的快速发展,越来越多的学校开始重视计算机课的教育。建设电子教室进行教学是目前一种较好的解决方案。当前电子教室的主要功能有广播教学、远程控制、电子白板、文件传输等。其中,电子白板作为电子教室的核心功能,是开发网络电子教室的关键技术之一。本文通过DCOM技术设计和实现电子教室中电子白板功能。1各用户建设通信协议集的协议电子白板(whiteboard)是一个虚拟公用区域,在CSCW(ComputerSupportedCooperativeWork,计算机支持的协同工作)中参加协作的各个成员的计算机上都有一个白板的视图,白板上的内容既可以是手绘的简单图形(直线、曲线、矩形等),也可以是文字、图像、音频、视频。白板数据是共享数据,当一个用户修改了其中的数据之后,就要把修改立即通知给其他用户,让他们及时更新自己的白板视图。其更新结果应该立即反映在其他所有用户的视图上,即所谓的“你见即我见”(WYSIWIS,WhatYouSeeIsWhatISee)白板系统的实质是数据通信,要求有可靠的传输机制和通信模型,需要为系统定义通信协议集。按功能分,该协议集中的协议可分为2大类:数据传输协议和控制信息协议。数据传输协议包括文字传输和图形传输,主要用于传输用户输入的文字和绘图数据。2客户操作本系统设计一个DCOM服务器,他有一个接口(IEB1ankBoard),该接口有多个方法,这些方法完成白板的具体操作,例如画图、文本输入等。由于每个客户操作都必须使全组所有成员(教师或学生)看到,所以应该调用服务器的方法(函数)来操作白板才能保证所有用户都能收到并显示出结果。同时,对于服务器,他本身并不能在客户端完成具体的操作,所以在服务端实际上并不需要实现该方法(函数)的具体工作,他只是通过连接点回调客户端接收器的接口函数来实现最终的操作。服务器将使所有客户做同样的动作。2.1具体执行2.1.1添加接口,确定接口DCOM服务器的开发较为简单,因为服务器并没有做任何实质性的工作,他只是通过连接点调用客户端接收器的接口函数来实现最终的操作。(1)使用VC++6.0新建一个ATL工程,在向导的第二步中选择服务类型为“Service[EXE]”。向导自动生成的服务器只有一个CSeviceMoudle类和tWinMain函数。在WinMain函数里通过解析命令行和写注册表自动注册一个服务。(2)添加接口,该接口支持连接点。方法是选择菜单Insert※NewATLObject※SimpleObject,在弹出的Names选项卡命名接口IEBlankBoard,在Attributes选项卡中选择SupportConnectionPoints(支持连接点)。(3)为接口添加方法和连接点的代理类。添加连接点的方法为:在工作区中选中接口类CEBlankBoard并单击右键,在弹出的菜单中选择“ImplementConnectPoint”项,在弹出的对话框中选中IEBlankBoardEvents的接口。需要注意的是,在此过程之前,必须编译该程序,否则上面的过程会失败。成功完成上面的步骤后,就会增加一个一个代理类CProxyIEBlankBoard。接下来便可在IEBlankBoardEvents的接口下增加函数,这些函数就是连接点函数,这些函数将在客户端最终实现。(4)工作过程:DCOM服务器调用连接点代理类的函数,该代理类函数(即连接点函数)再调用客户端函数的具体实现来完成自己的实现。2.1.2让客户参与ddos协议本系统的DCOM客户端通过MFC实现,值得指出的是DCOM客户程序在用向导生成时一定要选上“支持OLE自动化”选项。(1)cebcclent类前面已经提到,服务器通过连接点来调用客户端的函数完成对白板的操作功能,接收器的实现使用ATL要比使用MFC简单,但MFC也做了很多工作使得建立接收器变得相对简单,这些工作通过继承CCmdTarget类来实现。由于CView类是从CCmdTarget派生的,因此接收器的实现就放在CEBBClient类中。对于CEBBClient类,接收器的实现是通过一些宏完成的,这些宏作用如下:BEGININTERFACEPART:该宏用来产生类XE-BlankBoard,同时该宏还默认定义了3个COM接口共有的、必须实现的成员函数,即AddRef(),Release()和QueryInterface()。ENDINTERFACEPART:和前面的宏一起完成对接口类的定义,同时还定义一个该接口类的对象mxEBlankBoard。DECLAREINTERFACEMAP():该宏用来定义了3个函数和1个变量数组,3个函数的实现在CPP中提供,也是通过一对宏来实现。程序中要实现接收器类的成员函数,是通过宏METHODPROLOGUEEX实现的,该宏能够得到接收器类成员函数的父类指针pThis。下面给出客户端使用铅笔工具进行绘图的函数实现:(2)服务器名称含义创建远程服务器组件和创建本地的进程内组件类似,不过这里要指明服务器名称,同时还需要服务器运行该服务进程。如图1反映客户端连接服务器的过程。(3)drw的应用客户程序所做的工作比较简单,这里仍旧以铅笔绘图工具为例,在鼠标拖动的过程中不断调用服务器的Draw方法来实现绘图工作,方法如下:hr=mpEBlankBoard—>Draw(mpos.x,mpos.y,point.x,point.y,mcol);2.2父类定位功能电子白板功能的具体实现由父类成员函数完成,例如用户要实现画线,在父类成员函数中实现如下:该函数使用了宏METHODPROLOGUEEX来得到父指针,并调用父类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论