《网络电子白板的设计与实现_邓学雄.docx》由会员分享,可在线阅读,更多相关《网络电子白板的设计与实现_邓学雄.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 2005 年 第 5期 工 程 图 学 学 报 JOURNAL OF ENGINEERING GRAPHICS 2005 No.5 网络电子白板的设计与实现 邓学雄,曾月鹏,李瑞 (华南理工大学机械工程学院,广州 510640) 摘 要:根 据远程教育的教学特点需要,采用 Java Applet编程技术研究开发了具 有图形交换功能的电子白板。电子白板应用于网络中,扩展了教学的地理空间,解决了客户 (学生机 ) /服务器(教师机)之间图形动态的传送问题,实现了图形数据的同步传输和显 示。在网络中实现了教师与学生之间的图形、文字的实时交流,为课程的远程教学提供了特 殊的网络 工具。 关键词:计算
2、机应用;电子白板; Java Applet编程技术;远程教育 中图分类号: TP311.51 文献标识码: A 文章编号: 1003-0158(2005)05-0170-04 随着远程教育的发展,网上实时交流是教师 与学生之间的主要沟通的方式之一。目前,作为 文字、声音、图片、视频等的网络交流工具不少, 但作为实时的图形传输工具却不多,影响了一些 课程的远程教学效果。电子白板是一个虚拟公用 区域,配有图形、文字等输入工具。教师和学生 可利用电子白板进行课堂教学、讨论等教学活 动,是虚拟教室的主要交互形式。 电子白板程序基于浏览器 /服务器 ( B/S)结 构,这是在客户机 /服务器 ( C/S
3、)结构的基础上 实现以网络浏览器为主体的结构。此结构实现勻 虚拟教室系统网站的无缝集成,无须下载程序, 只要具有能够上网的浏览器,即可实现电子白板 的基本书写与绘图功能,使图形、文字能在教师 与学生、学生与学生之间进行实时的动态的传输 勹交流。这也是采用 Java Applet技术进行编程的 优势 1。同时,采用此技 术实现的电子白板,其 内容可以得到实时恢复与更新以及具有辨别用 户权限的功能。 1 电 子 白 板 的 总 体 设 计 1.1工作原理 总体的系统模型图如图 1所示。 电子白板系统包括两大部份:白板服务器和 白板客户端,分别由以下 4层组成: 第 1 层 ( OS), 支持网络功
4、能的操作系统, 是白板系统的运行平台,如: Win2000, Win98 等。 第 2 层( TCP/IP), TCPP协议作为现在网 络的通用标准,是白板系统通信的支搾协议。 第 3层 ( Socket Layer), 利用 Socket方式建 立客户 /服务器之间的连接。通过通信通道发送, 接收或者转发课堂状态消息,成员消息,白板控 制,学生学习状态等,并在课堂成员之间进行协 调,形成一个支持协同学习的分布式通信支搾应 用平台。 第 4 层 ( Student/Teacher Interface), 提供面 向用户的人机交互界面,运行在浏览器之上。 白板服务器负责创建和管理连接客户的线 收
5、稿日期: 2005-04-07 作者简介:邓亇雄( 1957-,男,广东 H水人,教授,硕士,主要研究领域为程阁卞, CAD,? - 第 5 期 邓学雄等:网络电子白板的设计与实现 171 程,同时不断侦听、接收来 A各个客户端用户的 信息,并将其转发给其他用户。白板客户端负责 创建客户端用户界面,并处理客户端用户逻辑以 及客户端和服务器之间的通信 2。 图 I白板系统模型图 1.2方案选择 为了解决上述的技术问题,必须正确选择合 适的工具和语言,以下是几种可行的方案: (1) NetMeeting视频会议工具; (2) ASP脚本环境; (3) Java。 Java作为一种支持 Intern
6、et应用开发的编程 语言,由于其独到的面向对象,跨平台,分布式 应用等特点给程序员带来了 一种崭新的汁算概 念,使Web就用从最初的单纯提供静态信息,发 展到现在提供各种各样的动态服务 31。 Java语言有如下一些主要特点:简单,面向 对象,分布式,平台无关,多线程,解释执行。 因此,本系统决定采用 java来实现 “ 白板 ” 功能。 由于虚拟教学系统的主体框架是以 -个网站的 形式来组件的,为了实现无缝的集成,因此,客 户端和服务器端的程序都采用了 Java Applet来 设计。 2 白 板 系 统 的 实 现 白板系统主要由两部分组成,一是作为登录 辨识和数据中转的服务器端程序,另一
7、个是作为 画图等人机交互操作以及网络交互的客户端程 序,以及作为联系二者之间纽带的网络对象传输 协议的制定 41 2.1协议说明 在数据传输时,只需在输入端放入数据,在 输出端原样取出数据,就可以了。这样就大大的 简化了输入输出操作 5。作者将所有要传输的数 据打包成对象,作为服务器端和客户端输入输出 所共同遵守的协议,就可以统并简化数据的传 输。 fft_ Java的输入输出流中,正好有一种 “ 对象 流 ” ,可以自定义对象,作为输入输出的协议。 本程序采用 Java 10 库中的 ObjectOutputStream 和 ObjectlnputStream 输入输 出流来进行数据的网络传
8、输,为此,编写了协议 类 Package对要传输的数据进行封装,定义如下: public class Package implements Serializable public String name; public int state; public Object c; public Package (String userName,int s, Object cc) name=userName; state=s; c=cc; 由于 Package 实现了 Serializable 接口,因此, 其对象可以实现序列化,这是对象可以在网络传 输的关键。 2.2服务器端数据管理模块 在服务器端
9、,数据的接受和发送是通过建立 多个客户对象线程实现的,为了提高效率,所有 客户连接线程先全部打开,然后由它们 A己等待 客户端的连接。最大客户数由 state.MAXJJSERS 来决定(见表 1)。 以下是服务器端程序初始化客户连接线程的 程序片断: .ServerSocket ss = new .ServerSocket (State.PORT); /根据端口打开服务通道。 System.out.println (服务器端己开通!端口: n +Integer.toString(State.PORT) +等待接入 ,) ; catch (Exception e)丨 /捕捉各种网络错误 e.p
10、rintStackTrace () ; private static ava.io.ObjectOutputStream_users = new 172 工程图学学报 2005 年 java.io.ObjectOutputStreamState.M AX_USERS; 其中: .Serve丨 Socket 对象 _ss, 存储了 服务器端的 ServerSocket,用于客户侦听; java.io.ObjectOutputStieam 的数组,保存了所有 建立起连接的 Socket输出流的引用。 本处要注意一个问题:多线程的操作要注意 资源的同步,由于保存所有建立连接的输出流的 数组是公共资源
11、,要防止有的线程在写入的同 时,另一线程在使用它,否则将导致出错 61。为 此,采用了 synch丨 onized同步机制。 表 I参数说明 Slate的值 说明 Object中传送 的数据 LOGIN 登录 无 LOGOUT 注销 无 CHAT 交谈 谈话字 $ LINE 画线 两点坐标 CIRCLE 画圆 外接矩形 RECT 画矩形 左上点和 宽、髙 ERASER 擦除 同 RECT PORT MAX 一 USER 服务的端 口号 最大连接 的客户数 2.3客户端数据管理模块 客户端随时都在同用户进行交互,例如写文 字,绘图等,而此时,如果有其它用户发送文字 和图形过来,必须有一种机制来接
12、收。在本系统 中,是采用在后台维护一个侦听线程 Listen来实 现的。 Listen线程不断探测来 A网络的消息,如 果发现符合协议的数据,就接收并通知主线程, 并采取相应的动作进行处理。 2.4图形数据传输的实现 2.4.1 程序流程 客户端文字和阍形实时传输以及实现白板 程序的程序流程见图 2。 2.4.2绘制流程图 实际图形,是根据当前图形绘制状态(在 Client类中的 chaw_state变 fl指示)来绘制的。 其绘制代码片断如下: 图 2程序流程图 void drawShape (java.awt.Graphics g, int state, Rect r) 2.4.3动态绘制
13、的实现 为了实现鼠标的动态绘图,需要采用所谓的 XOR异或绘图法。也就是,同样的图绘制两次, 即可擦除。在 Java中,首先要设置异或绘图模式, 通过:java.awt.Graphicsg; g.setXORMode (xor_color);即可设置。 2.4.4聊天功能的实现 聊天功能的实现就是在发送时,把用户名、 聊天字串和聊天的标志打包成一个 Package对 象,然后发送出去。 Void btnSend_actionPerfonned (ActionEvent e) Package p=new Package ( this._name, State.CHAT,s); 而当侦听到数据传来
14、时,则将字串提取,然 后显示出来。具体的功能界面见图 3。 3 结论 上述主要介绍了基于浏览器 /服务器的电子 白板的设计与实现。解决了客户 ( 学生机 ) /服务 器(教师机)之间数据的实时传送问题,实现了 教师与学生之间、学生与学生之间图形数据的同 步传输和显示。特别是从协议说明、服务器端 第 5期 邓学雄等:网络电子白板的设计与实现 173 . 的数据接收和发送、客户端的数据发送和接收、 开发,在网络上实现图形动态传输进行了探讨 , 客户端聊天、白板程序的实现等方面展开了研究 为远程教学提供了实用的特殊的网络工具。 (a)教师界而 ( b)学生界面 图 3电子白板 参 考 文 献 1 方
15、亮,金晶 . 虚 拟 教 室 中 电 子 白 板 系 统 的 实 现 J.计算机系统应用, 2000, :4042. 2 孙焕志 .浅谈网络课件的开发与制作 J.黑河科技, 2003,(2): 85-86. 3 李立明,蔡立军,胡锦,等 .Internet上的多媒体电 子白板系统的设计 J.吉首大学学报, 2002, 23(2): 7-11. 4 李朋,张景,吕林涛,等 .分布式协同工作环境 的框架设计与关键技术研究 m.微电子学与计算机, 2003,(2): 10-12. 5 王玉珍 .对发展我国现代远程教育的新思考 J.教 育探索, 2002, 10(136): 36 37. 6 Kiyo
16、shi NAKABAYASHI, Mina MARUYAMA, Yoshimasa KOIKE. Architecture of an inteligent tutoring system on the WWW-Proceedings of the 8th World A. In: Conference of the AIED Society C. Kobe, Japan. 1997. 1822. The Implement of Network Electron Whiteboard DENG Xue- xiong, ZENG Yue- peng, LI Rui (College of Me
17、chanical Engineering, South China University of Technology, Guangzhou 510640, China) Abstract: According to the requirement of long-distance education, Electron Whiteboard had been devised by using the Java Applet technology to exchange graphics. When applied in network, Electron Whiteboard has enla
18、rged the teaching area and resolved the transmission problem of dynamic graphics between the client ( students computer) and server ( teachers computer). And the simultaneous communion of graphics and character between the teacher and student has been implemented, which supply us a special network tool for the long-distance teaching. Key words: computer application; electron whiteboard; Java Applet; long-distance education