张艺-基于WebSocket的异构应用协同服务设计与实现.docx
《张艺-基于WebSocket的异构应用协同服务设计与实现.docx》由会员分享,可在线阅读,更多相关《张艺-基于WebSocket的异构应用协同服务设计与实现.docx(88页珍藏版)》请在三一办公上搜索。
1、中图分类号:TP391 密 级:学科分类号:081202 论文编号:8300015-2015-S31硕士学位论文基于WebSocket的异构应用协同服务设计与实现研究生姓名张艺学科专业计算机软件与理论研究方向军用软件集成指导教师毕会娟 研究员级高工 培养单位 华北计算技术研究所电子科学研究院二一五年三月十五日学位论文独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。除已特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。作者签名: 日期: 年 月 日学位论文使用
2、授权本人完全了解填写培养单位名称有关保留和使用学位论文的规定,本人在攻读学位期间论文工作的知识产权单位属于填写培养单位名称。培养单位和学位授予单位有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。保密的学位论文在解密后适用此授权。作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日摘 要随着网络带宽的不断增加、人们对于应用便捷性要求的不断提升和云和服务概念的不断深化,在采用传统C/S应用之外,越来越多的用户开始选择直接通过浏览器登陆服务来完成工作。同样
3、的,在协同过程中,多种类应用之间的协同工作也已经成为一个趋势。如何解决传统C/S架构下协同应用和B/S架构下协同应用之间的协同工作问题,如何提供B/S架构下的协同能力、提供B/S架构与C/S架构下异构应用间的协同能力,已经成为协同服务的迫切需求。为了给协同过程提供对多种类应用的支持,使基于C/S架构的协同应用和基于B/S架构的协同应用之间可以进行协同工作,本文提出并实现了一个基于WebSocket的异构应用协同服务。该服务支持包括基于HTTP的全双工流技术(BOSH)和WebSocket在内的各种通信协议,能同时对C/S架构下的部分应用和B/S架构下的部分应用提供支持。此外,本文提出的基于We
4、bSocket的异构应用协同服务采用了可扩展通讯表示协议(XMPP)这一标准化协议来作为协同信息的具体承载形式,方便了各协同应用之间的消息解析与加工、方便了服务器对消息进行解析与处理。首先,本文深入研究了计算机支持的协同工作(CSCW),研究了C/S架构下与传统B/S架构下各种通信技术的原理及实现,包括MINA框架的内部构造、BOSH技术的原理等,并且重点研究了WebSocket的工作原理及实现方式。其次,设计并实现了一个应用协同服务,支持包括WebSocket技术在内的多种通信技术,实现了异构应用间的一对一协同与群组协同。初步设计了一个基于WebSocket的客户端,支持协同信息的接收与发送
5、。最后,设计了一个实验,验证了基于WebSocket的异构应用协同服务可以支持包括WebSocket在内的多种异构应用之间的协同,验证了基于WebSocket的协同应用在性能、带宽占用、响应速度上和传统B/S架构下协同应用所具有的优势。本文所提出并且实现的基于WebSocket的异构应用协同服务实现了包括WebSocket在内的多种网络通信技术,支持采用不同连接技术的多种客户端之间的一对一协同工作与群组间协同工作,采用了分层设计,将连接、会话、数据处理等功能进行了明确的划分,以提高其工作稳定性,并且使其具有良好的可扩展性,保证了未来对其它通信技术增加支持的可行性。关键词:计算机支持的协同工作,
6、服务器主动推送,WebSocket,HTML5,XMPPABSTRACTWith the continuous increase of the network bandwidth,with users gradual increment of need for easy-used applications,with the cloud services gain their popularity,more and more people choose to finish their word through the browser besides using applications unde
7、r the C/S structure.At the same time,in the duration of cooperative work,cooperative work between multy-applications has become a tendency.How to solve the problem of providing the ability to launch cooperative work with applications under the B/S structure and launch cooperative work between applic
8、ations under the B/S structure and the C/S structure is very importent.To support the multy-applications in the cooperative work and make it possible to do cooperative work between applications under C/S structure and applications under B/S structure,a Collaboration server for heterogeneous applicat
9、ions Based on WebSocket is designed and implemented.This server supports various of communication protocols including the Bidirectional-streams Over Synchronous HTTP(BOSH) and WebSocket and can support applications under the C/S structure and applications under the B/S structure at the same time.The
10、 Collaboration server for heterogeneous applications Based on WebSocket use the Extensible Messaging and Presence Protocol(XMPP) to carry the cooperative work messages ,whick makes it easier for encoding and decoding between applications and analysis in server.First,The Computer-Supported Cooperativ
11、e Work(CSCW) and the various of technology used to communicate under the C/S structure and the B/S structure are studied,especially the WebSocket protocol is carefully studied. Secondly,A server supports cooperative work between multy-applications including WebSocket applications is designed and imp
12、lemented. A application uses WebSocket is designed and implemented which supports receiving and sending cooperative work messages.Finally,An experiment is made and experimental results shows that the cooperative work based on WebSocket saves more bandwidth and has less time-delay than the cooperativ
13、e work based on traditional technology.The Collaboration server for heterogeneous applications Based on WebSocket implemented supports cooperative work between multy-applications including WebSocket applications.The server uses hierarchical design,has layers including connection layer,session layer,
14、data-analysis layer and so on,makes it has a good stability and scalability and is ready for extension in the future.Keywords: Computer-Supported Cooperative Work, Server-Side information push, WebSocket, HTML5, XMPP目 录摘 要iABSTRACTii第一章 绪论11.1 课题背景与意义11.2 国内外研究现状21.2.1 技术现状及发展趋势21.2.2 国外研究现状21.3 本文目
15、标及主要内容31.4 论文组织结构4第二章 相关技术概述52.1 异构应用协同52.2 WebSocket协议52.3 XMPP协议6第三章 协同通信技术分析93.1 C/S架构下通信技术分析93.1.1 NIO概述93.1.2 基于MINA的通信技术分析113.2 BOSH通信技术初步分析143.3 WebSocket技术分析143.3.1 WebSocket在网络分层结构中的位置143.3.2 会话建立与收发153.3.3 WebSocket握手信息163.3.4 WebSocket帧结构163.3.5 WebSocket关闭183.3.6 WebSocket子协议19第四章 协同服务设计
16、与实现214.1 需求分析214.1.1 异构应用协同服务需求分析214.1.2 所需支持的协议224.2 服务器设计224.3 服务器实现254.3.1 应用服务器选择254.3.2 服务器各模块设计与实现314.3.3 三种传输协议的实现414.3.4 数据库设计46第五章 浏览器端WebSocket客户端初步实现535.1 浏览器端WebSocket535.2 浏览器端XMPP库:strophe.js575.3 WebSocket客户端初步构建57第六章 功能验证与性能分析616.1 功能验证616.2 性能分析636.2.1 网络流量分析及对比646.2.2 延迟分析及对比66第七章
17、结束语697.1 论文现有工作总结697.2 下一步研究工作70参考文献71致 谢72在学期间发表的学术论文及取得的研究成果73图表目录图3.1 BIO消息传输10图3.2 NIO消息传输10图3.3 MINA工作流程11图3.4 IoService接口12图3.5 IoService接口13图3.6 BOSH信息传输流程14图3.7 网络模型15图3.8 WebSocket握手过程15图3.9 WebSocket帧结构17图4.1 服务器分层结构23图4.2 服务器模块图24图4.3 服务器信息流向25图4.4 Jetty构造26图4.5 HttpListener接口27图4.6 HttpC
18、ontext接口27图4.7 Jetty流程28图4.8 WebSocket构造29图4.9 WebSocket建立过程29图4.10 WebSocket接口31图4.11 Connection接口31图4.12 Connection模块类图32图4.13 Session模块类图33图4.14 Router模块类图35图4.15 RouteTable模块类图35图4.16 IQHandler模块类图36图4.17 PresenceUpdater模块类图36图4.18 创建空间流程图38图4.19 空间内收发协同信息流程图39图4.20 WebSocket实现类图43图4.21 WebSocke
19、t序列图44图4.22 NIO连接实现类图44图4.23 BOSH连接实现类图45图4.24 数据库概念设计图46图4.25 数据库逻辑模式图48图4.26 数据库物理模式图51图5.1 WebSocket客户端结构58图6.1 C/S下一对一协同信息收发61图6.2 B/S下一对一协同信息收发62图6.3 C/S下群组协同信息收发62图6.4 B/S下群组协同信息收发63图6.5 C/S架构下流量截图64图6.6 BOSH下流量截图64图6.7 WebSocket下流量截图64图6.8 流量消耗对比66图6.9 时延对比67表4.1 WebSocket接口一览表30表4.2 数据库E-R实体
20、表47表4.3 数据库实体:用户48表4.4 数据库实体:联系人49表4.5 数据库实体:联系人分组49表4.6 数据库实体:离线消息49表4.7 数据库实体:服务器属性49表4.8 数据库实体:协同空间服务49表4.9 数据库实体:协同空间50表4.10 数据库实体:协同空间用户50表4.11 数据库实体:协同历史消息50表5.1 浏览器端WebSocket事件54表5.2 浏览器端WebSocket方法55表5.3 浏览器端WebSocket状态56表6.1 服务器处理消息消耗流量对比65表6.2 服务器保持连接消耗流量对比65 第一章 绪论1.1 课题背景与意义在当前协同工作中,协同服务
21、一般只基于某一种通信协议,支持此通信协议下的某一种类协同应用。随着技术的不断发展、网络速度的不断增加、人们对于Web应用需求的日益提高、终端设备的日益多元化,越来越多的系统开始提供B/S架构下的服务,各种新的通信技术与通信协议,尤其是基于B/S架构的通信方式不断出现。但是当前的协同服务不能很好地对其进行支持,尤其是不能提供良好的对B/S架构下应用的支持。基于B/S架构的系统一般以HTTP协议为基础。HTTP协议的特点是以“请求-响应”为基本逻辑,即用户通过浏览器向服务器发送一条请求,服务器将请求的结果返回给用户。因为这种逻辑缺少对服务器主动推送信息的支持,会在协同的过程中造成很大的不便;另外,
22、HTTP协议的协议头会占用大量的带宽,在传输消息时会产生大量的无用信息。所以,基于HTTP协议的协同信息通信系统都会有消息传输延迟高、带宽占用高等缺点。在协同工作中,由于协同工作产生消息数据量巨大、协同信息交换频繁、对传输延迟尤为敏感等特点而更加明显。所以当前阶段B/S架构下的协同工作性能非常低下,急需解决。为了克服当前B/S架构下协同工作的缺点,一个解决方案就是将WebSocket技术引入协同服务。WebSocket技术是一个基于B/S的全双工通信技术,可以为浏览器与服务器之间提供专用双向数据通道,方便数据的收发,大大降低信息传输延时,减少带宽占用。为了对异构应用协同,尤其是B/S架构下应用
23、和其他应用之间的协同工作提供更好的服务,本文探讨了基于WebSocket协议来进行异构应用协同的可行性、如何建立一个基于WebSocket的异构应用协同服务,实现了一个支持WebSocket技术及其它多种连接技术的协同服务,并且对其功能和性能进行了验证。主要完成的功能为:(1) 基于WebSocket的应用之间的一对一协同。(2) 基于WebSocket的应用与其他异构应用之间的一对一协同。(3) 基于WebSocket的应用与其他异构应用之间的群组协同。本文通过将WebSocket技术应用到协同服务之中,使协同服务同时支持包括WebSocket协议在内的多种协议下的客户端,使采用不同协议的客
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 WebSocket 应用 协同 服务 设计 实现

链接地址:https://www.31ppt.com/p-2022585.html