`
li.chening
  • 浏览: 22841 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

基于JGroups---蓝杰虚拟教室

    博客分类:
  • java
阅读更多

    相信大部分朋友都有听过或是使用过虚拟教室,现在已经出来了不少的虚拟教室成品软件,如红蜘蛛媒体网络教室(主要在局域网内实现多媒体教学),以及一些网上英语教学系统(基于web实现在线教学)。另外,像adobe等等知名公司也纷纷推出虚拟教学相关产品,抢占电子虚拟教学这块奶酪。

    在2008年暑假,几个志同道合的大二学生们风风火火的投入了虚拟教室项目的开发中,花了一个多月,从需求到最终第一版本出来。期间,我们有攻克一个又一个问题的兴奋:>,但是由于那时基本功的薄弱,我们也不时郁闷至极:<

    如今已是2009年6月,现在show一下我们的小玩意。

 

    1.我们首先运行教师端、学生端主类,会出现用户交互界面, 贴出了一部分项目运行效果图片:

 

 

图1.教师端登录初始界面

 

 

    图2.学生端登录初始界面

 

    2.点击教师端“开始教学”按钮,会出现跳出框,在框中输入一个教学组名,再按“确定”,(如图3)待学生端加入该组,学生加入后,教学端屏幕成员列表处即会显示出学生信息(如图4),即可开始教学;学生端端用户名处可以输入自己的名字,教师端IP自动获得,输入加入的组名,点击“加入”按钮,(如图5)即可出现教师端屏幕(如图6)即可加入听课。

 

图3.教师端输入创建的组名

 

 

图4.学生端填写相关信息

 

 

图5.教师端显示学生端上线界面

 

 

图6.教师端教学界面

 

    3.当学生需要教师端进行远程控制时,学生端可以点击上方“操作”,点击“申请”,也可以通过快捷键CTRL+A,输入请求原因后,“确定”后即可等待教师端回应(如图7),当学生发送申请信息给教师端时,教师端消息框会出现申请信息,教师端可以按“同意”或“拒绝”按钮,若“同意”(如图8),教师端即会出现学生端屏幕,进行相应控制操作(如图9):

 

 

图7.学生端输入远程控制请求

 

 

图8.教师端接收到远程控制请求界面

 

 

图9.学生端被教师端远程控制(教师端打开学生端文档)

 

    虚拟教室的系统模型从逻辑上划分为教师端,传输网络和学生终端三个部分 。

    在局域网内,我们通过组播技术和java 技术来实现教师端和学生端交互,基于JGroups 框架,可靠的TCP 协议,利用 框架实现消息(包括教师端屏幕图像信息,组员信息)的群组发送,在小范围内实现教师屏幕的广播,教师端发送消 息,所有学生端都能够接收到教师端屏幕图像等信息,能够动态的实现对组内成员的离开,加入和现有组员的意外脱 离。

     对于局域网内的教师端对学生端的远程控制, 我们的教 师端只是将键盘和鼠标的指令传送给学会端(利用Java Robot 对象来实现对教师端鼠标键盘事件(如点击鼠标右键)的捕捉), 同时将学生端的屏幕画面通过通信线路回传 过来。也就是说,教师端控制学生端进行操作似乎是在眼前的电脑上进行的,实质是在远程的学会端中实现的,不论打 开文件,还是上网浏览、下载等都是存储在远程的学生端中的。

 

创新点:

基于一个适合于虚拟教室(群组通信)特点的JGroups 框架,利用java 实现教师端和学生端远程控制。


技术关键点:

  1.   对JGroups框架的应用
  2.  通信协议
  3.  屏幕图像的传输
  4.  利用Robot捕捉鼠标键盘事件

主要技术指标:

  1. JGroups 框架的灵活应用
  2. 能够运用通信协议定义虚拟教室的通信规范
  3. 能够对屏幕图像信息进行高质量的传输
  4. 保证图片能够清晰的显示
  5. 利用Robot 进行精确的鼠标键盘事件捕捉
  6. 以及对其事件流的准确发送

当然,现在这个项目还不够成熟,如:

  • 通信效率的提升:我们现有系统主要的传输信息是教师端和学生端屏幕图片,而在现有 我们现有系统主要的传输信息是教师端和学生端屏幕图片,而在现有 系统中,我们对图片信息只是简单的调用java 相关的方法进行压缩, 没有很好的优化来提升通信效率。优化方案:我们会制定 相关的算法或是利用相关的压缩工具来进行图片的压缩,达到最大可能的提升通信效率。
  • 应用功能的增强
  1. 界面的美化 :上面我们也贴出了运行效果图,用户体验还不够好

     2.  多媒体技术的引进:在原有基础上,进一步加入音频。视频来提高教学效果

     3. 聊天室

  •     系统结构的重构

     使用flex开发基于B/s结构的新系统

最后,谢谢大家花时间来看看我们的蓝杰虚拟教室项目,更希望大家多多提出建设性意见,多多交流下。

以下有源码,供下载。

 

 

 

 

分享到:
评论
5 楼 王忠平 2009-12-04  
最近项目中有一个点对点的聊天功能,我可以得到客户机的公网IP,可是如果对方在局域网的话就不能通信了,可能要用到P2P技术,网络协议这块不是很懂,还望和LZ多多交流,点对点用什么方式实现通信好点,不想用到P2P,那个东西比较麻烦。。。
4 楼 li.chening 2009-09-14  
lbw2100 写道
很厉害,最近用到JGroups做集群,呵呵。看了你的作品大概能让我了解一些东西,谢谢


不用谢,大家一起交流,有问题可以提出来的。
3 楼 li.chening 2009-09-14  
有一段时间没有来这里了,挺不好意思的,这么晚才回复。
这段时间在忙一个特产的交易网站。估计接下来一段时间都得奉献给这个网站了,呵呵
本人觉得这个项目还是有很大的发展空间,不论是对功能的精致,还是对结构的重构等,希望大家多多提出意见或建议,大家一起交流,
ps:我们参加了学校的挑战杯比赛,也获得了成绩,详细的文档确实功不可没啊~~
2 楼 lbw2100 2009-08-04  
很厉害,最近用到JGroups做集群,呵呵。看了你的作品大概能让我了解一些东西,谢谢
1 楼 JAVA凌 2009-07-15  
とても強いですね。

相关推荐

    JavaEE源代码 jgroups-2.2.8

    JavaEE源代码 jgroups-2.2.8JavaEE源代码 jgroups-2.2.8JavaEE源代码 jgroups-2.2.8JavaEE源代码 jgroups-2.2.8JavaEE源代码 jgroups-2.2.8JavaEE源代码 jgroups-2.2.8JavaEE源代码 jgroups-2.2.8JavaEE源代码 ...

    jgroups-2.6.8.GA.jar

    jgroups-2.6.8.GA.jar jgroups-2.6.8.GA.jar

    jgroups-2.5.1-jdk14.jar

    jgroups-2.5.1-jdk14.jar,网络通信工具包,版本号2.5.1

    jgroups-2.2.7.jar

    jgroups-2.2.7.jar jgroups-2.2.7.jar

    activemq-transport-jgroups-1.5.jar.zip

    《ActiveMQ与JGroups在1.5版本中的整合——activemq-transport-jgroups-1.5.jar深度解析》 ActiveMQ,作为Apache软件基金会的一个顶级项目,是业界广泛使用的开源消息中间件,它提供了可靠的消息传递服务,支持多种...

    activemq-transport-jgroups-1.4.jar.zip

    "activemq-transport-jgroups-1.4.jar"这个文件是ActiveMQ的一个扩展模块,它集成了JGroups,实现了基于JGroups的传输层。在1.4版本中,这个模块允许ActiveMQ利用JGroups的网络通信能力,创建出高度可靠的集群环境。...

    activemq-transport-jgroups-1.3.jar.zip

    《ActiveMQ与JGroups在1.3版本中的整合——深入解析activemq-transport-jgroups-1.3.jar.zip》 在IT行业中,消息中间件是实现系统间异步通信的关键技术之一,Apache ActiveMQ作为一款开源的消息代理,广泛应用于...

    atmosphere-jgroups-0.7.2-javadoc.jar.zip

    总的来说,《atmosphere-jgroups-0.7.2-javadoc.jar.zip》是开发基于Atmosphere和JGroups的实时Web应用的重要资源,它提供的Java文档和许可信息对于遵循最佳实践、保证代码质量以及遵守开源许可具有不可忽视的价值。

    JGroups的Raft实现jgroups-raft.zip

    jgroups-raft 项目是 JGroups 框架对 Raft 的实现。Maven:&lt;groupId&gt;org.jgroups &lt;artifactId&gt;jgroups-raft &lt;version&gt;0.2&lt;/version&gt;Raft 是一个容易理解的共识算法。在容错和性能方面它相当于 Paxos(Google 的一致...

    Jgroups-all.jar

    JGroup可以基于TCP协议来实现消息广播,也可以通过UDP方式来广播消息,利弊不言而喻,TCP可靠,但是代价大,性能没有UDP来的好,UDP速度快,代价小,但是消息的丢失率以及无序性有着很大的限制。但是JGroup在UDP方式...

    activemq-transport-jgroups-2.1.jar.zip

    标题中的"activemq-transport-jgroups-2.1.jar.zip"是一个压缩文件,其中包含ActiveMQ的一个组件——Transport JGroups模块的版本2.1。这个组件是Java Archive(JAR)格式,通常用于在Java应用程序中打包代码和资源...

    Android代码-jgroups-android

    JGroups - A Framework for Group Communication in Java ======================================================== March 3, 1998 Bela Ban 4114 Upson Hall Cornell University Ithaca, NY 14853 bba@...

    jgroups-3.2

    其工作模式基于IP多播,但可以在可靠性和群组成员管理上进行扩展。其结构上设计灵活,提供了一种灵活兼容多种协议的协议栈,对于每个产品都有不同的可靠性需求。这种协议栈可以让用户定义的自己可靠性指标和性能指标...

    jgroups-2.2.8.jar

    jgroups-2.2.8.jar.........

    activemq-transport-jgroups-1.2.jar.zip

    本文将围绕"activemq-transport-jgroups-1.2.jar.zip"这一主题,深入探讨ActiveMQ与JGroups之间的交互以及其在实际应用中的作用。 首先,我们关注的是"activemq-transport-jgroups-1.2.jar"这个文件。这是ActiveMQ...

    activemq-transport-jgroups-2.0.jar.zip

    标题中的"activemq-transport-jgroups-2.0.jar.zip"揭示了这是一个与Apache ActiveMQ相关的库,特别地,它是ActiveMQ的JGroups传输组件的版本2.0,已经打包成JAR(Java Archive)格式,并且进一步压缩为了ZIP文件。...

    atmosphere-jgroups-0.7.2-sources.jar.zip

    《atmosphere-jgroups-0.7.2-sources.jar.zip》是一个压缩文件,其中包含了相关的IT资源,主要涉及两个核心元素:Atmosphere框架和JGroups库。这两个组件在分布式系统和网络通信中扮演着重要角色。让我们深入探讨...

    JGroups-jdk.zip_jgroups

    在Jgroups-2.5.1-jdk14版本中,我们可以看到这个库支持JDK14,这意味着它已经考虑了现代Java语言特性的兼容性,提供了更广泛的开发环境选择。同时,"www.pudn.com.txt"可能是一个包含文档或者资源链接的文本文件,...

    JGroups-2.6.2.bin.zip

    介绍部分摘自XMPP Jabber即时通讯开发实践 ... JGroups是一个基于Java语言的提供可靠多播(组播)的开发工具包...在IP Multicast基础上提供可靠服务,也可以构建在TCP或者WAN上。主要是由Bela Ban开发,属于JBoss....

    cmi-jgroups-2.0-rc2-sources.jar

    jar包,官方版本,自测可用

Global site tag (gtag.js) - Google Analytics