P2P 是一种对等计算技术, 其目的是将网络中不同的计算机连接起来, 并充分利用和共享互联网中任何地方的闲置资源。P2P 系统具有许多优势, 如P2P 是高度分布化的系统,可以根据不同的策略灵活部署资源, 最大限度实现负载均衡;P2P上的节点具有对等性和自治性, 每个对等节点既能提供服务又能接受服务; P2P 的核心特性之一是动态发现机制, 即一 种用于在网络中搜索和定位对等节点或资源的动态机制, 它有利于普及网络边缘计算和边缘服务, 这既可提高数据的访问速度, 又能很好地利用现有存储空间, 从而增强应用的服务能力;另外在容错和有效检索方面也具有显著优势。但是P2P 系统存在一些制约其进一步发展的问题, 包括:
( 1) 拓扑一致性和资源的有效定位。由于P2P 中节点的加入和离开非常频繁, 因此在一个缺少集中化服务器的动态环境下, 各个节点如何能够维持一致的网络拓扑信息是需要解决的一个重要问题, 而用户如何从大量分散的节点中找出所需要的资源又是一个挑战。传统的P2P 资源检索技术( 如广播、选择性广播、适应性广播等方法) 难以彻底解决这一问题, 所以需要一个更为高效的机制来实现资源的有效定位。
( 2) 互操作性。大多数现有的P2P 系统用来实现一个单一类型的网络服务, 如Napster 用来作音乐文件交换、Gnutella用来作普通文件交换。由于不同的网络服务的特性和缺少一个共同的底层基础, 每个供应商都使用不兼容的技术使其用户同其他P2P 通信相隔离, 从而导致互操作问题。另外, 当前联网上关于数据描述和交换的协议, 如XML, SOAP, UDDI 等 都是一个完善P2P 系统所要考虑的。
( 3) 安全性。P2P 中的安全问题如加密、身份识别和认证、授权、恶意节点的识别和应对等直接决定了P2P 能否被大规模商用, 而大多数P2P 系统并没有对安全问题做太多的工作。因此, 直接将传统的安全技术方案平滑应用到P2P 系统是一个快速易行的方法, 那么通过何种机制来实现这种平滑过渡呢?
( 4) 其他问题, 如网络服务质量QoS、P2P 中心控制器的设置、如何控制网络规模、改善查询性能等问题。针对这些问题, 国内外研究人员提出了一些解决方法, 如采用基于超级节点[ 2] ( Super-Peer) 的结构、使用性能更好的路由策略或者查询算法等。这些方法在一定程度上能够改善 P2P 系统的性能, 但尚不能使P2P 系统产生质的飞跃。随着一种面向服务的体系架构SOA[ 3] 的出现, 新一轮的互联网革命被激活, Web 服务计算模型正是SOA 技术的典范, 在P2P 系统中融入Web 服务的相关技术如SOAP, WSDL, UDDI 等, 将传统的P2P系统转变为一种面向服务的体系架构。
解决提供了较好的思路。 面向Web 服务的P2P 架构模型 可以考虑将P2P 系统作为一个服务的提供者整体接入在该模型中, 超级节点[ 2] 是P2P 系统的一个特殊对等节点, 该节点可视为P2P 网络的控制器节点, 它负责管理、配置本组节点, 提供安全服务, 还可管理一个私有UDDI 注册簿, 该私有UDDI 注册簿用于对于一个封闭式的P2P 环境下( 如企业或独立组织) 对等节点所提供服务的快速注册和注销; 而对于 一个全球P2P 环境, 则可以用Web 服务的公有UDDI 注册中心进行注册和注销, 公有注册中心是由若干公司, 如IBM、微软、HP、SAP一起提供服务的, 公有注册中心应该有访问私有注册簿的入口。 新节点如果要加入到某个P2P 对等组并发布自己的服务, 则首先在公有注册中心进行注册, 然后检索要加入到的P2P系统的信息, 经过相关安全认证之后才可以加入。此后,公有注册中心将利用事件通知方式将新节点的注册信息复制到私有UDDI 注册簿中, 这样新节点的加入和服务的发布不必在网络上大肆进行广播。当节点查询本地私有注册簿时, 超级节点还将查询分发和重定向到其他所有UDDI 入口, 并将获得的查询结果与本地查询结果整合后一起返回给查询节点, 如果查询到相关结果, 就 通过SOAP 远程过程调用操作直接绑定到所需的服务上并与这个节点进行SOAP 通信。
在该模型中, 超级节点 是P2P 系统的一个特殊对等节点, 该节点可视为P2P 网络的控制器节点, 它负责管理、配置本组节点, 提供安全服务, 还可管理一个私有UDDI 注册簿, 该私有UDDI 注册簿用于对于一个封闭式的P2P 环境下( 如企业或独立组织) 对等节点所提供服务的快速注册和注销; 而对于一个全球P2P 环境, 则可以用Web 服务的公有UDDI 注册中心进行注册和注销, 公有注册中心是由若干公司, IBM、微软、HP、SAP一起提供服务的, 公有注册中心应该有访问私有注册簿的入口。
新节点如果要加入到某个P2P 对等组并发布自己的服务, 则首先在公有注册中心进行注册, 然后检索要加入到的P2P系统的信息, 经过相关安全认证之后才可以加入。此后,公有注册中心将利用事件通知方式将新节点的注册信息复制到私有UDDI 注册簿中, 这样新节点的加入和服务的发布不必在网络上大肆进行广播。当节点查询本地私有注册簿时, 超级节点还将查询分发和重定向到其他所有UDDI 入口, 并将获得的查询结果与本地查询结果整合后一起返回给查询节点, 如果查询到相关结果, 就通过SOAP 远程过程调用操作直接绑定到所需的服务上并与 这个节点进行SOAP 通信。
下面两个程序为你提供参考
http://www.helpsj.cn/xzProject-7754.html C#源代码程
http://www.helpsj.cn/xzProject-7752.html 基于P2P的文件共享系统论文
|