亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種進(jìn)程間通訊的方法、及裝置制造方法

文檔序號(hào):6524061閱讀:149來(lái)源:國(guó)知局
一種進(jìn)程間通訊的方法、及裝置制造方法
【專利摘要】本發(fā)明實(shí)施例公開了一種進(jìn)程間通訊的方法、及裝置,其中方法的實(shí)現(xiàn)包括:根據(jù)待發(fā)送數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)尋找并確定對(duì)應(yīng)的目標(biāo)通道;將待發(fā)送數(shù)據(jù)寫入確定的目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi);若所述目標(biāo)節(jié)點(diǎn)為本地節(jié)點(diǎn),則確定的所述目標(biāo)通道為本地通道,寫入所述共享空間的待發(fā)送數(shù)據(jù)由所述目標(biāo)節(jié)點(diǎn)的本地通道接收;若所述目標(biāo)節(jié)點(diǎn)為遠(yuǎn)端節(jié)點(diǎn),則確定的所述目標(biāo)通道為遠(yuǎn)端代理通道,采用遠(yuǎn)端代理通道從所述共享空間接收所述待發(fā)送數(shù)據(jù),并通過(guò)本地代理節(jié)點(diǎn)向?qū)Χ舜砉?jié)點(diǎn)發(fā)送所述待發(fā)送數(shù)據(jù)。以上方案,不需要關(guān)心通訊的進(jìn)程是運(yùn)行于同一主機(jī)還是不同主機(jī),因此開發(fā)人員不需要了解機(jī)器內(nèi)核跨機(jī)器間通信的機(jī)制和細(xì)節(jié),因此可以提高開發(fā)效率,并減少出錯(cuò)。
【專利說(shuō)明】一種進(jìn)程間通訊的方法、及裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種進(jìn)程間通訊的方法、及裝置。

【背景技術(shù)】
[0002]網(wǎng)絡(luò)服務(wù)開發(fā)過(guò)程中經(jīng)常會(huì)碰到進(jìn)程間通訊問(wèn)題。進(jìn)程間通訊又分為機(jī)器內(nèi)的進(jìn)程通訊和跨機(jī)器的進(jìn)程通訊。對(duì)于機(jī)器內(nèi)的進(jìn)程通訊一般采用:管道、共享內(nèi)存、消息隊(duì)列、Unix Socket (一種操作系統(tǒng)的套接字)以及 IPC (Inter-Process Communicat1n,進(jìn)程間通信)等技術(shù)。對(duì)于跨機(jī)器的進(jìn)程通訊一般采用TCP (Transmiss1n Control Protocol,傳輸控制協(xié)議)/UDP (User Datagram Protocol,用戶數(shù)據(jù)包協(xié)議)Socket (套接字)方式。
[0003]網(wǎng)絡(luò)服務(wù)開發(fā)如果同時(shí)需要在機(jī)器內(nèi)和跨機(jī)器作進(jìn)程間通訊,就需要針對(duì)具體場(chǎng)景選擇合適的IPC機(jī)制,并且對(duì)于機(jī)器內(nèi)和跨機(jī)器進(jìn)程間通訊分別封裝和開發(fā)提供給上層應(yīng)用使用。開發(fā)人員需要很了解機(jī)器內(nèi)和跨機(jī)器進(jìn)程間通訊機(jī)制和細(xì)節(jié)。這樣應(yīng)用開發(fā)效率比較低,也容易出錯(cuò)。


【發(fā)明內(nèi)容】

[0004]本發(fā)明實(shí)施例提供了一種進(jìn)程間通訊的方法、及裝置,用于提高開發(fā)效率,減少出錯(cuò)。
[0005]一種進(jìn)程間通訊的方法,包括:
[0006]根據(jù)待發(fā)送數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)尋找并確定對(duì)應(yīng)的目標(biāo)通道;將所述待發(fā)送數(shù)據(jù)寫入確定的所述目標(biāo)通道對(duì)應(yīng)的共孚存儲(chǔ)空間內(nèi);
[0007]若所述目標(biāo)節(jié)點(diǎn)為本地節(jié)點(diǎn),則確定的所述目標(biāo)通道為本地通道,寫入所述共享空間的待發(fā)送數(shù)據(jù)由所述目標(biāo)節(jié)點(diǎn)的本地通道接收;
[0008]若所述目標(biāo)節(jié)點(diǎn)為遠(yuǎn)端節(jié)點(diǎn),則確定的所述目標(biāo)通道為遠(yuǎn)端代理通道,采用遠(yuǎn)端代理通道從所述共享空間接收所述待發(fā)送數(shù)據(jù),并通過(guò)本地代理節(jié)點(diǎn)向?qū)Χ舜砉?jié)點(diǎn)發(fā)送所述待發(fā)送數(shù)據(jù)。
[0009]一種裝置,用于進(jìn)程間通訊,包括:
[0010]通道確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)尋找并確定對(duì)應(yīng)的目標(biāo)通道;
[0011]數(shù)據(jù)寫入單元,用于將所述待發(fā)送數(shù)據(jù)寫入所述通道確定單元確定的所述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi);
[0012]本地通道單元,用于若所述目標(biāo)節(jié)點(diǎn)為本地節(jié)點(diǎn),則確定的所述目標(biāo)通道為本地通道,寫入所述共享空間的待發(fā)送數(shù)據(jù)由所述目標(biāo)節(jié)點(diǎn)的本地通道接收;
[0013]發(fā)送單元,用于若所述目標(biāo)節(jié)點(diǎn)為遠(yuǎn)端節(jié)點(diǎn),則確定的所述目標(biāo)通道為遠(yuǎn)端代理通道,采用遠(yuǎn)端代理通道從所述共享空間接收所述待發(fā)送數(shù)據(jù),并通過(guò)本地代理節(jié)點(diǎn)向?qū)Χ舜砉?jié)點(diǎn)發(fā)送所述待發(fā)送數(shù)據(jù)。
[0014]從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):采用通道管理的方案,通過(guò)代理節(jié)點(diǎn)實(shí)現(xiàn)跨機(jī)通訊,不需要關(guān)心通訊的進(jìn)程是運(yùn)行于同一主機(jī)還是不同主機(jī),因此開發(fā)人員不需要了解機(jī)器內(nèi)核跨機(jī)器間通信的機(jī)制和細(xì)節(jié),因此可以提高開發(fā)效率,并減少出錯(cuò)。

【專利附圖】

【附圖說(shuō)明】
[0015]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0016]圖1為本發(fā)明實(shí)施例方法流程示意圖;
[0017]圖2為本發(fā)明實(shí)施例系統(tǒng)架構(gòu)示意圖;
[0018]圖3為本發(fā)明實(shí)施例方法流程示意圖;
[0019]圖4為本發(fā)明實(shí)施例方法流程示意圖;
[0020]圖5為本發(fā)明實(shí)施例方法流程示意圖;
[0021]圖6為本發(fā)明實(shí)施例方法流程示意圖;
[0022]圖7為本發(fā)明實(shí)施例方法流程示意圖;
[0023]圖8為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;
[0024]圖9為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;
[0025]圖10為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;
[0026]圖11為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;
[0027]圖12為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;
[0028]圖13為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;
[0029]圖14為本發(fā)明實(shí)施例裝置結(jié)構(gòu)示意圖;
[0030]圖15為本發(fā)明實(shí)施例終端結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0031]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0032]本發(fā)明實(shí)施例提供了一種進(jìn)程間通訊的方法,如圖1所示,包括:
[0033]101:根據(jù)待發(fā)送數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)尋找并確定對(duì)應(yīng)的目標(biāo)通道;將上述待發(fā)送數(shù)據(jù)寫入確定的上述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi);
[0034]進(jìn)一步地,本發(fā)明實(shí)施例還提供了進(jìn)行流量控制的方案,該方案在數(shù)據(jù)的發(fā)送端進(jìn)行發(fā)送控制,具體如下:在將上述待發(fā)送數(shù)據(jù)寫入確定的上述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi)之前,還包括:
[0035]確定目標(biāo)通道是否為暫停狀態(tài),若不是暫停狀態(tài),則將上述待發(fā)送數(shù)據(jù)寫入確定的上述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi),否則停止向上述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間寫入數(shù)據(jù),直到上述目標(biāo)通道恢復(fù)為非暫停狀態(tài)。
[0036]在本實(shí)施例中,如果目標(biāo)通道不是暫停狀態(tài),那么數(shù)據(jù)的發(fā)送將會(huì)持續(xù),一旦目標(biāo)通道的狀態(tài)變?yōu)闀和顟B(tài),這將表示發(fā)送速度超過(guò)了接收方的限度,需要停止發(fā)送。目標(biāo)通道的狀態(tài)由接收端指定,在后續(xù)實(shí)施例中將給出更詳細(xì)的說(shuō)明。
[0037]102:若上述目標(biāo)節(jié)點(diǎn)為本地節(jié)點(diǎn),則確定的上述目標(biāo)通道為本地通道,寫入上述共享空間的待發(fā)送數(shù)據(jù)由上述目標(biāo)節(jié)點(diǎn)的本地通道接收;
[0038]103:若上述目標(biāo)節(jié)點(diǎn)為遠(yuǎn)端節(jié)點(diǎn),則確定的上述目標(biāo)通道為遠(yuǎn)端代理通道,采用遠(yuǎn)端代理通道從上述共享空間接收上述待發(fā)送數(shù)據(jù),并通過(guò)本地代理節(jié)點(diǎn)向?qū)Χ舜砉?jié)點(diǎn)發(fā)送上述待發(fā)送數(shù)據(jù)。
[0039]以上實(shí)施例,采用通道管理的方案,通過(guò)代理節(jié)點(diǎn)實(shí)現(xiàn)跨機(jī)通訊,不需要關(guān)心通訊的進(jìn)程是運(yùn)行于同一主機(jī)還是不同主機(jī),因此開發(fā)人員不需要了解機(jī)器內(nèi)核跨機(jī)器間通信的機(jī)制和細(xì)節(jié),因此可以提聞開發(fā)效率,并減少出錯(cuò)。
[0040]進(jìn)一步地,本發(fā)明實(shí)施例中所稱的本地是指上述待發(fā)送數(shù)據(jù)的源端的設(shè)備本地,本領(lǐng)域技術(shù)人員可以理解的是該設(shè)備也可以作為數(shù)據(jù)的接收端使用,本發(fā)明實(shí)施例還提供了該設(shè)備作為數(shù)據(jù)的接收端使用的方案,并且在數(shù)據(jù)的接收端進(jìn)行流量控制,具體如下:上述方法,還包括:
[0041]通過(guò)本地代理節(jié)點(diǎn)接收來(lái)自對(duì)端代理節(jié)點(diǎn)的數(shù)據(jù),并確定接收到的數(shù)據(jù)是否已經(jīng)達(dá)到其在本地的目標(biāo)通道的閾值,若是,則向?qū)Χ舜砉?jié)點(diǎn)發(fā)送暫停指示消息,指示上述對(duì)端代理節(jié)點(diǎn)暫停向上述目標(biāo)通道寫入數(shù)據(jù)。
[0042]本領(lǐng)域技術(shù)人員可以理解的是,如果接收到的數(shù)據(jù)沒(méi)有達(dá)到本地的目標(biāo)通道的閾值,則可以繼續(xù)接收數(shù)據(jù)。上述閾值是按照上述本地的目標(biāo)通道所對(duì)應(yīng)的存儲(chǔ)空間來(lái)確定的,用于防止溢出。
[0043]進(jìn)一步地,本發(fā)明實(shí)施例還提供了進(jìn)行流量控制以后,目標(biāo)通道被暫停以后(即暫停數(shù)據(jù)傳輸以后)如何恢復(fù)數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方案,具體如下:上述方法,還包括:
[0044]若上述本地的目標(biāo)通道為暫停狀態(tài),并且沒(méi)有數(shù)據(jù),則向?qū)Χ舜砉?jié)點(diǎn)發(fā)送恢復(fù)指示,指示上述對(duì)端代理節(jié)點(diǎn)繼續(xù)向上述目標(biāo)通道寫入數(shù)據(jù)。
[0045]可以理解的是,如果本地的目標(biāo)通道不是暫停狀態(tài),當(dāng)前應(yīng)該處于數(shù)據(jù)的發(fā)送過(guò)程中。如果上述本地的目標(biāo)通道為暫停狀態(tài),那么當(dāng)前應(yīng)該是沒(méi)有進(jìn)行數(shù)據(jù)通訊的,此時(shí)需要確定在何種情況下恢復(fù)通訊,本實(shí)施例給出了目標(biāo)通道中沒(méi)有數(shù)據(jù)的情況,實(shí)際上如果目標(biāo)通道的數(shù)據(jù)量小于目標(biāo)通道的數(shù)據(jù)總?cè)萘吭O(shè)定比例也是可以的,本發(fā)明實(shí)施例對(duì)此不作唯一'丨生限定。
[0046]進(jìn)一步地,本發(fā)明實(shí)施例還提供了節(jié)點(diǎn)的創(chuàng)建方案,包含本地節(jié)點(diǎn)的創(chuàng)建以及依據(jù)對(duì)端代理節(jié)點(diǎn)的指示進(jìn)行通道創(chuàng)建的方案,具體方案如下:在根據(jù)待發(fā)送數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)尋找并確定對(duì)應(yīng)的目標(biāo)通道之前,還包括:
[0047]本地代理節(jié)點(diǎn)創(chuàng)建本地節(jié)點(diǎn),并確定本地節(jié)點(diǎn)與其通道的對(duì)應(yīng)關(guān)系,為上述本地節(jié)點(diǎn)對(duì)應(yīng)的通道分配內(nèi)存空間;或者,接收對(duì)端代理節(jié)點(diǎn)發(fā)送的通道信息,若本地未存儲(chǔ)上述通道信息,則創(chuàng)建遠(yuǎn)端代理通道,并監(jiān)聽遠(yuǎn)端代理通道是否有數(shù)據(jù)接收。
[0048]進(jìn)一步地,本發(fā)明實(shí)施例還提供了跨設(shè)備的通道的信息如何同步的技術(shù)方案,采用代理節(jié)點(diǎn)完成通道信息的同步,具體如下:在通過(guò)本地代理節(jié)點(diǎn)向?qū)Χ舜砉?jié)點(diǎn)發(fā)送上述待發(fā)送數(shù)據(jù)之前,還包括:
[0049]讀取配置文件,確定對(duì)端代理節(jié)點(diǎn)的互聯(lián)網(wǎng)協(xié)議地址以及端口號(hào),并通過(guò)上述互聯(lián)網(wǎng)協(xié)議地址以及端口號(hào)建立本地代理節(jié)點(diǎn)與上述對(duì)端代理節(jié)點(diǎn)之間的傳輸控制協(xié)議TCP連接;并通過(guò)上述TCP連接將非對(duì)端創(chuàng)建的通道發(fā)送給對(duì)端代理節(jié)點(diǎn);通過(guò)上述TCP連接接收對(duì)端代理節(jié)點(diǎn)發(fā)送的非本地創(chuàng)建的通道,并建立接收到的通道對(duì)應(yīng)的遠(yuǎn)端代理通道。
[0050]進(jìn)一步地,本發(fā)明實(shí)施例還提供了,通道刪除的方案,具體如下:上述方法,還包括:
[0051]若本地節(jié)點(diǎn)關(guān)閉,上述本地節(jié)點(diǎn)對(duì)應(yīng)的通道與對(duì)端代理節(jié)點(diǎn)的連接關(guān)閉,且上述本地節(jié)點(diǎn)對(duì)應(yīng)的通道沒(méi)有被其他進(jìn)程所使用,則銷毀上述本地節(jié)點(diǎn)對(duì)應(yīng)的通道。
[0052]可以理解的是,銷毀通道的目的在于釋放不需要的存儲(chǔ)空間,具體操作可以是將通道對(duì)應(yīng)的存儲(chǔ)空間內(nèi)的信息進(jìn)行銷毀。銷毀的過(guò)程可以是將該存儲(chǔ)空間,例如內(nèi)存釋放使之能夠被再次使用,并不一定需要進(jìn)行存儲(chǔ)空間進(jìn)行初始化操作。
[0053]以下實(shí)施例就本發(fā)明實(shí)施例的幾個(gè)重要方面進(jìn)行分別舉例說(shuō)明。
[0054]本發(fā)明實(shí)施例采用的是基于共享內(nèi)存的進(jìn)程間通訊的中間件方案。開發(fā)人員可以使用它方便地實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)交換,而不用關(guān)心需要交換數(shù)據(jù)的進(jìn)程是運(yùn)行在同一主機(jī)還是在不同的主機(jī)。當(dāng)進(jìn)程處于同一主機(jī)時(shí),數(shù)據(jù)通過(guò)共享內(nèi)存?zhèn)鬏敚欢鴮?duì)于不同主機(jī)上的進(jìn)程,該中間件會(huì)將數(shù)據(jù)由代理服務(wù)(Agent)通過(guò)TCP/IP傳輸?shù)竭h(yuǎn)程主機(jī)。
[0055]一、該中間件方案如圖2所示,包含如下幾個(gè)部分:
[0056]hostl和host2是兩個(gè)主機(jī)設(shè)備;在hostl中包含了兩個(gè)數(shù)據(jù)收發(fā)點(diǎn)(peer),peer I和peer2,分別屬于各自的進(jìn)程;在host2中包含了兩個(gè)數(shù)據(jù)收發(fā)點(diǎn)(peer),peer3和peer4,分別屬于各自的進(jìn)程;每個(gè)主機(jī)可以包含的進(jìn)程可以有很多,每個(gè)進(jìn)程包含的peer也可以有很多,圖2僅作為一個(gè)示意,不應(yīng)理解為對(duì)本發(fā)明實(shí)施例的限定。Agent所在的進(jìn)程執(zhí)行的是代理服務(wù),可以稱為代理節(jié)點(diǎn)。以下分別對(duì)圖2所示的各部分進(jìn)行詳細(xì)介紹如下:
[0057]數(shù)據(jù)收發(fā)點(diǎn)(peer):中間件為開發(fā)人員提供的客戶端開發(fā)包,使用該開發(fā)包創(chuàng)建具體peer用來(lái)接收和發(fā)送消息。
[0058]通道(channel):實(shí)際上是一塊共享內(nèi)存。當(dāng)創(chuàng)建一個(gè)peer時(shí),中間件創(chuàng)建一個(gè)同名的channel與這個(gè)peer綁定。每個(gè)channel都有一個(gè)唯一的id,所以存在多個(gè)channel名稱相同的channel集合。peer通過(guò)這個(gè)channel接收數(shù)據(jù);發(fā)送數(shù)據(jù)時(shí),中間件會(huì)先找到與目標(biāo)peer綁定的channel,并將數(shù)據(jù)寫入到這個(gè)目標(biāo)channe中。通道分為本地通道(local channel)和遠(yuǎn)端代理通道(remote channel proxy)。在圖2所示遠(yuǎn)端代理通道有:?:hostl 中的 host2_channel4_proxy、host2_channel3_proxy ;在 host2 中的有hostl_channeIl_proxy、hostl_channe12_proxy。
[0059]通道索引(channel index):實(shí)際上是一塊共享內(nèi)存。存儲(chǔ)著所有channel對(duì)應(yīng)的共享內(nèi)存key (關(guān)鍵字)。
[0060]消息(message):每次調(diào)用peer的send函數(shù)發(fā)送的數(shù)據(jù)視為一條消息,peer的recv函數(shù)(用于已連接的數(shù)據(jù)報(bào)或流式套接口進(jìn)行數(shù)據(jù)的接收的函數(shù))每次被調(diào)用,會(huì)接收一條完整的消息。
[0061 ] 中間件主要包括2個(gè)組件:
[0062](I)為開發(fā)人員提供的客戶端開發(fā)包。
[0063](2)進(jìn)行跨機(jī)器進(jìn)程間通訊的代理服務(wù)Agent。
[0064]二、重要數(shù)據(jù)結(jié)構(gòu)
[0065]本發(fā)明實(shí)施例是基于共享內(nèi)存的進(jìn)程間通訊中間件,通道、通道索引、消息在共享內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)如下:
[0066](I)通道(channel),如下表1所示
[0067]表1

【權(quán)利要求】
1.一種進(jìn)程間通訊的方法,其特征在于,包括: 根據(jù)待發(fā)送數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)尋找并確定對(duì)應(yīng)的目標(biāo)通道;將所述待發(fā)送數(shù)據(jù)寫入確定的所述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi); 若所述目標(biāo)節(jié)點(diǎn)為本地節(jié)點(diǎn),則確定的所述目標(biāo)通道為本地通道,寫入所述共享空間的待發(fā)送數(shù)據(jù)由所述目標(biāo)節(jié)點(diǎn)的本地通道接收; 若所述目標(biāo)節(jié)點(diǎn)為遠(yuǎn)端節(jié)點(diǎn),則確定的所述目標(biāo)通道為遠(yuǎn)端代理通道,采用遠(yuǎn)端代理通道從所述共享空間接收所述待發(fā)送數(shù)據(jù),并通過(guò)本地代理節(jié)點(diǎn)向?qū)Χ舜砉?jié)點(diǎn)發(fā)送所述待發(fā)送數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,還包括: 通過(guò)本地代理節(jié)點(diǎn)接收來(lái)自對(duì)端代理節(jié)點(diǎn)的數(shù)據(jù),并確定接收到的數(shù)據(jù)是否已經(jīng)達(dá)到其在本地的目標(biāo)通道的閾值,若是,則向?qū)Χ舜砉?jié)點(diǎn)發(fā)送暫停指示消息,指示所述對(duì)端代理節(jié)點(diǎn)暫停向所述目標(biāo)通道寫入數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述方法,其特征在于,還包括: 若所述本地的目標(biāo)通道為暫停狀態(tài),并且沒(méi)有數(shù)據(jù),則向?qū)Χ舜砉?jié)點(diǎn)發(fā)送恢復(fù)指示,指示所述對(duì)端代理節(jié)點(diǎn)繼續(xù)向所述目標(biāo)通道寫入數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述方法,其特征在于,在將所述待發(fā)送數(shù)據(jù)寫入確定的所述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi)之前,還包括: 確定目標(biāo)通道是否為暫停狀態(tài),若不是暫停狀態(tài),則將所述待發(fā)送數(shù)據(jù)寫入確定的所述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi),否則停止向所述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間寫入數(shù)據(jù),直到所述目標(biāo)通道恢復(fù)為非暫停狀態(tài)。
5.根據(jù)權(quán)利要求1所述方法,其特征在于,在根據(jù)待發(fā)送數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)尋找并確定對(duì)應(yīng)的目標(biāo)通道之前,還包括: 本地代理節(jié)點(diǎn)創(chuàng)建本地節(jié)點(diǎn),并確定本地節(jié)點(diǎn)與其通道的對(duì)應(yīng)關(guān)系,為所述本地節(jié)點(diǎn)對(duì)應(yīng)的通道分配內(nèi)存空間;或者,接收對(duì)端代理節(jié)點(diǎn)發(fā)送的通道信息,若本地未存儲(chǔ)所述通道信息,則創(chuàng)建遠(yuǎn)端代理通道,并監(jiān)聽遠(yuǎn)端代理通道是否有數(shù)據(jù)接收。
6.根據(jù)權(quán)利要求1至5任意一項(xiàng)所述方法,其特征在于,在通過(guò)本地代理節(jié)點(diǎn)向?qū)Χ舜砉?jié)點(diǎn)發(fā)送所述待發(fā)送數(shù)據(jù)之前,還包括: 讀取配置文件,確定對(duì)端代理節(jié)點(diǎn)的互聯(lián)網(wǎng)協(xié)議地址以及端口號(hào),并通過(guò)所述互聯(lián)網(wǎng)協(xié)議地址以及端口號(hào)建立本地代理節(jié)點(diǎn)與所述對(duì)端代理節(jié)點(diǎn)之間的傳輸控制協(xié)議TCP連接;并通過(guò)所述TCP連接將非對(duì)端創(chuàng)建的通道發(fā)送給對(duì)端代理節(jié)點(diǎn);通過(guò)所述TCP連接接收對(duì)端代理節(jié)點(diǎn)發(fā)送的非本地創(chuàng)建的通道,并建立接收到的通道對(duì)應(yīng)的遠(yuǎn)端代理通道。
7.根據(jù)權(quán)利要求6所述方法,其特征在于,還包括: 若本地節(jié)點(diǎn)關(guān)閉,所述本地節(jié)點(diǎn)對(duì)應(yīng)的通道與對(duì)端代理節(jié)點(diǎn)的連接關(guān)閉,且所述本地節(jié)點(diǎn)對(duì)應(yīng)的通道沒(méi)有被其他進(jìn)程所使用,則銷毀所述本地節(jié)點(diǎn)對(duì)應(yīng)的通道。
8.一種裝置,用于進(jìn)程間通訊,其特征在于,包括: 通道確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)尋找并確定對(duì)應(yīng)的目標(biāo)通道; 數(shù)據(jù)寫入單元,用于將所述待發(fā)送數(shù)據(jù)寫入所述通道確定單元確定的所述目標(biāo)通道對(duì)應(yīng)的共孚存儲(chǔ)空間內(nèi); 本地通道單元,用于若所述目標(biāo)節(jié)點(diǎn)為本地節(jié)點(diǎn),則確定的所述目標(biāo)通道為本地通道,寫入所述共享空間的待發(fā)送數(shù)據(jù)由所述目標(biāo)節(jié)點(diǎn)的本地通道接收; 發(fā)送單元,用于若所述目標(biāo)節(jié)點(diǎn)為遠(yuǎn)端節(jié)點(diǎn),則確定的所述目標(biāo)通道為遠(yuǎn)端代理通道,采用遠(yuǎn)端代理通道從所述共享空間接收所述待發(fā)送數(shù)據(jù),并通過(guò)本地代理節(jié)點(diǎn)向?qū)Χ舜砉?jié)點(diǎn)發(fā)送所述待發(fā)送數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述裝置,其特征在于,還包括: 接收單元,用于通過(guò)本地代理節(jié)點(diǎn)接收來(lái)自對(duì)端代理節(jié)點(diǎn)的數(shù)據(jù); 閾值確定單元,用于確定接收到的數(shù)據(jù)是否已經(jīng)達(dá)到其在本地的目標(biāo)通道的閾值; 所述發(fā)送單元,還用于在所述閾值確定單元確定接收到的數(shù)據(jù)已經(jīng)達(dá)到其在本地的目標(biāo)通道的閾值后,則向?qū)Χ舜砉?jié)點(diǎn)發(fā)送暫停指示消息,指示所述對(duì)端代理節(jié)點(diǎn)暫停向所述目標(biāo)通道寫入數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述裝置,其特征在于,還包括: 第一確定單元,用于確定所述本地的目標(biāo)通道是否為暫停狀態(tài),是否有數(shù)據(jù); 所述發(fā)送單元,還用于若所述第一確定單元確定所述本地的目標(biāo)通道為暫停狀態(tài),并且沒(méi)有數(shù)據(jù),則向?qū)Χ舜砉?jié)點(diǎn)發(fā)送恢復(fù)指示,指示所述對(duì)端代理節(jié)點(diǎn)繼續(xù)向所述目標(biāo)通道寫入數(shù)據(jù)。
11.根據(jù)權(quán)利要求8所述裝置,其特征在于, 第二確定單元,用于在將所述待發(fā)送數(shù)據(jù)寫入確定的所述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi)之前,確定目標(biāo)通道是否為暫停狀態(tài); 所述數(shù)據(jù)寫入單元,還用于若所述第二確定單元確定不是暫停狀態(tài),則將所述待發(fā)送數(shù)據(jù)寫入確定的所述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間內(nèi),否則停止向所述目標(biāo)通道對(duì)應(yīng)的共享存儲(chǔ)空間寫入數(shù)據(jù),直到所述目標(biāo)通道恢復(fù)為非暫停狀態(tài)。
12.根據(jù)權(quán)利要求8所述裝置,其特征在于,還包括: 節(jié)點(diǎn)管理單元,用于在根據(jù)待發(fā)送數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)尋找并確定對(duì)應(yīng)的目標(biāo)通道之前,通過(guò)本地代理節(jié)點(diǎn)創(chuàng)建本地節(jié)點(diǎn),并確定本地節(jié)點(diǎn)與其通道的對(duì)應(yīng)關(guān)系,為所述本地節(jié)點(diǎn)對(duì)應(yīng)的通道分配內(nèi)存空間;或者,接收對(duì)端代理節(jié)點(diǎn)發(fā)送的通道信息,若本地未存儲(chǔ)所述通道信息,則創(chuàng)建遠(yuǎn)端代理通道,并監(jiān)聽遠(yuǎn)端代理通道是否有數(shù)據(jù)接收。
13.根據(jù)權(quán)利要求8至12任意一項(xiàng)所述裝置,其特征在于,還包括: 同步管理單元,用于在通過(guò)本地代理節(jié)點(diǎn)向?qū)Χ舜砉?jié)點(diǎn)發(fā)送所述待發(fā)送數(shù)據(jù)之前,讀取配置文件,確定對(duì)端代理節(jié)點(diǎn)的互聯(lián)網(wǎng)協(xié)議地址以及端口號(hào),并通過(guò)所述互聯(lián)網(wǎng)協(xié)議地址以及端口號(hào)建立本地代理節(jié)點(diǎn)與所述對(duì)端代理節(jié)點(diǎn)之間的傳輸控制協(xié)議TCP連接;并通過(guò)所述TCP連接將非對(duì)端創(chuàng)建的通道發(fā)送給對(duì)端代理節(jié)點(diǎn);通過(guò)所述TCP連接接收對(duì)端代理節(jié)點(diǎn)發(fā)送的非本地創(chuàng)建的通道,并建立接收到的通道對(duì)應(yīng)的遠(yuǎn)端代理通道。
14.根據(jù)權(quán)利要求13所述裝置,其特征在于, 所述同步管理單元,還用于若本地節(jié)點(diǎn)關(guān)閉,所述本地節(jié)點(diǎn)對(duì)應(yīng)的通道與對(duì)端代理節(jié)點(diǎn)的連接關(guān)閉,且所述本地節(jié)點(diǎn)對(duì)應(yīng)的通道沒(méi)有被其他進(jìn)程所使用,則銷毀所述本地節(jié)點(diǎn)對(duì)應(yīng)的通道。
【文檔編號(hào)】G06F9/54GK104133728SQ201310690566
【公開日】2014年11月5日 申請(qǐng)日期:2013年12月16日 優(yōu)先權(quán)日:2013年12月16日
【發(fā)明者】徐翠屏 申請(qǐng)人:騰訊科技(深圳)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1