论文部分内容阅读
近年来,网络技术的飞速发展,3G基站的全而部署,使得真正意义的远程教育平台的实现成为可能,学生可以在任何有信号的地方加入在线课堂,并进行丰富的学习和交流活动。本文从信令协议SIP (Session Initiation Protocol,会话初始协议)的研究和实现出发,建立不同团体之间的通道,从而为数据流的传输提供可能。本文通过监听模式编程,基本实现了SIP消息的处理流程,包括发送,接收,封装,解码等等。为了使得各操作系统、应用平台能够方便快捷的创建和组织课堂,本文基于快速Web应用开发框架Grails,开发了基于Http协议的Web API,使任何平台都能通过HttpConnection与服务器交互并管理课堂。控制通道建立之后,课堂中的数据传输需要流媒体服务器的控制,于是在权衡多媒体服务器FMS (Flash Media Server)和Red5的利弊之后,从开源多媒体服务器Red5的构建开始研究,依据RTMP(Real-time Transport Message Protocol)协议在不同客户端的实现,在选取了一系列开源并适用于Flash的音视频编解码器之后,考虑到实际应用中对音频和视频需求的不同,将音视频分离开,避免了音视频同步带来的资源消耗。而对于教育系统中的文档与白板共享、文字沟通等其他功能的传输,系统是通过将这些数据置入多媒体服务的共享对象中,并通过远程调用的方式进行传输与交互。在底层控制服务器和多媒体服务器搭建完成之后,本文从视图层着手,为了与其他不同编程语言应用无缝整合,基于OAuth与WebService实现了单点登录功能,并根据授权方式的不同,实现了相应的权限控制、并发控制等功能。同时,针对大用户数的使用,从数据库上进行优化,并利用JSP缓存框架ehcache对客户端的数据对象进行优化缓存,从而组成了一个完整的跨平台远程教育系统。本文的特色在于:根据不同操作系统、不同应用平台的共同性,采用跨平台的Flash player音视频通信、文档与白版共享、文字交流等功能;而针对Flash无法操作的平台,则重写其底层的传输协议与传输数据,从而实现了跨平台远程教育系统的功能。