(计算机科学与技术专业论文)pushlet和数据缓存在船舶动态管理系统应用的研究.pdf_第1页
(计算机科学与技术专业论文)pushlet和数据缓存在船舶动态管理系统应用的研究.pdf_第2页
(计算机科学与技术专业论文)pushlet和数据缓存在船舶动态管理系统应用的研究.pdf_第3页
(计算机科学与技术专业论文)pushlet和数据缓存在船舶动态管理系统应用的研究.pdf_第4页
(计算机科学与技术专业论文)pushlet和数据缓存在船舶动态管理系统应用的研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机科学与技术专业论文)pushlet和数据缓存在船舶动态管理系统应用的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 摘要 随着我国海运事业的发达,为了改善港1 :3 船舶交通秩序、减少船舶交通事故、 促进港口安全监督管理的现代化,各主要港口都在兴建船舶交通管理系统( v t s 系统) ,采用先进的雷达系统、交通信息显示系统,船岸通信系统和网络平台构成 一体化的综合应用系统。但是,目前这些v t s 系统普遍存在的问题是:船舶动态 管理系统与雷达信息系统的协同工作功能不够完善,还不能完全自动记录在港船 舶的事件并实时显示在港船舶的动态信息,从而使得船舶交通管理和搜救指挥的 效率不高。 针对以上问题,本论文研究了相关技术,并将这些技术应用到了船舶动态管 理系统的开发中。首先,研究了先进的数据推送技术p u s h l e t 技术。然后,讨 论了如何把p u s h l e t 技术运用于船舶动态管理系统与雷达信息系统的协同工作中, 介绍了系统客户端之间和服务器之间的协同工作的实现过程,实现了异构系统客 户机之间的直接调用。另外,还讨论了如何将p u s h l e t 技术运用于船舶动态显示中, 实现将船舶动态信息从服务器端“推到客户端界面。其次,研究了数据缓存技 术及其在船舶动态显示中的应用,介绍了使用数据缓存技术后船舶动态显示的实 现过程。 采用了本论文研究的相关技术的船舶动态管理系统己在大连,秦皇岛等港口 的船舶交通管理中心获得成功的应用。通过实际使用验证:新的船舶动态管理系 统不仅完善了与雷达信息系统的协同工作,缩短了客户端收到船舶动态信息的时 间,提高了系统的实时性,并且提高了船舶交通管理和搜救指挥的工作效率,有 效地提高了港口船舶交通管理的水平,取得了很好的社会效益。 关键词:p u s h l e t ;协同工作;数据缓存 英文摘要 a b s t r a c t w i t ht h ed e v e l o p m e n to ft h eo c e a ns h i p p i n go fo u rc o u n t r y , i no r d e rt oi m p r o v e p o r tv e s s e lt r a f f i co r d e r , r e d u c ev e s s e lt r a f f i ca c c i d e n t sa n dp r o m o t et h em o d e r n i z a t i o n o fp o r ts a f e t ys u p e r v i s i o na n dm a n a g e m e n t ,m a n ym a j o rp o r t sa r ec o n s t r u c t i n gv e s s e l t r a f f i c m a n a g e m e n t( v t s )s y s t e m s w h i c hu s ea d v a n c e dr a d a r s y s t e m s , t r a f f i c i n f o r m a t i o nd i s p l a ys y s t e m s ,s h i p t o - s h o r ec o m m u n i c a t i o ns y s t e m sa n dn e t w o r k p l a t f o r m st og e n e r a t ei n t e g r a t e da p p l i c a t i o ns y s t e m s b u tt h e s ev t ss y s t e m sh a v ea c o m m o np r o b l e m :t h ec o o p e r a t i o nb e t w e e nt h ev e s s e lm o v e m e n tm a n a g e m e n ts y s t e m a n dt h er a d a ri n f o r m a t i o ns y s t e mi sn o tp e r f e c t t h es h i pe v e n t sc a n tb er e c o r d e d f u l l - a u t o m a t i c a l l ya n dt h ed y n a m i ci n f o r m a t i o no fv e s s e l sc a l l tb er e a l t i m ed i s p l a y e d , w h i c hm a k et h ev e s s e lt r a f f i cm a n a g e m e n ta n dt h es e a r c ha n dr e s c u ei n e f f i c i e n t f o rt h ea b o v ep r o b l e m s ,t h i st h e s i sh a ss t u d i e dt h er e l e v a n tt e c h n o l o g i e sa n d a p p l i e dt h e s et e c h n o l o g i e st ot h ed e v e l o p m e n to ft h ev e s s e lm o v e m e n tm a n a g e m e n t s y s t e m f i r s t l y , i ts t u d i e dt h ea d v a n c e dd a t ap u s ht e c h n o l o g y n l s h l e tt e c h n o l o g y , d i s c u s s e dh o wt oa p p l yt h ep u s h l e tt e c h n o l o g yt ot h ec o o p e r a t i o nb e t w e e nt h ev e s s e l m o v e m e n tm a n a g e m e n ts y s t e ma n dt h er a d a ri n f o r m a t i o ns y s t e m ,i n t r o d u c e dt h e i m p l e m e n t a t i o np r o c e d u r eo ft h ec o o p e r a t i o nb e t w e e ns e r v e r sa n dt h ec o o p e r a t i o n b e t w e e nc l i e n t s ,r e a l i z e dt h ed i r e c tc a l lb e t w e e nh e t e r o g e n e o u ss y s t e m s i ta l s o d i s c u s s e dh o wt ou s et h ep u s h l e tt e c h n o l o g yi nd i s p l a y i n gv e s s e ld y n a m i ci n f o r m a t i o n t oa c h i e v ep u s h i n gi n f o r m a t i o nf r o mt h es e r v e rt ot h ec l i e n t s s e c o n d l y , t h i st h e s i s s t u d i e dt h ed a t ac a c h et e c h n o l o g y , d i s c u s s e dh o wt oa p p l yi ti nd i s p l a y i n gv e s s e l d y n a m i ci n f o r m a t i o na n di n t r o d u c e dt h ei m p l e m e n tp r o c e d u r ea f t e ru s i n gd a t ac a c h e t h ev e s s e lm o v e m e n tm a n a g e m e n ts y s t e ma d o p t i n gt h et e c h n o l o g i e ss t u d i e di n t h i st h e s i sh a sb e e na p p l i e di ns o m ev e s s e lt r a f f i cc o n t r o lc e n t e r s ,s u c ha sd a l i a r t , q i n h u a n g d a oa n ds oo n i th a sb e e np r o v e dt h a tt h en e wv e s s e lm o v e m e n tm a n a g e m e n t n o to n l yp e r f e c t st h ec o o p e r a t i o nw i t ht h er a d a ri n f o r m a t i o ns y s t e m ,s h o r t e n st h et i m e t h a tc l i e n t sr e c e i v ev e s s e ld y n a m i ci n f o r m a t i o n ,i m p r o v e st h er e a l t i m ea b i l i t y , b u ta l s o e n h a n c e st h ee f f i c i e n c yo fv e s s e lt r a f f i cc o n t r o la n dt h es e a r c ha n dr e s c u ec o m m a n d , h e i g h t e n st h el e v e lo fp o r tt r a f f i cc o n t r o la n dm a k e sv e r yg o o ds o c i a lb e n e f i t s k e yw o r d s :p u s h l e t ;c o o p e r a t i o n ;d a t ac a c h e 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成博硕士学位论文 = =里坚h ! 丛塑数堡缓在在监舶动查筐理丕统廛 囝的硒窒= = 。除论文中已经注明引用的内容外, 对论文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本论文 中不包含任何未加明确注明的其他个人或集体已经公开发表或未公开发表的成 果。本声明的法律责任由本人承担。 学位论文作者签名:壅盛: 学位论文版权使用授权书 本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学 位论文的规定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。同意将本学位论文收录到中国优秀博硕士 学位论文全文数据库( 中国学术期刊( 光盘版) 电子杂志社) 、中国学位论文全 文数据库( 中国科学技术信息研究所) 等数据库中,并以电子出版物形式出版发 行和提供信息服务。保密的论文在解密后遵守此规定。 本学位论文属于:保密口在年解密后适用本授权书。 不保密函( 请在以上方框内打“4 ,) - , 论文作者签名:霉前, 导师签名: 日期:洳吖年 p u s h l e t 和数据缓存在船舶动态管理系统应用的研究 第1 章绪论 1 1 船舶交通管理系统相关知识 船舶交通管理系统的英文名称是v e s s l et r a f f i cm a n a g e m e n t s y s t e m ,简称为v t s 系统【l 】。中华人民共和国船舶交通管理系统安全监督管理 规则中指出:“s 系统”是指为保障船舶交通安全,提高交通效率,保护水域 环境,由主管机关设置的对船舶实施交通管制并提供咨询服务的系统。这是目前 我国对于v t s 系统最具权威性的定义,考虑到了我国水上交通的实际情况,强调 管理和服务双重功能。 国际航标协会( i a i a ) 则将”s 系统定义为船舶交通服务系统即 v t s v e s s e lt r a f f i cs e r v i c e ,在其编制的s 手册中指出:船舶交通服 务( 、,t s ) 是主管当局实施的,旨在改善船舶交通安全和效率以及保护环境的一种 服务。主管当局是由国家主管机关指定对该区域内的船舶交通安全和效率及保护 环境负全部或部分责任的当局【1 】。这种定义强调v t s 的服务功能,v t s 是为船舶、 港口及其有关方面提供信息服务的系统。 ( 1 ) 船舶交通管理系统的组成 s 系统组成有两种说法,一是狭义上的,即由s 电子系统及其配套系统 组成;二是广义上的,即由电子系统、配套系统、管理系统、法规系统等组成。 以下从广义上介绍v t s 系统的组成。 a 、电子设备系统。主要包括雷达系统、信息传输系统、船舶数据库信息系统、 显示系统、船岸通信系统等; b 、配套或辅助系统。主要包括电源系统、气象系统、闭路电视系统等; c 、实施v t s 系统的主管机关。在我国,该主管机关为海事机关,部门具体为 船舶交通管理中心或称为交管中心、v t s 中心。 d 、s 用户,主要是指船舶和水上设施。 e 、管理法规。管理法规是v t s 系统不可缺少的部分,是s 系统有效运行 的保证。 ( 2 ) 实施、丌s 系统的意义 建立s 系统的宗旨是为了改善水上通航环境,防止船舶交通事故发生, 第1 章绪论 提高船舶交通效率,保护水上生态环境。实施s 系统的主要意义有: 第一,s 系统是港口安全的标志之一。目前世界上已有一百多个港口建立 了不同规模的v r s 系统,许多国家将s 系统作为港口的配套设施来建设和管理。 对于船舶而言,进入v t s 系统管理或服务区域,将获得足够的安全信息,安全航 行、停泊和作业有了可靠的保障。尽管s 系统本身产生的直接经济效益很难计 算,但它在保障船舶、港口安全、提高交通效率和保护生态环境方面的社会效益 是非常巨大的。 第二,建立v t s 系统将促进地区航运事业的发展。“安全和发展 是港航业永 恒的主题,也是一对永恒的矛盾。随着航运业的发展,海上交通事故频频发生, 海洋环境受到严重威胁,安全和防污染的要求制约着航运业的发展。因此,世界 各国都在寻求“使航运更安全,让海洋更清洁的种种途径,建立v t s 系统是有 效途径之一。世界各国的实践证明,v t s 系统建立5 0 年以来,通过对交通动态的 监控和提供航海信息服务,大大降低了交通事故发生的可能性,在安全和防污染 方面起到了重要作用,有力地促进了地区航运的发展。 第三,建立s 系统将带动海事机关部门的科技进步。与世界先进国家的同 行相比,我国水上安全监督管理部门的监管水平还较为落后,建立v t s 系统是提 高港监管理水平的重要举措。s 系统是一个科技含量较高的系统,为了高效率 地运行,必须有相应的科技力量予以支持,特别是海事机关部门的信息系统、应 急反应系统必须与之相配套。因此,建立s 系统及其产生的经济效益和社会效 益必将带动海事机关部门的科技进步。 第四,对于海事机关而言,s 系统的建立标志着传统的水上安全监督管理 将向运用最新科技成果进行现代化管理方向转变。运用现代科技手段强化水上安 全监督管理是海事机关的努力方向,s 系统的先进性和有效性将使v t s 中心成 为海上指挥中心、船舶交通管理中心和海上应急反应中心以及海事机关自身的信 息中心。s 系统建立以后,海事机关传统的工作内容诸如海上巡逻、作业监视、 违章纠正等将不再成为重点,单一的现场监督管理将变成全方位的、立体的航政 管理。 p u s h l e t 和数据缓存在船舶动态管理系统应用的研究 1 2 课题来源 目前,在我国许多港口都在建设自己的s 系统,安装了先进的雷达系统、 显示系统和船岸通信系统,这些系统的安装改善了港口船舶交通秩序,减少了船舶 交通事故,提高了航道的通航能力和船舶的营运效率,提高了港口资源的利用率, 促进了港口安全监督管理的现代化。但是,据调查,这些v t s 系统普遍存在的一 个问题是与雷达信息系统协作的船舶动态管理系统功能不完善,不能完全自动记 录在港船舶的事件并实时显示在港船舶的动态信息。不能自动记录船舶事件,就 需要值班人员手动记录,这就加重了值班人员的工作强度,分散了值班人员投入 到交通秩序管理上的精力,降低了工作效率,而且,手动记录还容易出现错误; 不能实时显示在港船舶的动态信息,值班人员就不能及时获得船舶最新的信息, 从而影响船舶交通管理和搜救指挥的效率。本课题研究工作的来源是开发一个功 能完善的船舶动态管理系统,使该系统能够与目前许多港口正在使用的一个叫做 s y t a r 的雷达综合处理与显示系统协同工作,对在港船舶的事件进行自动记录并 实时显示船舶最新的动态信息,同时还可以对船舶进出港所涉及的申报等进行管 理。在本论文中,主要研究了如何应用p u s h l e t 技术实现系统的关键功能以及如何 应用数据缓存技术提高系统的性能。该系统的成功开发和使用,将不但能减轻值 班人员的工作强度,使之把主要精力应用在交通秩序的通航管理上,而不是简单 的记录操作上,提高工作效率,还可以使值班人员能实时获得船舶最新的动态信 息,从而能更及时地发现可能出现的危险情况,进一步较少船舶交通事故。 1 3 论文结构 第一章介绍了船舶交通管理的相关知识和本论文研究课题的来源。 第二章对p u s h l e t 技术和数据缓存技术进行了介绍。 第三章介绍了船舶动态管理系统的设计,首先分析了系统的功能,将系统要 实现的功能划分为几个模块,接着设计出系统的体系结构,简单介绍了系统的数 据库设计、系统运行的网络环境以及系统的软件部署。 第四章研究了p u s h l e t 技术和数据缓存技术在协作管理和船舶动态显示中的应 用。 第五章介绍了系统的实现。 第1 章绪论 第六章对论文进行了总结,并提出了下一步研究的方向。 p u s h l e t 和数据缓存在船舶动态管理系统应用的研究 第2 章p u s h l e t 和数据缓存技术 2 1p u s h l e t 技术 p u s h l e t 技术的总体思想是:在s e r v l e t 的机制下,将数据从服务器端的j a v a 对象直接推送到客户端的h t m l 页面,而不需要在客户端使用a p p l e t 或其他的一 些插件。它与w e b 传统的“请求响应 方式不同,传统的“请求响应”方式是 客户端首先向服务器端发出请求,然后服务器端响应请求,将数据发送到客户端, 在这个过程中,服务器端是被动的。而在p u s h l e t 的机制下,服务器端是主动的, 它不需要客户端的请求就可以直接将数据推送到客户端,从而使服务器端可以主 动更新客户端的w e b 页面。 p u s h l e t 的机制是轻量级的,它使用服务器端的s e r v l e t 连接管理、线程工具、 j a v a x s e r v l e ta p i ,并通过标准j a v a 特性中o b j e c t 的w a i t 0 和n o t i f y ( ) 实现的生产者 消费者机制。原则上,p u s h l e t 框架能够运行在任何支持s e r v l e t 的服务器上。当在 客户端使用j a v a s c r i p t d h t m l 时,p u s h l e t 提供了通过脚本快速建立应用、使用 h t m l c s s 特性集成和布局新内容的便利方法【9 1 。 p u s h l e t 基于h t t p 流,这种技术常常用在多媒体视频、通讯应用中,比如 q u i c k t i m e 。与装载h t t p 页面之后马上关闭h t t p 连接的做法相反,p u s h l e t 采用 h t t p 流方式将新数据源源不断地推送到客户端,在此期间h t t p 连接一直保持打 开。 在p u s h l e t 的客户端,有很多功能的实现要依赖于d h t m l ( 动态h t m l ) 的特 性,所以先简单介绍些d h t m l 知识。 d h t m l 是h t m l ,c s s ,j a v a s c r i p t 和d o m ( 文档对象模型) 的混合技术。 在动态网页技术产生之前,修改网页只能通过重新下载实现,而d h t m l 提供了 在页面被装载完毕后对浏览器内的h t m l 文档的完全控制,可以在页面被加载完 毕后改变网页内容和外观,例如网页上的“图像滚动 、弹出内容和可收缩菜单的 功能都是通过d h t m l 的技术实现的。大多数版本4 以上的浏览器都d h t m l 技 术,只是标准不刚9 1 。从应用程序开发的角度出发,浏览器中包括框架、图片、表 格等的整个文档被表示成具有层次的对象模式d o m 。通过j a v a s c r i p t 可以维护 d o m 的成员,不但可以改变文档的内容和外观,而且还可以捕捉到如鼠标移动、 第2 章p u s h l e t 和数据缓存技术 表单提交等这些用户事件,而后对d o m 进行相应的修改。例如鼠标移动到图片的 上方可以产生“n l o o s e o v e r ”事件,这时可以通过显示高亮版本的图片或者弹出解 释性文字的方式修改页面的外观。 p u s h l e t 采用“发布订阅”模式,客户端订阅服务器端的某个主题,当服务器 端有关于这个主题的新事件产生时,服务器端将产生的事件发布到订阅了这个主 题的浏览器。客户端除了可以订阅主题、接收服务器推过来的事件外,也可以发 布事件到服务器,由服务器将此客户端发布的事件发布到其他的客户端。下边将 详细介绍p u s h l e t 如何实现订阅和发布。 在p u s h l c t 的客户端,有两个可重用的文件:j s - p u s h l e t c l i e n t j s 和 j s - p u s h l e t - n e t h t m l ,客户端发送订阅服务器端的主题的请求、接收服务器端发布的 事件、对事件进行处理的功能都是通过调用这两个文件中的相关方法实现的。 j s - p u s h l e t n e t h t m i 的主要代码如清单2 1 - 清单2 1 p u s h l e tn e t w o r k i n gc o m p o n e n t f u n c t i o np u s h o d e b u g ( p u s h 0c a l l e d ) ; i f ( ! p a r e n t _ p u s h ) d e b u g ( p a r e n t _ p u s h on o ta v a i l a b l e ) ; r e t u r n ; ) p a r e n t _ _ p u s h ( p u s h a r g u m e n t s ) ; f u n c t i o ns e t c o n t r o l u r i ( u r i ) d e b u g ( s e t c o n t r o l u r i ou r i = + u 五) ; c o n t r o l r e a d y = f a l s e ; c o n t r o l f r a m e 1 0 c a t i o n h r e f = u r i ; ) f u n c t i o nl i s t e n ( u r i ) p u s h l e t 和数据缓存在船舶动态管理系统应用的研究 l i s t e n f r a m e 1 0 c a t i o n h r e f = u r i ; d e b u g ( l i s t e n oc a l l e du r i = + u r i ) ; ) 二s c r d t q 7 h e a d 根据以上代码,可以看出在j s - p u s h l e t - n e t h t m l 中有两个隐藏的框架,客户端 与服务器之间的交互就是通过这两个隐藏的框架实现的。 j s - p u s h l e t - c l i e n t j s 中用于实现客户端发送订阅请求的主要代码如清单2 2 : 清单2 2 f u n c t i o n i n i t u r i s 0 p u s h l e t u r i = g e t w e b r o o t 0 + p u s h l e t $ r v ;p u s h l e t s r v 为服务器端处理客户 端请求的s e r v l e t p u s h l e t n e t u r i = g e t w e b r o o t 0 + l i b j s - p u s h l e t - n e t h t m l ; ) 在页面中嵌入p u s h l e t 框架 f u n c t i o np _ e m b e d o v a rp u s h l e t l a y e r = ; s e l f d o c u m e n t w r i t e ( p u s h l e t l a y e r ) ; _ w a i t f o r p u s h l e t f r a m e o ; ) 等待p u s h l e t 框架加载完成 f u n c t i o nw a i t f o r p u s h l e t f r a m e o 7 第2 章p u s h l e t 和数据缓存技术 i f ( s e l f p u s h l e t f r a m e & & s e l f p u s h l e f f r a m e i s l o a d e d & & s e l f p u s h l e t f r a m e i s l o a d e d 0 ) p u s h l e t n e t = s e l f p u s h l e t f r a m e ; r e t u r n ; ) s e t t i m e o u t ( ”w a i t f o r p u s h l e t f r a m e o ”,2 0 ) ; ) 发出注册请求到p u s h l e t 服务器端 f u n c t i o np _ j o i n o 如果已经注册过,则返回 i f ( s e s s i o n l di - n u l l ) r e t u r n ; ) 检查p u s h l e t 框架是否已经加载完成 i f ( p u s h l e t n e t ) p u s h l e t n e t s e t c o n t r o l u r i ( p u s h l e t u r i + ? p _ e v e n t = j o i n ) ; ) e l s e 如果没有加载完,则等待一段时间后再次发出请求,直到加载完成 s e t t i m e o u t ( ”p j o i n o ”,10 0 ) ; ) ) n 向服务器发出监听请求 f u n c t i o np _ l i s t e n ( s u b j e c t ,m o d e ) 在监听请求中是否有订阅主题请求 i f ( s u b j e c t ) l i s t e n s u b j e c t = s u b j e c t ; ) 检查是否已经注册成功 i f ( s e s s i o n l d ) v a tu r i = p u s h l e t u r i + ? p j d - t + s e s s i o n l d + & p _ e v e n t = l i s t e n ; i f ( 1 i s t e n s u b j e e t ) p u s h l e t 和数据缓存在船舶动态管理系统应用的研究 一 一一 u r i = u r i + & ps u b j e c t = + l i s t e n s u b j e c t ; ) p u s h l e t n e t 1 i s t e n ( t t r i ) ; r e t u r n ; ) 如果尚未注册成功完,则等待一段时间后再次发出请求,直到注册成功 s e t t i m e o u t ( ”pl i s t e n o ”,lo o ) ; ) 向服务器发出订阅主题请求 f u n c t i o np _ s u b s c r i b e ( s u b j e c t ,l a b e l ) v a ru r i = p u s h l e t u r i + ? p e v e n t = s u b s c r i b e & p _ s u b j e c t = - + s u b j e c t ; i f ( 1 a b e l ) u r i = u r i + & p d a b e = + l a b e l ; ) s e n d c o n t r o l u r i ( u r i ) ; ) f u n c t i o ns e n d c o n t r o l u r i ( u r i ) i f ( c o n t r o l q u e u e i s f u l l o ) r e t u r n ; i f ( s e s s i o n l d n u l l ) c o n t r o l q u e u e e n q u e u e ( u r i ) ; _ p r o c e s s c o n t r o l q u e u e o ; 力r o c e s s c o n 仃o l q u c u e o 实现的功能是取出控制队列中盼请求发出 r e t u l l l ; ) i f ( c o n t r o l q u e u e i s e m p t y 0 ) i f ( p u s h l e t n e t i s c o n t r o l r e a d y 0 ) u r i = t t r i + & p j d - + s e s s i o n l d ; p u s h l e t n e t s e t c o n t r o l u r i ( u r i ) ; e l s e e o n t r o l q u e u e e n q u e u e ( u r i ) ; 第2 章p u s h l e t 和数据缓存技术 ) e l s e e o n t r o l q u e u e e n q u e u e ( u r i ) ; ) i f ( ! c o n t r o l q u e u e i s e m p t y ( ) ) _ _ p r o c e s s c o n t r o l q u e u e 0 ; ) ) 客户端向服务器发送订阅请求的过程如图2 1 所示 i 应用程序页面i s - p u s h l e t - c he n t i si s - p u s h i e r - n e t h n n l d u s t l l e t ; 1 :p _ e m b e d 、 口 | i 7 u _ 2 = p _ j o i n 、; 3 = s e t c o n t r o l u r i 。 4 :d o g e t ,lj l 5 :p _ l i s t e n 、了 6 :i i s t e n 7 :d o g e t ,【j 8 :p _ s u b s c r i b e 、 - r s e t c o n 口o u r i 、 1qs e t c o n l r o l u r i 、 1 1 :d o g e t 刈 : 图2 1 客户端订阅事件序列图 f i g 2 1c l i e n ts u b s c r i b i n gs e q u e n c e 根据图2 1 所示,当客户端的应用程序页面要订阅主题时,首先调用 j s - p u s h l e t - c l i e n t j s 中的p _ e m b e d 0 方法,将j s - p u s h l e t - n e t h t m l 中的隐藏框架嵌入到 页面中,接着调用p j o i n o 和p _ l i s t e n o 方法,p j o i n o 方法实现的功能是向服务器发 出注册请求,请求服务器注册此客户端;p _ l i s t e n o 方法实现的功能是向服务器发出 一 p u s h l e t 和数据缓存在船舶动态管理系统应用的研究 监听请求,监听请求被接收后,服务器与客户端之间通信的通道就建立完成了, 即不断开的h t t p 连接就建立完成了,但因为还没有订阅主题,这时客户端仍然 无法接收到服务器发布的事件。可以在调用pl i s t e n ( ) 方法的时候将要订阅的主题 作为参数传递进去,发出监听请求的同时发出订阅主题请求,也可以在发出监听 请求后通过调用l as u b s c r i b e ( ) 方法向服务器发出订阅主题请求。 因为在客户端可能存在着需要发送的多个请求,如果将客户端的订阅请求直 接发往服务器,则如果某个请求由于被嵌入的控制框架尚未准备好而受阻,后续 的请求就会被抛弃,所以客户端并不直接将订阅请求发往服务器,而是将客户订 阅请求的统一资源标识符( u r i ) 交给一个控制队列( c o n t r o l q u e u e ) 处理,这个控 制队列是一个先进先出的定长队列,它负责将客户请求的统一资源标识符进行入 队和出队,当被嵌入的控制框架准备好后,再按顺序将队列中的请求通过调用 s e t c o n t r o l u r i o 方法发送到服务器。 客户端向服务器发出发布事件请求的过程和发出订阅请求的过程大体相同, 不同的是调用的方法是pp u b l i s h ( ) ,并且在发送请求时,要将发布的事件内容作为 参数传递到服务器。 客户端向服务器发出注册、监听、订阅主题、发布事件等请求,除了可以使 用上述的隐藏框架的方式,还可以使用a j a x 的方式。在p u s h l e t 的客户端,除了 有上文中提到的两个文件,还有一个可重用的文件:a j a x p u s h l e t - c l i e n t j s ,在这个 文件中,有与p _ j o i n o 、p _ l i s t e n 0 、p _ s u b s c r i b e ( ) 等方法相对应的用a j a x 方式实现 的方法,对于具体的实现过程,在这里不再作详细的介绍。另外,在p u s h l e t 的客 户端还可以使用f l a s h 、a p p l e t 等方式,这些都不是p u s h l e t 的优势,在这里也不作 详细介绍。 客户端向服务器发出注册、监听、订阅主题等请求后,服务器要对这些请求 进行处理。在介绍服务器如何处理这些请求之前,首先介绍p u s h l e t 在服务器端的 一些关键类,p u s h l e t 的j a v a 类图如图2 2 所示: 第2 章p u s h l e t 和数据缓存技术 i h t t p s e r v l e t l e v e n t i li l ll e v e n t s o u r c e m a n a g e rl il z l , - 、i 一, l 1 l d i s p a t c h e r e v e n t s o urce 一, + u n l c a s t o + m u l t l e a s t o + b r o a d c a s t ) l 氐 1 w i t hg u a r d e dq u e u e , o - l e v e n t q u e u e i 爿 ! s i l l ,s c r i b e t + o n e v e n t ole h t r “n “i i n i l 1 s e s s i o n m a n a g e r 卅 o 坩 i l i p u s h i e r s e s s i o n ll i i ll ii i l , c o n t r o l l e r lll0 i艮 一一 厂、 l c o m m a n d l ll ll , l 麓i i e n l a d 盐p l e rl ll | b r o w s e r a d a p t e rs e r l a l i t e d a d a p t e r x i t 。a d a p t e r 图2 2p u s h l e t 的j a v a 类图 f i g 2 2p u s h l e tj a v ac l a s sd i a g r a m 下面对图2 2 中所示的一些关键类作简单说明: 1 2 p u s h l e t 和数据缓存在船舶动态管理系统应用的研究 ( 1 ) p u s h l e t :它是一个s e r v l e t 类,客户端发送到服务器的所有请求首先要由这 个类进行处理,然后再由它调用其他类的方法对请求做进一步处理。 ( 2 ) s e s s i o n :为每一个发出注册请求的客户端建立一个s e s s i o n 对象,每个 s e s s i o n 对象都有一个唯一d 号,通过d 号确定s e s s i o n 对象,客户端与服务器 端的通信就是通过s e s s i o n 对象完成。 ( 3 ) s e s s i o n m a n a g e r :s e s s i o n m a n a g e r 负责管理所有的s e s s i o n 对象,管理s e s s i o n 对象的生成、销毁等。s e s s i o n m a n a g e r 采用单例模式,它在p u s h l e t 类被载入时生 成。 ( 4 ) s u b s c r i b e r :在创建s e s s i o n 对象时创建一个与它对应的s u b s c r i b e r 对象, 它与s e s s i o n 对象是一一对应的关系,因此与客户端也是一一对应的关系。它保存 着客户端订阅的所有主题信息,还拥有一个先进先出的事件队列,这个队列采用 的是生产者消费者模式,具有挂起保护的作用。就是根据s u b s c r i b e r 对象中保存 的客户端订阅的主题信息决定是否要将新产生的事件发送到对应的客户端,在发 送事件之间,先将事件保存到事件队列中,然后再由s e s s i o n 对象从事件队列中取 出事件,将事件推到对应的客户端。 ( 5 ) s u b s c r i p t i o n :s u b s c r i p t i o n 对象与客户端订阅的主题对应,每一个主题对应 一个s u b s c r i p t i o n 对象,在s u b s c r i b e r 对象中,有一个s u b s c r i p t i o n 数组保存对应的 客户端订阅的所有主题。 ( 6 ) c o n t r o l l e r :与s u b s c r i b e r 对象一样,c o n t r o l l e r 对象也是在创建s e s s i o n 对 象时创建的,它与s e s s i o n 对象是一一对应的关系,因此与客户端也是一一对应的 关系。它负责处理客户端的请求,对于不同客户端的请求,调用与之对应的不同 c o n t r o l l e r 对象对请求进行处理。 ( 7 ) c o m m a n d :在c o m m a n d 对象中封装着客户端的请求信息和客户端对应的 s e s s i o n 对象。 ( 8 ) d i s p a t c h e r :d i s p a t c h e r 担任的是向各个客户端发布事件的角色,它并不是 直接将事件发给客户,而是将事件先发送到s u b s c r i b e r 对象那里,由s u b s c r i b e r 对 象负责将事件排队,然后按队列中事件的顺序发送给它对应的客户端,这样处理 的好处在于发报机将事件发送给多个s u b s c r i b e r 对象时,不会因为慢客户端而被阻 塞,从而提高了程序性能。它提供了三种发送方式:广播,多播和单播。广播是 第2 章p u s h l e t 和数据缓存技术 将事件发送给所有注册过的客户端;多播是将事件发送给订阅了该事件主题的客 户端,客户端可以是一个或多个;单播是将事件发送给一个特定的客户端,这个 特定的客户端是通过s e s s i o n 对象的d 号来确定s e s s i o n 对象,进而由s e s s i o n 对 象确定客户端。d i s p a t c h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论