服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

jxta技术的设计目标和层次结构


  p2p即peer to peer,称为对等连接或对等网络,p2p技术主要指由硬件形成连接后的信息控制技术,其代表形式是软件;p2p并不是一个新的概念,因特网上的许多核心协议本身就是p2p的应用程序,因特网的发展过程也说明了这一点,我们可以通过下述特性来描述p2p:

  1、peer知道其他peer的存在。

  2、peer在一个虚拟的网络中运行。

  3、peer同时具有client和server的特点。

  4、多个peer可以组成为一个peer组。

  从因特网的发展来看,目前已经完全有可能开发新的p2p应用程序来补充和取代现有的集中式应用程序,文件共享程序和聊天程序的成功已经吸引了许多程序员加入p2p程序的开发。而且随着技术的发展,p2p所面临的安全、控制和网络使用的问题将逐步解决。p2p系统可以提供如下功能:

  1、peer的独立控制能力----用户将变得非常强大,可以创建自己的组和虚拟网络,而且可以非常容易地发布自己的资源。

  2、可靠性----p2p系统是任何人都可以获得的可靠系统。

  3、扩展性----p2p系统的用户数量可以急剧膨胀,可以与最大的集中式系统媲美。

  4、性能----各种资源之间可以协同工作来有效地解决问题。

  p2p是一种基于互联网环境的新的应用型技术,主要为软件技术,p2p网络应用发展可能要涉及到4个方面关键技术:

  1) 对于互联网上众多计算机,p2p应用比其他应用要更多考虑那些低端pc的互联,它们不具备服务器那样强的联网能力,同时对于以往的p2p应用技术,现在的硬件环境已经更为复杂,这样在通信基础方面,p2p必须提供在现有硬件逻辑和底层通信协议上的端到端定位(寻址)和握手技术,建立稳定的连接。涉及的技术有ip地址解析、nat路由及防火墙。

  2) 在应用层面上,如果两个peer分别代表两家不同的公司,而且它们已经通过互联网建立连接,那么一方的信息就必须为另一方所识别,所以当前互联网上关于数据描述和交换的协议,如xml、soap、uddi等都是一个完善的p2p软件所要考虑的。

  3) 有通信就要有安全保障,加密技术是必须要考虑的。

  4) 其他需考虑的有如何设置中心服务器,如何控制网络规模等。

  与p2p相关技术,有许多其他的技术被称做p2p,或者与p2p相关,或者可以被当作p2p使用,主要是以下几方面内容:

  1、jini技术;

  2、软件代理(agent)技术;

  3、jxta的竞争者(gnutella和freenet等);

  4、web services技术。

  jxta设计目标及层次结构

  一、 jxta设计目标

  首先,jxta是为了构建p2p网络而制订的一组协议,是处理构建p2p网络所碰到的问题的解决方法,jxta标准协议规范介绍如下:

  “jxta由六个协议组成,这些协议是专为特定的、分布式的、对等的网络计算而设计的。使用这些协议,peer可以互相合作来建立自我组织、自我管理的对等组,而不必关心它们在网络中所处的位置(在网络边缘或者防火墙的后面),并且也不需要集中的管理机构。”

  因此jxta的核心是六个协议,其次,jxta是p2p应用程序开发的运行平台;目前jxta首先推出了基于java的参考实现,提供了支持六个协议的java api,jxta还将推出包括c语言在内的其他编程语言的api,jxta在设计时有如下几个目标:

  1、操作系统无关

  2、语言无关

  3、为p2p应用提供服务和基础

  从本质上讲,jxta的目标是希望在任何设备,从台式机到pda、汽车、洗衣机等设备都可以支持p2p编程。这里有几个概念上的目标,它们包括:

  1、使用组来组织peer并且在组内提供服务和应用的环境。

  2、组可以使用认证和验证方式来控制组内的访问权限。

  3、通过网络来发布关于peer和网络资源的信息。

  4、通过系统来发布各种请求。

  5、提供一个基础平台,供peer之间做路由和通信。在防火墙或者其他障碍后面的peer之间的通信也是这个目标中很关键的一部分。

  6、供一种机制允许peer之间可以彼此监视状态和资源。

  除此之外还有一些其他目标,例如加密、支持不同的通信协议、易用性、稳定性和性能等,所有这些目标在设计jxta协议和最初的java api时,都被考虑到,另外,开发人员和sun公司的管理者还考虑了以下目标:

  1、系统应该允许任何设备直接加入到jxta网络中去。

  2、系统应该允许isp对网络上的peer进行集中管理。

  3、系统应该支持数字产品版权的管理,例如购买的软件、音乐cd、电影等。

  4、封装和抽象一些特定的核心功能,以便产生出商业方面的应用。

  从上面列出的目标可以看出两点,首先要让企业觉得使用jxta可以使自己对系统进行控制,原因在于大部分p2p系统没有集中式的管理,所以在应用中不受企业的欢迎;其次,对于硬件或者软件提供商来说,jxta系统需要能够创造出利润。

  根据以上这些目标,jxta被设计成企业可以接受的、容易维护的、健壮的,并且能够满足任何p2p应用的概念。

二、 jxta的层次结构

  jxta由三层组成,如图1所示。第一层是jxta核心层,它包含了服务所需要的核心功能;第二层是服务层,它提供了访问jxta协议的接口;第三层是应用层,它使用服务来访问jxta网络和jxta提供的功能。这样的设计和一个标准的操作系统比较相似,标准的操作系统包括核心操作系统、服务和应用程序。

jxta技术的设计目标和层次结构
图1 jxta的层次结构

  各层的说明如下所示:

  1、核心层(jxta core):这一层封装了最根本的东西,包括peer、对等组、peer发现、peer通信、peer监视和相关的安全原语。

  2、服务层(jxta services):这一层包括对于p2p网络不是必需的、但很通用的功能,如查找、共享、索引、代码缓存和内容缓存的机制。

  3、应用层(jxta application):这一层包括了应用jxta服务开发出来的完整的p2p应用程序,例如myjxta,jxta-cad等应用程序。

扫描关注微信公众号