为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于P2P的文件共享系统的设计与实现

2012-04-10 5页 pdf 332KB 50阅读

用户头像

is_751497

暂无简介

举报
基于P2P的文件共享系统的设计与实现 第 2 2 0 0 1 0 霸期 年3月 计算机技术与发展 O0MP1厂rER TECHN0I AND DEvELoP] NT V01.20 No.3 Mar. 2010 基于 P2P的文件共享系统的设计与实现 范会波,张新有 (西南交通大学信息科学与技术学院,四川 成都 610031) 摘 要:随着网络技术的发展,人们可以从网络中获取越来越多的资源。特别是多媒体技术的发展更是推动了人们对信 息共享的需求。对于企业内部来说,用户之间资源共享是必不可少的,而企业员工的计算机存储设备利用率普遍不高,存 在一定程...
基于P2P的文件共享系统的设计与实现
第 2 2 0 0 1 0 霸期 年3月 计算机技术与发展 O0MP1厂rER TECHN0I AND DEvELoP] NT V01.20 No.3 Mar. 2010 基于 P2P的文件共享系统的与实现 范会波,张新有 (西南交通大学信息科学与技术学院,四川 成都 610031) 摘 要:随着网络技术的发展,人们可以从网络中获取越来越多的资源。特别是多媒体技术的发展更是推动了人们对信 息共享的需求。对于企业内部来说,用户之间资源共享是必不可少的,而企业员工的计算机存储设备利用率普遍不高,存 在一定程度的浪费。文中将P2P技术与网络应用中的文件共享相结合,整合空闲的存储资源,实现一个基于P2P的文件 共享系统。提高了企业用户之间资源共享效率,降低企业的存储成本。目前,P2P技术越来越成为当前技术的热点,解决 了许多传统网络应用中的难题。 关键词:P2P;文件共享;套接字 中图分类号:TP393 文献标识码:A 文章编号:1673—629X(2010)03—0048一O4 Design and Implementation of File’。Sharing System Based on P2P FAN Hui-bo,ZHANG Xin-you (School of Information Science and Technology,Southwest Jiaotong University,Chengdu 610031,China) Abstract:Withthe rapid developmentof computertechnology,people can acquiremore andmore l"esoLu-o~from the network.Now。the development ofmultimediatechnologywhichmakesthe behavior of sharinghe devdopedtOahigherleve1.Forthe enterprise,employees shale re∞urces is essentia1.the equipments of storage in computer don’t be utilized enough.TKs paper combines the P2P teehnoes and file—sharing of network application,unite the idle s~rage re~)1.1l"CeS,implem ents a file sharing s~tem based on P2P,reduces storage COSTS,making file sharing easily.At present,P2Pbecome atechnicalhotspotinthe worldwhich resDlvedmanyofproblemsofthetradi. tional web application. Key w0rds:peer—to—peer;file sharing;socket O 引 言 进入网络时代后,网络规模逐渐增大。网络用户 可以方便地获得丰富的信息,用户之间共享资源、互相 交流也变得越来越普遍。在这种局势下,文件共享就 成为人们获取大量资源的一种有效途径,也是早期 P2P(Peer—to—Peer Network,对等网络)研究和应用 的一个主要方向。可以说,正是文件共享的需求激发 了P2P研究的热潮。在传统的C/S结构中实现文件 共享需要服务器的参与,客户端将所要共享的文件内 容上传到某个特定的服务器,用户就可以到这个服务 器上查找、下载自己所需要的文件。所有的资源都存 储在服务器上,客户端必须通过服务器连接下载,这就 对服务器的性能提出了很高的要求,使服务器成为整 个系统的瓶颈,严重影响了共享资源的用户数目以及 下载资源的速度。而 P2P则改变了C/S的网络体系 结构,将“中心”的服务器移到了“边缘”的客户机上⋯1。 系统中的每一个节点的地位都是平等的,通过节点之 间的相互操作,就可以完成文件的共享等相关工作。 该论文就实现了一个企业内部基于P2P的文件 共享系统,该系统提高了文件检索和共享的效率,同时 解决了服务器瓶颈的问题。由于Java语言对网络编 程的很好支持及其特有的跨平台性,本系统采用了Ja. va作为开发语言,采用Eclipse作为开发平台。Eclipse 是一个高效的、开源的Java开发平台,它的安装包集 成了Java开发环境的插件JDTE 。 收稿日期:2009—07—02;修回日期:2009—10—21 吴:要妻 竺科学 0 77 31 02 ) 一 + 1典型的P2P系统 作者简介:范会波(1985 一 ),男,山东烟台人,硕士研究生,研究方向 ~ ⋯ 。 为P2P网络、P2P缓存协作;张新有,副教授,研究方向为P2P技术、 从 1999年至今,P2P系统正逐渐成为研究和应用 新型网络体系结构、网络管理。 的热点。P2P共享系统就是通过网络将端用户设备共 第3期 范会波等:基于P2P的文件共享系统的设计与实现 ·49· 享的资源整合起来,实现大规模的文件共享和存储_3 J。 现在已有一些比较著名的系统如:Napster,Gnutella, Kazaa,Morpheus,Chord,BitTorrent等。以下是两种典 型的P2P系统: (1)Napster。 Napster采用的是部分集中式的节点组织结构。 并没有完全取消服务器 ,只是弱化T]]l/务器的功能[引。 在Napster中,节点在加入系统时将告诉服务器自己机 器上所共享的文件,服务器并不存储这些文件的具体 内容,而只是保存这些文件的元数据。当一个客户机 查找某个文件时,先向服务器提出请求,服务器根据自 己保存的元数据查找到文件所在的节点,将该节点的 相关信息返回给客户机L4 J。客户机然后直接与文件所 在的节点建立连接,下载文件。采用Napster除了可以 快速定位文件之外,还可以方便地实现服务的商业化。 图 1示了 Napster系统结构图。Clientl先向 Server发送询问(I~ery),Server查询用户请求的资源, 将结果(共享文件地址,如 Client2)通过 Reply返回 Clientl,之后 Clientl直接从 Client2获取所需要的文 件。 图 1 Napster系统结构 图 (2)GnuteUa。 与Napster不同,Gnutella取消了以服务器为核心 的目录式结构,而是采用了泛洪算法(Flooding),按宽 度优先原则搜索资源的位置 J。要查找某个文件,节 点首先向自己相邻的活动节点以广播方式发送查询请 求包。其他节点在接到包后检查本地是否有符合条件 的文件,如果有,则按查询请求包的路径返回一个响应 包,该响应包中包括节点的 IP地址、服务端口号等信 息;如果没有,则节点将该查询包发送给它的邻节点, 直到查询包的 1vrL(Time To Live)计数器减为 0为 止,该计数器中数值是由查询包所发起的节点设置的, 以防止该查询无限制地转发下去【6J。 发起查询的节点收到查询响应包后,则根据包中 的信息直接与目标节点建立连接,下载文件。图2表 示了Gnutella查询过程。 (a)A点发出查询请求 (b)经中间节点转发 (c)B点响应查询请求 (d)A和B数据传输 图2 Gnutella查询过程 2 系统总体结构及实现流程 2.1 总体结构 本系统主要用于企业网络或园区网内部用户共享 资源。采用 P2P技术保证用户的随时接入、离开不会 影响到系统的总体结构。为避免企业的财务、人事等 重要文件被不相关人员获知,系统引人了权限管理。 用户注册时用户名的开头应为部门的首字母(如研发 部为YF),服务器根据用户的职务和部门赋予用户不 同等级的权限,用户在上传文件时必须对文件设置权 限并经服务器核实(文件的权限不高于上传文件用户 自身的权限),这样保证了只有自身权限大于文件权限 的用户方可下载文件。 另外,如果用户上传的文件只能本部门或指定部 门人员下载。用户可在上传界面选择指定的部门,客 户端会在上传消息的头部加注指定部门的代号。如选 择研发部,上传消息头部后会加注“YF”,服务器会限 定只有研发部的人员能下载该文件。 为了提高信息的检索效率,系统采用了一个弱化 功能的服务器。服务器仅保存当前在线客户端所共享 文件的相关属性(如文件名及权限、类型、大小、文件所 在的客户端)而不保存文件的具体内容【7J。同时,服务 器可接受客户端发来的反馈信息,对共享文件进行更 · 5O· 计算机技术与发展 第2O卷 新,最大程度保证共享的文件内容是正确的。总体结 构如图3所示。 图3 P2P文件共享系统结构 由于本系统针对企业内部用户,因此用户注册采 用实名制。用户共享的文件经服务器端权限检查通过 后,直接显示在服务器的文件列表里,其他满足用户的 权限即可通过 P2P下载。 2.2 系统工作流程 打开系统的客户端软件,登陆服务器便可获得服 务器返回的最新共享信息。节点向服务器发出搜索文 件请求,服务器将符合该请求的所有节点的 IP,端口 号等信息发给该节点。然后节点 Ping每一个 IP地 址,根据返回时间与最近的节点建立连接,下载文件。 图4显示了客户端A共享文件,客户端B搜索、下载 文件的工作流程。 3 关键模块的设计与实现 为了方便用户使用软件,本系统采用了可视化的 界面设计,用户可以在客户端界面上控制本地文件的 共享,分类查看所有的共享文件,了解当前最多、最新 的下载文件,搜索下载本身所需要的资源。并可向服 务器反馈信息,方便共享文件的更新。其中文件上传、 搜索、下载是本系统的核心模块,其功能的实现主要基 于socket机制。 3.1 文件分块及上传 在本系统中将每一个要共享上传的文件分成大小 为1001d3(除最后一块)的文件块,并对每一个文件块 按顺序编号 .文件块的名称为:原文件名 +.part+编 号。分好的文件块放在和源文件同一目录下。将文件 分块是为了在网络传输中更好地利用带宽,提高文件 传输的效率Is J。 关键代码如下: 客户端A 服务器 客户端B ①连接服务器 ②上传共享信息 ① 一 ④搜索共享文件 ⑤返回搜索结果 一 ⑥同客户端A 接并请求下载 ⑦ 魏 居传输 ⑧下i l芄完成 图4 客户端搜索、下载文件的工作流程 Private separatorFile(String source.File,long bloekSize) //根据原文件和文件块大小对文件拆分 { getFileAttribute(sour~File);//取出原文件的名称及大小 BlockNumber=getBlockNumber(blockSize);//得到文件块的 总数 if(BlockNuml:~_r==1)//如果文件不足lOOkB,就一次性写入 long writeSize=O;//每次写入的字节 long writtedSi~=0;//已经写入的字节 for(int i=1:i<=No&Number;i++) t if(i0) } raf.write(1ot,0,len); } fis.close(); writtedFile= writtedFile+ Long.parseLong f separatedFile- sAndSize[i][1]); } } 3.4 系统运行 使用该系统可以方便企业内部用户交流技术,共 享本地计算机的资源。用户不必将企业的数据资源全 部保存到本地,通过本系统可实现对数据的“所得即所 需”。并且在企业内部使用时可以达到很高的下载速 度,大大节省了用户的时问。 图5为软件的下载界面。 图5 P2P文件共享系统下栽界面 4 结束语 现代的计算机技术日新月异,企事业内部的计算 机性能有了很大的提高,很多计算机闲置了大量的资 源。经实际应用证明该系统很好地整合了这些闲置的 资源,提高资源的利用率,节省了企业用于数据存储方 面的开销。 系统的服务器采用多线程实现,理论上可以无限 制地接入客户端。并且文件的下传、下载都是在客户 端之间进行,有效解决了服务器的瓶颈问题 ,不会造成 网络拥塞。当然该系统对于文件安全还应该有更深入 的研究。 参考文献: [1] 贾杏丹.P2P网络搜索技术研究[J].计算机应用研究,2006 (3):31—34. [2] Sun Yah,Tang Di.An Algorithm for CB_rve Clipping Against the Rectangular Window[J].Computer Applications and Soft— ware,2003,20(5):35—36. [3] 陈 姝,方滨兴,周勇林.P2P技术的研究与应用[J].计算 机工程与应用,2002(13):25—26. [4] 苗 坤,张 毅,左 娟.基于Jx]1A的 P2P文件共享系统 [J].计算机系统应用,2009(2):37—39. (下转第 55页) 第 3期 周爱武等:Hopfield在计算机编程中的应用与研究 ·55· field神经网络就会找到google,也就是说 Hopfield神经 网络有很强的纠错能力。它会找到和输入单词最接近 的记忆【 。 ‘ 再举一个简单的例子并说明后台运行原理: 首先让Hopfield神经网络记忆如下单词:CCC、bbc、 bba,如果输入的是 abc,那么通过肉眼比较可以看出 bbc和输入的abc最相似,其次相似的是bba和CCC。通 过Hopfield神经网络的联想记忆也可以得到相同结 论,如图 5所示。 插件机制来搭建嵌入在eclipse开发工具中一个知识可 拓展的动态帮助插件,实现根据残缺不全的java代码 联想到完整的iava代码的功能,能够给程序员编程带 来极大的方便,其在计算机代码编程中有着良好的应 用前景和发展方向。 下步笔者会努力做进一步的探索和实践。 4 结束语 文中介绍了用Hopfield联想存储器知识和eclipse 参考文献: [1] 高行山,叶天麒.CPN神经网络在结构识 别中的应用[J].微机发展(现更名:计算机 技术与发展),1999,9(2):28—29. [2] 徐耀群,包 丹,甲继承.一种联想记忆网 络研究[J].哈尔滨商业大学学报:自然科 学版,2008,24(1):77—80. [3] 姜国均.Hopfield网络解 TSP的改进算法 [J].浙江大学学报:理学版,200l,28(2): 160—163. [4] Cao Jinde.Global exponential stability of Hopfieldneural networks[J].Intemat J Sys— tems Sci,2001,32:233—236. [5] TalavanPM,Javier.Parameter settingofthe Hopfield network applied to TSP【J].Neural Networks ,2002,15:363—373. [6] Hopfield J J.Neural networks and physical systemswith emer-gent collectcomputafional abilitics[J].Proc Nail Acad Sci。1982,79(8):2554—2558. [7] RehnM,SommerFT.Storingand restoring visualinput、vim collaborative rank coding and associative memory[J].Neuro· computing,2006,69:1219—1223. [8] 荣秋生,潘梅森,颜君彪.基于Hopfield神经网络的图象矢 量量化[J].微计算机信息,2007(2—3):301—302. [9] 钟守铭,杨 烨.Hopfidd型神经网络 k一全局稳定性[J]. 电子科技大学学报,1995,24(6):647—651. (上接第 5l页) [5] 贾 磊,张新有,李 娜.基于JXTA模块的P2P应用研究 [J].计算机技术与发展,2009,19(5):238—241. [6] Liang Y D,Brasky B A.A New Concept and Method for LineClipping[J].ACMTransactionsonGraphics,1984,3(1): 21—22. [7] 罗 熹.P2P技术的应用与安全[J].中国科技信息,2008, 17(6):6—8. [8] DruschelP,RowstronA. :Alarge—scale,persistent peer — tO—peer storage utility[C]//l-lotOS VI,Schcss Elmau, Germany:[s.n.],2001:23—24.
/
本文档为【基于P2P的文件共享系统的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索