已阅读5页,还剩46页未读, 继续免费阅读
(计算机软件与理论专业论文)软件更新中push和p2p分发的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘耍 摘要 由于软件功能扩展、用户需求改变和修正b u g 等原因,软件产品需要不断的 被更新。随着互联网的迅速发展,利用i n t e m e t 进行客户端软件的自动更新成为一 个可行并有效的方法。 通过对现有的软件更新工具的分析,发现现有的更新工具存在两个主要的问 题:一是更新信息的获取一般通过客户端按照一定时间间隔到服务器端查询,系 统性能不好,并且不能保证更新的及时性;= 是分发软件更新采用的是传统的c s 架构的下载方式,服务器端的网络负荷非常大,并且下载速度不理想。 针对这两个问题,本文提出了各自的解决方案:采用n e tr e m o t i n g 技术实现 p u s h 更新信息,利用p 2 p 方式分发软件更新。p u s h 技术是指服务器在有新的更新 时主动通知用户,它可以避免客户端频繁的访问服务器,并且保证了客户端可以 及时的获取更新信息。p 2 p 是最近流行的一项网络技术,它在大量用户同时下载相 同文件的情况下,相比较传统的下载方式,既可以太大减轻服务器的网络负荷又 j 叮以有效提高用户的更新下载速度。 关键词:软件自动更新p u s hp 2 p n e t m 蛆o d n g a b s i r a c t a b s t r a c t b e c a u s eo fe x p a n d i n gt h ef 1 1 n c t i o n so fs o f t w a t e ,t h ec h a n g e0 fu s e t s ir e q u i i 唧e m s a n d 触i n gt h eb u g ,t h es o f t w a r ep r o d u c t sn e e du p d a t i n gc o n s t a i l t l y o n gw i t ht h er 印i d d e v e l 叩m e n lo fi i l t e m e t ,i t b e c o m e sa na v a i l a b l ea j l de 腧c t i v em e t h o dt ou p d a t et h e s o f t w a r ea u t o m a t i c a l l yu s i n gi n t e m e l 1 1 1 m u 曲t h ea i i a l y s i so ft h ee x i s t i n gs o f t w a r cu p d a t ep t o d u c t s ,f o u n d e dt h a tt h e e x j s t i n gs o f 蛔a r eu p d a t ep r o d u c t sh a v em om a i np r o b l e m s :f i r s t ,t h ei 蜘a t i o no f s o f t w a f eu p d a t ei su s u a l l yg o t t e nb yq u e r y i n gt h es e r v e rc o n s t a n t l y ,s ot h es y s t e m p e r f o m 锄c ci sn o tg e n e r a l l yg o o d 卸d “c a n tg l l a f a n t e ed i e n ts o f t w a r cu p d a t ei nt i m e s e c o n d ,t l l ed e l i v e r ) ro fs o f h a r eu p d a t eu s c st r a d i t i o n a lc ss t n l c l l c ,s ot h es e e r s n e m o r k1 0 a di se x t r c m e l yl a r g c ,a dt h ef a t co fd o w l i l o a di sn o ts a t i s f y i n g i i lv i e wo ft h e s et w oq u e s t i o n s ,t h i sa n i c l ep r o p o s e df e s p e c t i v es o l u t i o n s :u s i n g t h e n e tr e 耵1 0 峨gt e c h n o l o g yt 0r e a l i z et h ep u s ho fu p d a t ei n f 0 1 r m a l i o n ,d e e 血gt h e s o 脚a r eu p d 砒eu s 地p 2 p ( p e c rt op c e r ) t e d m o l o g y 1 1 i ep i i s ht e c l l l l o l o 舒r e f e r st h a t t h es e r v e ri n f o n n st t l ec u s t o m e r sa c t i v e l yw h e ni t h a sn e ws 耐细a r eu p d a t e s ,w h 甜lm a y a v o i dt h ec l l s t o m e r sf 诧q u e n t l yv i s i t i n gs e r v e r ,a n dg u 糊l e et h ec u s t o m e r sg e tt l i e u p d a t ei l l f o n n a t i o ni nt i m e p 2 pw 嬲o n eo ft h ep o p u l a rn e 押o r kt e c h n o l o 西e sr e c e n t l y w h e nal a r g e 肌m b e ro fc u s t o m e r sd o w n l o a dt h es a m ef i l 鹪a tt h es 锄et i i n e ,t h ep 2 p t e c h n o l o g y c o m p 盯c d w i t ht h et r a d i t i o n a ld o w n l o a d i n gm e t h o d s ,c 柚r c d u c et h e n e t w o r k1 0 a do ft l l es e r v e ra n di m p f o v et 量1 ec u s t o m e 耐d o w n l o a d i n gr a t ee d e c t i v e ly s o i n t r o d u c i n gp 2 pt c c h n o l o g y t ot h ed e l i v e r yo fs o f 时a r eu p d a l ei sa 鲫dc h o i c e k e y w 删s :s o 腑ma h u p d a 如p u s h p 2 p n e tr 哪。她 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:王妻日期兰塑血 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 摘解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名: 导师签名: 王盎日期21 幽! 篁 董:壹盟 同期2 ,。彳f t r 第一章绪论 第一章绪论 1 1 引言 软件的生命周期大致包括五个阶段:需求、开发、应用、维护和废弃。软件 维护的目的是增加新的功能部件,增加对新的硬件设备和平台的支持,系统调整 和修复缺陷等。随着硬件设备发展的日新月异及用户需求的不断提高,软件维护 变得越来越频繁和重要,管理不断演化的软件对于软件发行商和供应商来说是一 个复杂的任务。而且,维护一个大型的系统,例如商业e r p 应用,会更加的困难 和耗费时间。系统维护中的任务,例如增加新的功能部件、增加对新的硬件设备 和平台的支持、系统调整和修复缺陷等,随着系统使用时间的增加和规模的增长 会变得极度困难。 对于用户使用的软件的维护,在过去一般是将原来的软件卸载后再重新安装 新版本的软件,软件维护的工作量很大并且耗费时间。随着软件开发技术的进步, 软件自动更新成为软件维护的一个重要手段。通过软件更新,对于软件开发者来 说不需要重新创建软件系统,而只需要重建系统中的某些组件或者某些文件甚至 只需要重新设置配置文件即可。对于用户来说,只要自己工作的机器连接在互联 网上,就可以不需自己太多参与而使软件得到更新,获取新的功能或者修正b u g , 从而获得较好的用户体验。 软件更新就是为了处理已发布软件的演化。对软件的更新可以看作是通过软 件功能的增加、删除、替换或重配置使软件配置发生改变的过程。一个实际的软 件更新包含可用的功能性和配置变更。根据这个定义,改变授权或某些配置设定 也可以看作是软件更新过程的一部分。 随着互联网的迅速发展,利用i n t 啪c t 进行客户端软件的自动更新成为一个可 行并有效的方法,并且出现了许多通用的或公司专用的软件自动更新工具,例如 微软的软件更新服务和n u x 下的r p mu p d a t e 。这些软件更新工具或者是单独的 应用程序或者是与客户端软件集成在一起。它们通过网络从软件更新服务器上获 取软件的更新信息,然后与本机软件的版本进行比较,如果发现有新的版本就从 更新服务器上下载软件更新包,最后根据更新配置文件将本机软件更新为最新版 本。这些软件更新工具使软件更新能够自动进行而不必用户的参与,大大降低了 软件维护的难度和成本。 现在一些大的软件供应商已经开始向服务转型:产品按年度付费,用户通过 付费获取售后支持与升级服务。也就是说通过软件的更新升级以提供新的功能来 软件更新中p u s h 和p 2 p 分发的研究与实现 获取用户付费,成为软件供应商的重要盈利手段。因此如何改善软件更新过程 使用户获得最佳的软件更新效果是一个非常值得研究的工作。 1 2 研究现状 现在大部分的软件都具有自动更新功能。有几种厂家特定的软件更新的解决 方案,它们或者内建于应用程序( 自动触发或由菜单选择) 或者在网页上结合专 门的客户端提供。这些解决方案在形式( 怎样使用它们) 和接收( 传输何种信息) 上各不相同,并且只适用于小部分软件部署领域。通常,他们既不提供允许其他 软件厂家使用的标准化接口或机制,也不能应用于不同的操作系统或编程语言。 国外目前已经有了许多专门的软件更新工具。按照它们在对软件更新分发和 部署时使用的方法和策略的不同及对软件更新过程覆盖的差异,大致可以分成3 种类型: 包部署工具( p d t ) :这些技术基于软件包的概念,并且在一个站点储存 库七存储表示每一个安装包状态的信息。个软件包就是一个存档,它包 含了与一些描述系统的元信息一起组成系统的文件。典型的包部署工具有 r e dc a r p e t ,a 】强b l 【i u p d a t e ,r p m u p d a t e ,n i x ,s w u p 等等。包部署工具 是特别设计用于部署和安装基于开发源代码系统的软件包的工具。这些系 统经常通过一些扩展工具来扩展功能。因此这些工具非常好的覆盖更新过 程的所有标准步骤,但是在用户交互和授权方面做得不够。这是由包部署 的特性决定的。首先,供应商反馈一般通过其他手段解决,通常是通过 b u g 报告系统和开发者团队论坛。其次,由于绝大多数开放源代码团体的 软件是免费的。所以授权并不是个问题,。 通用产品更新器( g p u ) :通用产品更新器就是完全从一个产品上抽象出来, 而试图把它应用到任意产品上的更新工具。目前已经商用的两种通用产品 更新器是h l s t 枷s h i e l d 和p o w e ru p d a t e ,研究产品有s o f t w a r ed o c k l 2 j a 通 用产品更新器覆盖了更新过程中的很多步骤。特别是在授权和用户交互方 面g p u 做得很好。这是因为,首先,g p u 必须被不同类型的使用者使用, 有时甚至应用于不同的平台,因此需要提供尽可能多不同的更新场景。其 次,g p u 是商业工具,因此需要授权和用户交互。最后,相比较其他的 更新器,g p u 有最多的关于供应商反馈的选项,因为从用户那里获得反 馈是一个在商业上很有吸引力的方案。 厂商产品更新器:厂商产品更新器特定应用于某一个产品的软件更新过 程,因此它们提供的功能有限。具体产品如微软的w i n d o w sx pu p d a t e , e x a c ts o f t w a r e 的p r o d u c tu p d a t e r 和赛门铁克的u v eu p d a t e 。厂商产品更 第一章绪论 新器( v p u ) 在传输和部署方面功能比较弱,但是在用户交互和授权方面 很强。v p u 的功能比较有限,因为它们被设计用于只执行一个产品的更 新和种形式的供应商用户交f l :。很多在v p u 中使用的方法是在更复杂 的软件更新模型中方法的简化。 这些软件更新工具对软件更新过程的覆盖各不相同,它们重点要解决的问题及 研究领域包括软件描述、用户交互、更新的分发、更新的部署等。 软件描述:软件的安装及更新的部署需要根据软件描述来进行。软件描述 说明了软件系统的构成、软件依赖和约束、软件部署动作。现有的描述语 言有0 s d 、d s d 、i u d d 等。 用户交互:用户交互包括更新信息的获取,供应商反馈等。更新信息的获 取一般通过网站页面、e m a i l 、门户以及常驻内存通知程序等。供应商反 馈是指客户端软件更新后,应将软件的工作环境变化情况及是否由更新带 来新的问题等反馈给供应商。 更新的分发:更新分发主要研究更新分发的格式和网络传输方式。更新分 发的格式目前有组件包、组件、文件、文件增最等形式。不同的分发格式 需要不同的部署方法。更新的传输有多种方式:一个是使用带有附件的 s o a p 传输二进制文件给客户端,另一个是使用传输并发字节数组的特殊 程序传输,再一个方法是使用直接的f 卯,h m 或 唧s 下载。 更新的部署:更新的部署就是指更新的安装过程。研究内容包括运行时和 动态更新、脚本支持、依赖分析和更新的回退等。系统的软件体系结构决 定了更新部署所能够采用的技术。 图1 1 说明了现有的软件更新工具对软件更新过程的覆盖情况: 升o 血碰n 帅糖 1 y 辨 g u 蝴rl n n 孵r d 唰纠删u 曲嗍 i n 憎耐姗 氢塾瑟瑟薹霎 茎萎 i 耋 釜 耋担董量 a : p 州帕 j 翻抽洲 ;i !i 凄 ; i i r 嘲撼t 妇删 :|i c 。 r 州c 雠斌洲 s o 缃阳悖d o 嚏删 f “w 科 锄州 a 町r 玎 r p 陴u 盟蛐h 玎 n b cr 玎 s w t j p唧 p i x 嘶h ) t o# l o 幅u d c i g 扣 v p uo d 嗡d p u v p u o m 8 s u sv p u u w u 口d & 搪 v p u l懈喇树:f 哇l jl 哪,嘲o p 鲥一s u 科b n 软件更新中p u s h 和p 2 p 分发的研究与实现 总之,在软件自动更新领域,存在许多需要进步探讨和深入研究的课题,以 使用户获得最佳的软件更新体验。 1 3 本文研究内容和目标 通过对上一节中提到的软件更新工具的研究,发现它们在软件更新信息的获 取及更新分发方面还不是很完善,有许多值得改进的地方。 现有的大部分软件都是由用户手动或者按照软件预设的时间间隔到更新服务 器查询更新信息。如果查询更新的时间间隔设簧的过短,会增加服务器和客户机 的额外负担,而如果时间问隔设置的过长,又可能会导致客户端不能及时更新, 造成不必要的损失。因此,本文引入p u s h 技术,以解决这一问题。p l l s h 即服务器 主动向客户推送信息,能够实现信息传输的实时性及减少网络带宽的使用。采用 p u s h 技术后,仅当服务器上有软件更新发布时才通知订阅更新的客户机下载更新, 这样就避免了大量客户机频繁的访问服务器,从而降低了服务器的负荷。另一方 面,也保证了客户机能够及时的获取更新信息。 在软件更新过程中非常重要的一步是软件更新的分发。传统的更新分发方式 是直接采用f t p ,唧或m 1 甲s 协议,基于c s 模式下载。但是采用这种方式 进行软件更新存在一个问题:由于更新服务器带宽的限制导致软件更新包的传输 可能出现较差的性能和扩展性。这一问题在当发布较大的更新包或同时下载更新 包的用户数量很大时变得尤为严重。为了解决这一问题,目前主要有两种方法: 一种是架设多个镜像服务器,通过分流减轻单个服务器的负担;另一种是向i s p 申请更高的带宽。但是无论是增加服务器还是增加带宽,都需要付出巨大的资金 投入,而且系统的扩展性很差。 为了解决这一问题,我们引入一种新的更新下载方式一一p 2 p 下载。p 2 p ( p e e t - 1 b p e 盯) 技术在大量用户传输大量文件的应用中体现出了很好的性能和扩 展性。p 2 p 技术发展的非常迅速,已经应用于很多商业系统。现在很多的大型开源 软件的分发采用的是b t 下载( 一种文件下载技术,基于p 2 p ) 。软件更新包的分发 本质上也是文件的下载,所以可以利用p 2 p 技术来实现。 应用p 2 p 技术实现软件更新包的分发,可以有效的减轻服务器的网络负荷, 而且在当用户数量增加时有良好的扩展性,不会像传统的下载方式那样出现单个 用户的下载速度急剧降低甚至无法下载的情况。本文设计和实现了p 2 p 方式分发 软件更新包的系统框架和相关协议。 本文重点研究了软件更新过程中的更新信息获取和更新分发这两个步骤,提 出了将p u s h 技术和p 2 p 技术引入软件更新过程的方案,设计和实现了p u s h 更新 信息和p 2 p 分发软件更新的系统架构,并针对p 2 p 分发分析了其性能。 第一章绪论 1 4 论文章节安排 本文各章节的内容安排如下: 第二章:描述了软件产品更新过程框架,详细讨论了更新过程中每一步的具体 动作和采用的相关技术。在通知更新和传送更新这两个步骤中分别引入p u s h 技术 和p 2 p 技术,对这两个技术进行了相关介绍。 第三章:设计和实现更新消息的p u s h 通知。应用n e tr e m o t i n g 技术实现p u s h 通知,因此首先对n e t r e m o t i n g 技术的体系结构和通信机制进行了分析,然后基 于n e tr e m o t i n g 设计了p u s h 通知的系统框架,最后给出其实现。 第四章:设计和实现p 2 p 方式分发软件更新。提出了一种新的基于p 2 p 的软 件更新分发的系统架构。设计和实现了新的分发系统的体系结构和通信协议。并 对系统性能作了测试。 第五章:对本文的工作进行了总结并展望了工作中还有待解决的问题。 软件更新中p u s h 和p 2 p 分发的研究与实现 第二章软件更新过程框架及相关技术 在前面介绍的软件更新工具,它们都大致遵循一个统一的软件更新过程框架。 在软件更新过程中,通知更新和传送更新是本文的研究内容。本文通过在通知更 新和传送更新这两个步骤中分别引入p u s h 技术和p 2 p 技术,使软件更新系统具有 更好的性能,使用户获得更好的软件更新服务。 2 1 软件更新过程框架 软件更新过程模型有两个参与者:用户和供应商。图2 1 所示的更新过程框架 基于用户状态和供应商与用户之间的交互。 下面详细描述更新过程中的每一个步骤: 通知更新:更新首先被发布到软件储存库中。当供应商希望给他的用户提 供更新时,用户必须首先通过可用的通信途径获得更新信息。 接受信息:用户通过商业渠道从软件供应商处获得更新信息,例如网站, 邮件,电子邮件和门户,以及常驻内存通告程序和常驻内存进程等。 接收更新:用户可以手动或自动接收更新。接收更新时需要注意的问题是 安全、更新的可靠性和完整性检查。另一个问题是下载前的依赖检查,例 如可用磁盘空间和构件依赖。 传送更新:一旦用户被告知更新信息,供应商就可以将更新传送给用户, 传输的手段包括邮件、e m a i l 、用户可以下载更新的网络站点,或者可以 自动接收和安装更新的常驻内存进程。在传送更新时要注意的问题是安全 及更新传输的格式。更新传输的格式包括:组件包、组件、文件和文件增 量。 安装部署更新:用户安装更新以获取新的功能,提高性能和纠正错误。 部署或安装更新需要采取合适的部署方法,常见的部署方法有覆盖、插件 和删除后重新安装。与部署有关的其他问题包括提供脚本支持,依赖分析, 执行完整性检查,部署同一构件的多个版本等。 激活更新:更新被部署后必须被激活才能被用户所使用。激活过程有3 个 方面:配置、授权验证和运行更新。配置是指绑定由更新引入的所有未绑 定的参数。授权确保软件更新按照供应商一客户的合同规定被使用。 供应商反馈:更新后的反馈可以帮助供应商评测部署过程,跟踪更新结果。 第二章软件更新过程框架及相关技术 图2 1 软件更新过程框架 2 2p u s h 技术 2 2 1p i l s h 技术的概念及实现形式 1 9 9 6 年底,在美国兴起了一项新的网上信息获取技术- n l s h ( 推送) 技术1 3 】。 与使用浏览器查找的p u n ( 拉取) 信息技术不同,p u s h 技术是根据用户的需求,有 目的性地按时将用户感兴趣的信息主动发送到用户的计算机中。就像是广播电台 播音,p u s h 技术主动将最新的新闻和资料推送给客户,使用者不必上网搜索。 p u s h 技术是指几种不同的技术解决方案,这些方案都或多或少的致力于颠覆 传统的w 曲模型。传统的w 曲模型( 称为p u l l ) 中,用户( 浏览器) 以同步方式从服务 器上请求数据。这意味着任何时候用户需要数据更新时,用户都必须询问服务器 是否有数据发生了变化,并获取新数据。相反,p u s h 模型中,用户向服务器提交 他想要接收什么样的数据,然后用户以异步方式接收数据更新,更新的频度由服 软件更新中p u s h 和p 2 p 分发的研究与实现 务器决定。也就是说,用户变成了模型中的被动部分,在服务器上只要一有新数 据,用户就能收到,不再需要每次都询问服务器。e m a i l 是互联网上p u s h 技术中 使用最悠久最广泛的一种形式。 p u s h 的主要优点:一是对用户要求低,普遍适用于广大公众,不要求用户有 专门的技术;i 是及时性好,信源及时地向用户推送不断更新的动态信息;三是避 免了客户端不断的对服务器进行查询,减轻了服务器的压力。 网络p u s h 主要采用下面几种方式: 通知:p u s h 技术最基本的形式是一个简单的通知,如电予邮件等。针对这种 形式,读者可控制它通知的形式、时间间隔等。通知并不具备很强的交互性和强 制性,对资源和信息流量的要求不高。 提要:提要可实现查看w 曲页或其它信息源,寻找需要匹配的信息、并向读 者传递信息。读者要以关键词、臼期、数值、比较规则以及其它查询条件提供要 查找的信息。提要有很多后台进行的处理活动。不仅是给读者每天一次的报道, 它的活动还要受查找条件的制约,这些后台的处理活动与后台的联系是不可预测 的。 自动拉出:它有一组可供读者经常查看的r c b 页。自动拉出将获得所有这些 w 曲页,并保存起来供读者以后阅读。自动拉出可以获得许多资料,读者还可以 通过电子邮件接受这些资料,或至少知道这些w e b 页是为自己编制的。 自动推送:自动推送能根据自身的刷新时间发布信息,读者可以预定推送信 息服务。但需要在w 曲页上连续收听广播。在一般情况下,这种服务要求在读者 终端上装有特殊的客户机软件,定期发出更新请求。如果读者不在w 曲上提出服 务要求,他将得不到任何服务。读者从自动推送得到的可能是全屏报道,多在屏 幕底部显示大字标题。这种推送有很多交互性,读者可以选择需要查看的信息流, 也可以精选发送给读者的信息。 频道式推送:它将某些页面定义为浏览器中的频道,读者可像选择电视频道 那样接收有兴趣的信息。m i c m s o f t 、n e t s c a p e 、p o i n t i c a s t 都有频道定义格式。 网页式样推送:在一个特定网页内将所推送的信息提供给读者,如某企业、 某组织、某个人的网页。 专用式推送:采用专门的信息发送和接受软件,信源将信息推送给专门读者, 如机密的点对点通信。 目前,频道式推送和网页式推送已经不多见。迄今为止,p u s h 技术最成功的 应用是在一些特定的领域,针对特定的用户群体。例如,在股票信息系统中,用 户关注的往往不是所有股票而是少数几支股票,而且用户需要清楚的掌握股票的 股价变动情况。这时可以在客户端上安装接收软件,服务器根据用户订阅的情况, 在股票的股价变动超过用户预先定义的范围时,将用户订阅的股票的信息及时 第二章软件更新过程框架及相关技术 p u s h 给用户。这样用户就可以在第一时间接收到自己关心的股票的信息,而不用 经常的去网上查询,大大节约了时间。 2 2 2p u s h 技术在软件更新中的应用 现有的大部分软件更新工具都是由用户手动更新或者按照软件预设的时间问 隔查询更新。如果查询更新的时间间隔设置的过短,会浪费服务器的网络带宽, 而如果时间间隔设置的过长,又可能会导致客户端不能及时更新。因此,仅靠客 户端按一定对问间隔去服务器端查询更新是不够的,这时可以使用p u s h 技术将更 新信息推送给用户,通知其马上更新,或者直接将更新文件p u s h 给客户端。 软件更新中的p l l s h 从形式上看,属于专用式推送,因为它采用了专门的客户 端软件( 软件更新器) ,并且接受p u s h 信息的用户必须是获得授权的合法用户。 用户每次启动程序后,客户端到服务器端注册自己的信息,服务器端要对客户端 的身份进行合法性验证,以防止非法用户获取更新信息。当服务器上有新的软件 更新时,服务器端根据用户注册的网络信息,将更新信息p u s h 给客户端。 在软件更新过程中的更新信息通知这一步骤中,引入p l i s h 技术,既避免了客 户端频繁的访问服务器端,又使客户端可以及时的获取软件更新信息,非常适用 于对软件更新及时性要求较高的情景。软件更新过程中p i l s h 技术的实现将在第三 章中详细说明。 2 3p 2 p 技术 2 3 1p 2 p 的概念及与传统c 俗架构的比较 2 3 1 1p 2 p 的概念及特点 p 2 p ( p e e r - t 争p e c r ,即对等网络计算) 是一种应用于互联网的分布式计算技术。 参与p 2 p 网络的节点相互之间地位平等,没有特殊的中心服务器,所有节点之间 的交互是直接的是p 2 p 的核心特点。 p 2 p 技术的特点体现在以下几个方面。 非中心化( d e c e n t r a l i z a l i o n ) :网络中的资源和服务分散在所有结点上,信 息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务 器的介入,避免了可能的瓶颈。p 2 p 的非中心化基本特点,带来了其在可 扩展性、健壮性等方面的优势。 软件更新中p u s h 和p 2 p 分发的研究与实现 可扩展性:在p 2 p 网络中,随着用户的加入,不仅服务的需求增加了,系 统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需 要。整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为 是无限的。 健壮性:p 2 p 架构天生具有耐攻击、高容错的优点。由于服务是分散在各 个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。p 2 p 网络一般在部分结点失效时能够自动调整整体拓扑,保持其它结点的连通 性。p 2 p 网络通常都是以自组织的方式建立起来的,并允许结点自由地加 入和离开。p 2 p 网络还能够根据网络带宽、结点数、负载等变化不断地做 自适应式的调整。 高性能价格比:性能优势是p 2 p 被广泛关注的一个重要原因。随着硬件技 术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定 律高速增长。采用p 2 p 架构可以有效地利用互联网中散布的大量普通结 点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力 或存储空间,达到高性能计算和海量存储的目的。通过利用网络中的大量 空闲资源,可以用更低的成本提供更高的计算和存储能力。 隐私保护:在p 2 p 网络中,由于信息的传输分散在备节点之间进行而无需 经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此 外,目前解决i n t e m e t 隐私问题主要采用中继转发的技术方法,从而将通 信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中, 实现这一机制依赖于某些中继服务器节点。而在p 2 p 中,所有参与者都可 以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能 够为用户提供更好的隐私保护。 负载均衡:p 2 p 网络环境下由于每个节点既是服务器又是客户机,减少了 对传统c s 结构服务器计算能力、存储能力的要求,同时因为资源分布在 多个节点,更好的实现了整个网络的负载均衡。 p 2 p 系统的这些特点也决定了p 2 p 应用主要包括资源共享和协作。资源共享 主要是文件共享系统、文件分发系统( f i l ed i s t d b u t i o ns y s t e m ) 。通过p 2 pi 网络实 现文件共享和文件分发,能够应付爆发式访问。系统的可伸缩性好,可靠性好。 此类典型系统有n 印s t e r 【捌,g n u t e l l a 嘲,f e n c l ,c h 鲫1 - b a s e ds y s t e m ,b i t t o n 如t 例。 p 2 p 协作应用的种类很多,包括即时消息系统、在线游戏、共享企业应用( 在提供 即时消息之外,还可共享内容和进行共同的活动如组内共同开发和编辑) 、文件搜 索、p u b s 曲( 发布订阅) 系统等。其中,即时消息系统有a o l 朋m 、y a h 0 0m e s s e n g e f 、 m s nm e s s e n e e r 、j a b b e r 等;在线游戏有星际争霸、t z 和d 0 0 m ;共享企业应 用有g i o o v e 、m a g i ;文件搜索有y o u s e a r c h ,o p e n c o l a 等;p u b s u b 系统有s c r i b e 、 第二章软件更新过程框架及相关技术 l1 h e m s 等;还有基于p 2 p 网络构造的e m a j l 系统。而从p 2 p 系统的典型特点束分析, 常常被引证为p 2 p 应用的科学计算系统s e t i h o m e 应该属于p 2 p 的非典型应用。 各种p 2 p 系统由于应用背景的差异,彼此互不兼容,导致不同的p 2 p 网络无法通 信,难以有效地利用网络资源提供服务。s u n 公司组织开发的j x l r a 项目,希望通 过提供一个简单通用的p 2 p 平台来解决这个问题。从上述应用可以看出,p 2 p 系 统并不能替代客户服务器系统,它们两者是相辅相成的关系。 2 3 1 2p 2 p 架构与传统c s 架构的比较 p 2 p 在最近几年的迅速发展,导致了很多人都错误地认为p 2 p 是一个新生事 物。实际早在互联网诞生之前,p 2 p 思想已经普遍存在于计算机网络体系中,其中 最为典型的例子就是u s e t 。u s c n e t 是最早的网络通信系统之一,目前仍然在广 泛使用,它提供了类似于公告板的服务,用户可以通过它来阅读和张贴消息。u s e n e t 在大量的分布服务器之间通过洪泛算法( f l o o d i n g 舢g 吲t h m ) 来传递用户消息, 这种算法在今天的p 2 p 应用中仍然被广泛采用。如果将u s e n e t 的分布服务器看作 是对等网络节点的话,u s e n e t 就是一个相当典型的p 2 p 系统。可以说,p 2 p 最初 就是计算机网络建设的一个基本思路。 但是在后来的互联网发展过程中,随着万维网应用的开展,c s ( c l i e n “s e n r e r ) 结构逐渐成为了互联网的主流,并且在这过程中吸引了千千万万的新网民。对于 这些网络用户来说,他们认识到的互联网就是基于c s 结构的。 在( 1 s 模型中,服务器提供所有必需的内容或服务,因此,服务器通常拥有 高度的资源,例如计算能力、网络带宽和存储容量。另一方面,客户端不需要有 这么高度的资源,因为它们只需要从服务器上获取内容或请求服务而不与其他客 户端或服务器共享它们自己的任何资源。d s 网络的一个重要属性是服务器和客户 端之间是1 对多的关系,由此导致一个严格的两层结构,服务器是最高层的难一 实体。使用这种高度集中的网络体系结构带来的优点是服务器拥有对网络的完整 控制。 最早的文件下载是基于a i e n 临e r v e r 模式的f 1 1 p 服务,被下载的文件放在f 1 p 服务器上,用户通过w 曲登录到该服务器,取得相应的下载权限,就可将该文件 下载到自己的计算机上。在f r p 下载的过程中,被传输文件的来源和目的端并不 对等,f 1 甲服务器只是单向地将文件传送给客户端。 与p 2 p 网络相比,c s 网络有如下缺点: 系统的信息都位于一个实体上( 服务器) ,容易导致单点脆弱性。 服务器和客户端之间的1 对多的关系降低了系统的可伸缩性,因为服务器 必须能够处理单位时间内从客户端接收的所有请求。如果单位时间内请求 1 2 软件更新中p u s h 和p 2 p 分发的研究与实现 的数目超过了服务器的处理能力就会导致服务失败。 当在1 1 1 t e m e t 上使用时,c s 网络在带宽的利用上很低效。因为它严格的 两层的分层结构不能有效的跌射于1 1 1 t e 玎1 e t 网络层的分散式的体系结构。 因此,当c s 中的应用层通信被映射到i n t e m e t 的网络层时,很大数量的 网络层的链接不能被充分利用。 我们应该注意到,以上所有的缺点由于冗余弹性特征的需求,服务器能力的 需求以及带宽利用不足,最终都会转化为额外的经济代价。下面的图2 2 和表2 1 标示了传统的c s 模型与一般的p 2 p 模型之间的区别( 注:s e r v e n t 即单词s e r v c r 和a i e n t 的结合,意思指既是s e r y e r 又是c j i e n t ) 。 0 b j e d d bi s e m c 静呲 传统的c s 模型 呻dd b0 c k r i i ,s e m “p e e 。 一般的p 2 p 模型 图2 2 c 幅模型与p 2 p 模型的网络结构 表2 1 ( s 模型与p 2 p 模型的比较 m o d e lr o ko f n o d e s b a 她r e l a t i o s h i p c e n t f a l0 呻【打0 l c sc h t 或s e f v e fc s y e s e e r ) p 2 ps e r v e n tp e e r p e e r 2 3 2p 2 p 的网络模型 p 2 p 网络是一种具有较高扩展性的分布式系统结构,其对等概念是指网络中的 物理节点在逻辑上具有相同的地位,而并非处理能力的对等。以n a p s t e r 软件为代 表的p 2 p 技术其实质在于将互联网的集中管理模式引向分散管理模式,将内容从 中央单一节点引向网络的边缘,从而充分利用互联网中众多终端节点所蕴涵的处 理能力和潜在资源。相对于传统的集中式客户朋匪务器( c s ) 模型,p 2 p 弱化了服务 器的概念,系统中的各个节点不再区分服务器和客户端的角色关系,每个节点既 可请求服务,也可提供服务,节点之问可以直接交换资源和服务而不必通过服务 第二章软件更新过程框架及相关技术 器。 p 2 p 系统最大的特点就是用户之间直接共享资源,其核心技术就是分布式对象 的定位机制,这也是提高网络可扩展性、解决网络带宽被吞噬的关键所在。迄今 为止,p 2 p 网络已经历了三代不同网络模型,各种模型各有优缺点,有的还存在着 本身难以克服的缺陷,因此在目前p 2 p 技术还远未成熟的阶段,各种网络结构依 然能够共存,甚至呈现相互借鉴的形式。 2 3 2 1 集中目录式结构 集中目录式p 2 p 结构是最早出现的p 2 p 应用模式,因为仍然具有中心化的特 点也被称为非纯粹的p 2 p 结构。用于共享m p 3 音乐文件的n a p s t e r 是其中最典型 的代表f 见图2 3 1 。其用户注册与文件检索过程类似于传统的c s 模式,系统在中 央服务器上维护着一个不断更新的对象目录,节点登录到服务器并且上传它们提 供的文件的列表,然后向服务器发出查询请求以找到哪些节点拥有它们需要的文 件,最后直接从对象所在位置下载所需对象。所有对象并非存储在服务器上,而 是存贮在各个节点中。查询节点根据网络流量和延迟等信息选择合适的节点建立 直接连接,而不必经过中央服务器进行。虽然集中目录式p 2 p 结构中集中式的数 据库可以避免查询路由和其他p 2 p 系统的一些问题,但显然这种集中式的方法具 有单点脆弱性和较差的可伸缩性。这种结构的另一个特征是它支持部分匹配查询 ( 例如查询标题中包含两个或更多特定词语的对象) 。 呻c t d 8 c - m n a p 或e r 模型 d t e c i 吖ys 甜v e r 圈2 3 n a p s 时网络模型 2 3 2 2 纯p 2 p 网络模型 纯p 2 p 模式也被称作广播式的p 2 p 模型。它取消了集中的中央服务器,对象 1 4 软件更新中p u s h 和p 2 p 分发的研究与实现 查询是分布式的,并且逻辑的p 2 p 拓扑经常是随机的和无组织的网状网络。对等 节点之间的内容查询和内容共享都是直接通过相邻节点广播接力传递,直到成功 ( 失败) 或者超时。 g n u t e l l a 模型是现在应用最广泛的纯p 2 p 非结构化拓扑结构帆图2 4 ) 。它既 没有集中式的目录,也没有任何对于网络拓扑的精确控制或者对象组织。一个节 点要加入g n u t e l l a 网络,首先必须要连接到一个己知的g n u t e l l a 节点以获得启动所 需的一些已经存在的g n u t e l l a 节点。如果要查找文件,节点向它的邻居节点发出 查询。最典型的查询方法是泛洪即查询在一定范围内或在p 2 pt t l 机制的约束下 被广播到所有的邻居节点。它解决了网络结构中心化的问题,对于节点进入和离 开系统具有很好的弹性,容错性也较好,但是g n u t e l l a 网络中的搜索算法以泛洪 的方式进行,控制信息的泛滥消耗了丈量带宽并很快造成网络拥塞甚至网络的不 稳定。 图2 4 g t e a 模型 2 3 2 3 混合式网络模型 i 【a z 缸模型是p 2 p 混合模型的典型代表( 见图2 5 ) ,它在纯p 2 p 分布式模型基 础上引入了超级节点的概念,综合了集中式p 2 p 快速查找和纯p 2 p 去中心化的优 势。k a z a a 模型将节点按能力不同( 计算能力、内存大小、连接带宽、网络滞留时 问等1 区分为普通节点和搜索节点两类f 也有的进一步分为三类节点即用户节点、搜 索节点和索引节点,其思想本质相同1 。其中搜索节点与其临近的若干普通节点之 问构成一个自治的簇,簇内采用基于集中目录式的p 2 p 模式,而整个p 2 p 网络中 各个不同的簇之间再通过纯p 2 p 的模式将搜索节点相连起来,甚至也可以在各个 搜索节点之间再次选取性能最优的节点,或者另外引入一新的性能最优的节点作 为索引节点来保存整个网络中可以利用的搜索节点信息,并且负责维护整个网络 第二章软什更新过程框架及相关技术 的结构。 由于普通节点的文件搜索先在本地所属的簇内进行,只有查询结果不充分的 时候,才再在搜索节点之问进行有限的泛洪。这样就极为有效地消除纯p 2 p 结构 中使用泛洪算法带来的网络拥塞、搜索迟缓等不利影响。同时,由于每个簇中的 搜索节点监控所有普通节点的行为,这也能确保些恶意的攻击行为在网络局部 得到控制,并且超级节点的存在也能在一定程度上提高整个网络的负载平衡。 总的来说,基于超级节点的混合式p 2 p 网络结构比以往有较大程度的改进。 然而,由于超级节点本身的脆弱性也可能导致其簇内的结点处于孤立状态, 因此这种局部索引的方法仍然存在定的局限性。这导致了结构化的p 2 p 网络模 型的出现。 r 7 遗蕴节点、。7 w 力f 、i 。、 ,i ? 倔i ( 誊嘛c 、 超级节点1 埘等1 i 厂、 ( 对等节点o :啃求r 叫h j j ,d :r 载迎件 图2 5 k a z z a 嘲络模j 2 3 2 4 结构化网络模型 所谓结构化与非结构化模型的根本区别在于每个节点所维护的邻居是否能够 按照某种全局方式组织起来以利于快速查找。结构化p 2 p 模式中,对象查询也是 分布式的,但
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47270-2026焦化苯类产品氮含量的测定
- 长春医学高等专科学校《中外艺术鉴赏》2025-2026学年期末试卷
- 扬州大学《当地中国政府与政治》2025-2026学年期末试卷
- 2024年全国公用设备工程师之专业案例(暖通空调专业)考试重点黑金模拟题附答案
- 2024年民间借贷担保合同13篇
- 实际问题与二元一次方程组(第1课时)(教学课件)2025-2026学年人教版七年级数学下册
- 2024年以规则为话题的作文:规则之美
- 2024年全国报检员之报检员资格考试考试经典测试题附答案
- 2024年学校思想政治工作总结
- 小过山车营销方案(3篇)
- 2025-2030中国数字多用表行业发展分析及竞争格局与发展趋势预测研究报告
- 2026届东北三省三校高三第二次联合模拟考试物理试题(含答案解析)
- 初中物理八年级下册《功与机械能》单元教学设计:探究“功”的内涵、计算与意义
- 2026年青少年国防教育专题竞赛题库
- 2026年长春中考艺术常识测试题及答案
- 截桩头施工方案
- catti三级笔译实务全部试题真题及答案
- 保密协议(2026年游戏行业保密)
- 江苏省常熟市 高中英语期中试卷汇编:首字母填空专题
- 江西省交通工程质量监督站试验检测中心现场检测收费项目及标准
- GB/T 1800.3-1998极限与配合基础第3部分:标准公差和基本偏差数值表
评论
0/150
提交评论