当前位置: 首页 > news >正文

JSDT 应用研究

原型系统所要实现的基本功能是在Internet上,教师和学生可以完成课堂教学的部分功能。教师在一台教师机上(通过麦克风和摄像头)上课,学生可以通过局域网或者拨号方式,在不同地理位置的学生机上,在不同的窗口看到教师的图像,听到教师的声音并同时看到教师计算机上的数据,完成实时上课。教师也可以将自己的上课的实况录制成相应的媒体文件,存放在媒体流服务器上以便学生进行视频点播。也可以由教师在上课时将该媒体文件通过多播的方式发送给需要接收的学生,学生可以同步的在学生机上接收,完成非实时的上课。考虑到网络传输的带宽问题,学生也可以将教师上课的媒体文件传输到自己的学生机上进行本地播放或者通过WEB服务器提供的媒体流服务,使用HTTP协议穿越防火墙进行远程播放。以上完成的都是远程教学中的音频和视频媒体流的传输和交互。学生和教师都可以通过聊天室进行聊天,完成文字的交互和传输。教师也可以启动电子白板的服务器,并在教师机和学生机上启动电子白板的客户端完成图形和图象的交互和传输。
原型系统要求同时包括视频,音频,文字和数据信息,还要保证各种媒体之间的同步。另外,还要考虑数据流穿越路由器和防火墙和如何保证多媒体信息的服务质量等一系列问题。
5.3系统总体设计
原型系统的体系结构(参见图5.1)中音频和视频的交互和传输的设计思路有两条,一个是采用无服务器方式,即使用标准的WEB服务器和HTTP协议将多媒体数据发送给学生机,另一个是采用专门的多媒体流服务器,它可以存放多媒体文件或者接受教师机的多媒体信号,而且可以使用UDP、TCP、RTP和多播通信协议,有较好的灵活性。但是采用WWW方式可以减少对学生机的要求,提供统一的浏览器界面,方便学生使用。原型系统并不实现媒体服务器和WEB服务器,可以采用现有成熟的产品,媒体服务器可以使用Microsoft Media Server,Cisco IPTV Server,Real Server。WEB服务器可以使用Microsoft IIS,Apache WEB Server等。原型系统中实现一个客户端的媒体播放功能模块,可以以单播或者多播方式接收,用来播放本地和远程的媒体流。系统中也实现多播服务模块用于以多播方式发送媒体流文件或者媒体捕捉。
在很多聊天室的实现中都是以一个中心服务器多个客户机的方式,使用有连接的TCP协议进行通信,在该原型系统中的聊天室部分采用了无连接的UDP协议并通过多播发送,这样不需要建立专门的中心服务器,教师机和学生机完全是对等的。
原型系统中的电子白板仍然采用服务器/客户机方式,可以选择的传输协议包括TCP Socket,HTTP和LRMP(轻量级可靠多播协议),在原型系统中主要采用LRMP协议。白板服务器可以作为独立的服务器,也可以放在教师机上由教师在必要时启动。
原型系统按照上述的体系结构分成三个主要的模块(参见图5.2),音频视频媒体传输模块,聊天室模块和电子白板模块。其中音频视频媒体传输模块包括了服务器的传输本地存储媒体文件和传输视频音频捕捉两个部分,教师机的本地音频视频捕捉和输出到文件模块以及学生机的播放本地媒体,播放远程媒体和多播接收服务器的媒体流三个部分。这三个部分一起完成远程教学的音频视频传输和交互功能;聊天室模块因为采用多播对等方式,所以只需一个模块;电子白板模块包括服务器和客户机两个模块,服务器负责各个客户机间的消息通信和协调,客户机部分完成与用户的交互界面和消息发送接收。
5.4系统设计思路
原型系统主要面向网络运行,考虑到网络的带宽和异构性,原型系统的实现采用了当前比较流行的面向对象的Java语言实现。Java语言具有鲁棒性,安全性等优点,并支持各种操作系统平台,一次编写处处运行。而且提供了非常强大的网络编程机制。面向对象的编程具有继承,封装和多态等特性,能够减少开发周期和维护费用,并具有很好的扩展能力。系统编码采用了Java提供的事件触发和异常处理机制,在产生相应事件时可以通知注册的事件状态进行处理,在系统执行过程中发生异常或者错误,都将调用相关的异常处理代码完成恢复,显示错误信息或者退出执行的操作。除此之外还使用了Java Media Freamwork(JMF)机制,支持多媒体的传输和交互的实现。Java Shared Data Toolkit(JSDT)提供了类似电子白板的数据共享和通信的应用的功能,为实现原型系统的电子白板提供了方便。JSDT提供了三种传输协议实现,TCP Socket,HTTP和LRMP,原型系统采用最后一种,需要一个支持LRMP的Java包。在Java中已经提供了Java.IO包,这个包提供了丰富的网络编程接口,包括多播通信所需要的类。
因为Java具有跨平台的特性,所以对运行原型系统的操作系统平台没有限制,可以是Windows平台或者Unix平台,只要在平台上具有相应的Java虚拟机即可。需要用到的JMF,JSDT和LRMP相关类可以由原型系统自己携带,并制作成安装版本方便安装,分布和共享。
如果通过HTTP分布媒体流,需要WEB服务器,同样的如果需要存储和分发流媒体完成视频点播可以安装成熟的流媒体服务器。电子白板服务器集成在原型系统中,也可以在任何平台上运行。图7.3列出了系统运行所需要的相关内容:

相关文章:

  • 打印js对象内容
  • 【X-Pack解读】阿里云Elasticsearch X-Pack 监控组件功能详解
  • tensorflow开发环境搭建
  • 认识JavaScript中的this
  • 数据拷贝的实现
  • redis遇到过的问题汇总(持续更新)
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日
  • 13.Zookeeper的java客户端API使用方法
  • vue-loader 源码解析系列之 selector
  • 一行一行读Java源码——迭代器
  • asp.net core ef core mysql 新增数据并发异常处理
  • xshell连接Ubuntu系统
  • 多维分析的后台性能优化手段
  • 企业级自动化运维工具应用实战-ansible
  • 网络编程 与 面向对象
  • [nginx文档翻译系列] 控制nginx
  • 【面试系列】之二:关于js原型
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • JavaScript HTML DOM
  • js
  • js面向对象
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • Web Storage相关
  • 技术胖1-4季视频复习— (看视频笔记)
  • 漂亮刷新控件-iOS
  • 前端临床手札——文件上传
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 日剧·日综资源集合(建议收藏)
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 我感觉这是史上最牛的防sql注入方法类
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 怎么将电脑中的声音录制成WAV格式
  • ​第20课 在Android Native开发中加入新的C++类
  • # include “ “ 和 # include < >两者的区别
  • #git 撤消对文件的更改
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (C#)获取字符编码的类
  • (day6) 319. 灯泡开关
  • (二)构建dubbo分布式平台-平台功能导图
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (简单) HDU 2612 Find a way,BFS。
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (九)One-Wire总线-DS18B20
  • (三)模仿学习-Action数据的模仿
  • (十六)Flask之蓝图
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)memcache、redis缓存
  • (转)Oracle存储过程编写经验和优化措施
  • (转)大型网站架构演变和知识体系