版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、案卷号日期V在线音乐播放系统详细设计说明书作 者:完成日期:签收人:签收日期:修改情况记录:版本号修改批准人修改人安装日期签收人1引言1.1编写目的为软件开发人员在编码的过程中有所依据和参考面向人员:程序开发人员1.2背景说明:a. 待开发的软件系统的名称:在线音乐播放系统b. 列出本项目的任务提出者:北软老师c. 开发者:邓凯d. 用户:广大互联网用户e. 将运行该项软件的单位:web服务器1.3定义OMS :0nline music system,在线音乐播放系统。1.4参考资料列出要用到的参考资料,如:a. 本项目的经核准的计划任务书或合同、上级机关的批文;b. 在线音乐播放系统概要设计
2、.doc;c. 本文件中各处引用的文件、资料,包括所要用到的软件开发标准。 列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2程序系统的结构本程序主要采用四层结构,如下所示:用户层(UI)业务逻辑层(service)数据访问层(DAO)数据层(DB)图1系统结构示意图3 程序(标识符)设计说明3.1 在线音乐网络爬虫设计说明:资源的数量和质量将决定了系统的商业价值,为了获取更多的网络媒体资 源,为系统设计了一款针对互联网上音乐资源的网络爬虫。3.1.1 爬虫的原理 :网络爬虫是一个自动提取网页的程序, 它为搜索引擎从 Internet 网上下载网 页,是搜索引
3、擎的重要组成。传统爬虫从一个或若干初始网页的 URL开始,获 得初始网页上的URL,在 抓取网页的过程中,不断从当前页面上抽取新的 URL放入队列,直到满足系统的 一定停止条件。聚焦爬虫的工作流程较为复杂,需要根 据一定的网页分析算法过滤与主题 无关的链接,保留有用的链接并将其放入等待抓取的 URL队列。然后,它将根据 一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮, 进行一定的分析、过滤,并建立索引,以便之后的查 询和检索;对于聚焦爬虫 来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指
4、导。相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:(1) 对抓取目标的描述或定义;(2) 对网页或数据的分析与过滤;(3) 对URL的搜索策略。3.1.2 在线音乐播放系统爬虫的设计:与通用爬虫不同,在线音乐播放系统爬虫只针对 格式的资源3.1.3 爬虫的流程图 :为保证资源的数量和可用性,每首歌至少抓取3个不同url地址输入:初始URL集。算法:广度优先遍历。输出:歌曲-URL地址的索引集。3.2资源验证模块资源响应模块对资源进行验证。验证的标准有1. 文件的MIME类型2. 资源的响应时间输入:URL地 址输出:是否符合要求的布尔值。URL地址添加资源3.3播放模块:331播放模式的
5、选择:1)随机播放2)顺序播放3)单曲播放算法:用一变量记录当前模式,当捕获来自客户的模式改变的请求后,变量值变成相应的模式的值,调用不同德程序段空置音乐播放次序。3.3.2资源的改变:每首歌曲服务器将会发送三个链接至播放器,如果前面的链接在3秒之内没有响应,则将资源转换为另一个资源,同时发送错误信息给服务器。算法:在系统中设置定时器,如果定时器超时,则自动提取另一个链接。3.4查询模块:系统本地资源主要来自网络爬虫,同时支持在线查询,用于完善查询功能。 用户可以输入歌手名,或者歌曲名称查询,系统首先会在自己的数据库查询,如 果没有找到相应的结果,那么系统转向互联网发送请求,同时解析返回的页面
6、, 提取页面中url地址,歌手信息,歌曲信息,将信息按一定格式存入数据库。同 时将信息发送给客户端。这样就保证了系统资源不断丰富。341具体功能:1, 、歌手查询。查询出系统内所存的所有歌手信息。点击歌手会获得此歌手所唱的所有 歌曲。点击歌曲可以加入播放器播放,拖动可以加入我的收藏夹,所有的操作都 会由系统给出提示。2、歌曲查询输入歌曲名称,可以获得所有同名的歌曲,以及其歌手3、歌曲-歌手查询。同时输入歌曲和歌手信息,可以输出与此相匹配的歌曲和歌手信 息,同时,如果在本地数据库中不存在,系统将转向互联网查询,并将 查询结果存入数据库,然后发送给客户端。4、下载当用户单击某一个歌曲的条目时,在系
7、统界面的下框中会出现 三个 可选项下载、MV。如果用户单击下载,系统会提取歌曲条目中的url地址,自动建立连接。如果连接成功,则会弹出MP3的下载框。可以很方便地为用户提供下载服务。如果用户点击MV ,则系统会自动提取歌手信息,歌曲信息,发送请求至同时将新建窗口,将返回的结果显示在新窗口中。用户反馈模块主要用来收集用户的反馈信息, 在播放的过程中, 会因为各种各样的原因,导致歌曲播放的效果不尽如人意,还有很大一部 分可能会出现内容与名称不匹配,而资源验证模块的工作只能初步地判 断资源的可用性,所以为了提供更好的用户体验,需要广大的用户积极 地参与系统的改进。当歌曲被选中播放时,系统会出现错误报
8、告的选择框,里面所罗列 的条目有以下几条1.、链接速度过慢2.、是网友翻唱,或者其他类型的音频3、是另外一首歌4. 、歌曲质量差5、是其他以上没有列出的原因用户可以选择其中的一项,向服务器发送错误报告,服务器会记录 每一条错误报告。选取歌曲播放系统出现错误报告选择框选择错误信息L向系统发送错误报告、!系统提取正在播放的歌 曲的url地址厂系统存储错误报告3.6系统提示模块:为了加强与用户的互动,系统提供了丰富的提示功能,当用户的行 为触发不同的事件的时候,将会弹出不同的提示框,用以给用户适当的 提示。系统提示模块贯穿于整个系统。用户动作触发事件1r系统捕捉事件辨别事件h _J理呈现不同的提示用
9、户注册模块:3.7用户登录模块:用户的权限分为 游客,会员,管理员。登录后根据不同的权限, 所看到的界面不一样,当会员登录后,将不可见到管理员所能操作的模 块,管理员登录后,将会呈现出系统管理模块。3.8系统管理模块:主要对系统中的资源进行管理,处理用户以及系统提交的错误报告。主要采用了以下几个措施来维护系统资源。1. 、利用资源验证模块的测试功能,对错误信息为链接速度过慢的资源进行测试,如果测试结果为资源不符合要求,则替换资源。2, 、对其他类型的错误信息,提供试听功能,人工地辨别错误。3、对已经辨别的错误,提供更换资源的功能。利用网络爬虫,在互联网上自动地寻找与先前的资源不同的资源。管理员
10、人工辨别更换资源3.9 娱乐频道模块:此模块利用 rss 技术,为用户提供更为方便快捷的娱乐资讯。3.9.1 RSS 简介RSS是在线共享内容的一种简易方式(也叫聚合内容,Really SimpleSyndication )。通常在时效性比较强的内容上使用RSS订阅能更快速获取信息,网站提供RSS俞出,有利于让用户获取网站内容的最新更新。网络用户可以在客户端借助于支持 RSS的新闻聚合工具软件(例如 SharpReader,NewzCrawler 、FeedDemo)n ,在不打开网站内容页面的情况下 阅读支持RSS俞出的网站内容。本系统利用爬虫的页面下载和解析功能,抓取各大网站的 rss 发
11、布地址, 下载并解析页面。可以聚合多个网站的信息。获取rss地址3.10注册模块:3.10.1 功能:用户注册,用户需要填写用户名,密码,在填写完用户名之后,浏览器会异 步地发送请求给服务器,验证用户名是否可用。3.11我的收藏:系统为每个会员用户维护一个我的收藏。会员用户可以将自己喜欢的歌曲添加进我的收藏,可以讲我的收藏中的歌曲添加进入播放器用户动作4系统架构设计:4.1.、前台:JavaScript构建 AJAX 引擎AJAX的最大机遇在于用户体验。在使应用更快响应和创新的过 程中,定义Web应用的规则正在被重写;因此开发人员必须更注重用户。 现在用户已经逐渐习惯 如何使用Web应用了。例
12、如用户通常希望每一 次按钮点击会导致几秒的延迟和屏幕刷新,但AJAX正在打破这种长时间 的状况在线音乐系统主要的目的是为用户提供一流的体验,所以在系统的实现中应该大量地采用 AJAX技术。4. 2、后台:struts2 spri nghiber nate 框架。Struts用于将请求与视图分离,hibernate实现对象模型到关系模型的映射。Spring用于实现系统的控制反转。421视图层设计:Struts是一组相互协作的类、servlet和标记组成的一个可重用的MVC 设计。 这个定义表示Struts 是一个框架,而不是一个库,但 Struts 也 包含了丰富的标记库和独立于该框架工作的实用
13、程序类。I.Struts 的基本特点对Servlet和JSP的增强,减少代码编写量基于 Web MV模式,规范java Web开发改善java Web开发的扩展性2.Struts 的优缺点优点:使用广泛,用户众多,就业有优势;历史较长 , 有成熟的第三方工具支持 ;有很多web应用使用struts.缺点:由于历史较长 , 一些功能比较落后 ;配置较为繁琐 ; 编程模型需要线程安全的支持 , 影响性能 .3.struts 的 MVC简介1)Struts 中的 Controller (控制器) 命令设计模式的实现: Struts 的控制器将事件(事件通常是 HTTP post )映射到类的一个 s
14、ervlet. ActionServlet ( C omman)d 创建并使用 Action 、ActionForm 和Actio nFo rward . 通过 struts-co nfig.xml文件配置该 Comma nd 从而扩展Action 和 ActionForm 来解决特定的问题。 可以通过扩展 ActionServlet 来添加Comma nd功能。在Struts框架中控制器组件由三个部分构成:1 消息控制模块;用户所有的提交请求都发往消息控制模块,在由消息总线模块根据视图映射模块找到消息处理模块来执行处理逻辑。消息控制模块接收所有用户的请求,并根据请求视图找到处理。 Strtu
15、s 中通过 ActionServlet 和 RequestProcessor 类来完成。2消息处理模块; 该模块执行该消息的逻辑处理,因此通常由用户扩展实 现。Struts 中通过 Action 类来实现。3视图映射模块;控制器逻辑和视图逻辑之间的结合是通过配置模块和建 立其的链接。 Struts 中配置模块通过 ModuleConfig 类来完成,而配置文件由 struts-config.xml 文件提供。4.Struts中的View (视图)视图组件通过JSP组件实现的。Struts框架对视图组件进行了扩展和封装。Struts 对视图的扩展提供了一组扩展标签用来提供视图显示以及传递数据到处
16、理缓冲,而处理缓冲由 ActionForm 的扩展 类来实现。 Struts 框架利用ActionForm Bean来实现视图与控制器之间的数 据的交互,维持会话级或请求级的模型的状态。服务器标签主要包括: Html 视图标签; Logic 逻辑流程控制标签; Bean 数据缓冲 读取标签;5.Struts中的Model (模型)1,Struts框架中并没有定义特定的模型组件,而是希望由用户自己决定选择合理的模型组件。中可用的模型组件包括:JavaBean用户定义组件;EJB组件,由EJB容器实现组件;JDO未来J2EE数据访问模型;一些扩展框架如:;2,模型中状态的级别 会话级或请求级: A
17、ctionForm bean 来维持;持久级: 模型组件来维持;根据需求,需要以下action响应不同的请求;ChangeJ ava.1 CollectionSearchjava r7 dclte-JavsErrorjava4 ErrorManagerJavalogin.javaJl register javarsjsvsJ Searchjavs l SingerS earth .java J| SpeadlTe st javauploadjava系统对象模型设计:UrlffrDETKi址fo- ri_kJ - inirscng id - iiroi电注Erg.uii LciclJiev: :
18、jpu 1: :l: String*IMO押LJrl冲 setLIrL 心! *jtiSonic|. 剜50丘世.料也 SOTdlTlOl 知否 SwLifilj- OUtpUtOjraon . Lo Z3 V*5詩亦16*0 getScr jrwiii 町 需貞Scq r ar 吟tSir-ers ne *5 tSirQsrrrO terror viewQ *3tSirendO *setSin*aerd| *3etErtoL0 HetErrocKM) 3tE rromessageO setE rroc s &)*setUriZdO *attudo HetUrtO *aelSo0a *setS
19、cn.g_d(a ,S .jng. StrungzingerrLirre : Logical.ew :.o#石:1叭 StrmfltcmplacY per#他幻啲P二诳.Lggicil;由v.ws.M忙.Srirfi BUn“9v(w: Lcgd Vittf. atfa:iane:;trifli 细so p5_n - ir tp 4ft 血叫声 t Seng _ 園 sEtSong交setg 萨 rwmet!*sEtLH0*t5onsin-a?se t3ng ian s-JLtputflEror;伽 iwti;良”rro*_d: mtl%. rl_j M略PE-rr*監科 g inf*ErTp
20、fp.tltiC驚并tr1JdOxtLM:啣 5-st Mrp_L =rS詐恒HJSLrl&S丹2噩Grrorview(Xomviar)erwd: int- 电essage mt 野-C : mt-1: Logical Vcjav3::lar.g:Stir.g%song_ri : mt怎兰叱昌F_hhl : Logeal Vj&a.::jav ar:lang:tzg ft5Dr-;nanne: Logcai java, lang:Strr)g fesir-jerid : intSaijljhomn9 coerfr=ongid : int卷三厂m : Lqgkzal /归盅:j-hws :IsL
21、itg:Sl-i书fitSoagMO 也呷 idf)“恪护恃*tNa 电 nutputO*outpn:J-u対_ptijn nUsen瞰3M 帕etl的 etpL 叫酣0 吟樂沪汀丫占0 督etllterrn虬) =*tlJi*Tirri:j*=*tFastdC一一w鄭幻-LojtjiI .:-貝va:5n(;Fteoe ueernarna : Logical Vkm: : jav: 睹djsgmc : Loqiusl VcfJ1 庐la-: Strmg 曙=_ TV f :Log;卜cal:pva: larg:StTingSin0tr:血701:,聯*七1 : LogiDHl Viaw:ji
22、jUng:Strif 蚣血讯 mt励 ”*2 : Looal ViBN:;i;:l4ng;Wtriyg*SinwQsetNaumelQ-get5ireradlietNaYrLeSiJl|setNanie2Q帕 wtputffLgerCollKtrtMlmwi:-DOlHEia iH忱dltM刖 getColleciioidQ *5tlo *:foniaj律山罪|QStrUMr*5fSy !422业务逻辑层设计:Spri ng 简介Spring作为实现J2EE的一个全方位应用程序框架,为开发企业级应用提供了 一个健壮、高效的解决方案。所谓全方位,主要有以下几个特点:1非侵入式:对于
23、写代码从来不考虑复用和移植的程序员来说,这一点根本就没有吸引力,那么请跳过。所谓非侵入式是指Spring框架的API不会在业务 逻辑上出现,也就是说我们的业务逻辑应该是纯净的,不能出现与业务逻辑无关的代码。首先针对应用而言,这样我们才能将业务逻辑从当前应用中剥离出来, 从而在其他的应用中实现复用;其次针对框架而言,由于业务逻辑中没有Spri ng的API,所以业务逻辑也可以从Spring框架快速的移植到其他框架。2容器:Spring提供容器功能,容器可以管理对象的生命周期,对象与对象 之间的依赖关系。你可以写一个配置文件(通常是xml文件),在上面定义对象 的名字,是否是单例,以及设置与其他对
24、象的依赖关系。那么在容器启动之后, 这些对象就被实例化好了,你直接去用就好了,而且依赖关系也建立好了。3 IOC:控制反转,谓之依赖关系的转移”,如果以前都是依赖于实现,那 么现在反转为依赖于抽象吧, 其实它的核心思想就是要面向接口编程, 至于何谓 接口何谓抽象,以及它们的好处,多看看设计模式吧,这里就不费口舌了。4 依赖注入:建立对象与对象之间依赖关系的实现,包括接口注入、构造 注入、set注入,在Spring中只支持后两种5 AOP:面向方面编程,我们可以把日志、安全、事务管理等服务(或 功能)理解成一个 “方面”,那么以前这些服务一直是直接写在业务逻辑的代码当 中的,这有两点不好; 首先
25、业务逻辑不纯净, 其次这些服务被很多业务逻辑反复 使用,完全可以剥离出来做到复用。那么 AOP就是这些问题的解决方案,我们 可以把这些服务剥离出来形成一个 “方面”,以期做到复用;然后将 “方面”动态的 插入到业务逻辑中让业务逻辑能够享受到此 “方面”的服务其他还有一些特点不是 Spri ng的核心,这里只做简单陈述,如:对 JDBC 的圭寸装与简化,提供事务管理功能,对 O/R mapping工具(hibernate、iBATIS 的整合;提供MVC解决方案,也可以与其他 web框架(Struts、JSF进行整合; 还有对 JNDI、 mail 等服务进行圭装。4.2.3数据库层设计 :系统
26、 ER 图:Fnn(7iHWK1V eror (H:4 叩即t IF!T(Rai网)令 Einger_nam&_i! vARCHfiR po* mad;IiWSaiailffK)v arqeid:u_d IKEGER.ll;、* ?mg_dil aza壮R巧刖y C 1ES5隹;MT三庁巳仃二)r.wn昭01 STOfJd UVrECEHai)VJ uld: TnUZR(ll)(R)CtTCl.nBSigs :r-FEGERi 11):.Bl 05l_otfiecionl LdKlIirLC: HT&j?(.1L)Rr C4* UB-d :UTGCR(ll) / arLid: IN-RRtll
27、 yaQ曲jjtjOTUjI0 uiljd: UTEGEfifU)平3:曰1比现11 j aongu-rl: /AEU-UR(255) j命中jd;衆旧壬丸11)桃) eiror_ctiunt: ftOTGEfi(力)Lu5Efi d INTEGERQ LEMrMB:.丿匚凝 aOC .fARCHER (255)7廿 ingfr.d; lhTE00F(llJ j jni;er_ranB_l 从1恥:30: /百r r jne 2 v/KlPh-IjjJitII it rcrc泮 sangl INTEGER (11) :.Hkijeid tVTEFiLI) 、* 3ui Mdiiz vRc-if
28、iF rio)Q flroad象关系映射架构中的领导地位,而且它的很多设计还被J2EE标准组织吸纳成为Hibernate 简介Hibernate 是目前流行的 ORMH 架。ORMObject/Relatio nalMap per)即“对象/关系型数据映射”,这是一种主要的对象持久化技术,需要同时使用面向对象和关系型数据进行开发。Hibernate的轻量级ORM模型逐步确立了在Java对EJB3.0规范化标准。1. 什么是ORMORM勺全称是Object Relational Mapping,即对象关系映射。它的实现思以对象的形式展现,这样开发人想就是将关系数据库中表的数据映射成为对象, 开发人员以面向对象的思想来实现对数据库的操作。员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便2. 什么是 Hibernate对于Hibernate的称呼有很多,比如工具、技术、框架以及解决方案等,这 些都可以,重要的是大家要知道它的作用。在这里我习惯性称它为框架,它是 一种能实现ORM勺框架。能实现ORh这个功能的框架有很多,Hibernate可以说 是这些框架中最流行、最受开发者关注的,甚至连JBoss公司也把它吸收进来,利用它在自己的项目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老院呼吸道聚集性疫情处置课件
- 山西省临汾市医疗卫生机构所属招聘雇员同步强化训练
- 《系统中的闭环控制》教学设计-2026-2027学年川教版(新版)小学信息科技六年级上册
- 2026年交通运输工具设计工程师试题及答案
- 2026年绿色建材应用系统工程师资格考试试题及答案
- 2026年药品GSP培训考核综合试卷测试题库(含答案)
- 2026年术中快速病理沟通三基三严培训计划
- 2026年药品经营质量奖惩执行记录培训试题(含答案)
- 2026年药店从业人员药品管理考试题及答案
- 2026年危重孕产妇抢救团队三基培训考核计划
- 新增钢梁钢柱施工方案
- 厨房油烟清洗记录表规范模板
- 医院智慧管理分级评估标准体系(试行)-全文及附表
- 华兴数控WA-32XTA用户手册
- 科技成果转化贡献证明书(7篇)
- GB/T 34722-2025浸渍胶膜纸饰面胶合板和细木工板
- 鼻腔冲洗考试题及答案
- DJDK-1型电力电子技术及电机控制实验装置实验指导书V34版
- DB14-T 2870-2023 石窟寺预防性保养技术规范
- 老年人扭伤应急预案
- 水产饲料购销合同样式
评论
0/150
提交评论