基于J2EE的大型视频影音系统的设计与实现毕业论文.docx
《基于J2EE的大型视频影音系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《基于J2EE的大型视频影音系统的设计与实现毕业论文.docx(29页珍藏版)》请在冰豆网上搜索。
基于J2EE的大型视频影音系统的设计与实现毕业论文
基于J2EE的大型视频影音系统的设计与实现毕业论文
第1章 绪论
1.1课题的提出
1.1.1Web2.0浪潮进一步影响全球互联网发展
在美国《时代》周刊2006年年度人物的评选中,“你(You)”击败众多名人当选为年度人物。
“你(You)”即网民,当选的根本原因即是网民开始成为互联网的主角,网民在互联网上的个性表达和互动交流开始影响到社会生活的各个层面。
从美国大选到戴尔电脑,从印尼海啸到故宫星巴克,大大小小的事件都成为网民讨论的话题。
网民作为个体发出自己的声音,无数网民构成的群体进而影响全世界,并且影响力与日俱增。
正如《时代》周刊编辑格罗斯曼说的那样:
“(他们)不但改变了世界,也改变了世界改变的方式。
”
其中最重要的背景是:
Web2.0浪潮进一步影响全球互联网的发展。
继2005年互联网掀起2.0浪潮后,全球的互联网正全面加速向Web2.0转变。
以个性化、自组织、开放性等为特征的Web2.0的应用和服务——博客、播客、视频分享、SNS、RSS、分类信息、Wiki等得到了长足发展。
与之相对应的是:
新兴的Web2.0网站在极短的时间里吸引了巨大的访问量,获得了高速成长。
如美国著名的社区MySpace自2004年开通以来,每天新增25万名用户,这使得MySpace在访问量排名中一路飙升,已经接近Yahoo!
、Google等世界顶级网站,并大有快速赶超之势。
此外,Blogger、Wikipedia等网站也保持着高速增长势头。
这些网站共同的特点都是用户高度参与,他们既是信息的消费者,也是信息的生产者,同时,用户之间保持着良好的互动和频繁的交流,而这也正是Web2.0网站保持旺盛生命力的核心所在。
1.1.2视频分享成为2.0浪潮的最新爆发点
在众多的Web2.0应用和服务中,视频分享脱颖而出成为最新的爆发点。
视频分享网站为用户提供视频上传、播放和分享服务,操作简单,传播方便,加上视频本身能带来丰富的用户体验,视频分享网站受到广泛欢迎。
其中的典型代表是YouTube的发展,YouTube是一个美国视频分享社区。
如果说MySpace的快速发展让传统的网站刮目相看的话,YouTube则在更短的时间内创造了互联网史上的新奇迹——YouTube自2005年2月上线不到18个月访问量已经跻身全球前五位,每天的视频点播数已经突破了1亿大关。
YouTube爆炸式的增长在创下互联网史上的网站成长奇迹的同时,也成为互联网并购史上的新的主角!
——2006年10月,Google以16.5亿美元成功收购YouTube,成为近年最大的互联网并购案例。
这起最大的并购背后则是千千万万网民活跃的身影——他们拍摄、上传精彩视频,并且乐此不疲地与周围的朋友分享、交流,频繁的访问和活跃的互动,无数网民的集体力量成就了互联网的新奇迹,也促使新的生活方式的产生。
1.2系统研究目的
对于视频分享网站来说,与网民规模的持续增长相比,宽带用户的增长具有更加重要的意义,因为宽带上网显然更加利于用户在线欣赏视频内容。
宽带用户数量的增长速度高于同期网民数量的增长速度,因此网民中宽带用户比例不断增加,最新的统计数据显示这个比例已经超过75%。
宽带日益普及对于视频分享网站的发展无疑具有至关重要的意义。
在2005年及之前,中国视频分享市场处于初始期,网站数量少、用户规模小、访问量低,视频分享服务尚未获得网民的广泛了解和接受,网站影响范围有限,商业模式模糊不清。
进入2006年后,视频分享市场进入成长期。
这一阶段经过前一时期的营销宣传、服务提升和用户积累,视频分享网站开始快速发展。
尤其是千万美元级风险投资先后注入主要的视频分享网站,整个视频分享网站市场获得的极大的推动,开始爆发式增长,无论是网站数量,还是用户规模都急剧增加。
而YouTube被Google以16.5亿美元天价收购的事件,则将视频分享网站快速发展的热潮推升至前所未有的高度。
互联网实验室研究认为:
随着产业链逐步完善、产业定位逐步清晰以及商业模式逐步明确,中国视频分享市场将经历3-4年的发展后逐步走向成熟。
1.3系统设计目标
视频分享网站系统的特点为,管理员及用户对视频的归档、分类、查询。
本视频分享网站系统的设计目标为:
满足广大WEB2.0用户的需要,开发观看视频、分享视频的网络应用系统。
该系统将由如下几个模块组成:
(1)用户注册登陆及用户信息管理模块。
该模块的数据库中包含各个数据库表:
用户基本信息表、地区信息表。
通过这些数据库表,可方便地将用户注册、登陆及基本信息进行归档管理,并可对所需要的相关信息按要求进行统计和查询。
(2)上传图片,视频模块。
该模块的数据库中包含额用户上传的各个文件:
用户头像、用户上传的视频。
通过对这些文件的整理,可以方便的找到各个头像及视频。
(3)视频信息管理模块。
该模块的数据库中包含视频信息表。
通过这个数据库表,可方便地将视频进行修改与管理,并可对所需要的相关信息按要求进行统计和查询。
(4)评论模块。
该模块的数据库中包含评论信息表。
通过这个数据库表,可方便地将进行评论并对评论信息进行管理。
(5)观看视频模块。
该模块的数据库中包含各个数据库表:
评论信息表、用户信息表、地区信息表。
通过这些数据库表,可方便地将将相关信息进行统计,并使用户能够更好观
第2章 关键技术介绍
2.1网页制作工具——Dreamweaver
2.1.1Dreamweaver概述
Dreamweaver是现在网上比较流行的网页制作软件之一,它简单易学,操作方便,制作过程比较直观,容易上手,而且能够轻而易举的实现一些专业技术才能够实现的功能,而且它的代码提示功能使得开发非常方便,而且不会出现拼写错误,丰富的结果提示使你很容易找到标签的对应关系。
所以它被许多网页制作人员所采用。
2.1.2Dreamweaver简介
Dreamweaver是一款专业的HTML编辑器,与Dreamweaver MX相比有更多的模型可以选择,用于对Web站点、Web页和Web应用程序进行设计、编码和开发。
无论你愿意手工编写HTML代码时的驾驭感还是偏爱在可视化编辑环境中工作,Dreamweaver都会为你提供有用的工具,使你拥有更加完美的Web创作体验。
利用Dreamweaver中的可视化编辑功能,可以快速地创建页面而无需编写任何代码。
你可以查看所有站点元素或资源并将它们从易于使用的面板直接拖到文档中。
修改相关的属性就可以完美得加入你的网页中。
你可以在Fireworks或其他图形应用程序中创建和编辑图像,然后将它们直接导入到Dreamweaver中,或者添加Flash动画对象,从而简化你的开发工作流程,提高你的开发效率。
Dreamweaver还提供了功能全面的编码环境,其中包括代码编辑工具(例如代码颜色和标签完成);有关HTML、层叠样式表(CSS)、JavaScript、ColdFusion标记语言(CFML)、MicrosoftActiveServerPages(ASP)和JavaServerPages(JSP)的参考资料。
Macromedia的可自由导入导出HTML技术可导入你手工编码的HTML文档而不会重新设置代码的格式,您可以随后用你首选的格式设置样式来重新设置代码的格式。
Dreamweaver还使你可以使用服务器技术(例如CFML、ASP.NET、ASP、JSP和PHP等)生成由动态数据库支持的Web应用程序。
Dreamweaver可以完全自定义。
您可以创建您自己的对象和命令,修改快捷键,甚至编写JavaScript代码,用新的行为、属性检查器和站点报告来扩展Dreamweaver的功能。
2.1.3Dreamweaver的作用
Dreamweaver的专业性、直观性、易用性及其强大功能深受业内人士喜爱,并且支持最新的DHTML和CSS标准。
它是目前最好的网页设计软件之一,支持两种主流浏览器,并且支持最新的网页设计技术,是专业人士的首选工具。
2.2数据库——MySQL
2.2.1MySQL的概述
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
2.2.2MySQL的特性
使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统;为多种编程语言提供了API,这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等;支持多线程,充分利用CPU资源;优化的SQL查询算法,有效地提高查询速度;既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名;提供TCP/IP、ODBC和JDBC等多种数据库连接途径;提供用于管理、检查、优化数据库操作的管理工具;可以处理拥有上千万条记录的大型数据库。
2.3开发语言
2.3.1JSP的基础——Servlet技术
JavaServlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
在使用JavaServlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。
许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。
得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合JavaServlet规范,Servlet是完全平台无关且是Web服务器无关的。
由于JavaServlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此JavaServlet效率非常高。
但JavaServlet也不是没有缺点,JavaServlet是利用输出HTML语句来实现动态网页的,如果用JavaServlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。
这就是为什么SUN还要推出JavaServerPages的原因。
2.3.2JavaBeans技术
JavaBeans就是Java的可重用组件技术。
ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或复杂计算分离出来成为独立可重复利用的模块。
JSP通过JavaBeans实现了同样的功能扩充。
JSP对于在Web应用中集成JavaBeans组件提供了完善的支持。
这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性。
JavaBeans组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。
在实际的JSP开发过程中,我们将会发现,和传统的ASP或PHP页面相比,JSP页面将会是非常简洁的,由于JavaBeans开发起来简单,又可以利用Java语言的强大功能,许多动态页面处理过程实际上被封装到了JavaBeans中。
2.3.3JSP简介
JSP共有九大内置对象。
request、out&response--与访问者交互:
接收客户端的请求和向客户端返回信息是动态网页最常做的事情,在JSP中,主要通过request、response、out三大对象实现这些功能。
Request:
对象的作用是接收用户通过URL或通过表单向发服务器发送请求信息和与用户计算机相关的一些信息。
Response:
对象用于网页传回用户端的回应。
Out:
用于传送回应的输出,即向客户端返回信息。
Session:
保持访问者的会话状态。
会话状态维持是Web应用开发者必须面对的问题。
有多种方法可以用来解决这个问题,如使用Cookies、隐藏的表单输入域,或直接将状态信息附加到URL中。
JavaServlet提供了一个在多个请求之间持续有效的会话对象,该对象允许用户存储和提取会话状态信息,JSP也内置了这个对象。
Session最基本的用法是:
创建一个会话session.putValue(“名称”,“值”);获得一个会话的值session.getValue(“名称”);“pageContext”网页的属性是在这里管理。
applicationServlet:
正在执行的内容
configServlet的构架部件
pageJSP:
网页本身
exception:
针对错误网页,未捕捉的例外。
JSP技术可以通过开发定制的标识库进行扩展。
今后,第三方开发人员和其他人员可以为常用的功能创建自己的标识库。
这使得Web页面开发人员能够使用熟悉的工具和如同表示义演执行特定功能的组件来工作。
在国外,JSP+Servlet+JDBC+JavaBean已经成为开发电子商务平台的主流技术。
2.3.4JavaScript简介
JavaScript是由Netscape公司开发的一套语超文本标记语言HTML紧密结合的脚本语言,为网页制作者提供了非常灵活的应用和发挥空间。
JavaScript已经成为当今网页特效设计语言中最流行、最成熟的一种。
主要用于网页的交互性设计,功能十分强大,加上开发人员的设计技巧,实现的特效有时可以达到匪夷所思的地步。
2.3.5AJAX、DWR框架简介
DWR(DirectWebRemoting)是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站。
它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。
它包含两个主要的部分:
允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet(小应用程序)中获取数据。
另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容。
DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用。
2.4网站开发工具——Eclipse
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
2.5免费服务器——Tomcat
Tomcat是Sun的JSWDK(JavaServerWebDevelopmentKit)中Servlet的运行环境(servlet容器)。
Tomcat的源代码被提供给Jakarta项目,在OpenSource的模型下进行进一步的开发。
基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单。
事实上,在很多应用服务器的发布中都包含了Ant。
另外,在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便。
Tomcat也可以与其它一些软件集成起来实现更多的功能。
如与上面提到的JBoss集成起来开发EJB,与Cocoon(Apache的另外一个项目)集成起来开发基于Xml的应用,与OpenJMS集成起来开发JMS应用,除了上面提到的这几种,可以与Tomcat集成的软件还有很多。
2.6环境的安装与配置
第一步安装JDK
首先运行JDK6.0安装程序jdk-6-windows-i586.exe,安装过程中所有选项保持默认;然后配置JDK的环境变量:
在“我的电脑”上点右键—>“属性”—>“高级”—>“环境变量(N)”。
新建系统变量JAVA_HOME:
C:
\ProgramFiles\Java\jdk1.5.0_06;新建系统变量CLASSPATH:
“.;%JAVA_HOME%\lib;”(注意“:
”点号表示当前目录,不能省略)在系统变量Path的值的前面加入以下内容:
“%JAVA_HOME%\bin;”(注意:
这里的分号不能省略)到这里,JDK安装完毕。
然后测试一下JDK是否安装成功在记事本中编写一个小程序,在dos下运行,如果运行正确说明JDK安装成功。
第二步安装Tomcat
Tomcat是免费软件,可以下载压缩文件解压直接使用,也可以安装使用,这里解压“jakarta-tomcat-5.0.30.zip”,将zip文件直接解压到D盘根目录下。
最后配置Tomcat的环境变量:
在“我的电脑”上点右键—>“属性”—>“高级”—>“环境变量(N)”。
新建系统变量CATALINA_HOME:
“D:
\jakarta-tomcat-5.0.30”。
在系统变量CLASSPATH的值的后面加入:
“%CATALINA_HOME%\common\lib;”在系统变量Path的值中“"%JAVA_HOME%\bin;”的后面加入以下内容:
“%CATALINA_HOME%\bin;”到这里,Tomcat安装完毕。
第三步安装Eclipse
Eclipse有很多的插件,可使你的开发更直观、更轻松,还有完美的中文支持等等,这些插件都以压缩包的形式放在features和plugins这2个目录下。
首先安装Eclipse程序。
安装完后,安装MyEclipse插件,运行EnterpriseWorkbenchInstaller_4.1.1GA_E3.1.exe。
注意:
当安装时要选择Eclipse的安装路径,其他选项保持默认。
安装完毕之后,将MyEclipse安装目录下的features和plugins这2个目录覆盖到Eclipse的安装目录下。
最后将刚才安装的MyEclipse卸载。
然后在将汉化的插件放入这两个文件夹,到这里,Eclipse以及插件安装完毕。
第四步安装Dreamweaver
双击应用程序安装即可。
第3章 系统分析
3.1需求分析
第一部分:
用户使用部分:
(1)非用户要注册成为本系统用户,输入注册用户名、注册密码、Email、性别、所在地,如果用户与已在数据库的用户名重复、两次密码输入不正确、Email格式不正确则提醒用户。
(2)用户登陆时要通过用户验证,输入用户名,密码。
选择是否保存密码及保存多久,如果用户名密码不正确,则返回登陆界面。
(3)用户可以查看自己的用户个人信息及修改个人信息。
(4)用户修改密码要通过密码验证,输入旧密码及输入两次新密码,两次密码输入不正确则提醒用户,旧密码不正确则返回提醒用户。
(5)用户可以上传更改头像,方便用户之间交流。
(6)用户可以上传视频与其它用户分享,及修改视频基本信息。
第二部分:
管理员管理部分:
(1)管理员登陆时要通过用户验证,输入用户名、密码,判断是该用户是否为管理员。
选择是否保存密码及保存多久,如果用户名密码不正确,则返回登陆界面。
(2)管理员可以使用普通用户的所有权限。
(3)管理员可以删除用户上传的不合法的视频。
(4)管理员可以删除非法用户。
(5)管理员可以删除非法评论。
第三部分:
所有用户(包括非注册用户)搜索、观看及评论视频部分:
(1)所有用户可以查询自己感兴趣的视频
(2)所有用户可以看视频。
(3)所有用户可以发表评论,注册用户可以显示发表评论用户名。
3.2软件用例分析
用例是从用户和业务的角度来描述系统提供需要执行的功能。
下面列出了本系统主要的用例:
(1)用户登录
使用本系统的用户必须登录才能上传视频及用户间的交互。
(2)用户注销
用户退出本系统。
(3)个人基本信息管理
用户对个人信息进行修改,包括头像、性别、地区等。
(4)视频上传
用户上传视频与其它用户分享。
(5)视频信息管理
用户对视频信息的添加及修改。
(6)视频查询
用户为观看感兴趣的视频而查询视频。
(7)视频观看
用户观看感兴趣的视频。
(8)视频留言
用户查看所有视频留言并发表自己的评论。
(9)管理员管理评论
管理员对违规留言进行删除。
(10)管理员管理视频
管理员对违规视频进行修改及删除。
(11)管理员管理用户
管理员删除非法用户。
3.3用例建模
用例模型描述的是外部执行者(Actor)所理解的系统功能。
它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。
在需求分析阶段,可以用用例来捕获用户需求,以描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。
3.3.1标识参与者
参与者是指系统的分类用户,分别代表一个唯一的角色。
对本系统来说,存在相互联系如下3类用户:
管理员:
通过系统管理所有的用户、视频、评论等等信息。
管理员是系统中权限最大的用户,权限几乎涉及所有方面。
注册用户:
通过系统管理自己的基本信息、修改密码、上传头像,管理本人上传的视频、修改信息及删除视频等
非注册用户:
通过系统搜索观看视频、并对视频进行评论等。
3.3.2用例图
用例图(UseCase)是参与者(系统外部用户)所能观察到的系统功能的模型图(见图1),它描述参与者与系统提供的用例之间的某种联系。
用例是系统中的一个功能单元,是对系统提供的功能的一种描述,是参与者与系统之间的一次交互过程。
参与者是那些可能使用这些用例的人或者外部系统。
用例图就是从参与者的角度描述出系统中的用例和参与者,以及用例与参与者之间的关系(哪个参与者参与了哪个用例的执行),本系统用例图见图3.1所示。
图3.1用例图
3.3.3活动图
活动图的主要作用是表示系统的业务工作流和并发处理过程(见图3.2及图3.3)。
它能够更容易显示参与者的决定和系统异常所要执行的多条路径,而这用顺序图是难以表达的。
活动图在概念上与流程图相似,用它来为工作流程建模,以及用来图解用例的动态行为和操作的详细设计是很有用的。
一旦一个活动完成,执行就转到由活动的有效转移所确定的下一种状态。
在活动图中,泳道可用于在一个活动图中显示多个对象,以及它们如何在一起完成整个用例。
根据需求分析为系统的核心业务绘制活动图,明确在业务工作流中参与者与系统各用例之间以及系统用例之间可能的交互。
正确地捕获需求,对于开发成功的系统并保持其长久的生命力是必不可少的。
在UML中,用例建模提供了一种简单、但功能强