基于半永久地址的消息尋址方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)通信,更確切地說涉及在互聯(lián)網(wǎng)中兩個服務(wù)域之間,基于半永 久地址的消息尋址方法,以及分布式HSvr。
【背景技術(shù)】
[0002] 在互聯(lián)網(wǎng)通信中,當(dāng)歸屬于一個歸屬服務(wù)器(HSvr,HomeServer)的用戶(IUsr, InternetUser)數(shù)量足夠多時(例如,騰訊的QQ用戶數(shù)量達(dá)到7億),或者這些用戶分布于 一個很大的地域范圍時,為了提高服務(wù)質(zhì)量,一般地,可以設(shè)置多個子服務(wù)器,來分別對相 應(yīng)的用戶提供服務(wù)。
[0003] 例如,所述HSvr包括若干子服務(wù)器。根據(jù)⑶ID(全球統(tǒng)一身份,GlobalUnified Identity)的UCode(用戶碼,UserCode),按照一定的映射關(guān)系,將歸屬于該HSvr的所有 IUsr的賬戶信息分別存放到不同的子服務(wù)器中,并按照該映射關(guān)系來尋址這些賬戶。參見 申請?zhí)枮?2146090. 6的《一種通過數(shù)據(jù)信息關(guān)鍵域存儲和讀取數(shù)據(jù)信息的方法》發(fā)明專 利。
[0004] 所述⑶ID可以是一個email地址,也可以是一個主從碼,也可以是一個影碼。關(guān) 于⑶ID和HSvr更多描述,參見申請?zhí)枮?01310037232.X的《通信方法和系統(tǒng)》發(fā)明專利, 以及申請?zhí)枮?01310049772.X的《影碼尋址方法》發(fā)明專利。
[0005] 每個賬戶都有一個賬戶地址(AccoAddr,AccountAddress),以用于賬戶尋址。
[0006] 一個GUID的源賬戶的AccoAddr為該GUID。
[0007]一個⑶ID的遷移賬戶的AccoAddr為該遷移賬戶對應(yīng)的跨域地址碼(CDAddr, Cross-domainAddress)。該GUID為該CDAddr的本基GUID(BaseGUID,TheBaseGUID), 該CDAddr的跨末HSvr信息(CeSvrDesc,Cross-endHSvrDescription)為該遷移賬戶所 在HSvr的一個歸屬碼(HCode,HomeCode)。關(guān)于HCode的更多描述,參見所述《通信方法 和系統(tǒng)》發(fā)明專利。關(guān)于CDAddr的更多描述,參見申請?zhí)枮?01310079118. 3的《支持⑶ID 遷移的網(wǎng)絡(luò)及相關(guān)消息處理方法》發(fā)明專利。
[0008] 每個AccoAddr都由一個地址基(AddrBase,AddressBase)和一個地址歸屬 (AddrHome,AddressHome)構(gòu)成。當(dāng)一個AccoAddr是一個GUID時,該AccoAddr的AddrBase 是該GUID的UCode,該AccoAddr的AddrHome是該GUID的HCode;當(dāng)一個AccoAddr是一個 CDAddr時,該AccoAddr的AddrBase是該CDAddr的BaseGUID,該AccoAddr的AddrHome是 該CDAddr的CeSvrDesc。例如對于AccoAddr值liubei@163.com來說,對應(yīng)的AddrBase是 liubei,對應(yīng)的AddrHome是 163.com。
[0009] 一個AccoAddr歸屬的HSvr為該AccoAddr的AddrHome所指向的HSvr。
[0010] 一個賬戶的AddrHome,是該賬戶的AccoAddr的AddrHome; -個賬戶的AddrBase, 是該賬戶的AccoAddr的AddrBase。
[0011] 對于網(wǎng)易163用戶:UsrA和UsrB來說,按照網(wǎng)易設(shè)置的映射關(guān)系,UsrA被映射到 網(wǎng)易北京的子服務(wù)器中,UsrB被映射到網(wǎng)易廣州的子服務(wù)器中。UsrC為騰訊qq用戶,按照 騰訊設(shè)置的映射關(guān)系,UsrC被映射到騰訊上海的子服務(wù)器中。
[0012] 在UsrC給UsrB發(fā)送消息時,騰訊上海的子服務(wù)器可能會按照就近接入方式,將消 息發(fā)送給網(wǎng)易南京的子服務(wù)器。網(wǎng)易南京的子服務(wù)器收到該消息后,根據(jù)網(wǎng)易的映射關(guān)系, 確定UsrB在網(wǎng)易廣州的子服務(wù)器中,將該消息發(fā)送給網(wǎng)易廣州的子服務(wù)器,而后再由網(wǎng)易 廣州的子服務(wù)器將該消息發(fā)送給UsrB。
[0013] 由于UsrB被映射關(guān)系映射到網(wǎng)易廣州的子服務(wù)器中,雖然,UsrB對應(yīng)的用戶長 期居住北京,在UsrB每次登錄自己的賬戶時,還只能遠(yuǎn)程訪問網(wǎng)易廣州的子服務(wù)器。針對 所述遠(yuǎn)程訪問,可以在網(wǎng)易廣州的子服務(wù)器中登記UsrB的漫游子服務(wù)器。這樣,UsrB在北 京時,可以在網(wǎng)易廣州的子服務(wù)器中登記UsrB當(dāng)前漫游的子服務(wù)器,即網(wǎng)易北京的子服務(wù) 器,并將UsrB的賬戶信息保存到網(wǎng)易北京的子服務(wù)器中。這樣,UsrB在北京登入自己的賬 戶時,就可以直接登入網(wǎng)易北京的子服務(wù)器。
[0014] 在支持UsrB漫游到北京的情況下,在UsrC給UsrB發(fā)送消息時,騰訊上海的子服 務(wù)器按照就近接入方式,將消息發(fā)送給網(wǎng)易南京的子服務(wù)器。網(wǎng)易南京的子服務(wù)器收到該 消息后,根據(jù)網(wǎng)易的映射關(guān)系,將該消息發(fā)送給網(wǎng)易廣州的子服務(wù)器,網(wǎng)易廣州的子服務(wù)器 判斷UsrB漫游到北京,于是,再將該消息轉(zhuǎn)發(fā)到網(wǎng)易北京的子服務(wù)器,由網(wǎng)易北京的子服 務(wù)器將該消息發(fā)送給UsrB。這樣,就產(chǎn)生了消息的迂回,從而影響消息傳送效率。
[0015] 網(wǎng)易南京的子服務(wù)器在收到所述消息后,根據(jù)網(wǎng)易的映射關(guān)系,也可以是從網(wǎng)易 廣州的子服務(wù)器中查詢UsrB的漫游信息,而后根據(jù)該漫游信息發(fā)送消息。例如,如果UsrB 沒有漫游,則直接將所述消息發(fā)送給網(wǎng)易廣州的子服務(wù)器,由網(wǎng)易廣州的子服務(wù)器將該消 息發(fā)送給UsrB;如果漫游,例如漫游到網(wǎng)易北京的子服務(wù)器,則根據(jù)獲取的網(wǎng)易北京的子 服務(wù)器的路由相關(guān)信息,直接將所述消息發(fā)送到網(wǎng)易北京的子服務(wù)器,由網(wǎng)易北京的子服 務(wù)器將該消息發(fā)送給UsrB。這樣,也會影響消息傳送效率,并影響相關(guān)子服務(wù)器的處理效 率。
[0016] 針對上述跨服務(wù)域間的消息發(fā)送中消息迂回或漫游查詢,對消息傳送效率所產(chǎn)生 的影響,在申請?zhí)枮?01410098231. 0的《基于半永久地址的消息發(fā)送方法》發(fā)明專利中提 出了基于半永久地址的消息發(fā)送方法。該方法先獲取目的HSvr中目的賬戶所在的駐地服 務(wù)器(RSvr,Residence Server)所對應(yīng)的駐地碼(RCode,Residence Code)。在向所述目的 賬戶發(fā)送消息時,按照該目的賬戶的AccoAddr和所述RCode所對應(yīng)的半永久地址(SPAddr, Semi-permanent Address)或半永久email地址(SPEmailAddr, Semi-permanent email Address),來將該消息直接發(fā)送給該目的賬戶所在的RSvr,從而提高了消息傳送效率。
[0017] 一個賬戶的SPAddr包括該賬戶的AccoAddr和該賬戶所在RSvr被指配的RCode 等兩部分。一個SPAddr可以寫成(AccoAddr,RCode)形式。
[0018] 一個HSvr所擁有的HCode可以是域名,一個AccoAddr可以是一個email地址。
[0019] 例如,網(wǎng)易的HSvr所擁有的HCode是域名163. com,該HSvr包括一個駐地識別服 務(wù)器(RIDSvr,Residence Identification Server)和四個RSvr。其中,位于北京的RSvr 為RSvr-10,位于廣州的RSvr為RSvr-20,位于上海的RSvr為RSvr-21,位于成都的RSvr為 RSvr-28,被指配的RCode分別為10、20、21、28。在域名系統(tǒng)(0呢,0〇1^丨11似1116 578七6111) 中,將10. 163. com、20. 163. com、21. 163. com、28. 163. com等四個域名分別指向這四個RSvr 的主機IP地址,將域名163. com指向所述RIDSvr的主機IP地址。
[0020] Liubei的賬戶的AccoAddr值為email地址liubei@163.com,該賬戶處于RSvr-28 中。那么Liubei的賬戶的SPAddr值就是(liubei@163.com,28)。
[0021] 在所述RIDSvr中,根據(jù)AccoAddr值liubei@163.com登記的RCode值為 28。
[0022] Machao需要長期和liubei通信。
[0023]machao這一側(cè)RSvr先解析AccoAddr值liubei@163.com的域名,得到所述RIDSvr 的主機IP地址,向該RIDSvr發(fā)送駐地識別請求,請求中攜帶AccoAddr值liubei@163.com, 所述RIDSvr收到該消息后,查找到AccoAddr值liubei@163.com對應(yīng)的RCode為28,將 RCode值28回復(fù)給machao這一側(cè)。
[0024] 這樣,machao這一側(cè),在給liubei發(fā)送消息時,就可以用AccoAddr值 11詘6丨@163.(3〇111和1?(:〇(16值28所對應(yīng)的5?4(1(11'值(11油61@163.(3〇111,28)來發(fā)送消息。例 如,解析3?八(1(11'值(11油61@163.(3〇111,28)所對應(yīng)的域名 28.163.(3〇111,得到1?¥1-28的1?地 址,將相應(yīng)的消息直接發(fā)送給RSvr-28。
[0025] 相關(guān)的更多描述,參見所述《基于半永久地址的消息發(fā)送方法》發(fā)明專利。
[0026] 在根據(jù)一個SPAddr或一個SPEmailAddr發(fā)送消息時,由于需要解析相應(yīng)SPAddr 或SPEmailAddr所對應(yīng)的域名,以獲得所述目的RSvr的IP地址,因此,為了提高域名解析 效率,一般地,會在本地緩存域名解析結(jié)果,以便下次使用。但是,由于一個HSvr中,可能存 在眾多的RSvr,因此,對應(yīng)于消息發(fā)送側(cè),需要緩存的域名解析結(jié)果就會成倍增加,從而影 響到檢索效率。
[0027] 另外,從一個HSvr給另一個HSvr中的各個RSvr中的相應(yīng)賬戶發(fā)送消息時,由于 是直接將該消息發(fā)送給相應(yīng)的RSvr,因此,兩個服務(wù)域之間可能需要建立的通信連接將會 成倍增加。例如,騰訊服務(wù)域的HSvr中有RSvr-A10、RSvr-A25和RSvr-A29等三個RSvr,網(wǎng) 易服務(wù)域的HSvr中有RSvr-B10、RSvr-B20、RSvr-B21 和RSvr-B28 等四個RSvr,如圖 1 所 示,為兩個HSvr間連接實例圖,那么,兩個服務(wù)域間可能需要建立的通信連接將會達(dá)到12 個。盡快這12個通信連接可能不會同時存在,但每個連接的兩端,對應(yīng)的都是不同的RSvr。 這樣,就不利于兩個HSvr間接口的管理,例如,未來可能要考慮服務(wù)域間的通信安全,防止 欺詐者接入等。
【發(fā)明內(nèi)容】
[0028] 有鑒于此,本發(fā)明公開一種基于半永久地址的消息尋址方法,用于跨服務(wù)域間的 消息尋址。按照該方法,由于源RSvr通過其它HSvr中的一個GSvr即可向所述其它HSvr 中任一RSvr中任一賬戶發(fā)送消息,因此,簡化了所述源RSvr與所述其它HSvr的通信接口。
[0029] 一種基于半永久地址的消息尋址方法,所述消息的目的地址是SPAddr;該方法包 括以下步驟:
[0030]a、源RSvr根據(jù)消息的目的SPAddr的HCode確定目的GSvr,將所述消息發(fā)送給所 述目的GSvr;
[0031]b、所述目的GSvr收到所述消息后,根據(jù)所述SPAddr的RCode確定目的RSvr,將所 述消息發(fā)送給所述目的RSvr,消息的目的地址包括所述SPAddr的AccoAddr;
[0032] 步驟c、所述目的RSvr收到所述消息后,根據(jù)所述目的AccoAddr確定目標(biāo)賬戶。
[0033] 一種消息處理方法,用于GSvr處理來自其它HSvr的包括目的SPAddr的消息或用 于RSvr處理來自客戶端的包括目的SPAddr的消息,該方法包括以下步驟:
[0034] a、根據(jù)所述SPAddr的RCode確定目的RSvr;
[0035] b、將所述消息發(fā)送給所述目的RSvr,消息的目的地址包括所述SPAddr的 AccoAddr。
[0036] 一種回復(fù)消息處理方法,用于GSvr處理來自本HSvr的RSvr的包括目的SPAddr 的回復(fù)消息,該方法包括以下步驟:
[0037] a、根據(jù)所述SPAddr的RSvrCompDesc確定目的RSvr;
[0038] b、將所述回復(fù)消息發(fā)送給所確定的RSvr。
[0039] 一種消息處理方法,用于處理來自客戶端的包括目的SPAddr的消息,該方法包括 以下步驟:
[0040] a、源RSvr判斷是否擁有所述SPAddr的HCode,如果不是,根據(jù)所述SPAddr的 HCode確定目的GSvr,將所述消息發(fā)送給所述目的GSvr。
[0041] 所述根據(jù)所述SPAddr的HCode確定目的GSvr進(jìn)一步是:解析所述SPAddr的 HCode所對應(yīng)的域名,得到相應(yīng)ARSvr的IP地址;根據(jù)所述IP地址,向相應(yīng)ARSvr發(fā)送輔 助解析請求,請求中攜帶GI數(shù)據(jù);所述ARSvr收到所述輔助解析請求后,根據(jù)其中攜帶的 GI數(shù)據(jù),獲取相應(yīng)GSvr的IP地址,將該IP地址回復(fù)給所述請求側(cè)