當(dāng)前位置:工程項目OA系統(tǒng) > 金融OA管理系統(tǒng) > 軟件產(chǎn)品 > P2P借貸管理系統(tǒng)
對P2P應(yīng)用程序開發(fā)框架的研究
1概述
P2P應(yīng)用程序以一種分布的方式管理和組織位于互聯(lián)網(wǎng)邊緣的各種資源。位于互聯(lián)網(wǎng)邊緣的通常都是一些聯(lián)網(wǎng)的普通PC。在傳統(tǒng)的C/S網(wǎng)絡(luò)模式下,普通PC作為客戶端,通過向位于Intemet中的各種服務(wù)器發(fā)送請求來完成一些任務(wù)。相反在P2P模式下,普通PC直接與互聯(lián)網(wǎng)中成千上萬臺計算機相連,實現(xiàn)信息和數(shù)據(jù)的共享。因為與用戶計算機相連的各種計算機資源的聯(lián)網(wǎng)狀態(tài)是不穩(wěn)定的,所以P2P協(xié)議被設(shè)計為可以在不穩(wěn)定的聯(lián)網(wǎng)和動態(tài)的 地址的情況下實現(xiàn)網(wǎng)絡(luò)操作的一種通訊規(guī)則。
P2P應(yīng)用程序的開發(fā)要比C/s應(yīng)用程序的開發(fā)復(fù)雜一些。在P2P系統(tǒng)中,所有的計算機(節(jié)點)都運行相同的程序。開發(fā)P2P應(yīng)用程序要解決如下一些問題:
(1)聯(lián)通性:如何找到和連接其他的P2P節(jié)點,這些節(jié)點通常不具有固定IP;(2)消息路由:消息如何從一個節(jié)點路由到另一個節(jié)點,源節(jié)點與目標(biāo)節(jié)點之間互相都不知道對方的位置;(3)搜索:如何從網(wǎng)絡(luò)節(jié)點中找到需要的信息;(4)安全:在這方面存在很多的問題,包括節(jié)點如何信任其它節(jié)點等。
本文將會針對開發(fā)P2P應(yīng)用程序的相關(guān)問題提出一個簡單的P2P應(yīng)用程序開發(fā)框架。
2 P2P應(yīng)用程序開發(fā)框架基本結(jié)構(gòu)
該P2P應(yīng)用程序開發(fā)框架的基本結(jié)構(gòu)如圖1所示,在該圖中也演示了網(wǎng)絡(luò)節(jié)點之間相互通訊的全部過程。
在節(jié)點中運行的P2P應(yīng)用程序向用戶提供了一個界面,并且運行了一個用于監(jiān)聽從其它節(jié)點發(fā)來的連接請求的主循環(huán)。用戶可以單擊節(jié)點A圖形界面中的一個按鈕(比如搜索按鈕),與該按鈕相關(guān)的程序就會向節(jié)點B發(fā)出“Query“消息,請求與節(jié)點B建立連接。節(jié)點B的主循環(huán)檢測到節(jié)點A發(fā)出的連接請求后,會啟動一個單獨的線程來處理這個請求。一旦節(jié)點A與節(jié)點B建立了連接,節(jié)點A就會向節(jié)點B發(fā)送包含了真正要處理數(shù)據(jù)的消息,節(jié)點B中的相應(yīng)線程就會接收消息并向節(jié)點A發(fā)出回復(fù),然后關(guān)閉與節(jié)點A的連接,再根據(jù)節(jié)點A發(fā)送給自己的消息類型,調(diào)用相應(yīng)的消息處理函數(shù)處理該消息。處理完消息中包含的數(shù)據(jù)之后,節(jié)點B會主動連接節(jié)點A,并向節(jié)點A發(fā)出“Query Response”的消息。
3核心模塊
上述P2P節(jié)點之間的數(shù)據(jù)通訊功能是基于一個簡單的開發(fā)框架實現(xiàn)的,該框架中包括除用戶界面之外的兩個重要的功能模塊。
3.1節(jié)點模塊
節(jié)點模塊管理著網(wǎng)絡(luò)節(jié)點的全部操作功能。該模塊包含一個用于監(jiān)聽連接請求和啟動消息處理線程的主循環(huán)。借助該框架進行P2P應(yīng)用開發(fā)的程序員可以在節(jié)點模塊中注冊新的消息處理句柄(函數(shù)或方法),該模塊中的主循環(huán)會根據(jù)節(jié)點接收到的消息類型分配相應(yīng)的消息處理句柄進行消息的處理。一個網(wǎng)絡(luò)節(jié)點啟動初始化時會提供一個監(jiān)聽連接請求的端口,一個IP地址以及一個節(jié)點標(biāo)識符。
節(jié)點模塊也維護著一個已知節(jié)點列表,該列表的大小是有限制的,節(jié)點可以通過標(biāo)識符或者在列表中的順序位置來訪問這些已知節(jié)點。
除了存儲各種不同類型消息的處理句柄之外,節(jié)點模塊還存儲了程序員編寫的用來決定如何路由消息的函數(shù)。節(jié)點模塊也能以固定間隔允許固定的操作程序。
3.2節(jié)點連接模塊
節(jié)點連接模塊封裝了用于連接其它節(jié)點的套接字。該框架使用TCP/IP協(xié)議在節(jié)點之間進行通訊。節(jié)點連接模塊提供了可以讓程序員非常容易發(fā)送和接收消息的各種方法,這些方法保證了消息的編碼格式的正確。另外,節(jié)點連接模塊也可以偵測到P2P數(shù)據(jù)傳輸過程中出現(xiàn)的各種錯誤。
該框架中定義的消息包含一個8字節(jié)長度的消息頭,該消息頭中有4個字節(jié)用來存放消息的類型標(biāo)識,另外4字節(jié)用來存放一個表示消息中數(shù)據(jù)長度的整數(shù)。4字節(jié)的消息類型標(biāo)識可以被看作是字符串。因此,程序員可以用自定義的長度為4-T-節(jié)的字符串來標(biāo)識各種不同的消息類型。當(dāng)節(jié)點中的主循環(huán)接收到消息后,它就會根據(jù)消息類型將消息分配給正確的處理句柄。消息句柄是一個可以接收節(jié)點連接模塊對象引用和消息類型的函數(shù),句柄可以根據(jù)消息類型被注冊。目前,該框架被設(shè)計為一個消息僅對應(yīng)一個句柄對象的1:1模式。當(dāng)節(jié)點模塊接收到一個連接請求時,它就會建立一個節(jié)點連接模塊對象,該對象讀取其它節(jié)點發(fā)來的消息類型,啟動一個線程處理消息中的數(shù)據(jù),當(dāng)消息句柄完成它的任務(wù)后,節(jié)點連接自動關(guān)閉。
4結(jié)語
P2P應(yīng)用程序的開發(fā)難度較大,借助于框架技術(shù)可以大大簡化開發(fā)過程,提高開發(fā)效率。本文提出的這個簡單的開發(fā)框架對P2P應(yīng)用程序的開發(fā)起到了一定的改進作用。
- 1P2P借貸管理系統(tǒng)主要涉及“三個層次”和“一個疑問”
- 2基金業(yè)切勿“急功近利”
- 3投資人對P2P平臺的期望
- 4互聯(lián)網(wǎng)金融面臨的幾重風(fēng)險
- 5P2P二級市場“胎動” 國家隊或有意進入
- 6泛普P2P系統(tǒng)教您正確認知網(wǎng)貸 讓網(wǎng)貸幫您積累財富
- 7P2P網(wǎng)貸監(jiān)管:要創(chuàng)新也要慎重
- 8債權(quán)“大戶”變身新平臺股東 盛融在線重組自救
- 9助銷流程、助貸流程、輔導(dǎo)上市流程、貸后管理流程
- 10十大貸款模型助你判斷網(wǎng)貸平臺未來發(fā)展趨勢
- 11網(wǎng)絡(luò)借貸面臨多重風(fēng)險
- 12P2P第三方交易平臺推投資人全額補償保障計劃
- 13有關(guān)P2P監(jiān)管的問題:預(yù)防跑路有三大難題
- 14央行指出互聯(lián)網(wǎng)金融底線正進行調(diào)研
- 15P2P網(wǎng)絡(luò)借貸監(jiān)管建議和發(fā)展趨勢
- 16五大特征讓你分秒識別P2P網(wǎng)貸問題平臺
- 17P2P借貸管理系統(tǒng)一個新生代互聯(lián)網(wǎng)金融理財產(chǎn)品
- 18銀聯(lián)封殺令考驗監(jiān)管智慧
- 19網(wǎng)貸和傳統(tǒng)投資對比
- 20P2P平臺應(yīng)把控好隱形成本 盲目或擾亂互聯(lián)網(wǎng)金融局勢
- 21國內(nèi)股權(quán)眾籌發(fā)展現(xiàn)狀研究
- 22P2PP2P借貸管理行業(yè)視保險為“兵家下一個必爭之地”
- 23P2P網(wǎng)貸對金融業(yè)發(fā)展的影響
- 24網(wǎng)上貸款條件有哪些?
- 25門戶之父陳彤加盟小米 或幫雷軍在P2P領(lǐng)域建立“門戶”
- 26唯品會攜程搜房網(wǎng)突破地域限制涉足小貸公司
- 27元旦過后銀行借款優(yōu)惠額度下調(diào)明顯
- 28投資者如何選擇安全的p2p網(wǎng)貸系統(tǒng)平臺呢?
- 29未來P2P借貸管理系統(tǒng)平臺對資本的依賴將加深嗎?
- 30京東籌建P2P金融交易平臺:已開始網(wǎng)羅人才
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓