專利名稱:一種在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?br>
技術領域:
本發(fā)明涉及一種在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,尤其涉及一種在通訊系統(tǒng)中實現(xiàn)不同結點間進行消息傳輸?shù)姆椒ā?br>
背景技術:
所謂結點(Node),是指通訊系統(tǒng)中具有一定相對完整功能的個體,該個體可以獨立完成一系列的任務,并在需要的時候同其他結點通信。如果在一個系統(tǒng)中,這樣具有相對完整功能的、彼此通信的個體有多個,這樣的系統(tǒng)就可以稱為多結點系統(tǒng)。對于那些主要功能為通信或者比較關注各結點間通信的情況,相應的多結點系統(tǒng)也可以稱為多結點通信系統(tǒng)。
目前的通信系統(tǒng)多采用多級組網(wǎng)方式,分為中心結點、外圍結點等幾個部分。系統(tǒng)中外圍結點和中心結點以及外圍結點之間的消息通信往往依靠中心結點上的消息交換模塊。該消息交換模塊由交換網(wǎng)平面組成,通過網(wǎng)平面半固定接續(xù)到外圍結點。這種消息通信方法帶寬容易受到限制,而且消息傳輸速度較慢。隨著通信結點數(shù)目的增加和通信流量的增大,結點間通信已經(jīng)成了制約整個通信系統(tǒng)的容量和穩(wěn)定性的瓶頸。因此設計一種穩(wěn)定、快速和高帶寬的多結點消息傳輸方法是非常必要的。
另一方面,一般通信系統(tǒng)都要求結點采用某種固定的通信接口,當引入一個新的結點時,有時該結點不一定具備系統(tǒng)所需要的約束條件,必須對新引入的結點進行改造,才能把該結點加入到系統(tǒng)中。由于通信模塊涉及比較廣泛,有時對結點的改造工作是非常艱巨的。因此,如果設計一種能作為異種通信接口中介的結點也是非常必要的。
發(fā)明內容
本發(fā)明的目的在于提供一種實現(xiàn)在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,尤其涉及一種在通訊系統(tǒng)中實現(xiàn)不同結點間進行消息傳輸?shù)姆椒ā?br>
本發(fā)明是這樣實現(xiàn)的一種在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是通過設置消息轉發(fā)模塊作為中間結點,當一個結點需要向另一個結點發(fā)送消息時,先將消息傳遞給作為中間結點的消息轉發(fā)模塊,由該消息轉發(fā)模塊集中處理不同結點之間消息的暫存、路由選擇、發(fā)送及異常處理。
設置一個消息轉發(fā)模塊作為中間結點,該消息轉發(fā)模塊與系統(tǒng)內的其它結點建立星形連接,構成單消息轉發(fā)模塊通訊系統(tǒng)。
設置多個消息轉發(fā)模塊作為中間結點,每個消息轉發(fā)模塊與多個結點之間互聯(lián),每個結點僅與一個消息模塊建立連接,消息轉發(fā)模塊之間建立網(wǎng)狀連接,構成多消息轉發(fā)模塊通訊系統(tǒng)。
所述消息轉發(fā)模塊在本地保存一份表格稱為路由表,用于增加消息轉發(fā)的效率;該表是一個簡單的散列表,消息轉發(fā)模塊在收到一個消息后,得到了消息的目的地,就可以直接查表就可以知道通過哪條鏈路發(fā)送出去。
所述設置的消息轉發(fā)模塊包括對鏈路的管理和對消息的處理,所述對鏈路的管理進一步包括鏈路建立在兩個結點之間進行,其中一方主動要求建立連接,另一方則不斷偵聽外來的連接請求,并最終完成鏈路的建立過程;鏈路測試由鏈路的一端結點在一定間隔內向另一端結點發(fā)送一個測試消息,對方在接收到該消息后立刻返回一個應答消息;鏈路拆除如果一個結點長時間不能收到對方發(fā)來的應答消息,則說明鏈路狀況不正常,這時鏈路將被拆除,所述對消息的處理進一步包括消息頭和結點編號在消息直接發(fā)送給目的結點之前,使作為中間結點的消息轉發(fā)模塊確定目的結點;消息的發(fā)送過程對于單消息轉發(fā)模塊通信系統(tǒng),消息發(fā)送的路由為源結點→消息轉發(fā)模塊→目的結點,對于多消息轉發(fā)模塊通信系統(tǒng),消息發(fā)送的路由為源結點→消息轉發(fā)模塊→目的結點(在消息轉發(fā)模塊系統(tǒng)內的消息),
源結點→源消息轉發(fā)模塊→目的消息轉發(fā)模塊→目的結點(在跨消息轉發(fā)模塊之間的消息);消息隊列管理對于一時無法發(fā)送出去的消息,發(fā)送過程把消息加入到隊列中,由消息轉發(fā)模塊為每個結點建一個發(fā)送隊列;路由表管理每次消息發(fā)送時,消息轉發(fā)模塊都要計算對應的鏈路號,路由表是消息轉發(fā)模塊在內部保存一份表格,其索引為目的結點的全局編號,其表格項的值為可以發(fā)送到該結點的鏈路的編號。
所述的鏈路建立在單消息轉發(fā)模塊通信系統(tǒng)中,消息轉發(fā)模塊處于客戶方位置,負責主動建立鏈路,而其他結點則處于服務器方位置,既可以在配置文件中靜態(tài)配置鏈路,也可以在應用程序界面上動態(tài)配置鏈路。
所述鏈路建立在多消息轉發(fā)模塊通信系統(tǒng)中,為了區(qū)別各個消息轉發(fā)模塊,給每個消息轉發(fā)模塊分配一個唯一的編號;所述編號從1開始,依次增加;消息轉發(fā)模塊之間彼此建立連接,由編號較小的消息轉發(fā)模塊作為客戶向編號較大的消息轉發(fā)模塊發(fā)起建立鏈路請求。
所述鏈路建立在接收到連接請求,建立連接后,更新路由表。
所述鏈路建立在發(fā)送連接請求,等待返回后,保存鏈路信息,并更新路由表。
所述鏈路測試是通過設置一個專門的定時器,在定時器被觸發(fā)時的處理函數(shù)中進行。
所述鏈路測試設置一個專門的線程稱為鏈路狀態(tài)監(jiān)控線程定期檢測各個配置好的鏈路的連接情況,以保證鏈路的正常連接;如果一個鏈路已經(jīng)被異常拆除,則該線程將重新嘗試建立鏈路。
所述鏈路拆除當程序退出時,設置一個退出標志,由鏈路狀態(tài)監(jiān)控線程將拆除所有鏈路。
所述鏈路拆除長時間的測試消息無應答,表明鏈路已經(jīng)出現(xiàn)故障或者擁堵,由定時檢測程序拆除鏈路。
所述鏈路拆除可以由用戶在界面上取消一個鏈路,并且這樣的取消是永久取消,鏈路監(jiān)控進程不會嘗試界面上已經(jīng)取消的鏈路。
所述鏈路拆除分別設置兩個標志,用于區(qū)分一個鏈路是被異常取消還是被用戶取消;標志bUse表示該鏈路是否使用,如果該值為真,則該鏈路在使用中,每次鏈路斷,鏈路狀態(tài)監(jiān)控線程都會嘗試重新建立鏈路,否則鏈路不會被建立;標志bLink標志表明當前鏈路狀態(tài),真表示鏈路連接中,否則表示沒有連接。
所述消息頭和結點編號首先,類似于消息轉發(fā)模塊的編號,給每個結點分配一個唯一的全局編號,用以唯一的表示該結點;為了區(qū)分不同消息轉發(fā)模塊通信系統(tǒng)中的結點,還給每個結點分配一個全局結點編號,全局結點編號在整個系統(tǒng)中是唯一的,并且和該結點的結點局部編號一一對應。對應公式是全局編號=局部編號+消息轉發(fā)模塊編號×每個消息轉發(fā)模塊通信系統(tǒng)最大結點數(shù);其次,給每個消息加一個額外的消息頭,所述消息頭記錄了源結點編號、目的結點編號和消息長度及消息類型等內容,用于中間結點在收到一個消息后,就可以根據(jù)目的結點序號來判斷目的結點是哪個結點了。
所述消息頭和結點編號借用系統(tǒng)本身已有的結點編號作為局部編號,然后再利用全局編號公式對所有結點進行全局編號;對于系統(tǒng)種保留了某個區(qū)間的結點編號不允許用戶使用,采用下列修正公式來跳過這些區(qū)間全局編號=局部編號+消息轉發(fā)模塊編號×單消息轉發(fā)模塊通信系統(tǒng)最大結點數(shù)+偏移值。
所述消息發(fā)送過程對于源結點,發(fā)送過程為填寫消息頭、填寫消息體,然后把消息發(fā)送給消息轉發(fā)模塊;對于目的結點,收到消息后進行處理;對于消息轉發(fā)模塊來說,獲得目的結點編號,并查找路由表獲得發(fā)送鏈路的鏈路號,通過此鏈路發(fā)送至目的結點。
所述消息隊列管理中出現(xiàn)因為阻塞導致發(fā)送不成功,消息轉發(fā)模塊設置對應鏈路的一個標志bOK為FALSE,并且把消息加入到隊列尾部,在鏈路不在阻塞時,底層驅動程序將通知應用程序,此時,消息轉發(fā)模塊將嘗試依次發(fā)送完所有的消息。
所述路由表的管理在鏈路的建立和拆除過程時,更新路由表。
在消息轉發(fā)模塊和某個結點鏈路出現(xiàn)異常時,可以將消息由系統(tǒng)中具有轉發(fā)消息能力的結點代為轉發(fā)。
在服務器端增加一個可選的合法性檢查機制,用戶可以根據(jù)實際情況決定是否檢查、檢查的嚴格程度等內容。
本發(fā)明的效果在于利用成熟的局域網(wǎng)(Local Area Ne twork,LAN)技術,通過一個專門的高性能計算機充當消息轉發(fā)模塊,集中處理結點間的消息轉發(fā),達到實現(xiàn)多結點間通信的快速、穩(wěn)定、寬帶的要求。同時,本發(fā)明并沒有規(guī)定消息轉發(fā)模塊同通信結點間采用何種方式進行通信,因此,我們可以在實現(xiàn)時通過配置,允許不同結點采用不同的通信方式,這樣就可以使消息轉發(fā)模塊作為一種異種通信接口的中介結點,從而方便了系統(tǒng)的擴展。
圖1單MTM通信系統(tǒng)拓撲圖。
圖2多MTM通信系統(tǒng)拓撲圖。
圖3服務器方建立鏈路過程中的操作流程。
圖4客戶方建立鏈路過程中的操作流程。
圖5上層測試的原理6定時器處理函數(shù)流程圖。
圖7鏈路狀態(tài)監(jiān)控線程流程圖。
圖8MTM在消息處理時的流程。
圖9發(fā)送消息給目的結點的處理流程。
圖10采用路由表方式進行消息處理的流程。
圖11單MTM通信系統(tǒng)內部結點的消息傳遞路徑。
圖12多MTM通信系統(tǒng)間結點的消息傳遞路徑。
圖13采用特殊結點通信時的多MTM通信系統(tǒng)內部結點的消息傳遞路徑。
具體實施例方式
本發(fā)明的方法及其步驟可以通過設立一個專門的消息轉發(fā)模塊(Messages Transmision Module,MTM)來完成消息傳輸?shù)娜蝿铡T撓⑥D發(fā)模塊模塊和系統(tǒng)中其他結點都建立連接,構成一個星形連接系統(tǒng)。一個結點需要向另外一個結點發(fā)送消息時,把這個消息傳遞給MTM模塊,由MTM負責消息的暫存、路由選擇、發(fā)送及異常處理。這樣,其他結點可以專注于其自身的任務,而把通信的大部分負擔都交由MTM處理。這樣的設計,可以有效的提高多結點通信系統(tǒng)中的消息傳遞效率,從而增強了系統(tǒng)的穩(wěn)定性和健壯性。
更復雜的情況,可以建立多個MTM模塊,每個MTM和多個結點互聯(lián),每個結點只與一個MTM建立連接,MTM模塊之間建立網(wǎng)狀連接,從而形成一個范圍更大的多結點系統(tǒng)。為了與整個系統(tǒng)相區(qū)別,稱呼每個MTM及與之直接相連的結點組成的系統(tǒng)為MTM子系統(tǒng),稱呼只有一個MTM子系統(tǒng)的多結點通信系統(tǒng)為單MTM通信系統(tǒng),有多個MTM子系統(tǒng)的則稱為多MTM通信系統(tǒng)。
單MTM通信系統(tǒng)和多MTM通信系統(tǒng)的拓撲結構分別如附圖1和附圖2所示圖1說明了單MTM通信系統(tǒng)中各結點的連接情況。其中實心圓代表MTM模塊,空心圓則代表其他結點;圖2說明了多MTM通信系統(tǒng)中各結點的連接情況。其中實心圓代表MTM模塊,空心圓則代表其他結點。
下面分鏈路管理和消息處理兩個方面描述具體的實現(xiàn)。
鏈路管理鏈路(Link)是指兩個結點間通信的物理或者邏輯的通道。由于本發(fā)明方法不涉及物理實現(xiàn)細節(jié),因此本發(fā)明中涉及的鏈路都是邏輯鏈路。如果兩個結點是直接相連的,則他們之間的鏈路就成為直連鏈路;否則鏈路可能包括多個直連鏈路和轉發(fā)消息的一些中間結點。如果沒有特別說明,本發(fā)明中的鏈路都是指直連鏈路。
為了增加消息轉發(fā)的效率,MTM在本地保存一份表格稱為路由表。該表是一個簡單的散列表,MTM在收到一個消息后,得到了消息的目的地,就可以直接查表就可以知道通過哪條鏈路發(fā)送出去。
為了保證通信的正確、有效的進行,必須對鏈路進行管理。鏈路管理包括鏈路建立、鏈路測試、鏈路拆除等功能。
鏈路建立鏈路建立過程在兩個結點之間進行,其中一方主動要求建立連接,稱為客戶端,另一方則不斷偵聽外來的連接請求,并最終完成鏈路的建立過程,這一方稱為服務器方。附圖3是服務器方建立鏈路過程中的處理流程,附圖4為客戶方建立鏈路過程中的處理流程。
在單MTM通信系統(tǒng)中,MTM處于客戶方位置,負責主動建立鏈路,而其他結點則處于服務器方位置。用戶可以在配置文件中靜態(tài)配置鏈路,也可以在應用程序界面上動態(tài)配置鏈路。從安全考慮,在服務器端增加一個可選的合法性檢查機制。用戶可以根據(jù)實際情況決定是否檢查、檢查的嚴格程度等內容。
在多MTM通信系統(tǒng)中,為了區(qū)別各個MTM,給每個MTM分配一個唯一的編號。編號從1開始,依次增加。MTM之間彼此建立連接,并規(guī)定,編號較小的MTM作為客戶向編號較大的MTM發(fā)起建立鏈路請求。
鏈路測試在計算機通信的各種底層協(xié)議中大多有檢測的機制,為了對鏈路狀況有更好的了解,MTM通信系統(tǒng)也對鏈路進行檢測,區(qū)別于底層協(xié)議的檢測,稱呼MTM系統(tǒng)中的鏈路檢測為上層檢測。
上層檢測的原理如圖5所示。鏈路的一端結點每隔1秒向另一端結點發(fā)送一個測試消息,對方應該在接收到該消息后立刻返回一個應答消息。如果一個結點長時間不能收到對方發(fā)來的應答消息,則說明鏈路狀況不正常,這時鏈路將被拆除。上層檢測工作通過設置一個專門的定時器,在定時器被觸發(fā)時的處理函數(shù)中進行,其流程如圖6所示。
為了保證鏈路的正常連接,一個專門的線程稱為鏈路狀態(tài)監(jiān)控線程定期檢測各個配置好的鏈路的連接情況。如果一個鏈路已經(jīng)被異常拆除,則該線程將重新嘗試建立鏈路。該線程的工作流程如圖7所示。
鏈路拆除系統(tǒng)在如下三種情況下拆除鏈路程序退出、測試消息無應答和界面配置取消鏈路。
程序退出時,設置一個退出標志,這種情況下,鏈路狀態(tài)監(jiān)控線程將拆除所有鏈路,其流程如附圖7所示。
長時間的測試消息無應答說明鏈路已經(jīng)出現(xiàn)故障或者擁堵,這種情況下,由定時檢測程序拆除鏈路。其流程如圖6所示。
用戶可以在界面上取消一個鏈路,并且這樣的取消是永久取消,鏈路監(jiān)控進程不會嘗試界面上已經(jīng)取消的鏈路。
為了區(qū)分一個鏈路是被異常取消還是被用戶取消,分別設置兩個標志,bUse表示該鏈路是否使用,如果該值為真,則該鏈路使用中,每次鏈路斷,鏈路狀態(tài)監(jiān)控線程都會嘗試重新建立鏈路,否則鏈路不會被建立。bLink標志表明當前鏈路狀態(tài),真表示鏈路連接中,否則表示沒有連接。
消息處理消息頭和結點編號由于消息不是直接發(fā)送給目的結點的,因此必須有一種方法用于讓中間結點確定目的結點。
首先,類似于MTM的編號,給每個結點分配一個唯一的編號,用以唯一的表示該結點。在多MTM通信系統(tǒng)中,對于每個MTM通信系統(tǒng),其中的結點被分配了在該系統(tǒng)中唯一的局部編號,這個編號可以和其他MTM通信系統(tǒng)中某個結點編號相同。為了區(qū)分不同MTM通信系統(tǒng)中的結點,還給每個結點分配一個全局結點編號,全局結點編號在整個系統(tǒng)中是唯一的,并且和該結點的結點局部編號一一對應。對應公式是全局編號=局部編號+MTM編號×每個MTM通信系統(tǒng)最大結點數(shù)可以看出,按照上述公式,局部編號和全局編號是一一對應的。所以要采用局部編號和全局編號分開的方式,是考慮到可能有多個MTM通信系統(tǒng)合并或者由單MTM通信系統(tǒng)擴展到多MTM通信系統(tǒng)時可以不需要重新分配結點編號,從而盡量減少對系統(tǒng)的變動。
有時,通信系統(tǒng)本身就已經(jīng)對結點編號,此時我們可以借用這些編號作為局部編號,然后再利用全局編號公式對所有結點進行全局編號。如果系統(tǒng)種保留了某個區(qū)間的結點編號不允許用戶使用,我們可以采用下列修正公式來跳過這些區(qū)間。
全局編號=局部編號+MTM編號×單MTM通信系統(tǒng)最大結點數(shù)+偏移值其次,給每個消息加一個額外的消息頭,消息頭記錄了源結點編號、目的結點編號和消息長度及消息類型等內容。這樣,中間結點在收到一個消息后,就可以根據(jù)目的結點序號來判斷目的結點是哪個結點了。
消息發(fā)送過程對于單MTM通信系統(tǒng),消息發(fā)送的路由為源結點→MTM→目的結點對于多MTM通信系統(tǒng),消息發(fā)送的路由為
源結點→MTM→目的結點 MTM系統(tǒng)內消息源結點→源MTM→目的MTM→目的結點 跨MTM消息對于源結點,發(fā)送過程中所要做的就是填寫消息共、填寫消息體,然后把消息發(fā)送給MTM,其過程比較簡單,不多贅述。
對于目的結點,就是簡單的收到消息后處理,類似于普通的消息傳輸系統(tǒng),在此也不在多說。
對于MTM來說,他需要判斷選擇何種路由把消息發(fā)送出去,圖8說明了MTM在消息傳輸過程中的處理流程。其中消息發(fā)送過程如圖9所示。給MTM發(fā)送消息的過程同圖9中的過程類似,只是結點編號合法性檢查變?yōu)镸TM編號檢查。
為了簡化設計,單MTM系統(tǒng)中的MTM也按照多MTM通信系統(tǒng)中的MTM來設計。由于此時目的結點編號都是局部編號,因此也不會出現(xiàn)錯誤處理。
消息隊列管理在圖9中可以看到,對于一時無法發(fā)送出去的消息,發(fā)送過程把消息加入到隊列中。MTM為每個結點建一個發(fā)送隊列,從而達到緩存發(fā)送的目的,隊列采用先進先出的方式管理,其管理方式同普通的先進先出隊列,可以進行添加消息、取隊列頭、刪除隊列頭和刪除整個隊列等操作。
如果一旦出現(xiàn)因為阻塞發(fā)送不成功,由MTM設置對應鏈路的一個標志bOK為FALSE,并且把消息加入到隊列尾部。在鏈路不在阻塞時,底層驅動程序將通知應用程序,此時,消息轉發(fā)模塊將嘗試依次發(fā)送完所有的消息。
路由表管理每次消息發(fā)送時,MTM都要計算對應的鏈路號,為了加快消息處理過程,實際實現(xiàn)過程中采用路由表技術。路由表是MTM在內部保存一份表格,其索引為目的結點的全局編號,其表格項的值為可以發(fā)送到該結點的鏈路的編號。在計算鏈路號時,只要查該表值,就可以立刻得到了鏈路號,避免再區(qū)分局部編號和全局編號。這種改進的消息處理過程如圖10所示。
為了保證消息正確的傳輸,必須保證路由表的正確性。鏈路在建立和拆除過程時,更新路由表,從而保證了路由表的正確性。由于在一個正常運轉的系統(tǒng)中,鏈路的建立和拆除操作是不頻繁的,因此這樣的更新路由表的過程也是非常不頻繁的,因此將很少占用系統(tǒng)運行時間,從而提高了效率。
特殊結點在上述實現(xiàn)中,沒有考慮除了MTM之外的結點是否具有轉發(fā)消息的能力。事實上,很多通信系統(tǒng)中存在這樣的結點,這樣的結點,稱之為特殊結點,在沒有MTM之前,承擔著轉發(fā)消息的任務。由于特殊結點的存在,在MTM和某個結點的鏈路出現(xiàn)異常時,也可以暫時使用傳統(tǒng)方式,把消息發(fā)送給這個特殊結點,讓他代為轉發(fā)消息,這樣,消息的傳遞方式就可以有更多、更靈活的選擇,可以增強系統(tǒng)的穩(wěn)定性和健壯性。
中興某產品采用多結點通信方式,系統(tǒng)中存在一個中心結點,用于不同結點間的消息轉發(fā)。圖11和圖12分別表示了單MTM系統(tǒng)中和多MTM系統(tǒng)中結點通信時的消息路由,圖13則表示在MTM到某結點鏈路異常時采用特殊結點通信時的路由。
權利要求
1一種在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是通過設置消息轉發(fā)模塊作為中間結點,當一個結點需要向另一個結點發(fā)送消息時,先將消息傳遞給作為中間結點的消息轉發(fā)模塊,由該消息轉發(fā)模塊集中處理不同結點之間消息的暫存、路由選擇、發(fā)送及異常處理。
2如權利要求1所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是設置一個消息轉發(fā)模塊作為中間結點,該消息轉發(fā)模塊與系統(tǒng)內的其它結點建立星形連接,構成單消息轉發(fā)模塊通訊系統(tǒng)。
3如權利要求1所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是設置多個消息轉發(fā)模塊作為中間結點,每個消息轉發(fā)模塊與多個結點之間互聯(lián),每個結點僅與一個消息模塊建立連接,消息轉發(fā)模塊之間建立網(wǎng)狀連接,構成多消息轉發(fā)模塊通訊系統(tǒng)。
4如權利要求1所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒ǎ涮卣魇撬鱿⑥D發(fā)模塊在本地保存一份表格稱為路由表,用于增加消息轉發(fā)的效率;該表是一個簡單的散列表,消息轉發(fā)模塊在收到一個消息后,得到了消息的目的地,就可以直接查表就可以知道通過哪條鏈路發(fā)送出去。
5如權利要求1所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,所述設置的消息轉發(fā)模塊包括對鏈路的管理和對消息的處理,所述對鏈路的管理進一步包括鏈路建立在兩個結點之間進行,其中一方主動要求建立連接,另一方則不斷偵聽外來的連接請求,并最終完成鏈路的建立過程;鏈路測試由鏈路的一端結點在一定間隔內向另一端結點發(fā)送一個測試消息,對方在接收到該消息后立刻返回一個應答消息;鏈路拆除如果一個結點長時間不能收到對方發(fā)來的應答消息,則說明鏈路狀況不正常,這時鏈路將被拆除,所述對消息的處理進一步包括消息頭和結點編號在消息直接發(fā)送給目的結點之前,使作為中間結點的消息轉發(fā)模塊確定目的結點;消息的發(fā)送過程對于單消息轉發(fā)模塊通信系統(tǒng),消息發(fā)送的路由為源結點→消息轉發(fā)模塊→目的結點,對于多消息轉發(fā)模塊通信系統(tǒng),消息發(fā)送的路由為源結點→消息轉發(fā)模塊→目的結點(在消息轉發(fā)模塊系統(tǒng)內的消息),源結點→源消息轉發(fā)模塊→目的消息轉發(fā)模塊→目的結點(在跨消息轉發(fā)模塊之間的消息);消息隊列管理對于一時無法發(fā)送出去的消息,發(fā)送過程把消息加入到隊列中,由消息轉發(fā)模塊為每個結點建一個發(fā)送隊列;路由表管理每次消息發(fā)送時,消息轉發(fā)模塊都要計算對應的鏈路號,路由表是消息轉發(fā)模塊在內部保存一份表格,其索引為目的結點的全局編號,其表格項的值為可以發(fā)送到該結點的鏈路的編號。
6如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是所述的鏈路建立在單消息轉發(fā)模塊通信系統(tǒng)中,消息轉發(fā)模塊處于客戶方位置,負責主動建立鏈路,而其他結點則處于服務器方位置,既可以在配置文件中靜態(tài)配置鏈路,也可以在應用程序界面上動態(tài)配置鏈路。
7如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒ǎ涮卣魇撬鲦溌方⒃诙嘞⑥D發(fā)模塊通信系統(tǒng)中,為了區(qū)別各個消息轉發(fā)模塊,給每個消息轉發(fā)模塊分配一個唯一的編號;所述編號從1開始,依次增加;消息轉發(fā)模塊之間彼此建立連接,由編號較小的消息轉發(fā)模塊作為客戶向編號較大的消息轉發(fā)模塊發(fā)起建立鏈路請求。
8如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是所述鏈路建立在接收到連接請求,建立連接后,更新路由表。
9如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是所述鏈路建立在發(fā)送連接請求,等待返回后,保存鏈路信息,并更新路由表。
10如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是所述鏈路測試是通過設置一個專門的定時器,在定時器被觸發(fā)時的處理函數(shù)中進行。
11如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒ǎ涮卣魇撬鲦溌窚y試設置一個專門的線程稱為鏈路狀態(tài)監(jiān)控線程定期檢測各個配置好的鏈路的連接情況,以保證鏈路的正常連接;如果一個鏈路已經(jīng)被異常拆除,則該線程將重新嘗試建立鏈路。
12如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒ǎ涮卣魇撬鲦溌凡鸪敵绦蛲顺鰰r,設置一個退出標志,由鏈路狀態(tài)監(jiān)控線程將拆除所有鏈路。
13如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒ǎ涮卣魇撬鲦溌凡鸪L時間的測試消息無應答,表明鏈路已經(jīng)出現(xiàn)故障或者擁堵,由定時檢測程序拆除鏈路。
14如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是所述鏈路拆除可以由用戶在界面上取消一個鏈路,并且這樣的取消是永久取消,鏈路監(jiān)控進程不會嘗試界面上已經(jīng)取消的鏈路。
15如權利要求1或5述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是所述鏈路拆除分別設置兩個標志,用于區(qū)分一個鏈路是被異常取消還是被用戶取消;標志bUse表示該鏈路是否使用,如果該值為真,則該鏈路在使用中,每次鏈路斷,鏈路狀態(tài)監(jiān)控線程都會嘗試重新建立鏈路,否則鏈路不會被建立;標志bLink標志表明當前鏈路狀態(tài),真表示鏈路連接中,否則表示沒有連接。
16如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒ǎ涮卣魇撬鱿㈩^和結點編號首先,類似于消息轉發(fā)模塊的編號,給每個結點分配一個唯一的全局編號,用以唯一的表示該結點;為了區(qū)分不同消息轉發(fā)模塊通信系統(tǒng)中的結點,還給每個結點分配一個全局結點編號,全局結點編號在整個系統(tǒng)中是唯一的,并且和該結點的結點局部編號一一對應。對應公式是全局編號=局部編號+消息轉發(fā)模塊編號×每個消息轉發(fā)模塊通信系統(tǒng)最大結點數(shù);其次,給每個消息加一個額外的消息頭,所述消息頭記錄了源結點編號、目的結點編號和消息長度及消息類型等內容,用于中間結點在收到一個消息后,就可以根據(jù)目的結點序號來判斷目的結點是哪個結點了。
17如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是所述消息頭和結點編號借用系統(tǒng)本身已有的結點編號作為局部編號,然后再利用全局編號公式對所有結點進行全局編號;對于系統(tǒng)種保留了某個區(qū)間的結點編號不允許用戶使用,采用下列修正公式來跳過這些區(qū)間全局編號=局部編號+消息轉發(fā)模塊編號×單消息轉發(fā)模塊通信系統(tǒng)最大結點數(shù)+偏移值。
18如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒ǎ涮卣魇撬鱿l(fā)送過程對于源結點,發(fā)送過程為填寫消息頭、填寫消息體,然后把消息發(fā)送給消息轉發(fā)模塊;對于目的結點,收到消息后進行處理;對于消息轉發(fā)模塊來說,獲得目的結點編號,判斷是否是局部編號,是,計算鏈路號后發(fā)送至目的結點,否,計算目的消息轉發(fā)模塊的編號,再計算鏈路號后發(fā)送至目的消息轉發(fā)模塊;對于消息轉發(fā)模塊來說,獲得目的結點編號,并查找路由表獲得發(fā)送鏈路的鏈路號,通過此鏈路發(fā)送至目的結點。
19如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?;其特征是所述消息隊列管理中出現(xiàn)因為阻塞導致發(fā)送不成功,消息轉發(fā)模塊設置對應鏈路的一個標志bOK為FALSE,并且把消息加入到隊列尾部;在鏈路不在阻塞時,底層驅動程序將通知應用程序,此時,消息轉發(fā)模塊將嘗試依次發(fā)送完所有的消息。
20如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒ǎ涮匦允撬雎酚杀淼墓芾碓阪溌返慕⒑筒鸪^程時,更新路由表。
21如權利要求1或5所述在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是在消息轉發(fā)模塊和某個結點鏈路出現(xiàn)異常時,可以將消息由系統(tǒng)中具有轉發(fā)消息能力的結點代為轉發(fā)。
22如權利要求6所達在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,其特征是在服務器端增加一個可選的合法性檢查機制,用戶可以根據(jù)實際情況決定是否檢查、檢查的嚴格程度等內容。
全文摘要
本發(fā)明涉及一種在多結點系統(tǒng)中進行消息傳輸?shù)姆椒?,尤其涉及一種在通訊系統(tǒng)中實現(xiàn)不同結點間進行消息傳輸?shù)姆椒?。利用成熟的局域網(wǎng)(Local Area Network,LAN)技術,通過一個專門的高性能計算機充當消息轉發(fā)模塊,集中處理結點間的消息轉發(fā),達到實現(xiàn)多結點間通信的快速、穩(wěn)定、寬帶的要求。同時,本發(fā)明并沒有規(guī)定消息轉發(fā)模塊同通信結點間采用何種方式進行通信,因此,我們可以在實現(xiàn)時通過配置,允許不同結點采用不同的通信方式,這樣就可以使消息轉發(fā)模塊作為一種異種通信接口的中介結點,從而方便了系統(tǒng)的擴展。
文檔編號H04L12/24GK1507210SQ0215515
公開日2004年6月23日 申請日期2002年12月10日 優(yōu)先權日2002年12月10日
發(fā)明者顏廷榮, 潘英 申請人:深圳市中興通訊股份有限公司