MyOpenChord项目报告

                                                                                MyOpenChord项目报告

一, Chord介绍
        Chord是最简单,最精确的环形P2P模型。“Chord”这个单词在英文中是指“弦”,在分布式系统中指“带弦环”,在P2P领域则指基于带弦环拓扑结构的分布式散列表(DHT)或者构建与其上的P2P网络。虽然MIT和UC Berkeley的研究早在2001年之前就开发了Chord及其应用系统,但有关Chord的正式论文[Stoica et al., 2001]发表在计算机通信领域著名会议ACM SIGCOMM’01 上,其他刊物和会议后来也有刊登Chord的论文的,如[Stoica et al., 2003]。Chord是结构化的P2P领域最著名的理论模型,到2006年已经被引用超过3000次,可以说,凡是研究过P2P的人,没有不知道Chord的。
如果仅仅将Chord看成一个分布式散列表,那么它只支持结构化P2P最简单的功能:将节点和数据对象映射到覆盖网中。Chord基于安全的一致性散列函数来分配节点ID和对象ID。在一个有N个节点的网路中,每个Chord节点保存O(logN)个其他节点的信息,查询数据对象需要的覆盖网络的路由跳数也是O(logN),当节点离开或者加入网络时,为了维持网络结构,保持自适应性所需要的的消息数在O(log2N)。作为分布式的散列表,Chord具有几乎最优的路由效率,确定性的对象查询,负载均衡,高可扩展性以及良好的容错性与自适应性;但最重要的一点是:Chord简单,优美,这是它最为经典的直接原因。
如果将Chord看成一个P2P网络,那么它是一个基于带弦环拓扑结构的分布式系统,提供数据对象的存储,查询,复制,缓存,在它之上还可以架构更高层的分布式数据存取系统如CFS(cooperative file system,协同文件系统)。


二, Chord国内外情况调查
1, 论文:chord a scalable peer-to-peer lookup protocol for internet application。
被引用次数:867次(google学术数据)
2, 基于Chord的各种研究
A, 提高Chord的查询效率[1]。
B, 拓展Chord的简单结构,例如层次化Chord[2]。
C, 利用Chord进行各种业务拓展,例如web服务模型[3],Web Service 发现[4],Chord用于P2P—SIP[5] ,分布式存储[6],分布式登陆[7],网格服务管理[8],网络资源定位[9]。
D, 利用Chord进行各种业务优化,例如域间组播[10],数据存储[11],路由算法改进[12],数据查询[13]。
E, 利用Chord的各种p2p解决方案,例如浏览器之间的合作[14],构建校园网络[15]。


三, MyOpenChord项目说明
MyOpenChord项目是基于开放源代码项目OpenChord提供的API而实现的。
OpenChord源码下载:
http://sourceforge.net/projects/open-chord/
OpenChord API:
http://lais.mora.edu.mx/svn/pescador/trunk/tests/Chord/api/index.html?overview-summary.html


四, MyOpenChord项目任务要求
MyOpenChord项目实现一个基于Chord算法的P2P的数据插入,查询,获取,删除系统,例如insert【key,value】;同时提供一个统计服务器,以便对数据对象及存储位置有一个全局的了解。
并对该系统进行界面化管理。


五, MyOpenChord项目概要设计
1, 系统总体结构
系统主要是由以下几个大类及其之间的交互实现,这也充分体现了java的面向对象思想。
A, MyPeer类
B, MyDHTServer类
C, MyOpenChord类
D, StatisticianChordClient类
E, StatisticianChordServer类

 


以下是几个大类之间的交互结构图

 

2, 子系统的结构和功能
这部分描述上述五大类的实现。
A, MyPeer类
将底层的OpenChord API封装起来,提供创建Chord环(create),加入一个Chord环(join),离开Chord环(leave),添加数据(insert),删除数据(remove),获取数据(retrieve),得到节点前驱节点(getPredecessor),得到节点后继节点(getSuccessorList),得到节点路由表(getFingerTalbe),得到存储于节点的数据信息(getEnties)。
B, MyDHTServer类
该类负责处理界面获取的各种数据命令,并将其传递给底层的MyPeer类
C, MyOpenChord类
该类是Chord的用户界面类,负责和用户交互,并将用户的各种数据命令传递给底层的数据处理线程。
同时该类是系统启动的入口,它要负责创建统计服务客户端并启动线程进行统计。
D, StatisticianChordClient类
该类将MyPeer的各种动态信息显示给StatisticianChordServer。
E, StatisticianChordServer类
该类将统计服务客户端发送过来的各个节点的信息进行统计并动态显示服务器界面上。
六, MyOpenChord的项目配置
1, ChordStattisticianServer项目。解压压缩包,参看压缩包中“项目配置.txt”,click here…
2, MyOpenChord的项目。解压压缩包,参看压缩包中“项目配置.txt”,click here…
七, MyOpenChord的使用手册
1,  运行ChordStattisticianServer项目中ChordStatisticianServerGUI包下的ChordStatisticianServerGUI.class文件,开始统计服务器。
2,运行MyOpenChord的项目中MyOpenChord.jar包下ChordGUI包中的MyOpenChordForBoot.class文件,点击check in,然后输入统计服务器的ip和端口,同时设置好本地peer的端口,创建Chord环。
3,运行MyOpenChord的项目中MyOpenChord.jar包下ChordGUI包中的MyOpenChordGUI.class文件,点击check in,然后输入统计服务器的ip和端口,同时设置好本地peer的端口,同时,设置好项目中BootstrapConfigure.txt文件中的bootstrap节点的ip和port,加入Chord环。
 

[1] RR-Chord:一个基于Chord的低开销快速查询P2P系统
[2] 基于chord的层次式P2P网络资源定位研究 
[3] 基于Chord的Web服务模型研究 
[4] 基于Chord网的语义Web Service发现  
[5] 基于Chord算法P2P—SIP系统的设计和实现  
[6] SPIS-DSS:一种基于Chord的分布式存储系统  
[7] 一种基于CHORD环的分布式登录模型  
[8] 基于Chord协议的网格服务管理方法  
[9] 一种基于Chord的网格资源定位方法 
[10] 基于Chord的域间组播解决方案  
[11] 一种基于Chord优化的空间数据存储方法  
[12] G-Chord:一种基于Chord的路由改进算法  
[13] 一种基于CHORD系统的多维相似查询处理方法  
[14] 基于Chord的合作浏览器Cache模型  
[15] 一种基于Chord协议的P2P校园网络构建方案  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值