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