基于服务器推送技术的VTS系统设计与实现
发布时间:2020-12-31 05:00
随着我国经济的不断发展以及国际商务合作日益频繁,海上交通流量不断增大,海上交通运输业日渐占据重要地位。为了提高航道利用率,保障海上交通安全、高效,我国引入了国外的船舶交通管理系统(Vessel Traffic Services,以下简称VTS),但是由于成本高,维护不及时等问题,同时为我国海上交通运输业甚至我国信息引入了安全隐患,因此,国产化VTS系统的研发刻不容缓。服务器掌握着主要信息数据资源,它可以最先发现事件变化,并主动地向客户端推送消息。本文以国产化VTS系统工程项目为背景,针对其中的船舶动态数据管理子系统展开应用性研究,对比分析了多种服务器推送技术,如传统轮询、Ajax轮询、Ajax长轮询、WebSocket和Pushlet,分析了国外著名VTS系统的架构和数据信息流的结构,根据我国海事管理机构的实际工作需求,提出了适合国情并同时兼容目前已经大量部署的国际著名品牌的VTS系统的船舶动态数据管理系统模型。提出了适合本VTS工程项目的服务器推送架构和系统接口模式;最后实现了部分系统功能模块。本文提出的双向HTTP协议的工作模式,实现了基于C/S模式的VTS船舶交通显控子系统与基于...
【文章来源】:大连海事大学辽宁省 211工程院校
【文章页数】:72 页
【学位级别】:硕士
【部分图文】:
图2.?i移动端消i推送示例_??Fig.?2.1?Example?of?mobile?message?push??.?j??i?1???.??-5??
?Asynchronous?JavaScript?and?XML?的缩写,即异步化的?JavaScript?语??言和XML语言[M1。Ajax运用浏览器提供的相关技术,实现在客户端与服务端之间的异??步通信,从而允许浏览器向服务器获取需要的数据,实现浏览器页面异步刷新,而非刷??新整个页面,Ajax轮询避免了传输大量重复数据,节约了网络资源tl5],为用户提供高质??高效的用户体验。目前,很多web应用JAPP都在使用Ajax技术,比如微信、FaceBook??等。Ajax轮询过程如图2.3所示。??一…建立连接??.....??????晌????一*一?一???一?无数据???ZZ.—?—?关闭连接???t??S?l|?s????逮立连接?????*?-?????—??■心a;ti潦求????响应?一?'—*""""""???新牧据??图2.?3?Ajax轮询过程??Fig.?2.3?Ajax?polling?process??与传统轮询相比,Ajax轮询利用异步请求的方式取代了用户手动点击更新的操作,??并且不会对当前页面的操作产生影响。局部刷新使数据传输量减少,再加上后台是异步??更新,减轻了网络负担[4]。但是与传统轮询一样,浏览器仍需要以固定的时间间隔向服??务器发送更新页面的请求,倘若固定时间间隔太长,无法保证数据的实时性;如果间隔??太短,不断建立连接、释放连接,势必会影响服务器性能[5]。??-7?-??
?基于服务器推送技术的VTS系统设计与实现???2.?2.?3基于Ajax长轮询方式??为了解决Ajax轮询存在的传输大量重复数据、消耗网络资源、用户体验差等弊端,??改进该技术,提出了一种基于Ajax长轮询的技术。??_?_断开连接??客?服??^立连接?务???而??端??????断开连接,:??—??I??图2.?4基于Ajax?f轮询方式??Fig.?2.4?Ajax?Long?Polling?Process??与Ajax轮询类似的是Ajax长轮询利用Ajax在浏览器后台向服务器发送异步请求,??不同之处在于Ajax长轮询在服务器没有新数据的情况下会一直保持当前连接,一直到??生成新数据或者是请求超时的时候才将其返回[16][|7]。当客户端从服务器接收到数据更新??时,再通过利用JavaScript来处理数据,然后刷新页面,更新数据,同时再次建立连接??[18],请求新的数据,如此循环往复。在客户端接收数据、重新建立请求时,服务器会保??存此刻接收到的新数据,当新的连接建立之后一次性把所有保存的数据推送到客户端。??Ajax长轮询过程如下图,图2.4。??长连接利用HTTP连接在服务器端驻留时间较短的特点,通过服务器阻塞的方式延??迟当前连接的响应时间[4],即服务器端以一种非常缓慢的响应方式给出应答,从而满足??实时推送的要求。??-8?-??
本文编号:2949017
【文章来源】:大连海事大学辽宁省 211工程院校
【文章页数】:72 页
【学位级别】:硕士
【部分图文】:
图2.?i移动端消i推送示例_??Fig.?2.1?Example?of?mobile?message?push??.?j??i?1???.??-5??
?Asynchronous?JavaScript?and?XML?的缩写,即异步化的?JavaScript?语??言和XML语言[M1。Ajax运用浏览器提供的相关技术,实现在客户端与服务端之间的异??步通信,从而允许浏览器向服务器获取需要的数据,实现浏览器页面异步刷新,而非刷??新整个页面,Ajax轮询避免了传输大量重复数据,节约了网络资源tl5],为用户提供高质??高效的用户体验。目前,很多web应用JAPP都在使用Ajax技术,比如微信、FaceBook??等。Ajax轮询过程如图2.3所示。??一…建立连接??.....??????晌????一*一?一???一?无数据???ZZ.—?—?关闭连接???t??S?l|?s????逮立连接?????*?-?????—??■心a;ti潦求????响应?一?'—*""""""???新牧据??图2.?3?Ajax轮询过程??Fig.?2.3?Ajax?polling?process??与传统轮询相比,Ajax轮询利用异步请求的方式取代了用户手动点击更新的操作,??并且不会对当前页面的操作产生影响。局部刷新使数据传输量减少,再加上后台是异步??更新,减轻了网络负担[4]。但是与传统轮询一样,浏览器仍需要以固定的时间间隔向服??务器发送更新页面的请求,倘若固定时间间隔太长,无法保证数据的实时性;如果间隔??太短,不断建立连接、释放连接,势必会影响服务器性能[5]。??-7?-??
?基于服务器推送技术的VTS系统设计与实现???2.?2.?3基于Ajax长轮询方式??为了解决Ajax轮询存在的传输大量重复数据、消耗网络资源、用户体验差等弊端,??改进该技术,提出了一种基于Ajax长轮询的技术。??_?_断开连接??客?服??^立连接?务???而??端??????断开连接,:??—??I??图2.?4基于Ajax?f轮询方式??Fig.?2.4?Ajax?Long?Polling?Process??与Ajax轮询类似的是Ajax长轮询利用Ajax在浏览器后台向服务器发送异步请求,??不同之处在于Ajax长轮询在服务器没有新数据的情况下会一直保持当前连接,一直到??生成新数据或者是请求超时的时候才将其返回[16][|7]。当客户端从服务器接收到数据更新??时,再通过利用JavaScript来处理数据,然后刷新页面,更新数据,同时再次建立连接??[18],请求新的数据,如此循环往复。在客户端接收数据、重新建立请求时,服务器会保??存此刻接收到的新数据,当新的连接建立之后一次性把所有保存的数据推送到客户端。??Ajax长轮询过程如下图,图2.4。??长连接利用HTTP连接在服务器端驻留时间较短的特点,通过服务器阻塞的方式延??迟当前连接的响应时间[4],即服务器端以一种非常缓慢的响应方式给出应答,从而满足??实时推送的要求。??-8?-??
本文编号:2949017
本文链接:https://www.wllwen.com/shoufeilunwen/xixikjs/2949017.html