專利名稱:計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置和通訊方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,尤其涉及一種用于計(jì)算機(jī)之間進(jìn)行網(wǎng)絡(luò)通訊的裝置和方法。
背景技術(shù):
目前,計(jì)算機(jī)網(wǎng)絡(luò)及其應(yīng)用已經(jīng)廣泛服務(wù)于社會(huì)生產(chǎn)生活各個(gè)領(lǐng)域,而網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)之間的通訊正是實(shí)現(xiàn)這些應(yīng)用的基礎(chǔ),其中分布式通訊尤為具有代表性和應(yīng)用價(jià)值?,F(xiàn)在,傳統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)分布式通訊方法主要有CORBA(包括ICE)、DCOM、ACE+TAO,這些方法在自身都存在許多缺陷和應(yīng)用限制CORBA定義的僅是一套規(guī)范,現(xiàn)在各個(gè)廠家都有自己的實(shí)現(xiàn)方式,并且其使用復(fù)雜,通訊的點(diǎn)與點(diǎn)之間需要建立直接的連接,通訊無(wú)法穿越防火墻,也無(wú)法滿足多類網(wǎng)絡(luò)彼此間進(jìn)行通訊及管理的需要。ICE的目標(biāo)是取代CORBA而出現(xiàn)的,雖然它同CORBA相比則顯得小巧了許多,但卻無(wú)法避免CORBA許多固有的缺點(diǎn)。DCOM作為COM的一個(gè)擴(kuò)展產(chǎn)品,其僅能在WINDOWS上運(yùn)行也是其最大的弊端,無(wú)法實(shí)現(xiàn)跨平臺(tái)。同時(shí)基于這種方法,計(jì)算機(jī)網(wǎng)絡(luò)各點(diǎn)之間的通訊依賴于RPC去完成,其通訊同CORBA一樣是需要具有直接連接才能建立起分布式的通訊。ACE+TAO是一個(gè)從最基礎(chǔ)的跨平臺(tái)API開始做起的面向?qū)ο蟮耐ㄓ嵠脚_(tái),其本身差不多封裝了操作系統(tǒng)的所用功能,同時(shí)其實(shí)現(xiàn)方式也從CORBA借鑒而來(lái),其最大的優(yōu)勢(shì)是開源,并且內(nèi)置了許多相關(guān)的設(shè)計(jì)模式框架,但它依然不能解決非直接連接的通訊問題。通過以上幾種實(shí)現(xiàn)方式可以看出,現(xiàn)有的分布式通訊其實(shí)現(xiàn)機(jī)理就是一個(gè)面向?qū)ο蟮腞PC,無(wú)法處理兩點(diǎn)非直接連接的通訊成為了它們共同的弊病。
發(fā)明內(nèi)容
本發(fā)明克服了現(xiàn)有技術(shù)中的缺點(diǎn),提供一種可在計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)兩點(diǎn)間非直接連接互連分布式通訊的裝置和方法。
為了解決上述技術(shù)問題,通過以下技術(shù)方案實(shí)現(xiàn)一種計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置,其特征在于,其包括至少一個(gè)管理中心模塊(Manage Center)、代理模塊(Agent)和多個(gè)客戶端模塊(Client);該管理中心模塊包括如下子模塊授權(quán)模塊、地址分配模塊、平臺(tái)管理模塊、路由管理模塊、授權(quán)客戶端和通訊模塊;該代理模塊包括如下子模塊授權(quán)代理模塊、平臺(tái)管理模塊、路由管理模塊、授權(quán)客戶端和通訊模塊;該客戶端模塊包括如下子模塊平臺(tái)管理模塊、授權(quán)客戶端和通訊模塊。
本發(fā)明還提供一種利用上述裝置進(jìn)行分布式通訊的方法,其包括如下過程a.客戶端模塊尋找父節(jié)點(diǎn);b.管理中心模塊對(duì)客戶端模塊進(jìn)行授權(quán)注冊(cè);c.客戶端模塊、代理模塊或管理中心模塊發(fā)送數(shù)據(jù);d.該數(shù)據(jù)所要到達(dá)的客戶端模塊、代理模塊或管理中心模塊接收數(shù)據(jù)。
本發(fā)明所述的計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置,具有輕量級(jí)的分布式平臺(tái),并且從底層就開始支持對(duì)模塊的管理及授權(quán)認(rèn)證,無(wú)限級(jí)聯(lián),本身自帶的路由支持,能跨防火墻通訊,為網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的分布式通訊提供更加廣泛的支持。能夠?qū)崿F(xiàn)局域網(wǎng)內(nèi)服務(wù)結(jié)點(diǎn)的自動(dòng)尋找、定位及連接負(fù)載的分流。計(jì)算機(jī)間的模塊交互提供多種的命令傳遞方式,滿足客戶端與服務(wù)器對(duì)于各類命令的需求。在本發(fā)明中,平臺(tái)將提供的自定義的傳輸數(shù)據(jù)加解密接口,更能滿足不同客戶對(duì)于數(shù)據(jù)安全性的需求??缙脚_(tái)的設(shè)計(jì)將使本發(fā)明有更廣范的應(yīng)用環(huán)境。
圖1是本發(fā)明計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置結(jié)構(gòu)示意圖;圖2是本發(fā)明計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊方法中客戶端模塊尋找父節(jié)點(diǎn)及請(qǐng)求授權(quán)注冊(cè)的流程圖;圖3是本發(fā)明計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊方法中客戶端模塊獲取授權(quán)流程圖;圖4是本發(fā)明計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊方法中代理模塊轉(zhuǎn)發(fā)及授權(quán)時(shí)的流程圖。
具體實(shí)施例方式
參見圖1,一種計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置,其包括多個(gè)管理中心模塊、多個(gè)代理模塊和多個(gè)客戶端模塊;該管理中心模塊包括如下子模塊授權(quán)模塊、地址分配模塊、平臺(tái)管理模塊、路由管理模塊、授權(quán)客戶端和通訊模塊;該代理模塊包括如下子模塊授權(quán)代理模塊、平臺(tái)管理模塊、路由管理模塊、授權(quán)客戶端和通訊模塊;該客戶端模塊包括如下子模塊平臺(tái)管理模塊、授權(quán)客戶端和通訊模塊。當(dāng)所述管理中心模塊與客戶端模塊在同一網(wǎng)絡(luò)內(nèi)時(shí),兩者可不通過代理模塊直接進(jìn)行數(shù)據(jù)交換;上述各個(gè)管理中心模塊、代理模塊和客戶端模塊節(jié)點(diǎn)均有自己?jiǎn)为?dú)的平臺(tái)地址和IP地址。
一種使用上述的裝置進(jìn)行分布式通訊的方法,其主要包括如下過程a.客戶端模塊尋找父節(jié)點(diǎn);b.管理中心模塊對(duì)客戶端模塊進(jìn)行授權(quán)注冊(cè);c.客戶端模塊、代理模塊或管理中心模塊發(fā)送數(shù)據(jù);d.該數(shù)據(jù)所要到達(dá)的客戶端模塊、代理模塊或管理中心模塊接收數(shù)據(jù)。
參見圖2,過程a主要包括如下子過程1.向網(wǎng)絡(luò)廣播尋找父結(jié)點(diǎn)地址(若已存在緩沖地址,即將上次已成功連接的地址保存下來(lái)),等待父結(jié)點(diǎn)回應(yīng),若超時(shí)或連接失敗,則2.使用配置文件中的父結(jié)點(diǎn)地址,若連接失敗,則3.監(jiān)聽一個(gè)廣播端口等待父結(jié)點(diǎn)啟動(dòng)時(shí)的廣播,并定時(shí)連接配置文件中的地址,直到任何一種方式成功;4.當(dāng)重試指定次數(shù)均失敗時(shí),則要重新進(jìn)行廣播。
參見圖3和圖4分別本發(fā)明計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊方法中客戶端模塊獲取授權(quán)流程圖和代理模塊轉(zhuǎn)發(fā)及授權(quán)時(shí)的流程圖。授權(quán)注冊(cè)此過程需要分兩步走,第一步是授權(quán),在授權(quán)通過之后,會(huì)獲取到自己的直接上級(jí)地址,才能進(jìn)行第二步的注冊(cè)工作,其具體過程如下1.通過本平臺(tái)授權(quán)模塊獲取向上授權(quán)所需要的必要信息,開始準(zhǔn)備授權(quán),若不存在此模塊,則直接進(jìn)行連接并進(jìn)行數(shù)據(jù)發(fā)送;2.通過“客戶端結(jié)點(diǎn)尋找父結(jié)點(diǎn)”用例找到父結(jié)點(diǎn)后并正常連接上父接點(diǎn),開始進(jìn)行授權(quán)過程;3.第一個(gè)包發(fā)送為請(qǐng)求授權(quán)包至父結(jié)點(diǎn)授權(quán)模塊,若不能處理,則由其父結(jié)點(diǎn)繼續(xù)向上提交至自己的管理結(jié)點(diǎn)的授權(quán)模塊,若通過授權(quán)則將管理結(jié)點(diǎn)唯一標(biāo)識(shí)(GUID)、32位標(biāo)識(shí)(若需要)及可代理轉(zhuǎn)發(fā)的客戶端連接個(gè)數(shù)反饋給客戶端,若失敗,則提示客戶端授權(quán)失敗,并關(guān)閉當(dāng)前連接;4.查看錯(cuò)誤原因,若是Agent容量已滿,則尋找下一個(gè)Agent進(jìn)行授權(quán)提交,若是整個(gè)管理中心授權(quán)已滿,則定時(shí)進(jìn)行重試;5.在獲取授權(quán)信息后,包括上級(jí)的平臺(tái)地址及物理地址,進(jìn)行注冊(cè)。在直接的自己上級(jí)準(zhǔn)許其注冊(cè)后,則要進(jìn)行路由的更新工作。
上述注冊(cè)授權(quán)時(shí)提交的內(nèi)容包括請(qǐng)求者的IP地址、監(jiān)聽的TCP、UDP端口,請(qǐng)求者的屬性(客戶端、Agent等)及其GUID標(biāo)識(shí)(若存在)。授權(quán)注冊(cè)時(shí)返回的內(nèi)容包括成功則返回對(duì)于此結(jié)點(diǎn)的管理結(jié)點(diǎn)鏈路,失敗僅告知失敗。授權(quán)時(shí)其順序過程客戶端模塊->代理模塊->管理中心模塊、客戶端模塊->管理中心模塊或代理模塊->管理中心模塊然后逆序返回。管理結(jié)點(diǎn)將使用全球唯一標(biāo)識(shí)(GUID)進(jìn)行標(biāo)識(shí),它的每一個(gè)上級(jí)均會(huì)記錄此GUID到達(dá)所要經(jīng)過的路由,每次數(shù)據(jù)轉(zhuǎn)輸時(shí)均通過其標(biāo)識(shí)的唯一性,加上每個(gè)管理結(jié)點(diǎn)的路由查找完成。GUID全1將作為全局廣播地址,全0代表本身;其它結(jié)點(diǎn)則使用管理結(jié)點(diǎn)的全球唯一標(biāo)識(shí)(GUID)加上一個(gè)由管理結(jié)點(diǎn)分配的32位無(wú)符號(hào)整數(shù)去標(biāo)識(shí),因此每個(gè)管理結(jié)點(diǎn)及Agent均會(huì)記錄每個(gè)32位無(wú)符號(hào)整數(shù)所代表的機(jī)器的路由關(guān)系。其中在一個(gè)管理結(jié)點(diǎn)之內(nèi),1分配給管理中心。GUID全0加-1為給其管理中心之下的所有客戶機(jī)發(fā)消息。路由方法每個(gè)管理結(jié)點(diǎn)均需要保存其下的所有管理結(jié)點(diǎn)及客戶端結(jié)點(diǎn)的GUID或32位無(wú)符號(hào)整數(shù)及與其直接下級(jí)的對(duì)應(yīng)關(guān)系,其結(jié)點(diǎn)空間占用應(yīng)為0(n),通過此方式可將數(shù)據(jù)提交給自己的直接下級(jí),而不用關(guān)注在此之后的路由方式。
在每次廣播成功獲得IP地址時(shí)將會(huì)將此地址保留,并在下一次連接時(shí)優(yōu)先選擇此IP地址,若連接失敗,再使用廣播進(jìn)行地址請(qǐng)求。
下面介紹本發(fā)明計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置平臺(tái)啟動(dòng)、關(guān)閉及工作(數(shù)據(jù)發(fā)送與接收)的工作過程啟動(dòng)平臺(tái)1.首先加載平臺(tái)管理模塊,其管理模塊將平臺(tái)運(yùn)作的基本模塊模塊注冊(cè)管理模塊、平臺(tái)注冊(cè)管理模塊、分派模塊、事件服務(wù)、主導(dǎo)模塊、通訊依次加載啟動(dòng)。
2.通訊會(huì)監(jiān)聽端口,以確保其平臺(tái)的基本通訊順暢,端口綁定失敗也就意味著平臺(tái)啟動(dòng)失敗。
3.加載完畢之后,Client首先獲取父結(jié)點(diǎn)開始注冊(cè)過程,并將注冊(cè)結(jié)果通知給主導(dǎo)模塊。
4.平臺(tái)內(nèi)的管理模塊根據(jù)配置文件屬性(隨平臺(tái)一起啟動(dòng)、需要時(shí)啟動(dòng))加載平臺(tái)外的擴(kuò)展模塊,模塊加載后會(huì)具有狀態(tài)啟動(dòng)狀態(tài)、停止?fàn)顟B(tài)、更新狀態(tài)、可立即啟動(dòng)狀態(tài)、啟動(dòng)失敗狀態(tài)。)5.具備管理轉(zhuǎn)發(fā)功能的平臺(tái)若已經(jīng)完全成功,會(huì)廣播通知其下的客戶端前來(lái)注冊(cè)。
請(qǐng)求父結(jié)點(diǎn)的廣播內(nèi)容包含請(qǐng)求者的IP地址、監(jiān)聽的TCP、UDP端口,請(qǐng)求者的屬性(客戶端等)及其GUID標(biāo)識(shí);使用其監(jiān)聽廣播的端口進(jìn)行發(fā)送,以方便父結(jié)點(diǎn)廣播和返回時(shí)均使用同一端口完成。請(qǐng)求父結(jié)點(diǎn)返回廣播的內(nèi)容包含父結(jié)點(diǎn)IP地址,父結(jié)點(diǎn)屬性(代理模塊、管理中心模塊);父結(jié)點(diǎn)廣播的內(nèi)容包含父結(jié)點(diǎn)IP地址、監(jiān)聽的TCP、UDP端口,屬性(代理模塊、管理中心)及其GUID標(biāo)識(shí);父結(jié)點(diǎn)返回廣播內(nèi)容時(shí)按其發(fā)送端口原路返回。進(jìn)程外子模塊的啟動(dòng)(如病毒掃描)由平臺(tái)進(jìn)行啟動(dòng)后等待子模塊前來(lái)注冊(cè),若超時(shí)則認(rèn)為啟動(dòng)失敗,當(dāng)前來(lái)注冊(cè)時(shí),則平臺(tái)會(huì)將啟動(dòng)命令及其相應(yīng)的參數(shù)一同傳遞給目標(biāo)模塊,完成此次啟動(dòng)過程??赡艹霈F(xiàn)子結(jié)點(diǎn)與其父結(jié)點(diǎn)同時(shí)啟動(dòng)的狀況,或代理模塊異常終止,而還有其它代理模塊可用的情況等,導(dǎo)致雙方的廣播均沒能接收到的問題,父結(jié)點(diǎn)在可繼續(xù)容納新連接(根據(jù)授權(quán)模塊決定)的情況下,每隔一段時(shí)間廣播一次要求子結(jié)點(diǎn)連接。子結(jié)點(diǎn)發(fā)現(xiàn)連接中斷,且不能連上原父結(jié)點(diǎn)時(shí),則進(jìn)行廣播一次請(qǐng)求父結(jié)點(diǎn)(對(duì)于可以進(jìn)行廣播的子結(jié)點(diǎn))。關(guān)閉平臺(tái)1.首先變更當(dāng)前平臺(tái)狀態(tài)為正在關(guān)閉;2.停止授權(quán)線程(如果還未授權(quán)成功,仍在授權(quán)中);3.停止掉平臺(tái)內(nèi)部的發(fā)送數(shù)據(jù)隊(duì)列;4.通知所有子模塊當(dāng)前平臺(tái)即將關(guān)閉;5.通知所有的平臺(tái)內(nèi)外子模塊平臺(tái)即將關(guān)閉,要求模塊開始進(jìn)行退出前的工作(向管理中心反注冊(cè)、通知所有子結(jié)點(diǎn)斷開連接),平臺(tái)開始等待;6.平臺(tái)等待超時(shí)或所有子模塊已經(jīng)退出,依次關(guān)閉平臺(tái)外存在的模塊;7.關(guān)閉平臺(tái)核心模塊及網(wǎng)絡(luò)通訊。
發(fā)送數(shù)據(jù)1.發(fā)送請(qǐng)求提交至所在的平臺(tái)2.平臺(tái)進(jìn)行消息分派1)檢查發(fā)現(xiàn)不是本平臺(tái)信息,查找對(duì)應(yīng)的平臺(tái)A.發(fā)現(xiàn)目標(biāo)平臺(tái)已經(jīng)向本平臺(tái)注冊(cè),并且連接有效,則將數(shù)據(jù)進(jìn)行完全編碼后發(fā)向目標(biāo);若連接無(wú)效,若下一個(gè)平臺(tái)已經(jīng)是最終目標(biāo),則返回目標(biāo)異常,否則返回平臺(tái)路由異常。
B.發(fā)現(xiàn)目標(biāo)平臺(tái)未向本平臺(tái)注冊(cè),但存在到達(dá)此地址的路由,則將數(shù)據(jù)提交給可到達(dá)的轉(zhuǎn)發(fā)路由。
C.若根本找不到則將數(shù)據(jù)提交給自己的直接上級(jí),由它去進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)工作,或最終告知此平臺(tái)不存在。
2)檢查發(fā)現(xiàn)是本平臺(tái)信息,根據(jù)其調(diào)用關(guān)系進(jìn)行處理。
A.調(diào)用關(guān)系的處理a)單向調(diào)用●上層調(diào)用只關(guān)心于網(wǎng)絡(luò)錯(cuò)誤,即提交至網(wǎng)絡(luò)通訊之后就返回。
●對(duì)于本平臺(tái)進(jìn)程內(nèi)信息,則由平臺(tái)進(jìn)行分派處理,不占用調(diào)用者線程。
b)同步調(diào)用●若是平臺(tái)進(jìn)程外的數(shù)據(jù),則將阻塞調(diào)用者線程直到收到被調(diào)用者發(fā)來(lái)調(diào)用成功消息以及后續(xù)的調(diào)用結(jié)束后的返回信息或超時(shí)。
●若是平臺(tái)進(jìn)程內(nèi)的數(shù)據(jù),則直接將結(jié)程調(diào)用轉(zhuǎn)向給目標(biāo)模塊的調(diào)用,即正常的進(jìn)程內(nèi)調(diào)用。
c)異步調(diào)用提交過程同單向調(diào)用,但平臺(tái)自身需要記錄此消息的發(fā)送及其被調(diào)用方的回復(fù),以進(jìn)行回調(diào),回調(diào)一次后此回調(diào)結(jié)束。
批量發(fā)送數(shù)據(jù)時(shí)將提供一次向多個(gè)客戶端發(fā)送命令的接口,而在平臺(tái)接收到批量地址的時(shí)候,將分析此批量地址,將處于同一條鏈路的批量地址重新組合在一起提交給下一個(gè)鏈路。
接收數(shù)據(jù)1.平臺(tái)接收到來(lái)自于網(wǎng)絡(luò)通訊的數(shù)據(jù)2.平臺(tái)對(duì)數(shù)據(jù)進(jìn)行第一層解碼,獲取此數(shù)據(jù)的目標(biāo)信息A.檢查發(fā)現(xiàn)不是本平臺(tái)模塊,檢查發(fā)送者是否已經(jīng)成功注冊(cè),若已注冊(cè)則查找對(duì)應(yīng)的平臺(tái),否則返回告知發(fā)送失敗;a)查找方式同發(fā)送數(shù)據(jù),若最終無(wú)法繼續(xù)傳遞且調(diào)用方式是單向調(diào)用,則簡(jiǎn)單將數(shù)據(jù)丟棄,否則將其錯(cuò)誤情況返回調(diào)用端。
b)發(fā)現(xiàn)地址為廣播地址,則向注冊(cè)于本平臺(tái)的所有平臺(tái)發(fā)送此消息。
B.檢查發(fā)現(xiàn)是本平臺(tái)信息(包括廣播地址),將數(shù)據(jù)進(jìn)行完全解碼(第二層解碼將數(shù)據(jù)還原成命令及其要求回復(fù)的類型),進(jìn)行授權(quán)驗(yàn)證(檢查是否已經(jīng)向本平臺(tái)注冊(cè),若沒注冊(cè),則檢查消息是否發(fā)向平臺(tái)管理模塊,否則丟棄并告知),若目標(biāo)模塊不存在,則傳遞給平臺(tái)內(nèi)基本的命令處理模塊,然后根據(jù)調(diào)用關(guān)系處理。
a)單向調(diào)用借用平臺(tái)的線程進(jìn)行此調(diào)用,調(diào)用完成不作任何其它處理。
b)同步調(diào)用借用平臺(tái)線程進(jìn)行此調(diào)用,調(diào)用完成將返回值及其相應(yīng)的回復(fù)進(jìn)行完全編碼后回復(fù)給調(diào)用方(回復(fù)時(shí)使用的是單向調(diào)用)。
c)異步調(diào)用對(duì)于被調(diào)用方同有數(shù)據(jù)返回調(diào)用。
以上步驟僅用以說(shuō)明而非限制本發(fā)明的技術(shù)方案。不脫離本發(fā)明精神和范圍的任何修改或局部替換,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置,其特征在于,其包括至少一個(gè)管理中心模塊、代理模塊和多個(gè)客戶端模塊;該管理中心模塊包括如下子模塊授權(quán)模塊、地址分配模塊、平臺(tái)管理模塊、路由管理模塊、授權(quán)客戶端和通訊模塊;該代理模塊包括如下子模塊授權(quán)代理模塊、平臺(tái)管理模塊、路由管理模塊、授權(quán)客戶端和通訊模塊;該客戶端模塊包括如下子模塊平臺(tái)管理模塊、授權(quán)客戶端和通訊模塊。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置,其特征在于,當(dāng)所述管理中心模塊與客戶端模塊在同一網(wǎng)絡(luò)內(nèi)時(shí),兩者可不通過代理模塊直接進(jìn)行數(shù)據(jù)交換。
3.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置,其特征在于,各個(gè)管理中心模塊、代理模塊和客戶端模塊節(jié)點(diǎn)均有自己?jiǎn)为?dú)的平臺(tái)地址。
4.一種使用如權(quán)利要求1或2所述的裝置進(jìn)行分布式通訊的方法,其特征在于,其主要包括如下過程a.客戶端模塊尋找父節(jié)點(diǎn);b.管理中心模塊對(duì)客戶端模塊進(jìn)行授權(quán)注冊(cè);c.客戶端模塊、代理模塊或管理中心模塊發(fā)送數(shù)據(jù);d.該數(shù)據(jù)所要到達(dá)的客戶端模塊、代理模塊或管理中心模塊接收數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的分布式通訊的方法,其特征在于,過程a包括如下子過程a1.向網(wǎng)絡(luò)廣播尋找父結(jié)點(diǎn)地址,若已存在緩沖地址,即將上次已成功連接的地址保存下來(lái),等待父結(jié)點(diǎn)回應(yīng),若超時(shí)或連接失敗,則進(jìn)入a2;a2.使用配置文件中的父結(jié)點(diǎn)地址,若連接失敗,則進(jìn)入a3;a3.監(jiān)聽一個(gè)廣播端口等待父結(jié)點(diǎn)啟動(dòng)時(shí)的廣播,并定時(shí)連接配置文件中的地址,直到任何一種方式成功;a4.當(dāng)重試指定次數(shù)均失敗時(shí),則要重新進(jìn)行廣播。
6.根據(jù)權(quán)利要求4所述的分布式通訊的方法,其特征在于,所述過程b需要分兩步走,第一步是授權(quán),在授權(quán)通過之后,會(huì)獲取到自己與直接上級(jí)的地址,才能進(jìn)行第二步的注冊(cè)工作;其具體過程如下b1.通過本平臺(tái)授權(quán)模塊獲取向上授權(quán)所需要的必要信息,開始準(zhǔn)備授權(quán),若不存在此模塊,則直接進(jìn)行連接并進(jìn)行數(shù)據(jù)發(fā)送;b2.通過“Client結(jié)點(diǎn)尋找父結(jié)點(diǎn)”用例找到父結(jié)點(diǎn)后并正常連接上父接點(diǎn),開始進(jìn)行授權(quán)過程;b3.第一個(gè)包發(fā)送為請(qǐng)求授權(quán)包至父結(jié)點(diǎn)授權(quán)模塊,若不能處理,則由其父結(jié)點(diǎn)繼續(xù)向上提交至自己的管理結(jié)點(diǎn)的授權(quán)模塊,若通過授權(quán)則將管理結(jié)點(diǎn)唯一標(biāo)識(shí)反饋給客戶端,若失敗,則提示客戶端授權(quán)失敗,并關(guān)閉掉當(dāng)前連接;b4.查看錯(cuò)誤原因,若是Agent容量已滿,則尋找下一個(gè)Agent進(jìn)行授權(quán)提交,若是整個(gè)管理中心授權(quán)已滿,則定時(shí)進(jìn)行重試;b5.在獲取授權(quán)信息后,包括上級(jí)的平臺(tái)地址及物理地址,進(jìn)行注冊(cè),在直接的自己上級(jí)準(zhǔn)許其注冊(cè)后,則要進(jìn)行路由的更新工作。
7.根據(jù)權(quán)利要求6所述的分布式通訊的方法,其特征在于,在過程b3中,若通過授權(quán)則將管理結(jié)點(diǎn)唯一標(biāo)識(shí)、該客戶機(jī)的32位標(biāo)識(shí)及可代理轉(zhuǎn)發(fā)的客戶端連接個(gè)數(shù)一同反饋給客戶端。
8.根據(jù)權(quán)利要求4所述的分布式通訊的方法,其特征在于,過程c包括如下子過程c1.客戶端模塊、代理模塊或管理中心模塊發(fā)送請(qǐng)求提交其所在的平臺(tái);c2.該平臺(tái)進(jìn)行進(jìn)行消息分派,若檢查發(fā)現(xiàn)不是本平臺(tái)信息,查找對(duì)應(yīng)的平臺(tái),若檢查發(fā)現(xiàn)是本平臺(tái)信息,根據(jù)其調(diào)用關(guān)系進(jìn)行處理。
9.根據(jù)權(quán)利要求8所述的分布式通訊的方法,其特征在于,子過程c2中檢查發(fā)現(xiàn)不是本平臺(tái)信息,并查找對(duì)應(yīng)平臺(tái)后,可能出現(xiàn)如下A.發(fā)現(xiàn)目標(biāo)平臺(tái)已經(jīng)向本平臺(tái)注冊(cè),并且連接有效,則將數(shù)據(jù)進(jìn)行完全編碼后發(fā)向目標(biāo);連接無(wú)效時(shí),若下一個(gè)平臺(tái)已經(jīng)是最終目標(biāo),則返回目標(biāo)異常,否則返回路由異常;B.發(fā)現(xiàn)目標(biāo)平臺(tái)未向本平臺(tái)注冊(cè),但存在到達(dá)此地址的路由,則將數(shù)據(jù)提交給可到達(dá)的轉(zhuǎn)發(fā)路由;C.若根本找不到則將數(shù)據(jù)提交給自己的直接上級(jí),由它去進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)工作,或最終告知此平臺(tái)不存在。
10.根據(jù)權(quán)利要求8所述的分布式通訊的方法,其特征在于,所述調(diào)用關(guān)系包括單向調(diào)用、同步調(diào)用和異步調(diào)用。
全文摘要
本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,尤其涉及一種用于計(jì)算機(jī)之間進(jìn)行網(wǎng)絡(luò)通訊的裝置和方法。一種計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置,其特征在于,其包括至少一個(gè)管理中心模塊(Manage Center)、代理模塊(Agent)和多個(gè)客戶端模塊(Client);該管理中心模塊包括如下子模塊授權(quán)模塊、地址分配模塊、平臺(tái)管理模塊、路由管理模塊、授權(quán)客戶端和通訊模塊;該代理模塊包括如下子模塊授權(quán)代理模塊、平臺(tái)管理模塊、路由管理模塊、授權(quán)客戶端和通訊模塊;該客戶端模塊包括如下子模塊平臺(tái)管理模塊、授權(quán)客戶端和通訊模塊。本發(fā)明所述的計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)分布式通訊的裝置,能跨防火墻通訊,為網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的分布式通訊提供更加廣泛的支持。
文檔編號(hào)H04L12/00GK1859119SQ200610033689
公開日2006年11月8日 申請(qǐng)日期2006年2月20日 優(yōu)先權(quán)日2006年2月20日
發(fā)明者陳勇, 羅鵬, 黃鑒廷, 邱銳鋒, 都斌 申請(qǐng)人:珠海金山軟件股份有限公司