- 无标题文档
查看论文信息

中文题名:

 基于HTML5的Web推送系统的设计与实现    

姓名:

 罗威    

学号:

 1049721301400    

保密级别:

 公开    

论文语种:

 chi    

学科代码:

 081203    

学科名称:

 计算机应用技术    

学生类型:

 硕士    

学位:

 工程硕士    

学校:

 武汉理工大学    

院系:

 计算机科学与技术学院    

专业:

 计算机技术    

研究方向:

 系统集成及计算机应用支撑技术    

第一导师姓名:

 石兵    

第一导师院系:

 武汉理工大学    

第二导师姓名:

 蔡煜    

完成日期:

 2015-04-10    

答辩日期:

 2015-05-21    

中文关键词:

 WebSocket ; Server-Sent Event ; 消息推送 ; HTML5    

中文摘要:

随着互联网技术的发展,实时性已经成为Web应用的发展趋势。在需求上,越来越多的Web应用开始提供实时性的用户体验,它们希望在页面加载完成后,服务器上更新的消息能及时推送到页面上。目前现有的HTTP协议并不能实现服务器端到浏览器的主动推送,即使是基于HTTP轮询的推送方案,只能使用间隔刷新来模拟推送过程。为了从技术上解决这个问题,HTML5新标准中提出了WebSocket和Server-Sent Event这两种支持服务器主动推送的技术。借助服务器和浏览器之间的长连接,服务器上更新的消息能直接推送到浏览器上,这让构建对实时性要求较高的Web应用(如金融交易、联机游戏和即时聊天)成为了可能。基于目前Web推送上存在的问题和技术上的可行性,本文围绕设计并实现基于HTML5的Web推送系统这个目标,主要做了以下方面的工作:

1.对比分析不同的推送技术方案。本文首先从工作原理和协议细节角度,对不同推送技术方案进行了讨论,分析了不同推送技术在浏览器兼容性、用户体验和应用代价上的情况。然后从协议头的角度,对比分析了不同推送技术方案,在推送相同内容大小的消息的情况下带宽利用率和时延的结果,得出了HTML5的WebSocket和Server-Sent Event技术来实现服务器主动推的合理性和有效性。

2.设计并实现一个可复用的基于HTML5的Web消息推送系统。在推送技术上,我们选择WebSocket和Server-Sent Event来实现低延时的消息推送,并针对不支持HTML5推送技术的浏览器使用HTTP轮询作为兼容性方案。系统使用Node.js和RabbitMQ消息队列,可以承受高并发的消息推送。在降低系统的集成难度和应用代价方面,本系统将消息推送作为一种Web服务提供给用户使用。应用Docker容器作为系统运行环境提高了本系统的可移植性,提供Restful接口来接收消息通知以达到解耦对服务端实现的依赖。

3.验证本系统在设计实现上的合理性和可行性。首先介绍与爱立信的OSS系统集成实现基站实时监控功能的步骤,通过这个案例说明了本文设计的系统在实现上满足易于集成的设计目标。然后设计实验对比分析,验证了Node.js在实现消息推送系统上的优越性,最后在实验中从消息送达时延,网络流量和服务器硬件资源消耗对不同推送技术进行横向对比,证明了使用HTML5推送技术在解决Web推送问题上是有效的。

参考文献:

[1] Taivalsaari A, Mikkonen T. Web browser as an application platform. SEAA 34th Euromicro Conference[C].Parma. 2008

[2] IETF. The HTTP protocol. [EB/OL]. (1999)[2015-02-23]. http://www.ietf.org/rfc/rfc2616.txt.

[3] 刘华星,杨庚. HTML5——下一代Web开发标准研究[J]. 计算机技术与发展. 2011(08) 54-58.

[4] W3C.HTML 5.1[EB/OL]. (2015)[2015-02-24] http://www.w3.org/TR/2012 WD-html51.

[5] Victoria Pimentel. Communicating and Displaying Real-Time Data with WebSocket[J]. IEEE Internet Computing. 2012(7): 45-53.

[6] 李兴华. 基于WebSocket的移动即时通信系统[D]. 重庆大学, 2013.

[7] 沈亚芳. 基于HTML5的信息化人才培训系统设计[D].华东理工大学,2013.

[8] 杨欣. 基于Web的实时通信系统与关键技术研究[D]. 北京邮电大学,2013.

[9] 易仁伟. 基于WebSocket的实时Web应用的研究[D]. 武汉理工大学,2013.

[10] Agarwal,S. Real-time web application roadblock:Performance penalty of HTML sockets[C], 2012 IEEE International Conference on Communications(ICC).2012:1225-1229.

[11] 肖祯怀. 基于HTML5的前端效率机制及Web应用模式研究[D]. 山东师范大学,2014.

[12] 陆晓春. 基于服务器端Push的Web框架设计与实现[D]. 浙江大学,2007.

[13] 杨文婷. 基于HTTP 长连接的消息推送平台的研究与实现[D]. 华中科技大学, 2012.

[14] W3C.The WebSocket API. [EB/OL]. (2015)[2015-02-25] http://dev.w3.org/htm15/websockets/.

[15] IETF. The WebSocket Protocol. [EB/OL]. (2015)[2015-02-25] http://grenache.tools.ietf.org/html/rfc6455.

[16] 廖清平. 基于Web的服务器的Push技术研究和应用[D].中山大学,2013.

[17] 汪国辉. 基于浏览器双向连接的研究与实现[D].北京邮电大学,2012.

[18] 白海波. WebSocket技术在体育赛事网站中的研究与应用[D].东华大学,2014.

[19] 刘日佳. 基于Node.js的实时推送系统的设计与实现[D].北京大学,2012.

[20] Socket.IO[EB/OL]. (2015)[2015-02-27].http://en.wikipedia.org/wiki/Socket.IO

[21] D. Gourley et al., HTTP:The Definitive Guide[M]. Sebastopol, CA: O’Reilly Media, Inc.,2002.

[22] 晏勇智. 基于HTTP 长连接的服务器推送技术研究[D];湖南大学,2010

[23] M.Bhide, P.Deolasee, A.Katkar, A.Panchbudhe, K.Ra-mamritham.Adaptive push-pull:Disseminat-ing dynamic web data [C].10th international conference on World Wide Web 2002:265-274.

[24] 薛真真. 基于服务器推送和事件流处理技术的实时Web系统研究[D]. 浙江大学,2008.

[25] 冼学辉. 基于Web的实时信息推送技术的研究[D]. 华北电力大学,2013.

[26] 任志平. 分布式comet框架的研究与实现[D]. 上海交通大学,2011.

[27] 杨梦颖. 基于HTML5的实时通信典型应用设计与实现[D].北京邮电大学,2014.

[28] Server-Sent Event[EB/OL]. (2015)[2015-03-04]http://en.wikipedia.org/wiki/Server-sent_events

[29] Skvorc, D; Horvat, M; Srbljic, S. Performance evaluation of Websocket protocol for implementation of full-duplex web streams[C]. 37th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), 2014, 1003-1008

[30] Node.js[EB/OL]. (2015)[2015-03-06] http://en.wikipedia.org/wiki/Nodejs

[31] Node's goal is to provide an easy way to build scalable network programs [EB/OL]. (2015)[2015-03-10] http://nodejs.org/about.

[32] The C10K problem [EB/OL]. (2012)[2015-03-11] http://www.kegel.com/c10k.html

[33] LAMP software bundle[EB/OL].(2015)[2015-03-11].http://en.wikipedia.org/wiki/LAMP_(software_bundle)

[34] Usage share of web browsers[EB/OL].(2015)[2015-03-11]http://en.wikipedia.org/wiki/Usage_share_of_web_browsers

[35] Can I use WebSocket[EB/OL]. (2015-03-12) [2015-03-12].http://caniuse.com/#search=websocket

[36] Can I use Server-Sent Event[EB/OL].(2015-03-12)[2015-03-12]http://caniuse.com/#search=websocket

[37] Docker.[EB/OL].(2015)[2015-03-14].http://en.wikipedia.org/wiki/Docker_(software)

[38] Apache HTTP server benchmarking tool [EB/OL].(2011)[2015-03-12]http://httpd.apache.org/docs/current/programs/ab.html

[39] 孟坤. 基于排队论的通信网络QoS研究[D]. 江苏大学,2008.

[40] 张英,赵莉茹,谷新亮. 基于排队网络的多业务网络资源分析方法[J]. 计算机应用. 2009(9): 66-69.

中图分类号:

 TP393.092    

馆藏号:

 TP393.092/1400/2015    

备注:

 403-西院分馆博硕论文库;203-余家头分馆博硕论文库    

无标题文档

   建议浏览器: 谷歌 火狐 360请用极速模式,双核浏览器请用极速模式