胡 斌
摘 要:现有的流媒体系统采用浏览器/服务器体系结构,为师生提供了方便实用的在线学习系统平台,但缺少对学习的监督和评价机制。基于JSP技术和Oracle技术的视频点播系统,在流媒体系统的基础上增加了相应的教学支撑子系统,且提供对视频内容的索引功能,实现视频内容的相关介绍性信息同步呈现。其在有效利用流媒体技术为网络教学服务同时,增强了在线学习的实用性和交互性。
关键词:流媒体;视频点播;JSP;B/S结构
中图分类号:TP311文献标识码:B
文章编号:1004 373X(2009)02 111 03
Design and Implementation of Stream Medium System Based on Web
HU Bin
(College of Information Science and Engineering,Bohai University,Jinzhou,121000,China)
Abstract:Existing stream medium system uses browser / server architecture,provids a convenient and practical online learning system platform for teachers and students,which lacks of monitoring and evaluation mechanism for studying.It introduces a VOD system technology based on JSP and ORACLE,it adds the corresponding teaching support subsystem on the basis of stream medium system.The system provids video content indexing and the video content of relevant information on the show simultaneously.With the stream medium technology in teaching network services,it enhances the practical and interacive function of online learning.
Keywords:stream medium;video-on-demand;JSP;B/S structure
0 引 言
Internet的迅速普及和发展,给人们的生活和学习方式带来了极大的变化,越来越多的人正通过远程教育不断提高自己的知识水平。传统的主要基于课堂的教学方式需要在这种发展变化中进行革新。教学视频资源的在线点播,能弥补单纯课堂教学在时间和空间上的局限性,使学习者能灵活安排课余时间和学习场所,通过网络教学视频重温课堂教学过程, 并且学生能及时的反馈, 同时,教师也能将教学视频资料随时上传到该系统。由此可见,这种基于网络环境下的流媒体系统是一种灵活、高效的教学方法,加强了师生对教学过程的参与度,
提高了教学质量。
1 系统总体结构的设计
1.1 系统设计的方案
作为网络教学平台中最为重要的组件之一流媒体系统,其目标是在Internet/Intranet上设计在线学习系统,所以首先要考虑的是系统的维护工作量,尽可能地减少客户端的系统维护工作。因此,该系统的体系结构建立在Web的B/S基础上,通过与B/S结构的数据库管理系统结合,真正实现了瘦客户机模型或称客户端零配置,使得系统的维护仅需在服务器端进行。良好的可扩展性是系统的另一个重要设计原则。系统采用模块化的设计方法,选择易于扩展、跨平台的JSP编程语言环境,使用Oracle作为后台数据库。整个流媒体系统可划分为若干个功能模块,而且各个功能模块之间是相互独立的,因而各部分都可以独立地进行功能的完善和扩展。系统采用Window 2000 Server作为网络操作系统,Oracle作为数据库服务器,Apache作为应用程序服务器,流媒体服务器使用 Helix Server 9.0开发,并用JavaScript脚本语言编写客户端的程序,以便配合JSP语言开发服务器端的应用程序。
1.2 数据库设计
数据库设计主要是为系统设计数据库与表,该系统具有以下几个表:学生基本信息表、教师管理员表、院系信息表、教学科目信息表、学生选课表、教师授课表、媒体信息表、留言信息表其中主要是媒体信息表和留言信息表,媒体信息表记录媒体的相关信息,其属性主要包括自动编号、路径文件名、文件大小、类型、索引关键字1、索引关键字2、索引关键字3、所属科目、所有者编号;留言信息表:记录论坛的留言信息,包括留言的标题、内容、媒体编号、发表者、发表日期等内容。
2 系统功能模块设计与实现
整个系统功能模块如下图1所示,主要功能模块分为前台浏览搜索模块和后台媒体管理模块。
前台程序部分主要实现学生登录的身份验证,分课程显示相应的在线视频。前台首先要求学生输入姓名、学号进行身份验证,系统从学生信息表中检索,若输入的姓名和学号不在库中,给出相关提示,要求重新输入;考生成功登录后,即可对自己感兴趣的科目进行点播,系统将自动记录学生登录的时间及在线时长,以及给出下一步的学习策略。
系统后台管理程序采用系统管理员和普通教师两级管理模式。普通教师具有上传、删除视频资料功能,修改视频文件索引内容,学生对课程的一些看法管理,学生学习情况查询和统计等功能;系统管理员具有系统的完全权限,具有教师的所有功能外还包括教师基本信息管理、学生信息管理、课程信息管理、系统设置。后台管理功能可以在任意地方以Web方式进行在线的管理,登录时首先进行身份认证,然后根据管理员表中的信息来进行相应的管理。因此,后台管理功能主要分为两大功能模块:一方面是系统管理员(相当于教务处人员)的管理模块,主要的功能是课程管理;学生信息管理;教师的基本信息管理;系统的版面设计等;另一方面是教师的管理模块,主要是对视频文件和学生留言的管理以及对学生学习情况的统计功能。
3 系统中关键技术的实现
3.1 关键代码介绍
对于本流媒体系统来说,主要是利用Jbuilder9编写JSP应用程序,其中主要是对Oracle中的数据库中的数据进行增加、删除、修改和统计输出操作即数据库的读、写操作,完成大部分的功能模块的编写。限于篇幅,下面主要介绍两个关键部分的代码如下所示:
<%@pageimport="java.sql.*"%>
<%
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Stringurl="jdbc:oracle:thin:@10.10.14.97:1521:streaming";
Stringuser="bhdx";
Stringpassword="abcdefg";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
} catch (ClassNotFoundException ex) {
} catch (SQLException e) {
e.printStackTrace();
} %>
该程序段的功能是JSP连接数据库。其中streaming为数据库名;user是该系统数据库的用户名;password是访问数据库的密码。而前台是提供学生一个视频文件列表和提供按文件名或索引关键字进行查询功能;后台程序主要是对数据库中数据进行增加、删除和修改等功能,下列程序是视频文件搜索模块:
<% String filename="";
String sql="select filename,filepath from streaming_file where filename like ′"+filename+"′";
ResultSetrs=stmt.executeQuery(sql);
out.print("<table border=0><caption>流媒体文件列表</caption>");
if(rs.next()){
out.print("<tr><td><a href=rtsp:\10.10.14.91"+rs.getString(2)+""+rs.getString(1)+">"+ rs.getString(1)+"</a></td></tr>");
}else{
out.print("很遗憾,无视频文件!<a href=javascript:history.go(-1)>返回</a>");
}
out.print("</table>");
rs.close();
stmt.close();
conn.close();
%>
3.2 流媒体服务器介绍
该系统采用的流媒体服务器是 Helix Server9.0。Helix Server不支持所有的流媒体文件,所以还要一些软件支持,因此Helix Universal Platform提供了一个功能强大的工具Helix Producer。它可以将Helix Server 不支持的流媒体文件转换成支持的流媒体文件。
Helix Server提供了多种类型服务:
(1) 点播(On-Demand)。
任何时候,用户都可以通过单击Helix Server管理员公布的Web连接,向Helix Server提出播放流媒体文件的要求,服务器再按照用户的要求,以“流”的方式不断地把数据传给用户。用户可以像播放本地流媒体文件一样,随意控制文件播放。
(2) 直播(Live)。
网络直播和现实生活中的电视直播方式是类似的。直播的过程大致如下:
① 用数/模转换设备如视频采集卡将采集的模拟信号转换成数字信号;
② 数字信号经压缩编码软件,如Helix Producer转换成流媒体数据流,并送往Helix Server;
③ 用户单击连接时,Helix Server将接收到的数据流发送给用户。与点播不同的是用户收看的是实时信号,但用户不能控制快进、暂停。
(3) 模拟直播(Simulated Live)。
模拟直播的过程如下:
① 流媒体文件储存在服务器或其他PC机上;
② 利用Helix Server提供的辅助工具“SLTA”,将流媒体文件以数据流的形式发送给Helix Server;
③ 用户单击连接时,Helix Server将接收到的数据流发送给用户。用户看到的是事先制作好的流媒体文件,就象是日常生活中通过电视收看故事片一样。
若采用Microsoft 公司的 Windows Media Technology,则上述代码中“<a href=rtsp:\10.10.14.91”部分可改为“<a href=mms:\10.10.14.91”。Windows Media Technology 是 Microsoft 提出的信息流式播放方案,其主要目的是在Internet 和 Intranet 上实现包括音频、视频信息在内的多媒体流信息的传输。Windows Media Technology 由 Media Tools,Media Server 和Media Player 工具构成。MediaTools 是整个方案的重要组成部分, 它提供了一系列的工具帮助用户生成 ASF 格式的多媒体流 ( 包括实时生成的多媒体流) ,分为创建工具和编辑工具两种,创建工具主要用于生成ASF格 式 的多媒体流,包括:Media Encoder,Author,VidToASF,WavToASF,Presenter 五个工具;编辑工具主要对ASF格式的多媒体流信息进行编辑与管理,包括后期制作编辑工具ASFIndexer与ASFChop,以及对ASF流进行检查并改正错误的 ASFCheck。Media Server提供 ASF流式媒体的网络发布服务,包括两大基本服务模块:Unicast Server 和 Station Server。其中,Unicast Server为客户提供了点对点连接方式服务,Station提供广播式服务。Media Player是客户端播放工具,提供强大的流信息的播放功能。
4 结 语
该系统解决了学生课余自学课程的问题。这种基于Web的流媒体系统问题的提出、设计和开发都是基于网络环境下教学的实际需求而进行的,经过了一段时间的试用,大大提高了教学的信息化和网络化程度,提高了教学效率。在此认为这是一个有价值的实用的在线教学系统平台。在今后的使用过程中,教师和学生一定会对系统的功能提出更高的要求、反馈意见和建议,该流媒体系统也会进一步地实用和完善。
参考文献
[1]杨波,廖建新,朱晓民,等.基于对等网结构的流媒体系统研究.计算机工程,2007,35(14):192-194.
[2]李桂香,吴元保,贺贵明.广域网实时流媒体传输的质量控制.计算机工程,2007,35(9):225-227.
[3]李月.Real流媒体技术构建网络教学系统.辽宁工程技术大学学报,2005,24(3):410-412.
[4]刘冬.应用于网络学习的实时流媒体点播系统.中山大学学报:自然科学版,2002,41(Z1):4-6.
[5]梁晋.Windows流媒体技术与远程教育设计.小型微型计算机系统,2000,21(10):1 108-1 111.
[6]史红.谈流媒体技术的应用.科技信息:学术版,2007(28):56.
[7]齐蕾.流媒体技术在校园网中的应用.中国科技信息,2005(12):21.
[8]马俊国,鲁伟义.浅谈通信教育网络的流媒体技术.中小学电教:教师版,2005(3):69.
[9]王一春,王国明.流媒体技术在现代网络教学中的应用.教育信息化,2005(6):72.
[10]周德富.流媒体技术在远程教育中的运用.现代远距离教育,2005(2):60-63.
[11]刘建彪.基于流媒体技术的远程教育系统的设计与实现.计算机工程,2002,28(10):264-266.
作者简介 胡 斌 男,1977年出生,浙江安吉人,讲师。研究方向计算机网络。