基于JXTA的远程教学系统的设计与实现

2011-04-13 07:10郧阳师范高等专科学校教育系湖北十堰442000
长江大学学报(自科版) 2011年25期
关键词:远程教学电子白板消息

王 焱 (郧阳师范高等专科学校教育系,湖北 十堰442000)

吴青林 (郧阳师范高等专科学校计算机科学系,湖北十堰442000)

传统的远程教学系统大多采用集中式的C/S (Client/Server,客户机/服务器)模式和B/S(Brower/Server,浏览器/服务器)模式,将资源集中存放在中央服务器上,大量的客户端设备未能充分利用,造成了资源的浪费和网络带宽使用不平衡[1]。利用P2P(Peer to Peer,对等网络)网络的优点将远程教学资源分散在各个计算机节点上,减小服务器和网络带宽的负担,必将能够有效的克服C/S模式和B/S模式的缺陷,进一步提高P2P的优势,具有更好的健壮性和可扩展性。下面,笔者主要基于JXTA协议设计并实现了P2P远程教学系统,为教师和学生提供了实时交流的手段。

1 JXTA概述

JXTA是Sun公司为了解决P2P网络互不相连的弊端而推出的,其目的就是为了搭建一个与系统无关、与语言无关、可以应用在任何设备的P2P开发平台[2]。JXTA应用程序分为三层结构,分别为JXTA核心层、服务层、应用层。核心层包含了服务所需要的核心功能,为应用程序提供了最本质的支持;服务层提供了访问JXTA协议的接口,为应用程序开发提供网络服务;应用层使用服务来访问JXTA网络和JXTA提供的功能。三层结构是具有层次性的,核心层处于最底层,服务层处于中间层,应用层于最上层,其设计思想与操作系统的设计类似。

2 远程教学系统网络模型

远程教学系统的设计目标是在Internet环境下能够模拟真实的教学课堂,实现教师的课堂讲解、视频点播、实时交流等各种教学功能,而且每个节点可以通过点到点的方式实现各种信息资源共享,这样可以充分的利用每个节点的教学资源,提高各种资源的利用率。

该系统的网络模型采用一种基于节点物理位置的双环结构,先判断节点的物理位置,根据物理位置的不同形成多个次环,然后从每个次环中选出一个群首节点构成主环,群首节点负责所在次环的工作情况,保存着所在次环节点的一些相关信息。群首节点是一个群组内的高性能节点,子环之间的通信是通过群首节点实现的,其主环和次环节点的顺序由Hash算法分配。这种双环拓扑结构具有良好的可扩展性,管理方便,并且可以增加P2P网络的稳定性和容错性。

根据双环结构模型,将远程教学系统的计算机分成多个组,每个组中选出一个高性能的群首节点来维护本组的在线节点列表,普通的节点要连接到群首节点上才能实现节点的注册。在子环内的一个普通节点需要其他环内节点的学习资源时,先将请求转发给所在环的群首节点,由群首节点负责查询,最后将结果返回到发起查询的普通节点。远程教学系统的双环网络模型如图1所示。

图1 远程教学系统双环网络模型

3 远程教学系统总体设计

根据远程教学系统的功能,系统主要分为电子白板模块、教学资源下载模块、在线作业模块和课堂实时交流模块。电子白板模块主要实现师生在同一块区域中相互交流;教学资源下载模块主要实现教学资源的下载,每一个节点均可以提供资源下载;在线作业模块实现学生在线完成教师提供的作业,并能够对作业结果进行评分;课堂实时交流模块实现了音频、视频和文本等各种方式的交流。

4 关键功能实现

4.1 即时通信功能实现

对等网络下的即时通信采用点对点工作模式,信息交换不经过服务器而在客户端之间直接进行[3]。即时通信功能分为2人之间的通信和多人之间的通信。2人通信采用单播安全型管道,安全管道两端的对等体都经过了身份验证,并且在安全管道传输的数据是加密的,数据在传输时既不能被读取也不能被修改。多人通信采用广播型管道,通过广播型管道传送的消息能够被多个节点收到,这种方式能够使用IP网络的广播或者多播套接字的方法来实现。2人之间的通信和多人之间的通信在网络即时通信过程中运用的都非常广泛。

利用JXTA协议,即时通信功能的具体实现如下:首先建立输入管道,注册管道消息监听,发布输入管道通告。接着通过输入管道执行监听,处理监听到的消息,监听到消息后,就与监听到的管道建立连接。然后建立输出管道,将需要发送的消息在输出管道上发送出去,最后读取消息,并将其显示出来。

1)根据通告机制建立管道通告,设置管道通告的标志号、通告的名称和通告的类型,并发布管道通告。部分代码如下:

2)通过startlisten()方法进行监听,等待响应消息。然后根据响应消息获取输入管道通告pipeAdvertisement,并根据pipeAdvertisement建立输出管道OutputPipe,这样消息接受方和消息发送方就实现了连接,就可以在输出管道中传送消息了。

3)当管道连接完成之后,系统利用建立的输出管道实现消息的发送,接收方利用输入管道的监听器获取发送的消息并将其显示。接收消息并显示的过程为:首先定义消息事件,监听是否有消息,如果有消息,则定义消息对象,接收消息,并从消息包中获取信息头信息和信息体信息,然后将其显示出来。

4.2 电子白板功能实现

电子白板指的是一个虚拟公用区域,参加协作的各个成员的计算机上都有一个白板的视图[4]。用户可以同时登录到这个协同工作环境中,遵守一定的协调机制,实现实时的交流,达到共同协同完成教学任务。电子白板的通信过程是首先在一个节点上对一个图形完成绘制并对图形的一些特征进行提取,接着将其打包传输到需要接收消息的节点,最后接收节点将其恢复成原图形。根据以上过程可以将电子白板功能分为以下3步实现:

1)本地图形绘制 本地图形绘制主要完成类似Windows绘图板的功能,首先定义了一个图形的抽象类ShapeObject,后面其他的各种图形都通过继承这个抽象类来实现每个图形的功能。在抽象类中定义的图形颜色、坐标点等各种变量,还定义了绘制图形和填充颜色等方法。

2)图形信息打包传输 图形信息打包传输主要完成的功能是将图形信息进行打包,传送到其他的节点上,等待其他节点对图形进行操作。首先判断画图的模式drawMode,如果模式是画图模式DRAWSHAPE或者是填充图形模式FILLEDSHAPE,就要先把选择的图形用clearSection()函数清除,然后根据开始点和结束点绘制图形,在绘图信息的HASH表中设置图形的相关信息,最后调用输出管道outputPipe将创建图形消息包发送到点组中。

3)远程图形恢复 远程图形恢复主要实现在接受端根据图形的特征信息将图形重新绘制出来。其处理的方法是当接收端收到消息之后,使用push函数将其存入向量Vector中,然后创建另外一个进程,使用pop函数将消息从向量Vector中取出,最后调用process(Message msg)函数处理。

5 结 语

基于JXTA的远程教学系统可扩展性好,健壮性强,具有很高的资源利用效率。目前该远程教学系统已经在一些课堂教学中使用,效果良好。随着应用范围的扩大,下一步需要在软件界面、系统安全性、附加功能等方面进一步研究和完善。

[1]胡顺仿,向云强.基于JXTA的平面几何辅助教学系统设计与实现[J].云南民族大学学报 (自然科学版),2011,20(2):140-143.

[2]李富芸,蒋文娟.基于JXTA的P2P流媒体系统实现研究[J].电脑知识与技术,2010,29(6):8303-8304.

[3]李永明.基于P2P的即时通信系统的研究[J].计算机与现代化,2009(8):34-39.

[4]李静,郑采星,刘晓平.基于CSCW的研究性学习互动平台中电子白板的研究与设计[J].中国教育信息,2009(7):77-79.

猜你喜欢
远程教学电子白板消息
专科医师规范化培训远程教学督导的思考与启示
“对截止日期更通融些”:教师们从上轮远程教学中学到了什么
一张图看5G消息
巧用电子白板 激活英语课堂
电子白板助力初中化学教学改革
“2+1”人才培养模式中网络远程教学方式研究——以计算机专业为例
交互式电子白板与初中美术课堂教学
消息
消息
消息