TW201545510A - 在分散式計算系統中進行訊息路由的方法 - Google Patents
在分散式計算系統中進行訊息路由的方法 Download PDFInfo
- Publication number
- TW201545510A TW201545510A TW103119183A TW103119183A TW201545510A TW 201545510 A TW201545510 A TW 201545510A TW 103119183 A TW103119183 A TW 103119183A TW 103119183 A TW103119183 A TW 103119183A TW 201545510 A TW201545510 A TW 201545510A
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- owner
- message
- whole area
- nodes
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/20—Communication route or path selection, e.g. power-based or shortest path routing based on geographic position or location
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
揭露一種進行訊息路由的方法,實施於一電腦裝置中,該方法包含:●透過一網路耦接一全區環,其中該全區環與一分散式雜湊表(DHT)相關且具有複數個節點,該複數個節點預先被互斥地分群;●從被分群的該複數個節點中決定出該第一群節點;●利用該分散式雜湊表,為一訊息在該第一群節點中查找出一第一節點,以作為該訊息路由的目的地。
Description
本發明大體而言係關於在分散式(distributed)計算系統中的訊息路由。特別地,本發明係關於發佈/訂閱系統中利用分散式雜湊表(DHT)的訊息路由。
在分散式計算系統中,如何有效率地找到具有特定資料或是負責特定工作的節點(node)是一技術關鍵。在現有技術中,有使用分散式雜湊表(DHT)來解決上述問題,且在離散性(Autonomy and Decentralization)、擴充性(Scalability)、容錯性(Fault tolerance)上都具有好處。關於與DHT相關的一些現有技術,例如可參考US Pub.2013/0318222或是US Pat.8,073,978。
另一方面,已知將分散式計算系統應用於發佈/訂閱(Publish/Subscribe)系統是有益的,特別是在伸縮性(scalability)的方面。更多的資訊可參考Sebastian Parkitny於2006年9月27日所發表之論文“A Comparative Study of Pub/Sub Methods in Structured P2P Networks”。
本發明一方面係提出一種分散式計算系統中的訊息路由方
法;特別地,其可應用於一發佈/訂閱系統,但應知本發明並不欲侷限於發佈/訂閱系統的應用上。
在現有技術的分散式計算系統中,藉由使用DHT,除了先前所提到的優點之外,亦會將工作任務平均地分配到全部的節點(即全區環(global ring)上的所有節點)上。然而,本發明體認到,在某些情況中,平均分配工作任務給全部的節點可能並不是最有效率的作法。舉例來說,若考量到通訊延遲(communication latency),則基於節點的區域性(locality)來進行工作任務分配可能會是較好的選擇;也就是說,讓實體位於台灣的節點來處理源自或是要發送到台灣的訊息,會比使用實體位於美國的節點來處理這些訊息,會顯得較有效率。
另一方面,透過DHT,一旦將工作任務分配到一節點上,就很難更改。但本發明體認到,在實際狀況中,例如考量到效率的最佳化或是因應突發事件(例如一海底纜線(Submarine communications cable)斷裂)或天然災害,或是因應臨時源自某一地區所產生的大量服務需求,可能會有需要將該工作任務重新分配到另一節點上,而此重新分配可能是臨時性亦可能是永久性。但在現有技術中,並沒有提供一種機制能夠輕易地達成上述工作任務在不同節點間的重新分配,特別是動態性的重新分配。
有鑑於此,本發明一方面在於,全區環(global ring)上的所有節點係預先被互斥地分群。而欲發送服務需求(request)訊息的裝置可先根據一給定的條件決定出一適當的群,接著再使用原有全區環的DHT以從該群的節點中(相對於從全區環上的所有節點中)決定一節點,而較佳地由該群中所決定的節點來滿足該服務需求,或是當該所決定的節點不適合來滿足該服務需求時,本發明進一步設計有『代理者節點(proxy node)』,可協助從全區環上的其他節點中找出適合或預定為滿足此服務需求的節點,而此代理者部份亦可利用原有全區環的DHT來設計。
相對於現有技術中欲發送服務需求(request)訊息的裝置係
使用全區環的DHT從全區環上的所有節點中決定一節點的作法,本發明可預先排除全區環上不欲使用(unfavored)的節點,此作法可有效提昇效率。此外,本發明依舊利用全區環的DHT,除了可保持DHT所帶來的優點,也讓現有技術中的軟硬體無需大幅更動即可實現本發明。特別是,由於本發明係基於全區環的DHT而加以延伸,並沒有對全區環的DHT進行改變,因此全區環(global ring)上的節點的分群方式以及後續對於群的決定方式皆可視所需而動態改變,而不需要去改變整個系統的基本運作,而加上前述的代理人節點的設計,更可輕易地達成工作任務在不同節點間的重新分配,以彌補現有技術中的不足。
本說明書中所提及的特色、優點、或類似表達方式並不表示,可以本發明實現的所有特色及優點應在本發明之任何單一的具體實施例內。而是應明白,有關特色及優點的表達方式是指結合具體實施例所述的特定特色、優點、或特性係包含在本發明的至少一具體實施例內。因此,本說明書中對於特色及優點、及類似表達方式的論述與相同具體實施例有關,但亦非必要。
參考以下說明及隨附申請專利範圍或利用如下文所提之本發明的實施方式,即可更加明瞭本發明的這些特色及優點。
100‧‧‧電腦系統
150‧‧‧電腦裝置
500‧‧‧電腦裝置
510‧‧‧處理器
520‧‧‧記憶體
530‧‧‧網路
540‧‧‧輸入/輸出(I/O)單元
550‧‧‧硬碟機
560‧‧‧區域網路(LAN)配接器
A-G‧‧‧節點
SR1、SR2‧‧‧節點群
GR‧‧‧全區環
T‧‧‧標題
AP‧‧‧主程式
為了立即瞭解本發明的優點,請參考如附圖所示的特定具體實施例,詳細說明上文簡短敘述的本發明。在瞭解這些圖示僅描繪本發明的典型具體實施例並因此不將其視為限制本發明範疇的情況下,參考附圖以額外的明確性及細節來說明本發明,圖式中:圖1係依據本發明具體實施例的電腦系統。
圖2至4係依據本發明具體實施例的方法流程圖。
圖5係依據本發明具體實施例的電腦裝置或節點之之硬體
環境方塊圖。
本說明書中「一具體實施例」或類似表達方式的引用是指結合該具體實施例所述的特定特色、結構、或特性係包括在本發明的至少一具體實施例中。因此,在本說明書中,「在一具體實施例中」及類似表達方式之用語的出現未必指相同的具體實施例。
熟此技藝者當知,本發明可實施為電腦系統/裝置、方法或作為電腦程式產品之電腦可讀媒體。因此,本發明可以實施為各種形式,例如完全的硬體實施例、完全的軟體實施例(包含韌體、常駐軟體、微程式碼等),或者亦可實施為軟體與硬體的實施形式,在以下會被稱為「電路」、「模組」或「系統」。此外,本發明亦可以任何有形的媒體形式實施為電腦程式產品,其具有電腦可使用程式碼儲存於其上。
一個或更多個電腦可使用或可讀取媒體的組合都可以利用。舉例來說,電腦可使用或可讀取媒體可以是(但並不限於)電子的、磁的、光學的、電磁的、紅外線的或半導體的系統、裝置、設備或傳播媒體。更具體的電腦可讀取媒體實施例可以包括下列所示(非限定的例示):由一個或多個連接線所組成的電氣連接、可攜式的電腦磁片、硬碟機、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、可攜式光碟片(CD-ROM)、光學儲存裝置、傳輸媒體(例如網際網路(Internet)或內部網路(intranet)之基礎連接)、或磁儲存裝置。需注意的是,電腦可使用或可讀取媒體更可以為紙張或任何可用於將程式列印於其上而使得該程式可以再度被電子化之適當媒體,例如藉由光學掃描該紙張或其他媒體,然後再編譯、解譯或其他合適的必要處理方式,然後可再度被儲存於電腦記憶體中。在本文中,電腦可使用或可讀取媒體可以是任何用於保持、儲存、傳送、傳播或傳輸程式碼的媒體,以供與其相
連接的指令執行系統、裝置或設備來處理。電腦可使用媒體可包括其中儲存有電腦可使用程式碼的傳播資料訊號,不論是以基頻(baseband)或是部分載波的型態。電腦可使用程式碼之傳輸可以使用任何適體的媒體,包括(但並不限於)無線、有線、光纖纜線、射頻(RF)等。
用於執行本發明操作的電腦程式碼可以使用一種或多種程式語言的組合來撰寫,包括物件導向程式語言(例如Java、Smalltalk、C++或其他類似者)以及傳統程序程式語言(例如C程式語言或其他類似的程式語言)。
於以下本發明的相關敘述會參照依據本發明具體實施例之系統、裝置、方法及電腦程式產品之流程圖及/或方塊圖來進行說明。當可理解每一個流程圖及/或方塊圖中的每一個方塊,以及流程圖及/或方塊圖中方塊的任何組合,可以使用電腦程式指令來實施。這些電腦程式指令可供通用型電腦或特殊電腦的處理器或其他可程式化資料處理裝置所組成的機器來執行,而指令經由電腦或其他可程式化資料處理裝置處理以便實施流程圖及/或方塊圖中所說明之功能或操作。
這些電腦程式指令亦可被儲存在電腦可讀取媒體上,以便指示電腦或其他可程式化資料處理裝置來進行特定的功能,而這些儲存在電腦可讀取媒體上的指令構成一製成品,其內包括之指令可實施流程圖及/或方塊圖中所說明之功能或操作。
電腦程式指令亦可被載入到電腦上或其他可程式化資料處理裝置,以便於電腦或其他可程式化裝置上進行一系統操作步驟,而於該電腦或其他可程式化裝置上執行該指令時產生電腦實施程序以達成流程圖及/或方塊圖中所說明之功能或操作。
其次,請參照圖1至圖5,在圖式中顯示依據本發明各種實施例的裝置、方法及電腦程式產品可實施的架構、功能及操作之流程圖及方塊圖。因此,流程圖或方塊圖中的每個方塊可表示一模組、區段、或部
分的程式碼,其包含一個或多個可執行指令,以實施指定的邏輯功能。另當注意者,某些其他的實施例中,方塊所述的功能可以不依圖中所示之順序進行。舉例來說,兩個圖示相連接的方塊事實上亦可以皆執行,或依所牽涉到的功能在某些情況下亦可以依圖示相反的順序執行。此外亦需注意者,每個方塊圖及/或流程圖的方塊,以及方塊圖及/或流程圖中方塊之組合,可藉由基於特殊目的硬體的系統來實施,或者藉由特殊目的硬體與電腦指令的組合,來執行特定的功能或操作。
<系統架構>
圖1顯示一實施例中之電腦系統100之硬體架構。電腦系統100係一分散式計算系統。較佳地,電腦系統100係實施為一DHT相關之全區環GR架構,並可應用於發佈/訂閱系統。而為了簡化說明的目的,圖1的範例中電腦系統100係由7個節點A-G所組成。雖未圖示出,但應可知電腦系統100可包含更多的節點或其他的網路元件。電腦系統100中任兩節點之間以網路(未圖示)連結並進行對等(peer to peer)通訊,而網路可為任何類型的網路,例如網際網路、區域網路(LAN)、廣域網路(WAN)、虛擬私有網路(VPN)、公用交換電話網路(PSTN)或上述的組合等。
在一實施例中,節點A-G的基本架構與元件亦可實施為一般的個人電腦、伺服器(例如IBM公司的System X、Blade Center或eServer)、或資訊設備(例如IBM公司的IBM WebSphere DataPower Series SOA Appliances或Tivoli ISS Appliances),但不於此為限。另外對於與DHT相關之全區環架構以及節點與本發明無直接相關的資訊,可參考US Pub.2013/0318222或是US Pat.8,073,978的說明,在此不予贅述。
在圖1範例中,在電腦系統100的DHT架構下,節點A的雜湊值為“001”、節點B的雜湊值為“003”、節點C的雜湊值為“006”、節點D的雜湊值為“002”、節點E的雜湊值為“004”、節點F的雜湊值為“005”、節點G的雜湊值為“007”。透過這些雜湊值“001”至“007”,即可決定出每一
節點A-G在全區環GR上的鍵空間(key space)。特別地,節點A-G係預先被互斥地分群為由節點A-C所組成的第一群SR1以及由節點D-G所組成的第二群SR2。應可知在其他實施例中,節點A-G可被劃分出更多的群,每一群可包含一或多個節點,但每一節點僅能歸屬於一群(例如第一群SR1與第二群SR2的其中之一)。
在一實施例中,互斥分群所依照的條件可根據例如每個節點所在的國家、城市、或時區。在另一實施例中,互斥分群所依照的條件係根據每個節點都具有且能自我偵測到之一參數,例如IP位置、網路運營商(ISP)、作業系統、使用者介面的語言(例如中文或是英文)、裝置識別碼(例如網路卡的MAC位址)、或是硬體效能(例如處理器的頻率或儲存裝置的可用容量)等等,因此一旦分群的條件確定,每一節點可自行判斷其係歸屬與哪一群。
在圖1的實施例中,係根據節點A-G所在的國家來分群,在此實施例中,如圖1下方所示,節點A-C(第一群SR1)皆位於台灣,而節點D-G(第二群SR2)皆位於美國。關於所在國家的資訊,可由人工輸入至各節點,或是可由各節點根據所分配到的IP位置來判斷,或是透過各節點上的全球定位系統(GPS)裝置來得知,本發明並不欲加以限制。在圖1中,各節點所在的國家係以國家代碼TW或US標示於其雜湊值前。
圖1另外顯示了向電腦系統100發出服務需求的電腦裝置150。電腦裝置150可實施為一專用的資訊設備(appliance)或是安裝有特定程式的通用型個人資訊裝置,例如一行動電話或是平板電腦。在電腦系統100實施為一發佈/訂閱系統的實施例中,電腦裝置150即用來發出發佈/訂閱訊息。在一實施例中,電腦裝置150也具有可自我偵測到一參數,例如IP位置、網路運營商(ISP)、作業系統、應用程式、使用者介面的語言、或是裝置識別碼(例如網路卡的MAC位址或是IMEI碼或是SIM卡號碼)等等,而電腦裝置150可根據其所偵測到的參數值來決定電腦系統100中哪一群
的節點。更多的細節將透過後續圖2與圖3進一步說明。
在節點A-G係根據其所在的國家來分群的實施例中,電腦裝置150也維持有其所在國家的資訊(圖1中電腦裝置150係位於台灣),並用以來決定在哪一國家中的群的節點。關於所在國家的資訊,可由人工輸入至電腦裝置150,或是可由電腦裝置150根據所分配到的IP位置或電話號碼來判斷,或是透過電腦裝置150上的全球定位系統(GPS)裝置來得知,本發明並不欲加以限制。
以下將透過圖2與3的流程圖配合圖1進一步說明本發明應用於發佈/訂閱系統的實施例,特別是以下係說明基於標題(topic based)的發佈/訂閱系統。但熟此技藝者應可根據本文而延伸至基於內容(content based)的發佈/訂閱系統,或發佈/訂閱系統以外的分散式計算系統。
預備作業:區域/全區所有者指定(Local/Global Owner Assignment)
步驟200:電腦裝置150建立(create)一標題(topic)T。
步驟202:電腦裝置150取得自身所在國家的資訊,並據此從節點A-C(第一群SR1)或節點D-G(第二群SR2)擇一。在此實施例中,電腦裝置150係位於台灣,而第一群SR1亦位於台灣而第二群SR2位於美國,而考量到電腦裝置150與第一群SR1以及第二群SR2的例如地理鄰近度,電腦裝置150決定出位於台灣的第一群SR1(也就是節點A-C)。可理解地,若電腦裝置150係位於日本,係較鄰近台灣,因此也會決定出位於台灣的第一群SR1;若電腦裝置150係位於加拿大,係較鄰近美國,因此會決定出位於美國的第二群SR2。
步驟204:電腦裝置150將步驟200中所建立的標題T以電腦系統100全區環GR的DHT進行雜湊運算而得到一位址值,並根據此位址值,從第一群SR1(也就是節點A-C)查找出一節點,作為標題T在第一群SR1中的區域所有者(local owner),並將建立標題的訊息路由至此區域所有
者,以進行後續步驟206。
需注意的是,第一群SR1中的節點A-C仍然使用全區環GR的DHT所得出的雜湊值(即節點A的雜湊值為001、節點B的雜湊值為003、節點C的雜湊值為006)來做為位址,但由於步驟202中挑選了第一群SR1中的節點A-C而忽略了第二群SR2中的節點D-F,因此在此步驟中節點A-C所對應的鍵空間係與在全區環GR下節點A-C所對應的鍵空間不同,以確保電腦裝置150無論如何可在節點A-C中查找出一節點。
舉例來說,若電腦裝置150將標題T以全區環GR的DHT進行雜湊運算而得到之位址值為“007”,在全區環GR上此即為節點G(其雜湊值為“007”)的位址,但在此步驟204中,電腦裝置150僅在第一群SR1(也就是節點A-C)進行查找,而不是在整個全區環GR上查找,所以電腦裝置150將會根據標題T的位址值為“007”,在第一群SR1中查找到最接近的下一個節點,也就是節點A((其雜湊值為“001”),並將節點A作為標題T在第一群SR1中的區域所有者。
步驟206:作為標題T在第一群SR1中的區域所有者的節點A在收到電腦裝置150建立標題T的訊息後,則將標題T以全區環GR的DHT進行雜湊運算而得到一位址值,以判斷出節點A是否也可作為標題T在全區環GR上的全區所有者(global owner)。關於全區所有者所負責的工作,將於後續步驟214中說明。
若標題T的雜湊位址值落入節點A在全區環GR上的鍵空間中,則認定擔任標題T在第一群SR1中的區域所有者的節點A也可擔任標題T在全區環GR上的全區所有者,而進行到步驟214,將於後續說明。若否,則進行到步驟208。
步驟208:若標題T的雜湊位址值為例如“007”,不落入節點A在全區環GR上的鍵空間,反而則落入節點G的在全區環GR上的鍵空間中,則節點G將擔任標題T在全區環GR上的代理者(proxy)。節點A
接著向擔任代理者的節點G詢問標題T在全區環GR是否已經設定有全區所有者,而進行到步驟210。
步驟210:由於標題T的雜湊位址值係落入節點G的在全區環GR上的鍵空間中,因此節點G係被設計為在全區環GR上的代理者,負責記錄標題T在全區環GR上的全區所有者,並回應任一節點關於何節點為標題T在全區環GR上的全區所有者的詢問。而由於在此實施例中,標題T係被新建立(步驟200),因此節點G判斷出標題T在全區環GR上的全區所有者尚未存在,而要求節點A擔任標題T在全區環GR上的全區所有者(步驟212),且加以記錄,以供後續回覆關於何節點為標題T在全區環GR上的全區所有者的詢問。
步驟214:節點A擔任標題T在全區環GR上的全區所有者,而將負擔後續與標題T相關的工作任務。若以發佈/訂閱系統為例,節點A將會負責維持標題T訂閱者的清單,並將標題T下所發佈的訊息發送給所有的訂閱者。在其他實施例中,全區所有者即為在全區環GR中負責滿足服務需求的節點。
以上圖2係主要說明如何決定標題T的全區所有者,而以下圖3將進一步說明當標題T的全區所有者決定後,後續電腦裝置150發出與標題T相關的訊息的實施例。而應可知標題T的全區所有者可透過圖2以外的方式來決定,而不影響圖3流程的進行,換言之,圖2所示的流程並不以要先進行圖3流程為必要。
發佈/訂閱訊息路由
步驟300:電腦裝置150從節點A-C(第一群SR1)與節點D-G(第二群SR2)之中決定了第一群SR1,並查找出標題T在第一群SR1中的區域所有者(例如第一群SR1中的節點A)。此部分可參考前述步驟202與204。
步驟302:電腦裝置150發送具有標題T的發佈/訂閱訊息,
並將此訊息路由至步驟300所決定出之節點A,以進行後續步驟304。
步驟304:作為標題T在第一群SR1中的區域所有者的節點A在收到電腦裝置150所發出具有標題T的發佈/訂閱訊息後,判斷其自身是否已經是標題T的全區所有者,若是,則進行到步驟320,由節點A擔任標題T在全區環GR上的全區所有者,依照電腦裝置150所發出之發佈/訂閱訊息的內容來更新標題T訂閱者的清單,或是將訊息發送給所有的訂閱者,若否則進行到步驟306。
步驟306:標題T在第一群SR1中的區域所有者的節點A將標題T以全區環GR的DHT進行雜湊運算而得到一位址值,而找到例如節點G,以詢問標題T在全區環GR的全區所有者。需注意的是,在此節點G係被設計為標題T在全區環GR上的代理者,負責記錄標題T在全區環GR上的全區所有者(不論標題T的全區所有者是如何決定出來的),並回應來自任一節點關於標題T的全區所有者的詢問。在此步驟中,節點A即可從節點G得知標題T的全區所有者(例如假設是節點D)的位址,並進行至步驟308。
步驟308:節點A得知標題T的全區所有者(假設是節點D)的位址後,則將電腦裝置150所發出的具有標題T的發佈/訂閱訊息(參見步驟302),轉送至節點D,並進行至步驟310,由節點D依照發佈/訂閱訊息的內容來更新標題T訂閱者的清單,或是將訊息發送給所有的訂閱者。
另一方面,在以上圖3(步驟306)中,係導入了代理者的概念,用以記錄標題T在全區環GR上的全區所有者。特別是代理者可透過將標題T進行雜湊計算而被唯一地決定出來,而不會輕易改變。相對地,標題T在全區環GR上的全區所有者就可以視需要而隨意或動態移轉,如以下圖4流程所示。但應可知圖4所示的流程並不以要先進行圖3流程為必要。
全區所有者移轉
步驟400:在此實施例中,係先假設當下標題T在全區環GR上的全區所有者為節點A。此外,依據上述圖3的說明,應可理解若另外有一電腦裝置(未圖示)位於美國,則其會在同樣位於美國的第二群SR2查找標題T在第二群SR2中的區域所有者(例如節點E)。由於代理者(例如節點G)記錄了標題T的全區所有者,因此節點E會向節點G詢問關於當下標題T的全區所有者。
步驟402:當節點G收到第二群SR2中的區域所有者節點E關於全區所有者的詢問,節點G判斷此時是否要進行全區所有者的移轉。此判斷可基於節點G所能偵測到之各式參數,或是由系統管理員所發出的指令,本發明並不欲加以限定。在一較佳實施例中,節點G可根據在一給定期間內節點E所發出關於全區所有者的詢問的次數(可代表來自節點E所在國家的服務連線數目)來決定是否要將全區所有者從節點A移轉給節點E。若此步驟判斷為否而不移轉全區所有者,則進行步驟404,節點G係將全區所有者節點A的位址提供給節點E,即如同圖3中之步驟306。若步驟402的判斷為是,則進行到步驟414。
步驟414:代理者節點G與節點A與節點E溝通,要求節點E取代節點A擔任全區所有者,並提供節點E的位址給節點A,以要求節點A將先前擔任全區所有者而所具有的資料(例如訂閱者清單)移交給新的全區所有者節點E,並更新記錄以供後續回覆關於何節點為全區所有者的詢問。
步驟416:節點E擔任全區所有者,並負擔後續工作任務。
圖5進一步顯示一電腦裝置500之硬體環境方塊圖,其可作為圖1中電腦裝置150或節點A-G。
在一實施例中,電腦裝置500具有處理器以執行專屬的應用程式;儲存裝置以儲存各種資訊及程式碼;通訊及輸出/入裝置做為與使用者溝通之介面;以及週邊元件或其他特定用途元件。在其他實施例中,本
發明亦可實施為其他的形式,而具有更多或更少之其他裝置或元件。
如圖5所示,電腦裝置500可具有處理器510、記憶體520與輸入/輸出(I/O)單元540。該輸入/輸出(I/O)匯流排可為一高速串接匯流排,例如PCI-e匯流排,但其它的匯流排架構亦可以被使用。其它對輸入/輸出(I/O)匯流排的連接可以藉由直接元件互連,或是透過附加卡的方式。輸入/輸出(I/O)單元也可耦接至一硬碟機550、區域網路(LAN)配接器560。透過該區域網路配接器560,電腦裝置500能經由一網路530與其他的電腦裝置通信。網路亦可實施為任何型式之連線,包括固定連接之區域網路(LAN)或廣域網路(WAN)連線,或利用網際網路服務提供者來暫時撥接至網際網路,亦不限於有線無線等各種連接方式,例如透過GSM、或Wi-Fi等無線網路與用戶端電腦通信。然而應了解,雖未繪示但其他硬體及軟體組件(例如額外電腦系統、路由器、防火牆等)可包含於網路之中。記憶體520可為隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除程式化唯讀記憶體(EPROM或快閃記憶體)。記憶體520用以存放作業系統、專屬的主程式AP之程式碼及各種資訊。作業系統在處理器510上執行,用來協調並提供電腦裝置500中各種元件的控制,而處理器510可存取記憶體520,以執行主程式AP。
熟此技藝者應可知,圖5中所述電腦裝置500的硬體可以依照不同的實施例而有各種變化。亦有其它的內部硬體或週邊裝置,例如快閃唯讀記憶體(Flash ROM)、等效的非揮發記憶體、或光碟機等等,可以附加或取代圖5所示的硬體。
在不脫離本發明精神或必要特性的情況下,可以其他特定形式來體現本發明。應將所述具體實施例各方面僅視為解說性而非限制性。因此,本發明的範疇如隨附申請專利範圍所示而非如前述說明所示。所有落在申請專利範圍之等效意義及範圍內的變更應視為落在申請專利範圍的範疇內。
Claims (13)
- 一種進行訊息路由的方法,實施於一電腦裝置中,該方法包含:透過一網路耦接一全區環,其中該全區環與一分散式雜湊表(DHT)相關(associated with)且具有複數個節點,該複數個節點預先被互斥地(exclusively)分群;從被分群的該複數個節點中決定出該第一群節點;根據該DHT,為一訊息在該第一群節點中查找出一第一節點,以作為該訊息路由的目的地。
- 如請求項1之方法,其中係根據該電腦裝置之一參數從被分群的該複數個節點中決定出該第一群節點。
- 如請求項2之方法,其中該參數係該電腦裝置在該網路中被分配到的識別碼。
- 如請求項2之方法,其中該參數係該電腦裝置所具有之裝置識別碼。
- 如請求項2之方法,其中該參數係該電腦裝置所偵測到自身的地理位置資料。
- 如請求項5之方法,其中該複數個節點係預先依據地理位置被分群,而根據該電腦裝置與每一群節點之地理鄰近度(geographical proximity)決定出該第一群節點。
- 一種在一全區環中處理訊息的方法,實施於該全區環中之一第一節點中,該全區環與一DHT相關且具有複數個節點,該方法包含: 接收由一電腦裝置透過一網路所發出,而以該第一節點為目的地路由至該第一節點之一訊息;判斷該第一節點是否已在該全區環中被指定為與該訊息相關之一全區所有者(global owner),其中該所有者係負責對該訊息進行一預定處理;當判斷出該第一節點還未被指定為該全區所有者,則為根據該DHT,為該訊息在該全區環中查找出一代理者(proxy),並詢問該代理者關於該全區所有者的資訊;因應該代理者所提供關於該全區所有者的資訊,將該訊息進一步路由至該全區所有者。
- 一種在一全區環中處理訊息的方法,實施於該全區環中之一第一節點中,該全區環與一DHT相關且具有複數個節點,該方法包含:接收由一電腦裝置透過一網路所發出,而以該第一節點為目的地路由至該第一節點之一訊息;判斷該第一節點是否已在該全區環中被指定為與該訊息相關之一全區所有者,其中該全區所有者係負責對該訊息進行一預定處理;當判斷出該第一節點還未被指定為該全區所有者,則為根據該DHT,為該訊息在該全區環中查找出一代理者,並詢問該代理者關於該全區所有者的資訊;因應該代理者指出之該全區所有者尚不存在的訊息,由該第一節點擔任該全區所有者,並對該訊息進行該預定處理。
- 一種在一全區環中處理訊息的方法,實施於該全區環中之一代理人節點中,該全區環與一DHT相關且具有複數個節點,該方法包含: 因應該全區環中一第一節點所發出關於該全區環中被指定為與一訊息相關之一全區所有者之詢問,判斷該全區所有者是否存在,其中該全區所有者係負責對該訊息進行一預定處理;若判斷出該全區所有者不存在,則允許該第一節點擔任該全區所有者,並記錄該第一節點已成為該全區所有者。
- 如請求項9之方法,更包含:若判斷出該全區所有者已存在,則提供關於該全區所有者的資訊給該第一節點。
- 一種在一全區環中處理訊息的方法,實施於該全區環中之一代理人節點中,該全區環與一DHT相關且具有複數個節點,該方法包含:因應該全區環中一第一節點所發出關於該全區環中被指定為與一訊息相關之一全區所有者之詢問,判斷該全區所有者是否存在,其中該全區所有者係負責對該訊息進行一預定處理;若判斷出該全區所有者已存在,則與現存的全區該所有者以及該第一節點溝通,以將該全區所有者變更為改由該第一節點擔任,藉此該第一節點對該訊息進行該預定處理,並記錄該第一節點已成為該全區所有者。
- 如請求項1至11項中之任一項所述之方法,其中該全區環係用以實現一發佈/訂閱(Publish/Subscribe)系統,而該訊息為一發佈/訂閱訊息。
- 一種儲存在一電腦可用媒體上之電腦程式產品,包含一電腦可讀程式,供於一電腦裝置上執行時,以實施如請求項1至11項中之任一項所述之方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103119183A TW201545510A (zh) | 2014-05-30 | 2014-05-30 | 在分散式計算系統中進行訊息路由的方法 |
US14/693,385 US9860171B2 (en) | 2014-05-30 | 2015-04-22 | Large scale message routing in a distributed network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103119183A TW201545510A (zh) | 2014-05-30 | 2014-05-30 | 在分散式計算系統中進行訊息路由的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201545510A true TW201545510A (zh) | 2015-12-01 |
Family
ID=54703077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103119183A TW201545510A (zh) | 2014-05-30 | 2014-05-30 | 在分散式計算系統中進行訊息路由的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9860171B2 (zh) |
TW (1) | TW201545510A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10019452B2 (en) * | 2015-05-19 | 2018-07-10 | Morgan Stanley | Topology aware distributed storage system |
US10657061B1 (en) * | 2017-09-29 | 2020-05-19 | Amazon Technologies, Inc. | Resource distribution using attributes of versioned hash rings |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119373A (en) * | 1990-02-09 | 1992-06-02 | Luxcom, Inc. | Multiple buffer time division multiplexing ring |
US7613796B2 (en) * | 2002-09-11 | 2009-11-03 | Microsoft Corporation | System and method for creating improved overlay network with an efficient distributed data structure |
US7266125B2 (en) * | 2002-10-31 | 2007-09-04 | Hewlett-Packard Development Company, L.P. | Landmark numbering based auxiliary network for peer-to-peer overlay network |
US7539771B2 (en) * | 2003-06-06 | 2009-05-26 | Microsoft Corporation | Organizational locality in prefix-based structured peer-to-peer overlays |
US8549180B2 (en) | 2004-10-22 | 2013-10-01 | Microsoft Corporation | Optimizing access to federation infrastructure-based resources |
US8095600B2 (en) | 2004-10-22 | 2012-01-10 | Microsoft Corporation | Inter-proximity communication within a rendezvous federation |
US20080130516A1 (en) * | 2004-12-21 | 2008-06-05 | Electronics And Telecommunications Research Institute | P2p Overplay Network Construction Method and Apparatus |
AU2005322833A1 (en) | 2005-01-06 | 2006-07-13 | Tervela, Inc. | A caching engine in a messaging system |
ATE460032T1 (de) * | 2005-07-28 | 2010-03-15 | Univ Berlin Tech | Kommunikationsnetz, verfahren zur leitweglenkung von datenpaketen sowie verfahren zum lokalisieren und sichern von daten einer gewünschten ressource in einem solchen kommunikationsnetz |
CN103546372A (zh) | 2006-11-27 | 2014-01-29 | 艾利森电话股份有限公司 | 用于提供覆盖网络的路由选择体系结构的方法和系统 |
US8345576B2 (en) * | 2007-06-19 | 2013-01-01 | Red Hat, Inc. | Methods and systems for dynamic subring definition within a multi-ring |
US8566423B2 (en) | 2007-11-22 | 2013-10-22 | International Business Machines Corporation | Scalable publish/subscribe messaging systems and methods |
US7865550B2 (en) | 2008-01-21 | 2011-01-04 | International Business Machines Corporation | Message processing control in a publish/subscribe system |
US20110307603A1 (en) | 2009-02-05 | 2011-12-15 | Nec Corporation | Broker node and event topic control method in distributed event distribution system |
US8301654B2 (en) * | 2009-02-24 | 2012-10-30 | Hitachi, Ltd. | Geographical distributed storage system based on hierarchical peer to peer architecture |
US8073978B2 (en) * | 2009-06-24 | 2011-12-06 | Microsoft Corporation | Proximity guided data discovery |
EP2491698B1 (en) * | 2009-10-21 | 2013-07-17 | Telefonaktiebolaget LM Ericsson (publ) | Method and arrangement for locating services in a peer-to-peer network |
US9313159B2 (en) | 2011-03-24 | 2016-04-12 | Red Hat, Inc. | Routing messages exclusively to eligible consumers in a dynamic routing network |
TW201251376A (en) * | 2011-06-09 | 2012-12-16 | Ind Tech Res Inst | Method and device for distribution of nodes, and computer program products thereof |
US9069761B2 (en) * | 2012-05-25 | 2015-06-30 | Cisco Technology, Inc. | Service-aware distributed hash table routing |
-
2014
- 2014-05-30 TW TW103119183A patent/TW201545510A/zh unknown
-
2015
- 2015-04-22 US US14/693,385 patent/US9860171B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9860171B2 (en) | 2018-01-02 |
US20150350079A1 (en) | 2015-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3993347A1 (en) | Method and device for application migration | |
RU2464722C2 (ru) | Способ, устройство и система для распределения сообщений | |
WO2019134648A1 (zh) | 一种控制面资源迁移的实现方法、装置及网络功能实体 | |
WO2015196815A1 (zh) | Ip硬盘与存储系统,及其数据操作方法 | |
US10757024B2 (en) | Load distribution apparatus, load distribution method and program | |
CN103634214A (zh) | 一种路由信息生成方法及装置 | |
US20140189082A1 (en) | Local Partitioning in a Distributed Communication System | |
JP2016111703A (ja) | 情報指向ネットワークにおけるコンテンツ配置 | |
US9350606B2 (en) | System and method for assigning server to terminal and efficiently delivering messages to the terminal | |
KR102219270B1 (ko) | Sdn 기반의 트래픽 처리 방법 | |
US9209991B1 (en) | Ad hoc networking | |
US11122131B1 (en) | Edge cloud resource location using enhanced DNS service | |
TW201545510A (zh) | 在分散式計算系統中進行訊息路由的方法 | |
CN108809795B (zh) | 一种局域网环境中透明分流方法和装置 | |
US10231269B2 (en) | Dynamic generation of geographically bound manet IDs | |
JPWO2016158846A1 (ja) | 端局装置及び帯域割当方法 | |
WO2016177135A1 (zh) | 资源管理方法、装置及控制终端 | |
RU2693326C1 (ru) | Способ для осуществления доступа к локальной сети и соответствующее устройство | |
KR102482518B1 (ko) | TURN 서버를 할당하는 방법, WebRTC 서버 및 WebRTC 시스템 | |
EP4057577A1 (en) | Addressing method, addressing system and addressing apparatus | |
KR102023115B1 (ko) | 통합형 id 기반의 통신 방법 및 통신 시스템 | |
WO2020031946A1 (ja) | 通知装置および通知方法 | |
CN105591870A (zh) | 一种隧道建立方法和装置 | |
WO2021227579A1 (zh) | 通信系统、服务器、通信方法和装置 | |
JP4282644B2 (ja) | 電話交換機主装置、電話交換機システム及び電話帳データ管理方法 |