版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、l Background an Motivation隨著個人電腦的進步及價格的低廉,幾乎每個家庭都有個人電腦,不過觀察一下生活週遭的電腦使用情況,不難發現其實電腦大部分的時間都是處於發呆或是關閉狀態,使電腦不能真正的有效運用;但隨著網路的頻寬增加以及蓬勃發展,可以利用網路的力量將大家的電腦資源給結合起來,是未來網路發展的一項重要趨勢,讓每台電腦都將參與在網路之中主要的精神就是將分散在不同地理位置的電腦組織在一起,其中每一台參與計算的電腦就是屬於整個系統上的一份子,如此整個分散式系統上的所有電腦資源就能夠互相分享、整個計算也是由所有系統上的電腦共同合力完成。簡單地講,就是把整個網路上的電腦整合成
2、一台巨大的超級電腦,實現計算資源、存儲資源、資料資源、資訊資源、知識資源的全面共用。而近年來,分散式系統蓬勃發展,究其原因,檔案分享的應用就是讓他受到大家廣泛使用的重要因素,目前在網路上大家普遍使用到的分散式系統有eMule、eDonkey、kuro等系統,而在此類分散式系統中,使用者可以隨時加入或離開,將自己的一些檔案或資料分享給其他人,並且也可以透過此系統搜尋所想要的檔案,或是下載所需的檔案。不過上述的系統中,都有所謂的中央伺服器來記錄來自各地的使用者分享的資料,以成本的考量上來看,為了要達到如此大規模的檔案分享系統,是需要功能強大的電腦,並且需要人力來維持中央系統的正常運作,所需資金不匪
3、,故我們希望能將資料分享的運用建置在完全分散式的Peer-to-Peer系統上,如此即可以省掉購買強大伺服器的必要,因為Peer-to-Peer系統是不需要中央的伺服器來記錄或管理資料,而是由系統上的所有電腦來共同負責,彼此的檔案可以透過底層的邏輯架構及路由的資訊,來將檔案的資訊存放在系統上,在藉由相同的演算法,而可以搜尋到相關的檔案資訊,藉此達到彼此檔案分享的需求。l Project Goal一、 完全分散式的peer-to-peer系統一個完全沒有中央控制機制的系統,網路上的每台電腦扮演相同的腳色,因此不會因為部分電腦的當機而癱瘓整個系統,且系統中的使用者不需記住整個系統的所有電腦的資訊或
4、位址,即可找到系統中的任何一台電腦。二、 能提供檔案分享使用者可以自行將檔案分享給整個系統,而此系統會將相關的檔案訊息放置在系統中適當的電腦存放。三、 快速的檔案查詢使用者可以不知道系統中各台電腦的位址的情況下,而以檔名搜尋系統,並找到系統中此檔案的相關資訊,我們預計提供完整的檔名搜尋及關鍵字搜尋兩種不同的搜尋功能。四、 能夠容許電腦動態加入及離開、當機容許許多台電腦可以同時加入系統中,或是多台電腦同時離開,或是多台電腦的不正常離開系統,而系統還能正常運作或是快速的恢復正常運作。五、 在電腦數目遽增的情況下還維持不錯的效能當有幾百萬台甚至幾億台電腦加入系統時還能維持系統的效能,即可以有效率的分
5、享檔案、搜尋檔案、加入系統或是離開系統。六、 快速的下載所需的檔案利用將一份檔案切割成數個區塊的技術,而能使下載者能同時從不同的來源下載不同的區塊,以加速檔案取得的時間。l System ArchitectureObject Service LayerApplication LayerName resolution and routing serviceObject insert and delete serviceTopology construction and maintenanceObject migration and replication serviceObject access
6、 and location service Object sharingKey word searchingFile namesearchingObjectdownloadingP2P Base LayerApplication Layer: 此層主要是與使用者直接溝通的介面,提供了使用者加入或離開整個系統,而當使用者加入系統後,即可以分享自己的檔案、搜尋系統中想要的檔案以及下載所想要的檔案。Object Service Layer: 此層主要是管理使用者的檔案分享及檔案下載,包含了記錄使用者分享的檔案資訊,而檔案下載時會若得知來源不只一台電腦時,則會同時向不同的來源要求下載不同的檔案區塊,並
7、將抓回的檔案區塊組合成原本的檔案,最後再將抓取的檔案分享出去。P2P Base Layer: 建置Peer-to-peer的分散式系統,包含節點的加入系統及離開系統、分享檔案資訊的插入及刪除,還有系統錯誤的更正及修復等等,並提供節點的搜尋、檔案的搜尋等功能。l Design and AlgorithmP2P Base LayerBase on ChordRouting Table:如同Chord的設計,每個節點會記錄與自己的ID相差2的i次方的ID的代理節點當作自己的ith neighbor,並且會記錄自己的predecessor與successor的資訊,而不同的是本系統可以依照系統的特性來
8、設定要記錄的predecessor與successor的數目,記錄的越多系統會能容忍節點的不正常離開,但也因此必須再加入及離開時有較多的資訊交流。Routing Algorithm(Node Lookup Algorithm:首先先檢查欲查詢的目標節點其ID是否在我與我的successors的ID的範圍內,若是即表示目標ID的代理節點為我的successor,並從successors中找出此ID的代理節點;若否,則檢查是否我有predecessor,若沒有則檢查目標ID是否座落在離我最遠的successor與我的ID之間,若是則表示我自己即為此目標ID的代理點。若非上述的情況,則尋找我的ith
9、 neighbor中,其ID最接近目標ID但又不超過目標ID的節點,並且將尋找目標ID的要求傳給該節點,由該節點採用相同的routing演算法直到找到目標ID的代理節點為止。Node Join Algorithm: 若系統目前沒有任何節點,則自己成為系統的第一個節點,並等待別人來加入。 若欲加入的系統已經有節點存在,則以其中一個已知的節點當作gateway,由此節點詢問到目前系統中代理自己的ID的代理節點,並將此代理節點的predecessors與successors當作自己的predecessors與successors,接著在詢問此代理節點得到我的ith neighbors。接著詢問我的p
10、redecessors與successors所記錄的檔案資訊,並將該屬於自己記錄的資料記錄下來,接著告知我的代理節點有關我的加入,並再次詢問其predecessors的資訊,看看是否同時有新的節點加入,如果有則更新我的predecessors或successors的資訊。最後再告知我的predecessors與successors有關我的加入,使他們能更新其successors與predecessors的資訊,並且更新其ith neighbors的資訊。Node Leave Algorithm: 首先先將我自己分享的案檔的資料從系統中刪除,接著再將原本存放在我身上的檔案資訊傳給我的succes
11、sor。 再來在告知我的predecessors與successors有關我的離開,而收到此訊息的節點將會更新其predecessors與successors的資訊,以及更新其ith neighbor的資訊,最後就可以離開系統。Failure Detect Algorithm:為了增加系統的正確性,每個節點將會定期的檢查自己的routing table的資訊是否正確,即檢查位於自己routing table的節點是否都還存在:如果有predecessor掛掉了,則詢問其他還存活的predecessor其predecessor的資訊,以補充及更新自己的predecessor的資訊;如果有succ
12、essor掛掉了,則詢問其他還存活的successor其successor的資訊,以補充及更新自己的successor的資訊;若ith neighbor掛掉了,則重新lookup此ith neighbor的ID來找尋到新的代理者。Object Insert Algorithm:首先先將欲分享的檔案的檔名經過SHA1 hash過,而得到此檔案的object ID,再經由lookup的機制尋找到此ID的代理節點,接著告知此節點有關此案檔的資訊,資訊包含檔案的檔名、檔案大小及來源節點。而當此負責此物件資訊的代理節點接到object insert的資訊後,會將此資訊記錄到自己負責的object的記錄中
13、,接著再將此object insert的資訊告訴其所有的predecessors與successors,而當代理節點的predecessors與successors接到這樣的資訊後,會將這些資訊放入其cache中。Object Delete Algorithm:首先先將欲刪除且已分享的檔案的檔名經過SHA1 hash過,得到此檔案的object ID,再經由lookup的機制尋找到此ID的代理節點,接著告知此節點將有關此案檔的資訊移除。當負責此物件資訊的代理節點接到object delete的資訊後,會搜尋自己負責的object的記錄檔,看看是否有這檔案的資料,如果有則刪除,接著再把此obje
14、ct delete的資訊告訴其所有的predecessors與successors,而當此代理節點的predecessors與successors接到這樣的資訊後,會將搜尋其cache看看是否有此資料存在,若有則刪除之。Object Search Algorithm:首先先將欲搜尋的檔案的檔名經過SHA1 hash過,得到此檔案的object ID,再經由lookup的機制尋找到此ID的代理節點,接著詢問此節點是否有有關此案檔的資訊。當負責此物件資訊的代理節點接到object search的資訊後,會搜尋自己負責的object及cache的記錄檔,看看是否有這檔案的資料,如果有,則會先確認檔案
15、的來源節點是否活著,若活著則回傳相關的檔案資訊;若來源節點已掛點,則會將此資料移除。Object Keyword Search Algorithm:詢問所有位於我的routing table的節點是否含有預搜尋的keyword的字串的檔案資訊。 而當接收到此搜尋的要求時,節點會檢查自己的object與cache的記錄檔,看看是否記錄的檔案其檔名包含此keyword,如果有,則會先確認檔案的來源節點是否活著,若活著則回傳相關的檔案資訊;若來源節點已掛點,則會將此資料移除。Object Download Algorithm:當搜尋檔案得到檔案的來源資訊後,會檢查是否有許多不同的來源,若只有單一的來
16、源則直接與來源節點要求下載檔案。 若有多個來源,則會根據檔案的大小,將檔案分成許多固定大小的小區塊,而同時與不同的來源要求下載不同的檔案區塊,最後再將所有的區塊重新整合成完整的檔案,並將此檔案用object insert的方式分享出去。l System CharacteristicsDynamics:因為當有節點要加入時,會先取得相關的資訊,才會告知系統新節點的加入,減少系統更正整個網路資訊的時間,並降低發生同時加入時的短暫更正時間;而離開前也是會先移除自己分享的檔案資訊,且將負責的資料傳給successor,然後告知系統其離開的資訊,可確保資料已經正確傳給其他節點來負責,故此系統可容許節點動
17、態的加入或離開系統,或是同時的加入或離開。Scalability: 因為每個節點要記錄的鄰居的資訊只是O(logN),所以就算系統可容許264個節點,每個節點要記錄的鄰居數也不到百個,故此系統可以有很好的擴充性,可適用於目前整個網際網路。Fail Tolerance: 因為會定期的確認routing table的正確性,故當有節點不正常離開系統時,可以被偵測到並且更正,再加上每個檔案的資訊不只是存在該檔案ID的代理節點上,還會被cache在代理節點的predecessors與successors上,故檔案資訊會存在代理節點的附近區域,故區域內有節點不正常離開時,還可以從其他人身上得到檔案的資訊
18、。On demand Correct Object Record:因為當有人與檔案的代理節點詢問有關檔案的資訊時,代理節點會先檢查是否檔案的來源還活著,故可以在需要的時候才更新檔案的資訊,減少平常網路的使用及節點本身的運作,也可以增加回傳的資料的正確性。Quickly Download:若系統中存在許多節點分享共同的檔案,則可以加入檔案下載的速度,因為可以同時從不同的來源同時下載不同的檔案區塊,最後再組合回原本的檔案。 l Operation Procedure因為使用Java RMI作為middle ware,故首先必須執行RMI Registry,然後在執行本程式。Node Joining
19、 and Leaving:如圖一所示,首先必須先加入網路系統,若是系統的第一點,則直接按connect即可,而若系統已有其節點存在,則在gateway處加入已存在的節點的ip與port,在按connect即可加入系統,當加入後即可做檔案的分享與搜尋,而當要離開系統時,按Disconnect即可,而status處會顯示目前節點的狀態即ID。圖一Objects Sharing and Deleting:如圖二所示,當加入系統後即可做檔案的分享,只要按Open File即會彈出資料夾選擇視窗,讓使用這選擇要分享的檔案,My Share Files處即會列出目前已經分享出來的檔案資訊,接著可以從此列表中選擇檔案,按Delete將此分享的檔案資訊從系統中移除。圖二Objects Searching and Keyword Searching:如圖三所示,可以選擇作檔名的搜尋或是關鍵字搜尋,即分別在Filename處或是Keyword處輸入檔名或是關鍵字,然後按下Start即可搜尋,搜尋的結果會列在Search Result處,而其中檔案搜尋是只要系統中有人分享及可以搜尋到,而關鍵字搜尋則只有作部分的搜尋,故可能系統中存在相關的資料,但是卻沒搜尋到,而按Remove即可清除搜尋的結果。圖三Objects Down
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 高中信息技术数据与计算之数据在电商营销效果预测模型构建中的应用课件
- 2025 高中信息技术数据与计算之数据可视化的克利夫兰点图设计课件
- 2026年智慧海洋智慧渔业智慧渔港解决方案应用
- 2024年广州互联网法院首例跨境传输个人信息司法裁判要旨
- 2026年数据治理中的数据安全防护:终端 网络 数据库三层保护设计
- 2026年数据投毒攻击防御:训练数据后门检测与防范机制
- 2026年生物育种品种全程机械化栽培技术规程
- 医患沟通中的非语言表达课件
- 2026年载人潜水器水下布放回收中的通信保障方案
- 2026年省域美丽中国先行区建设一省一色方案模板
- 地震勘探资料解释技术
- 牧原饲料厂安全培训课件
- 2025年校园节能改造项目可行性研究报告及总结分析
- 肾病患者的饮食指导课件
- 运动品牌361°小刘鸭联名新品发布快闪店活动方案
- 2025秋南方新课堂金牌学案中国历史七年级上册(配人教版)(教师用书)
- 劳动关系协调员四级考试真题(2篇)
- 2025年ODCC开放数据中心大会:云边协同AI网络技术白皮书
- 2025年中国纳米功能电池项目创业计划书
- 雅马哈DTX430K电子鼓中文说明书
- 小学五年级音乐期末考核方案
评论
0/150
提交评论