(计算机应用技术专业论文)jxta分析及其java实现的应用研究.pdf_第1页
(计算机应用技术专业论文)jxta分析及其java实现的应用研究.pdf_第2页
(计算机应用技术专业论文)jxta分析及其java实现的应用研究.pdf_第3页
(计算机应用技术专业论文)jxta分析及其java实现的应用研究.pdf_第4页
(计算机应用技术专业论文)jxta分析及其java实现的应用研究.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)jxta分析及其java实现的应用研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 p 2 p 模式作为现有的客户服务器模式的有益补充将在网络互联领域发挥日 益重要的作用。如今流行的p 2 p 技术五花八门、纷繁复杂,但是大多有很大局 限性,往往一种技术只适用于某些应用方式,难以成为统一的p 2 p 应用软件开 发平台,从而阻碍了p 2 p 应用面的拓展。为此,本文重点研究了j x t a ,它是以平 台软件作为其发展方向,主要目的是帮助开发面向各种互联网平台和网络的p 2 p 应用程序,特别是企业级应用程序。除了理论上结合j x t a 规范研究其通信方式 和核心协议,本文又通过分析其j a v a 参考实现的源代码来实际理解j x t a 的运行 机制。最后还设计了基于解析器服务实现远程请求处理和基于管道服务进行数据 收发这两种有一定代表性的j x t a 应用。 关键字:p 2 p ,j x t a ,对等点,对等组 a b s t r a c t p 2 p ah e l p f u ls u p p l e m e n tt ot h ec l i e n t s e r v e r , p l a y sa l li n c r e a s i n g l yi m p o r t a n tr o l ei n t h en e tw o r l dn o w a d a y s a l t h o u g hv a r i o u sp 2 pr e l a t e dt e c h n o l o g i e sa r ee m e r g i n g r a p i d l y , t h e r ei s s t i l lm u c h d e f i c i e n c y u s u a l l y , ac e r t a i nk i n do f p 2 p t e c h n o l o g yi s d e s i g n e df o rs o m es p e c i f i cp u r p o s e i f w ef a i lt oh a v eau n i f o r mp l a t f o r mt os u p p o r t g e n e r a lp 2 pa p p l i c a t i o n sd e v e l o p m e n t , t h ea p p l i c a t i o ns c o p eo f p 2 pw i l lb eg r e a t l y l i m i t e d s o t h et h e s i sf o c u s e so nj x t a , ak i n do fp 2 pp l a t f o r ms o f t w a r c j x t aa i m sa t s u p p o r t i n g p 2 p a p p l i c a t i o n sd e v e l o p m e n t ,e s p e c i a l l y i nt h e e n t e r p r i s e l e v e l a p p l i c a t i o nf i e l d a c r o s sa l lk i n d s o fn e t w o r k sa n do s p l a t f o r m s n l i st h e s i sn o to n l y d i s c u s s e st h ec o r ep r o t o c o l sa n dt h ec o n n n u n i c a t i o nm e t h o d si nt h ej x t as p e c i f i c a t i o n , b u ta l s oa n a l y z e st h ea c t u a lm e c h a n i s mo f j x t at h r o u g hu n d e r s t a n d i n gt h eo p e ns o u r c e o fi t sj a v a - b a s e dr e f e r e n c e i m p l e m e n t a t i o n a t l a s t , 也e t h e s i s p r o v i d e s t w o r e p r e s e n t a t i v ek i n d so f j x t a - b a s e da p p l i c a t i o n o n ei st oh a n d l et h er e m o t er e q u e s t s w i t l lt h er e s o l v e rs e r v i c e t h eo t h e ri st or e a l i z et h ed a t at r a n s m i s s i o n 、i t l lt h ep i p e s e r v j c c k e y w o r d s :p 2 p , j x t a , p e e r , p e e rg r o u p 前言 日u 百 研究背景:j x t a 是s u n 公司倡导的新一代网络研究项目,提供一种不依赖于 平台和语言的p 2 p 网络环境框架。p 2 p 技术作为现有的客户服务器模式的有益 补充将在企业工作领域中更加盛行,而原有的p 2 p 技术主要是针对某一具体的 应用产生的,难以作为p 2 p 企业级应用的稳定平台。j x t a 不同于现有的很多基于 p 2 p 的特定应用技术,从提出之日起就以平台软件作为发展的方向。在未来的企 业级商业应用中,得到了s u n 公司全力资助的j x t a 项目势必会有广阔的发展空 间。因此,对j x t a 的分析和研究就有着非常前瞻性的意义。 研究目标:本文的研究目标首先是理解j x t a 的运行机制,由于p 2 p 网络的 应用越来越广泛,通过研究j x t a 也可以使自己对p 2 p 有更深刻的体会,其次是 分析j x t a 的j a v a 参考实现,这是j x t a 目前唯一完整的参考实现,对其a p i 的研 究有助于从具体实现的角度理解其核心协议是如何支撑整个j x t a 平台的。另一 个重要的目标就是通过具体的实例来展示基于j x t a 的应用,限于时间和条件, 应用本身无法很完整,但要有代表性,最主要的目的是能结合j a v a 参考实现的 a p i 说明来展示其p 2 p 通信的方式,从而为进一步拓展和深入开发基于j x t a 的 p 2 p 应用打好基础。 论文结构:本文第一章简要回顾了网络互联演进的阶段,并根据网络集中程 度对p 2 p 模型进行分类,然后通过介绍p 2 p 技术的发展和应用引出了j x t a 。第二 章从设计理念、与相关技术的关系和安全性能上对j x t a 进行综述。通过第三章 介绍的j x t a 框架和第四章介绍的该技术涉及的基本概念,本文系统展现了一个 可以在p 2 p 网络上运转的j x t a 世界。第五章则重点分析了j x t a 核心协议的处理 机制,和基于j a v a 实现的j x t aa p i 进行分析。第六章通过自行设计的很有代表 性的两类简单应用来更加具体的展示j x t a 网络节点间的通信,对应源代码在附 录中。第七章总结了全文,指出了论文的不足之处,并展望了j x t a 的发展前景。 研究成果:出于对计算机网络技术的热爱,笔者借毕业论文之际重点研究一 种很有特点的p 2 p 技术j x t a 。从j x t a 框架和涉及的基本概念入手,详细分析了 j x t a 核心协议的处理机制,着重理解了其跨语言、跨平台、跨网络传输的特性, 通过分析j x t a 的j a v a 参考实现提供的a p i 使本文对j x t a 的研究不仅仅停留在理 论阶段。另外,还自行设计了较有代表性的实例展示基于j a v a 参考实现的j x t a 网络应用。j x t a 诞生的时间不长,各种相关的资料大多停留在综述层面,本文较 为系统完整的从理论和实践两方面研究了该项技术,这不仅对自身的研究能力是 一种挑战,对后入的感兴趣者也具有一定的参考价值。 第一章p 2 p 介绍 第一章p 2 p 介绍 1 1 网络互联的演进 二十世纪八十年代,基于网络的各种应用开始普及。最先是局域范围的网络, 运行其上的客户朋臣务器( c l i e n t s e r v e r ) 模式的应用程序往往需要同类型的操作系 统和运行环境,在应用程序之间也只能进行很有限的通信和互操作( 如图1 - 1 ( i ) ) 。 i n t e m e t 的出现使这种客户h e 务器模式拓展到一个更通用的范围,客户端通过一 个支持h r r p 协议的通用浏览器( w e bb r o w s e r ) 对服务器进行功能调用,得到的信 息可以在浏览器中用瑚n 订i ,标准形式描述。使用这种w e b 服务的客户端设备可 以是各种p c ,便携式电脑,甚至是便携电话、p d a ,只要这些设备和服务器之 间有互相认可的i n t e m e t 协议( 如图1 - l o b ) 。尽管计算机的成本一直在降低,但 是i n t e m e t 上的服务器面临着越来越多的客户连接,请求处理,其运行成本( 包 括硬件和软件) 仍然是居高不下,而再昂贵的服务器也永远是整个连接中潜在的 瓶颈。另外,少数的服务器控制了大量的i n t e r n e t 上的信息,是通信的中心,客 户只能从这些服务器上获荦导内容,只能通过这些服务器来进行相互间的信息交 流,服务器的这种角色与i n t e m e t 全民化的趋势是极不相称的。因此,将人们直 接联系起来的p e e r - t o - p e e r 互联模式就越来越受到欢迎了【1 】【2 】( 如图1 - l ( i i i ) ) 。 服务器 客户螭 i ) 单纯的客户服务器模式 1 銎君霭;裂 l 坤t o p i i i ) p e e r t 旷p e e r 直接通信攫式 便携电话 图表1 - 1 网络互联的模式 p 2 p ( p e e r - t o - p e e r 的简写形式,以下用) 改变了人们使用i n t e m e t 时的思考 方式。p 2 p 也叫对等网络,在这样的联网模式下,每个节点根据自己的需要既充 当客户端搜索查询资源又充当服务端提供资源。用户之间可以直接的沟通,开放 自己的资源,可以根据自己的喜好建立网络上的自由社区,这一切不再完全依赖 于一个外界的服务器或借助于一个外在的b b s 、e h a t r o o m 之类的东西。p 2 p 延伸 了资源共享的意义并减少了整个网络的运行开销,但也增加了网络本身的负载。 第一章p 2 p 介绍 1 2 p 2 p 模型 p 2 p 是对等的获取服务,但不是完全排斥服务器。基于p 2 p 的模型与传统的 客户服务器模型相比,其优势在于降低了对服务器的依赖和它的分散控制( 服 务器是一种集中式控制) 。p 2 p 模型按照对服务器的依赖程度可以分为以下四类 【3 4 】: 服务器 p 2 p 节点p 2 p 节点 i ) 鲍p 2 p 模型 服务器 p 2 p 节点 i i i ) 带有发现和查找服务 器的f 2 p 模型 p 2 p 节点 i i ) 带有简单发现服务器 弛p 2 p 摸型 服务器 p 2 p 节点 i v ) 带有发现、查找和内 容服务器的p 2 p 模型 图表1 - 2p 2 p 互联模型 纯p 2 p 模型( 如图1 - 2 ( i ) ) :完全不需要中心服务器,网络中的节点动态的 发现其它连接点。此模型允许用户建立自己的网络环境并设定相应的规则, 互相之间直接进行点对点的发现请求、内容查询和数据传输服务。因为缺 少一个中心管理服务器,每个节点必须自行定位其它节点,这无疑限制了 通信的范围。c m u t e l l a 就是一种完全分散的纯p 2 p 网络。 带有简单发现服务器的p 2 p 模型( 如图1 - 2 ( i i l ) :此模型中服务器的作用相 当有限,当一个节点启动时它会通知服务器,并从服务器下载网络中节点 列表,这样就可以与其它更多的节点建立连接和通信。之后节点间进行内 2 第一章p 2 p 介绍 容查询和数据传输是不需要服务器的。 带有发现和查找服务器的p 2 p 模型( 如图1 - 2 ( i i i ) ) :与上一种模型类似, 只是此模型中的服务器提供了资源查找的功能,使网络对服务器的依赖进 一步加强,网络上的节点按固定的时间间隔上传共享资源列表,其它节点 则向服务器发出资源请求,获得资源所在的节点位置后再直接与相应节点 建立数据传输连接。第一个成功的p 2 p 应用n a p s t e r 就是基于此模型。 带有发现、查找和内容服务器的p 2 p 模型( 如图1 - 2 ( i i i ) ) :此模型已经演 化成c l i e n t s e r v e r 模型了,节点之间不再直接通信,所有共享资源存储在 中心服务器数据库中,节点通过服务器进行发现查找和资源共享。 1 3p 2 p 的发展与应用 客户傩务器方式造成互联网络上的集中,无论信息资源还是成本资源均向同 一方向集中,这样的模式符合一对多、强对弱的社会关系形式,如政府对个人、 对企业,大企业对小企业,学校对学生,企业对职工等等关系。所以该方式是符 合市场需求的。p 2 p 方式导致信息数量、成本资源都向互联网各点均匀分布,也 就是所谓边缘化“的趋势。此模式符合“一对一”的特点,以及彼此相当的社会关 系形式,如个人对个人,规模相当的企业之间等等,这也是符合市场需求的( 如 i c q ) 。所以这两种方式会共存,p 2 p 有其独特的市场空间,是现有互联网应用的 补充,这一点应该是毫无疑问的。 p 2 p 是一种基于互联网环境的新的应用型技术,从技术角度它必须要考虑的 问题有: 在通信基础方面,p 2 p 必须提供在现有硬件逻辑和底层通信协议上的端到端 定位( 寻址) 和握手技术,建立稳定的连接。涉及的技术有口地址解析、 m 叮路由及防火墙。 在应用层面上,如果p 2 p 上的两个节点分别代表两家不同的公司,而且它们 已经通过互联网建立连接,那么一方的信息就必须为另一方所识别,所以当 前互联网上关于数据描述和交换的协议,如x m l 、s o a p 、u d d i 等都是一 个完善的p 2 p 软件所要考虑的。 有通信就要有安全保障,加密技术是必须要涵盖的。 其它还有如何设置中心服务器,如何控制网络规模,平衡网络负载等。【5 】 随着s u n 、i b m 、h p 、微软等大公司的介入,p 2 p 的应用领域被很大程度的 拓展和加深,从最开始的聊天( m s nm e s s e n g e r , i c q ) 、游戏( 双人棋类对弈) 、文 件共享( n a p s t e r , g n u t e l l a ) 、数据搜索( i l l f t a s e a r c h ) 等基本的p 2 p 应用向企业级应 用做更多的考虑了。 3 第一章p 2 p 介绍 首先就是企业内的协同,企业协同包括两大方面,一是企业内部的协同,无 论部门及员工处在何种地理位置,只要拥有网络,双方存在信息沟通的要求,就 可以利用p 2 p 软件协调双方的行为。信息的种类及行为目的可以是多种多样的, 如日程安排、通知发布、单据的审批、文件传阅和分发、方案的评比( 表决) 、 计划协调等等这些可以通过电子文件表达的信息均可以通过软件来表达,并以此 将使用者联系在一起。p 2 p 应用更适用这当中更多需要用户交互的部分,如计划 协调、日程安排等。二是企业与企业之间的行为协同,这种协同的互动的多样性 和复杂性要高于企业内部的协同。从简单的会议日程安排、公文往来,到报价、 询价订货系统、订单跟踪、电子化交易。然后是远程监控和调试,许多工业场合 都有一些通过网站方式运行的方案,但网站方式在速度和交互性方面的缺陷使得 用户无法接受,p 2 p 方案为这方面的应用开辟了新的天地。当带宽达到数据流要 求的容量,如实时音频、实时视频,人们期待已久的多种网络应用就会呈现在面 前。而特别能满足交互需要的p 2 p 技术更有一块施展的天地,电话会议、视频 会议、远程教育、培训、安装调试等等都将为企业带来p 2 p 技术的新应用。实 际上i c q 作为p 2 p 技术已经开始应用在手机短信上。 凡此种种基于p 2 p 的应用五花八门、不胜枚举,但可以想象的是,p 2 p 企业 级的应用一定需要一个稳定的p 2 p 平台做支撑,而这样的平台不是象g n u t e l l a ( 主 要用于文件共享) 、f r e e n e t ( 匿名资源发布和共享) 、s e t i h o m e ( 分布式计算) 这些为了特定目的的p 2 p 应用,所以s u n 倡导了j x t a 工程。f 1 1 6 】 4 第二章j x t a 综述 第二章j x t a 综述 2 1j x t a 的提出 s u n 公司于2 0 0 1 年4 月推出了其下一代网络电脑技术研究项目一j x t a ( j u x t a p o s e 的缩写,指并行) 。j x t a 的主要目的,是帮助开发面向各种互联网平 台和网络的应用程序。构成j x t a 的协议将可以使用户更容易通过对等网络技术 获取资源。s u n 的首席科学家和创始人之一一比尔乔伊说:”j x t a 项目完成了我 2 5 年的心愿。”他表示,j x t a 是一种独立于平台和编程语言,开放源代码的技术, 可以带来更多新的分布式应用程序。【7 】 2 2 设计理念 j x t a 工程的组件是认真的设计分工的产物。它们为一般的p 2 p 网络提供晟 小需求,去除了所有特定于策略的逻辑和组件。这样,就仅剩下几乎所有的应用 程序都能使用的构件要素,不考虑目标用户和特定实现。在以后的研究中,j x t a 核心社区的一个主要任务就是确保这种普遍适用性仍然是真实的。j x t a 组件没 有强加一些不必要的策略,也没有硬性规定特定的应用操作模型,使得简单地构 造p 2 p 应用成为可能,也更方便。 j x t a 技术的一系列目标都源于现有的,或正在开发的p 2 p 系统中被认为是缺 点的方面,主要包括以下几点: 互操作性:j x t a 技术能使互连的p 2 p 节点方便的相互查找、通信、参与基 于通信的活动,并能无缝的通过不同的系统相互提供服务。当前,许多p 2 p 系 统仅仅只提供某一方面的服务,如:n a p s t e r 提供音乐文件的查找,c m u t e l l a 提供 普通文件共享,越m 提供短消息发送。由于缺乏共同的基础机制,这些对等系 统互不兼容,难以相互操作。假如有一个节点同时参与了由多种p 2 p 系统组织 的社区,则这个节点就必须支持多个应用,每一个应用对应于一个不同的p 2 p 系统。 平台独立性:j x t a 被设计为独立于编程语言( 如c ,j a v a ) ,系统平台( 如 m sw i n d o w s 、u n i x 、s o l a r i s 等) ,和网络平台( 如t c p i p ,b l u e t o o t h ) 。当前的 许多p 2 p 系统通过一组源于特定操作系统和网络协议的a p i 提供它们的特色和 服务。例如,一个p 2 p 系统运行于w i n d o w s ,t c p i p 环境下,提供一组c + + a p l s , 而另一个系统运行于u n i x ,t c p i p 环境,同时提供c 和j a v a 的a p i s 。这时候, 一个p 2 p 系统的开发者就不得不选择某一个a p i 集合来进行开发。由于,两个 第二章j x l a 综述 系统可相互操作的希望很小,如果开发者想为两个共同体提供相同的服务,他们 不得不为两套系统分别开发一次,或开发一个它们之间的转化系统。考虑到现存 的大量p 2 p 系统,这两种解决方案无疑都是不实用和低效率的。j x t a 技术的目标 就是为所有开发者拥护,独立于程序设计语言,开发环境,和配置平台。 普遍性:j x t a 技术被设计为可用于所有拥有一颞数字心脏的设备,包括传感 器,消费电器,p d a ,网络路由器,桌面电脑,数据中心服务器,和存储系统。 许多p 2 p 系统,特别是那些暴发公司提供的系统,倾向于选择m sw m d o w s 作为 他们的目标平台。这里面主要的原因是,w i n d o w s 是当前数量最多的安装系统, 并且这是一条最快速的赢利路线。但这导致了一个不可避免的后果,即许多依赖 于w i n t e l 的特性被设计到系统当中。这常常不是对技术渴望的后果,而是由于 工程日程紧张和资源紧缺的现实需要。因为p 2 p 并不指的是p c t o p c ,所以这 种解决方案显然是非常短视的,任何在特定软硬件系统上的赌博都不是长远的考 虑。 7 1 1 8 1 1 9 1 1 0 1 1 】 j x t a 预想了一个世界。在这个世界里,每一个对等体独立于软硬件平台,并 且能通过和成千上万的其他对等体连接获得方便和利润。 2 3j x t a 与x m l j x t a 利用x m l ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记语言) 来格式化数 据。使用x m l 是因为其有以下五个很好的特性:【l l 】 x m l 是语言中立的,对任何处理语言来说,x m l 文档只不过是一个结 构化的文本文档。 x m l 很简洁,很容易让开发者理解和使用。 x m l 是自描述语言,例如,x m ls c h e m a 可以描述x m l 文档的结构类 型和文本类型,而其本身也是用x m l 表达的。 x m l 有很好的可扩展性,允许使用者定义自己的标签集来结构化数据。 x m l 是标准语言,w 3 c 组织( h t t p :w w w w 3 o r g ) 负责x m l 标准的维护。 2 4j x t a 与其它相关技术 2 4 1j i n i 工程 j x t a 和j i n i 两者在战略上的明显不同是:j x t a 在一开始就是以完全互操作性 技术( 任何平台,任何编程语言,任何厂商) 的面貌出现的。s u n 是唯一投身于 该社区的公司。j i n i 是以j a v a 为中心的技术,作为一种战略,s u n 将把它集成 并应用在将来提供的产品中【1 2 】。s u n 将对j i n i 的发展保持一定程度的控制a 6 第二章j x t a 综述 j x t a 和j i n j 都涉及到设备,j i n i 更关注于设备的发现和使用。j i n i 被设计成主要 在局域网内工作,但不能在w e b 上或跨越防火墙进行互操作,但j x t a 能做到这 点。j i n i 更关心位于特定网络中的设备,例如打印机,而j x t a 更适合用来与位置 不定的软件设备通信。j i n i 和j x t a 都可以用于分布式和点对点计算,但对于异构 的计算机网络,因为j x t a 主要通信方式是x m l ,所以创建跨平台、跨语言的网 络会容易一些。而大多数j i n i 点都是基于j a v a 的,通过r m i 进行通信。 7 1 1 3 1 2 4 2w e bs e r v i c e w e bs e r v i c e ( w e b 服务) 包括创建服务使用的技术( x m l 、s o a p 和u i ) d i ) , i n t e m e t 上任何计算机都可以通过m 1 p 使用这些服务。w e b 服务分服务器端的 和客户端使用的两类。w e b 服务存在计算机之间的交互,但是并没有组成完全的 动态网络,而且w e b 服务主要还是基于服务器的。j x t a 可以利用w e b 服务来增 强动态网络之间功能。w e b 服务通常基于h t t p 的,所以可以很容易跨越防火墙。 2 4 3 竞争者 从第一个取得大范围商业成功的p 2 p 应用n a p s t e r 之后,越来越多的对等网 络技术出现了,比较有名的是g - n u t e l l a 和f r e e n e t 。 g n u t e l l a 最早是由a o l 资助开发的,对p 2 p 应用程序而言,g n u t e l l a 更像一 种协作应用程序而不是平台,它最初目的是作为搜索和传输信息的工具。而j x t a 从一开始就创建成多用途p 2 p 平台,比g - n u t e l l a 复杂的多。g n u t e l l a 网络上的节 点本质上是相同的,而j x t a 的网络节点可以很容易的设置成不同类型,因此具 有更好的伸缩性。而且相对于g n u t e l l a 只使用h t r p ,j x t a 可以支持多种网络传 输协议的特点也体现出了其优势。【4 】【1 4 】 f r e e n e t 是使用点对点模型进行文件共享的一种交形,其主要主张就是可以在 不担心审查制度的情况下发布和阅读内容。它属于p 2 p ,但更注重对信息来源的 隐藏,显然不能作为p 2 p 应用程序的普遍平台,j x t a 不能使每个节点都成为匿名 参与者,而是更多的从商业的角度设计和使用的。 4 】 还有其他的如a g r o c a s t 、s e t i - i o m e 、f r e e h a v e n 、c h o r d 等p 2 p 相关技术, 由于很多技术关注了某一方面的实现和性能,因此在效率上是超过j x t a 的,但 j x t a 不是解决特定的问题,而是为那些使用通用解决方案的开发者设计的。 2 5j x t a 安全分析 安全无疑在任何网络环境中都是一个不可忽视的问题,既然j x t a 的目标是在 其上建立跨平台的安全稳定的企业级应用,那么跨平台的安全问题更是该技术能 否立足发展的关键。j x t a 仍然是很新的技术,它的安全系统也尚未完全地制订 7 第二章j x t a 综述 出来。目前j x t a 平台提供了以下安全特性 8 1 1 1 3 1 : 安全传输层( s e c u r et r a n s p o r tl a y e r , t l s ) :是基于公钥技术的。j x t a 提供 了t l s 作为安全通信的媒介。应用程序可以通过使用安全管道( 其内部 使用了t l s ) 来利用平台的t l s 能力,以保证受到被动攻击时应用程序 的安全。 对等点证书( p e e rc e r t i f i c a t e s ) t l s 层要求使用证书来实现它的功能。因 此每个对等点都产生自己的证书,并充当其证书颁发机构。可以用证书 来为该对等点支持的每个服务签署服务证书。证书与该点的通告一起分 发,使每个其它对等点验证通告是否与其证书一致。 个人安全环境( p e r s o n a ls e c u r i t ye n v i r o n m e n t ) :每个点都由一个点i d 和密 码保护。它用来把私钥解密到用户的个人安全环境中。 除此之外,基于j a v a 实现的j x t a 平台本身也包含了很多j a v a 内置的安全特 性,可以增强建立在其上的应用程序的安全性。j x t a 社团的安全项目还提供了一 个工具包,包含了一组可用于j x t a 应用程序的基本安全算法。j x t a 面向很多具有 数字心跳的设备,因此它的设计要尽可能适应资源受限的环境。该工具包是基于 j a v a c a x d 2 1 安全模型设计的,j a v a c a r d 是一种在智能卡上使用的j a v a 技术。 第三章j x t a 框架 第三章j x t a 框架 图3 1 是j x t a 的框架图,整个j x t a 分为三层:j x t a 核心层、j x t a 服务层和j x t a 应用层。与传统的操作系统三层构架类似,上层都是基于下层的功能延展。【1 9 豫“畦用 “蝴 j 3 田晌稿 3 1j x t a 核心层 图表3 - 1j x t a 三层架构 核心层也叫平台层,包含基于j x t a 的p 2 p 联网所需要的最基本的组成构件。 这些组件包括:对等点( p e e o ,对等组( p e c rg r o u p ) ,通告( a d v e r t i s e m e n t ) ,用于 网络传输的管道口i p e ) 、端点( e n d p o i n t ) 、消息( m e s s a g o 。核心层还包含j x t a 定义 的六种主要的协议( p r o t o c 0 1 ) ,这些协议作为核心服务( c o r es e r v i c e s ) 的方式实现, 以区别服务层中的服务( 需要注意的是,这六种核心协议也不是每个j x t a 平台 所必需的,具体见第五章) 。通过这些基本的组成元素以及在它们之间认可的协 议来为上层的服务和应用提供关键的实现机制,包括发现,传输( 对防火墙的处 理) ,对等组的创建,相关的安全保障等等。本文的第四、第五章正是着重于对 核心层的内容进行分析,以期对j x t a 有更深刻的理解。 3 。2j x t a 服务层 服务层提供的网络服务并不是每个基于j x t a 的p 2 p 方案所必需的。一些是 s u n 公司提供的,例如在一个对等点上搜索资源,从一个对等点上共享文件,同 一组内的对等点身份认证等等服务。还有一部分是j x t a 社团开发的开放源码 ( o p e n s o u r c e ) 的服务。这些服务很好的支持了应用层,使最终用户看到的是构建 于这些服务之上的完整的p 2 p 解决方案。 3 3j x t a 应用层 9 第三章j x t a 框架 具体开发的应用可能包含一个或多个服务,所以有时很难区分应用和服务, 通常一个应用会有一个友好的用户界面。应用和服务并没有严格的界限,对一个 用户而言的应用也可能在一个开发者眼里是作为服务的。在j x t a 平台上的应用 和服务的强大与否将决定着j x t a 的成功。目前在应用层已经有一些j x t a 社团开 发的内容管理、即时通信、邮件系统、分布式拍卖系统应用。这些系统都是模块 化的,由开发者选择他需要的服务和应用集。 3 4j x t as h e l l s h e l l 这个术语用于定义内核或核心周围封装的层或接口。j x t as h e l l 通过简 单命令行接口与j x t a 核心平台交互。通过s h e l l 的命令解析器,用户可以发现对 等点,创建对等组,创建并发布通告,创建管道连接两个对等点,收发消息等等。 s h e l l 很大一部分的功能都是可以作为服务被使用的,只是它提供了一个简易的 用户接口,让用户得以体会核心平台的关键机制,所以j x t a s h e l l 是跨越应用层 服务层边界的。 1 5 1 6 】 j x t as h e l l 的特点如下: j x t as h e l l 与构建于j x t a 平台上的其他应用程序一样,但它并不属于j x t a 核 心层,也不是每个对等点都必需的。 j x t as h e l l 是可以有多种表现形式的。在d o s 或u n i x 中的s h e l l 有b s h 、e s h 、 t c s h 类型。同样的,也可以有多种s h e l l 应用程序模式来满足不同用户的需 要。 很多j x t as h e l l 中的命令不是内嵌于s h e l l 中的,而是在启动时动态装载的。 这样使开发者根据个人的需要可以很方便的添加新的命令。而本文第五章中 对协议本身的验证也会用到这一方式。 运行s h e l l 是测试体验j x t a 的一个很好的途径,可以使用已经提供的s h e l l a p i 来快速创建并测试新的服务。 1 0 第l ! 马章j x t a 核心构件 第四章j x t a 核心构件 p 2 p 网络要解决的问题无非就是让联入网络内的设备能够自由平等的共享资 源,所以j x t a 也要解决一些基本问题:【1 1 】 网络中设备如何知道其他设备的存在 网络中设备如何组织小范围的团体 如何保证网络中设各标识的唯一性 设备之间如何进行数据交换 网络中设备如何提供自己的服务,并能让其他设备引用 而j x t a 的核心构件就是为了解决p 2 p 联网中的这些基本问题,并且保证不受 底层传输协议和操作系统的限制。 1 7 】 4 1 基本组成单元 4 1 1 对等点 对等点( p e e r ) 是j x t a 网络的基本组成单元,每个进入j x t a 网络中的点都自动 成为对等点。与连在i n t e r a c t 上的单个机器概念不同,它是一个虚拟的通信点, 可以和网络中的其他通信点进行直接或间接的信息交流。从表现形式看,它既可 以是p c 、服务器、大型计算机,也可以是传感器、p d a 、电话等一切拥有电子 心跳的设备。j a v a 实现中的每个j x t a 对等点都与一个j v m ( j a v a 虚拟机) 相关联, 在一台这样的电子设备上,可以启动多个m 来创建多个这样的对等点,只要 它们都分别配置运行了j x t a 平台并且用不同的i d 加以区分即可。 j x t a 网络是一个由相连对等点构成的自适应的多级自主网络。对等点可以有 三种主要类型来确保j x t a 网络的正常运转:简单点( s i m p l ep e e r ) ,集合点 ( r e n d e z v o u s p e e r ) 和路由点( r o u t e r p e e r ) 。不同类型的对等点有不同的作用,但是 一个对等点往往可以充当多个类型。【1 8 1 1 9 2 0 】 简单点 大部分j x t a 网络中的点都是简单点,可以收发消息,进行对等通信,可以缓 存通告。如果符合其他点发过来的查询请求,简单点会发出响应信息,但它不会 转发任何查询请求。如果两个这样的简单点被防火墙阻隔,它们是没有相互通信 的能力的 集合点 集合点主要是可以转发查询请求以帮助其他对等点发现资源。一个简单点可 以配置自己为集合点,也可以添加要用到的集合点。每个集合点也会维护自己所 第四章j x t a 核心构件 知道的其他集合点列表和使用它为集合点的对等点列表。当对等点发送查询请求 给集合点时,集合点就可以把请求转发给这两个列表上的点。在j x t a 网络上传 输的各种消息都有一个生存期1 v r l ( t i m e - t o l i v e ) ,通过记录消息的传送路径列表 来消除在网络中可能的循环回路。图4 1 揭示了集合点的工作机制: 转发请求i f e e l b ( 使用r l 为集合点) 图表4 1 集合点的工作机制描述 上图中a 、b 、c 是一般的对等点,r 1 、r 2 、r 3 是集合点,当a 向它知道 的集合点r 1 发出一个请求,r 1 在判断自己能不能满足该请求的同时再转发给自 己列表中保留的其他集合点和简单点,如该例中的r 2 、r 3 和b 。接下来的请求 转发类似,只是如果该请求的丁凡降为0 ,则集合点将不再转发。 路由点 图表4 - 2 通过路由点跨越防火增 路由点也叫中继点( r e l a yp e e r ) ,主要用于保障那些被防火墙( f i r e w a l l ) 或n a t ( 网络地址转换,n e t w o r ka d d r e s st r a n s l a t i o n ) 阻隔的对等点的通信。路由信息表 维护的是一个网络中唯一的对等点标识和到该点经由的路由点的映射,丽在一个 复杂的j x t a 网络中,路由点保存的到特定对等点的路由信息可能是一个顺序路 由点列表。路由点的存在是为了能跨越防火墙进行通信,但还是需要一些前提条 第四章j x t a 核心构件 件,一是防火墙内至少要有一个对等点与防火墙外的一个路由点相互知道,另一 个是防火墙至少要允许基于h t t p 协议的数据交换。如果这些条件不具备,那么 在防火墙内的所有对等点也只能是组成一个孤岛。 图4 2 的在防火墙内的对等点a 是不能直接与对等点b 通信的,所以a 先 与路由点r 建立基于h t t p 的连接( 能穿过防火墙) ,在通过r 建立与b 的虚拟 连接。具体的步骤将在本章的第五节p 2 p 通信中加以说明。 除了以上三种主要类型,还有一种微型点( m i n i m a lp e e r ) ,主要是指一些资源 有限的设备( 如:p d a 或蜂窝电话等) ,他们可以收发消息,但不能对网络上的 通告、路由等资源消息进行缓存。 4 1 2 对等组 对等组( p e e rg r o u p ) 是拥有相同兴趣或目标的对等点的集合,而这里的兴趣和 目标是指组内的每个成员对该组提供的一组特定服务的认同。有点类似于v p n ( v i r t u a lp r i v a t en e t w o r k ,虚拟专用网) ,通过v p n 连接的计算机之间的通信是 不允许i n t e r a c t 上的其他计算机参与的,因此,一个组内向所有该组成员提供的 一套服务也不能被p 2 p 网络中其他非该组成员访问。对等组成员提供了对组服 务的冗余( r e d u n d a n t ) 访问,只要该组还有一个成员( 对等点) 存在,那么该组的 服务也将存在( 可被访问) 。通过某个服务交流的两个对等点一定是属于拥有该 服务的相同对等组。 对等点自由的组织成各种不同的对等组,每个对等组都由唯一的组i d 标识, 这些组可以是全开放的或者是需要安全认证的。一个对等点可以同时属于多个对 等组。 所有进入j x t a 网络的对等点都会启动n e t p e e rg r o u p ( 网络对等组) ,并属于 这个组。通过n e tp e e rg r o u p 提供的核心服务确保了j x t a 网络通信的实现,而这 些核心服务就是j x t a 网络协议的实现,它包括: 发现服务:用于对等组成员搜索组内资源( 如其它点,管道或者服务等) 解析服务:用于向其它对等点发送一般问题请求 成员身份服务:当前组成员拒绝或是接受一个新成员的加入 对等点信息服务:监控其它组成员的负荷状况 管道服务:在组成员点之间建立管道连接 端点服务:用于对等点之问的具体数据传输 对等组是以一种父子层次关系组织的,每个组都有单一的父亲,搜索请求只 在一个组内传播,但是组通告( 见4 2 1 ) 会向其父组发布,从而使父组中的成 员得以进入该组。下图中的s o e c e r g r o u p 就是在s p o r t s g r o u p 之上建立起来的: 第四章j x t a 棱心构件 图表4 3 对等组关系模型图 注h 按照j x t a 平台的启动顺序,最先创建的应该是w o r l dp o o rg r o u p ,这是所有组的根( 根组) ,在这个 模板之上才启动了n e t p e e r g r o u p , 但w o r l d p e e r g r o u p 只是定义了对等点的基本功能,不具有p 2 p 联网功 能分离根组是为了支持更广泛的不周设备 4 2 网络传输 对等点必须采用一些机制来进行网络数据传输,包括把一批数据分别打包, 每个包再加上合适的头( h e a d e r ) 确保能到达其目的地。网络传输可以是底层传输 ( u 】) p 厂r c p ) ,也可以是高层传输( 如h 兀p ,s m r p ) 。整个网络传输可以分为端 点( e n d p o i n t ) 、管道( p i p e ) 和消息( i v l e s s a g e ) = _ - 部分。他们的关系如下图: 局域网内 ; 局域网外 4 2 1 端点 图表4 _ 4 网络传输 端点是在网络上传输的任一块数据的发起点和目的点,是j x t a 应用程序彼此 通信的一种基本寻址方法。一个端点是一个实现了特定通信协议的点的地址,一 个对等点可以有多个端点来保证可以通过不同的协议进行通信。管道连接到端 4 第四章j x t a 核心构件 点,它是通过通信协议来连接的,所以端点要描述这个协议以及用来和管道连接 的特定信息。因此,端点可以描述h r r p 、t c p 、t l s 或其它受支持的基本通信 协议。 一个简单的端点例子是一个职地址和端口,可以在上面建立一个流与目的 点通信。通过支持多个协议,对等点可以使用最有效的通信方法,具有了多传输 的灵活性,就可以使对等点获得尽量快的响应。如果两个对等点均在防火墙后, 它们可以通过t c p 端点进行通信;如果要跨越防火墙,就可以使用h t t p 端点 ( 如图“) 。 4 2 2 管道 j x t a 对等点用管道来相互发送数据。因为防火墙或其它网段屏障使对等点没 有直接的物理连接,所以管道是对等点之间的一种虚拟连接,是作为多种通信协 议之上的一层,支持中继点的中继通信。通过这样一种抽象,隐藏了底层对等点 的路由,并可以把管道实现成可以自复原( s e l f h e a l i n g ) ,如果路由中的对等点从网 络中移除,则管道会重新路由并对上层应用透明。 在服务通信中,管道提供了一种单向异步的消息传输机制。管道两端( n - q 看 成管道端点) 会在运行时动态的绑到不同的对等点端点( 通过管道绑定协议实现, p i p eb i n d i n gp r o t o c 0 1 ) ,管道消息的输入端点称为输入管道,管道消息的发送端 点称为输出管道( 注意:这里的输入管道和输出管道只是一个管道在绑定时的两 个端) 。管道有两种不同类型的通信模式:( 图4 5 ) 点对点( p o i n t - t o - p o i n t ) :点对点管道连接两个端点,管道连接是一种抽象, 掩盖了在整个连接线路上的可能多个其它的路由点的事

温馨提示

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

评论

0/150

提交评论