專(zhuān)利名稱(chēng):一種基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)服務(wù)定位方法,尤其涉及一種網(wǎng)絡(luò)設(shè)備通過(guò)角色轉(zhuǎn)換和設(shè)備 間的自學(xué)習(xí)來(lái)獲取服務(wù)位置信息的定位方法,屬于網(wǎng)絡(luò)設(shè)備自動(dòng)配置技術(shù)領(lǐng)域。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多的網(wǎng)絡(luò)設(shè)備開(kāi)始出現(xiàn)。但是,網(wǎng)絡(luò)設(shè)備普遍存在配 置復(fù)雜的問(wèn)題。這在一定程度上限制了網(wǎng)絡(luò)設(shè)備在更大范圍的應(yīng)用。網(wǎng)絡(luò)設(shè)備自動(dòng)配置技 術(shù)的出現(xiàn)使得這個(gè)問(wèn)題迎刃而解。網(wǎng)絡(luò)設(shè)備自動(dòng)配置技術(shù)分為網(wǎng)絡(luò)設(shè)備本地地址獲取、遠(yuǎn)端服務(wù)的位置發(fā)現(xiàn)與定位 兩大步驟。目前,比較成熟的自動(dòng)配置技術(shù)體系有UPnP論壇發(fā)布的通用即插即用(UPnP) 技術(shù)以及IETF kroconf工作組提出的零配置(Zeroconf)技術(shù)。二者都涉及到IP地址自 動(dòng)分配與獲取、網(wǎng)絡(luò)服務(wù)的發(fā)現(xiàn)與定位、NAT穿越等技術(shù)細(xì)節(jié)。SLP(Service Location Protocol)服務(wù)定位協(xié)議是一種在局域網(wǎng)或廣域網(wǎng)中使 用的動(dòng)態(tài)配置協(xié)議,客戶機(jī)可以通過(guò)使用服務(wù)類(lèi)型和屬性來(lái)尋找網(wǎng)絡(luò)服務(wù)(簡(jiǎn)稱(chēng)服務(wù))。 SLP有三種角色服務(wù)代理SA(ServiceAgent)、用戶代理UA (User Agent)和可選的目錄代 理DA(DirectoryAgent)。用戶代理UA代表應(yīng)用程序通過(guò)查詢(xún)服務(wù)的操作來(lái)定位服務(wù),UA 可以直接向SA或者DA查詢(xún)某種類(lèi)型服務(wù)。服務(wù)代理SA代表提供某種類(lèi)型服務(wù)的應(yīng)用程 序來(lái)應(yīng)答UA的查詢(xún)請(qǐng)求,或者當(dāng)網(wǎng)絡(luò)中存在目錄代理DA時(shí),服務(wù)代理SA代表提供某種類(lèi) 型服務(wù)的應(yīng)用程序向目錄代理DA注冊(cè)該種類(lèi)型的服務(wù),以供用戶代理UA向目錄代理DA查 詢(xún)?cè)摲N類(lèi)型服務(wù)時(shí)能夠得到該種類(lèi)型服務(wù)的具體位置??蛇x擇的目錄代理DA —方面接受 服務(wù)代理SA的服務(wù)位置注冊(cè),一方面接受用戶代理UA的服務(wù)位置查詢(xún),并對(duì)該服務(wù)查詢(xún)請(qǐng) 求返回所查詢(xún)的服務(wù)的具體位置。在用戶代理UA獲取某種類(lèi)型的服務(wù)位置時(shí),根據(jù)網(wǎng)絡(luò)中存不存在目錄代理DA,可 以分為兩種情況1.網(wǎng)絡(luò)中不存在DA的情況此時(shí),UA通過(guò)發(fā)送SrvRqst消息來(lái)查詢(xún)某一服務(wù),并在這條SrvRqst消息指出服務(wù) 的類(lèi)型、屬性等,SA會(huì)回應(yīng)一條SrvR印Iy消息告知UA所查詢(xún)到的服務(wù)記錄及其位置。UA 可以直接使用多播方式發(fā)送SrvRqst消息。如果網(wǎng)絡(luò)中有SA接收到該消息并且SA記錄有 符合該條查詢(xún)消息所查詢(xún)的服務(wù)類(lèi)型的話,SA就會(huì)通過(guò)單播回應(yīng)一條SrvReply告知UA該 服務(wù)的URL等信息。2.網(wǎng)絡(luò)中存在DA的情況首先,SA通過(guò)發(fā)送SrvReg消息告知DA自己所提供的服務(wù)類(lèi)型,DA對(duì)此回應(yīng)一個(gè) SrvAck消息,從而完成該類(lèi)型服務(wù)的注冊(cè)。在某個(gè)UA需要查詢(xún)?cè)擃?lèi)服務(wù)時(shí),UA需要使用單 播消息來(lái)向DA查詢(xún)服務(wù)的位置。在有DA存在的網(wǎng)絡(luò)中,SA和UA還需要先確定DA的位置, 即DA服務(wù)本身的定位。UA和SA對(duì)DA的發(fā)現(xiàn)既可以使用主動(dòng)發(fā)現(xiàn)方式也可以使用被動(dòng)發(fā) 現(xiàn)方式,當(dāng)采用主動(dòng)發(fā)現(xiàn)方式時(shí),UA或者SA通過(guò)多播發(fā)送一條SrvRqst消息,將這個(gè)消息
3中的請(qǐng)求服務(wù)類(lèi)型為“service directory-agent”,這樣當(dāng)DA接收到該條SrvRqst消息后 它會(huì)回應(yīng)一條DAAdvert消息告知SA和UA自己的DA服務(wù)URL ;采用被動(dòng)方式發(fā)現(xiàn)DA時(shí), SA和UA在SLP組播地址偵聽(tīng),DA定期向組播地址發(fā)送DAAdvert消息宣告自己的存在。但是,在現(xiàn)有的網(wǎng)絡(luò)服務(wù)定位方法中,如果SA或者DA出現(xiàn)故障,會(huì)造成整個(gè)業(yè)務(wù) 的癱瘓。另一方面,現(xiàn)有的網(wǎng)絡(luò)服務(wù)定位方法需要集中配置服務(wù)器,一旦配置發(fā)生變化則需 要對(duì)網(wǎng)絡(luò)中的所有網(wǎng)絡(luò)設(shè)備一一進(jìn)行修改,工作量很大。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供一種基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法。該 方法通過(guò)網(wǎng)絡(luò)設(shè)備在服務(wù)代理SA與用戶代理UA之間的角色轉(zhuǎn)換,并通過(guò)網(wǎng)絡(luò)設(shè)備之間的 自學(xué)習(xí),實(shí)現(xiàn)對(duì)遠(yuǎn)端服務(wù)的位置發(fā)現(xiàn)與定位。為實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明采用下述的技術(shù)方案一種基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法,其特征在于在網(wǎng)絡(luò)設(shè)備進(jìn)入網(wǎng)絡(luò)系統(tǒng)之后,如果網(wǎng)絡(luò)系統(tǒng)中已經(jīng)存在服務(wù)代理,則所述網(wǎng)絡(luò) 設(shè)備的角色確定為用戶代理,此時(shí)所述網(wǎng)絡(luò)設(shè)備從收到的SrvAck消息中獲取所述服務(wù)代 理的位置,發(fā)送SrvRqst請(qǐng)求消息給所述服務(wù)代理以獲取網(wǎng)絡(luò)系統(tǒng)中的服務(wù)位置信息,所 述服務(wù)代理回復(fù)SrvRply消息,在所述SrvRply消息中攜帶用戶代理所請(qǐng)求的服務(wù)的位置 信息,從而實(shí)現(xiàn)所述網(wǎng)絡(luò)設(shè)備從已有網(wǎng)絡(luò)設(shè)備處獲取服務(wù)位置信息;所述網(wǎng)絡(luò)設(shè)備檢測(cè)到服務(wù)位置信息發(fā)生改變后,發(fā)送表示強(qiáng)制搶占的SrvReg消 息來(lái)嘗試搶占服務(wù)代理角色;另一用戶代理收到所述SrvReg消息后,一方面用新的服務(wù)代 理信息替換掉原有的服務(wù)代理信息,另一方面使用所述SrvReg消息中的服務(wù)位置信息更 新原有的服務(wù)位置信息;原有服務(wù)代理收到所述SrvReg消息后,一方面轉(zhuǎn)換角色至用戶代 理,另一方面使用所述SrvReg消息中的服務(wù)位置信息更新原有的服務(wù)位置信息。在網(wǎng)絡(luò)設(shè)備啟動(dòng)后,所述網(wǎng)絡(luò)設(shè)備根據(jù)是否預(yù)置了某種類(lèi)型服務(wù)的位置信息決定 其角色,在存在預(yù)置的情況下作為服務(wù)代理,在不存在預(yù)置的情況下作為用戶代理。所述網(wǎng)絡(luò)設(shè)備在存在預(yù)置的情況下,通過(guò)組播方式發(fā)送表示非強(qiáng)制搶占的SrvReg 消息,如果所述網(wǎng)絡(luò)設(shè)備收到對(duì)所述SrvReg消息的回應(yīng)消息,且回應(yīng)消息中的狀態(tài)代碼字 段攜帶了搶占失敗的錯(cuò)誤信息,此時(shí)表示網(wǎng)絡(luò)系統(tǒng)中已經(jīng)存在服務(wù)代理,啟用服務(wù)代理角 色失敗。如果連續(xù)三個(gè)SrvReg消息的周期內(nèi)沒(méi)有收到回應(yīng),認(rèn)為網(wǎng)絡(luò)系統(tǒng)內(nèi)沒(méi)有服務(wù)代 理,所述網(wǎng)絡(luò)設(shè)備停止發(fā)送SrvReg消息,并且啟動(dòng)服務(wù)代理角色。對(duì)于發(fā)送表示強(qiáng)制搶占的SrvReg消息的網(wǎng)絡(luò)設(shè)備而言,當(dāng)所述網(wǎng)絡(luò)設(shè)備收到表 示搶占成功的SrvAck消息后,立即停止發(fā)送表示強(qiáng)制搶占的SrvReg消息,并且轉(zhuǎn)換角色至 服務(wù)代理。如果在連續(xù)三個(gè)SrvReg消息的周期內(nèi)沒(méi)有收到回應(yīng),所述網(wǎng)絡(luò)設(shè)備轉(zhuǎn)換角色至 服務(wù)代理。作為服務(wù)代理的網(wǎng)絡(luò)設(shè)備定期以組播方式發(fā)送表示非強(qiáng)制搶占的SrvReg消息, 收到表示非強(qiáng)制搶占的SrvReg消息的另一服務(wù)代理比較SrvReg消息里的時(shí)間戳信息;如果服務(wù)修改時(shí)間戳信息比自己的信息舊,則發(fā)送一條回應(yīng)消息,而且回應(yīng)消息 中的狀態(tài)代碼字段攜帶有搶占失敗的錯(cuò)誤信息;反之,另一服務(wù)代理轉(zhuǎn)換角色至用戶代理,
4且使用SrvReg消息中的服務(wù)位置信息來(lái)更新自己的信息。與傳統(tǒng)的網(wǎng)絡(luò)服務(wù)定位方法相比,本發(fā)明所提供的網(wǎng)絡(luò)服務(wù)定位方法具有如下的 特點(diǎn)1)本網(wǎng)絡(luò)服務(wù)定位方法不要求網(wǎng)絡(luò)中有單獨(dú)的目錄代理DA存在,不要求網(wǎng)絡(luò)中 對(duì)于每種類(lèi)型服務(wù)都提供一個(gè)單獨(dú)的SA ;2)本網(wǎng)絡(luò)服務(wù)定位方法通過(guò)對(duì)等網(wǎng)絡(luò)設(shè)備間的角色轉(zhuǎn)換實(shí)現(xiàn)所有網(wǎng)絡(luò)設(shè)備對(duì)網(wǎng) 絡(luò)上的某種類(lèi)型服務(wù)的定位,適合對(duì)數(shù)量比較大的網(wǎng)絡(luò)設(shè)備的操作;3)本網(wǎng)絡(luò)服務(wù)定位方法通過(guò)網(wǎng)絡(luò)設(shè)備之間的自學(xué)習(xí)實(shí)現(xiàn)了簡(jiǎn)化配置的功能,因此 不需要集中配置服務(wù)器,也不需要對(duì)網(wǎng)絡(luò)中所有網(wǎng)絡(luò)設(shè)備一一進(jìn)行修改;4)如果網(wǎng)絡(luò)中有個(gè)別網(wǎng)絡(luò)設(shè)備出現(xiàn)損壞,不會(huì)對(duì)整個(gè)業(yè)務(wù)造成影響。
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。圖1為一個(gè)典型網(wǎng)絡(luò)系統(tǒng)的拓?fù)浣Y(jié)構(gòu)示意圖;圖2顯示了在網(wǎng)絡(luò)設(shè)備的初始化階段確定角色的一個(gè)例子;圖3顯示了一個(gè)新進(jìn)入的網(wǎng)絡(luò)設(shè)備獲取服務(wù)位置信息的例子;圖4顯示了一個(gè)修改了服務(wù)位置信息后發(fā)生角色轉(zhuǎn)換的例子;圖5顯示了一個(gè)角色沖突檢測(cè)與解決的例子。
具體實(shí)施例方式圖1為用于實(shí)施本網(wǎng)絡(luò)服務(wù)定位方法的一個(gè)典型網(wǎng)絡(luò)系統(tǒng)的拓?fù)浣Y(jié)構(gòu)示意圖,其 中□表示服務(wù)提供者,而Δ表示服務(wù)使用者。在本發(fā)明中,對(duì)于某種類(lèi)型的服務(wù)來(lái)說(shuō),在某 一特定時(shí)刻,網(wǎng)絡(luò)設(shè)備的角色只能是服務(wù)代理SA或用戶代理UA 二者之中的一種。而且在 同一網(wǎng)絡(luò)中,某一時(shí)刻作為某種類(lèi)型服務(wù)的服務(wù)代理SA角色的網(wǎng)絡(luò)設(shè)備有且只有一臺(tái)。下面,以一個(gè)網(wǎng)絡(luò)設(shè)備通過(guò)角色轉(zhuǎn)換和網(wǎng)絡(luò)設(shè)備之間的自學(xué)習(xí)來(lái)獲取服務(wù)位置信 息的完整過(guò)程為例對(duì)本網(wǎng)絡(luò)服務(wù)定位方法進(jìn)行詳細(xì)的說(shuō)明。該完整過(guò)程包括網(wǎng)絡(luò)設(shè)備的初 始化階段,網(wǎng)絡(luò)設(shè)備進(jìn)入圖1所示的網(wǎng)絡(luò)系統(tǒng)、獲取服務(wù)位置信息的階段,網(wǎng)絡(luò)設(shè)備接入網(wǎng) 絡(luò)系統(tǒng)后的強(qiáng)制更新階段以及出現(xiàn)角色沖突時(shí)的檢測(cè)階段等。1)網(wǎng)絡(luò)設(shè)備的初始化階段在網(wǎng)絡(luò)設(shè)備上電初始化時(shí),首先需要確定一個(gè)角色。這里可以分為兩種情況第一種情況當(dāng)網(wǎng)絡(luò)設(shè)備啟動(dòng)后,如果其中某臺(tái)網(wǎng)絡(luò)設(shè)備預(yù)置了某種類(lèi)型服務(wù)的 位置信息,那么它會(huì)嘗試作為服務(wù)代理SA去嘗試激活SA功能。嘗試的過(guò)程是通過(guò)組播方 式發(fā)送表示非強(qiáng)制搶占的SrvReg消息來(lái)實(shí)現(xiàn)的。這個(gè)SrvReg消息里搶占類(lèi)型字段為“非 強(qiáng)制”,服務(wù)修改時(shí)間戳信息設(shè)置為0,且?guī)в性摲N類(lèi)型服務(wù)的服務(wù)位置信息。如果網(wǎng)絡(luò)設(shè)備 收到了對(duì)該消息的回應(yīng)消息SrvAck,且作為回應(yīng)的SrvAck消息中的狀態(tài)代碼字段攜帶了 搶占失敗的錯(cuò)誤信息的話,表示網(wǎng)絡(luò)中已經(jīng)存在SA,啟用SA角色失敗。此時(shí),網(wǎng)絡(luò)設(shè)備立 即停止嘗試并啟用用戶代理UA的角色。如果在嘗試過(guò)程中連續(xù)三個(gè)SrvReg消息周期內(nèi)都 沒(méi)有收到回應(yīng),此時(shí)認(rèn)為網(wǎng)絡(luò)內(nèi)沒(méi)有作為服務(wù)代理SA的網(wǎng)絡(luò)設(shè)備,該網(wǎng)絡(luò)設(shè)備將停止發(fā)送 SrvReg消息,并且啟動(dòng)SA角色,開(kāi)始提供SA服務(wù)。
第二種情況當(dāng)網(wǎng)絡(luò)設(shè)備啟動(dòng)后,如果該網(wǎng)絡(luò)設(shè)備沒(méi)有預(yù)置某種類(lèi)型服務(wù)的位置 信息,那么它會(huì)直接激活UA功能,扮演UA的角色。圖2顯示了一個(gè)初始化時(shí)確定角色的例子,圖中網(wǎng)絡(luò)設(shè)備B、C、D已經(jīng)初始化成功 且確認(rèn)了 B為SA。如果網(wǎng)絡(luò)系統(tǒng)中有回應(yīng)該SrvAck消息且攜帶有搶占失敗內(nèi)容的消息,說(shuō) 明網(wǎng)絡(luò)中已經(jīng)有SA存在。此時(shí)的網(wǎng)絡(luò)設(shè)備A初始化后將確定使用UA角色。2)新網(wǎng)絡(luò)設(shè)備進(jìn)入網(wǎng)絡(luò)系統(tǒng)的階段當(dāng)網(wǎng)絡(luò)中已有的網(wǎng)絡(luò)設(shè)備的角色確定好之后,如果又有新網(wǎng)絡(luò)設(shè)備進(jìn)入該網(wǎng)絡(luò), 由于此時(shí)網(wǎng)絡(luò)中已有SA角色,所以該網(wǎng)絡(luò)設(shè)備的角色確定為UA,且已經(jīng)在初始化階段確定 角色時(shí)收到的SrvAck消息中獲取SA的位置。該新進(jìn)入的UA通過(guò)單播發(fā)送SrvRqst請(qǐng)求 消息給SA來(lái)“學(xué)習(xí)”到網(wǎng)絡(luò)中關(guān)于某種類(lèi)型服務(wù)的位置信息。在這個(gè)SrvRqst請(qǐng)求消息里 帶有該種服務(wù)的類(lèi)型,與之前SrvReg消息里的服務(wù)的類(lèi)型相同。SA對(duì)該消息回復(fù)SrvRply 消息,并在該消息里攜帶UA所請(qǐng)求的服務(wù)的位置信息,從而實(shí)現(xiàn)新進(jìn)入網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備 從已有網(wǎng)絡(luò)設(shè)備那里“學(xué)習(xí)”到最新的服務(wù)的位置信息。圖3顯示了一個(gè)新進(jìn)入的網(wǎng)絡(luò)設(shè)備獲取某種類(lèi)型服務(wù)位置信息的例子。圖中網(wǎng)絡(luò) 設(shè)備B、C、D已經(jīng)存在于網(wǎng)絡(luò)中,且B的角色為SA。網(wǎng)絡(luò)設(shè)備A初始化后確定角色為UA,它 通過(guò)上述的步驟獲取某種類(lèi)型服務(wù)的位置信息。3)強(qiáng)制更新階段網(wǎng)絡(luò)設(shè)備接入網(wǎng)絡(luò)系統(tǒng)之后,如果需要對(duì)網(wǎng)絡(luò)系統(tǒng)中的某種類(lèi)型服務(wù)的位置信息 進(jìn)行調(diào)整,管理員可以任意選取某網(wǎng)絡(luò)設(shè)備(不論網(wǎng)絡(luò)設(shè)備的角色是UA還是SA)通過(guò)該網(wǎng) 絡(luò)設(shè)備提供的任意配置方式(本方式除外)修改該服務(wù)的位置信息。此處的位置信息在一 般情況下是服務(wù)的URL信息。該網(wǎng)絡(luò)設(shè)備檢測(cè)到該類(lèi)型服務(wù)的位置信息發(fā)生改變后,會(huì)通過(guò)組播發(fā)送一條表示 強(qiáng)制搶占的SrvReg消息來(lái)嘗試搶占SA角色。在這條SrvReg消息里,搶占類(lèi)型字段為“強(qiáng) 制”,時(shí)間戳信息設(shè)置為檢測(cè)到服務(wù)位置信息發(fā)生改變的時(shí)刻,且?guī)в性摲N類(lèi)型服務(wù)的服務(wù) 位置信息。此時(shí),根據(jù)網(wǎng)絡(luò)設(shè)備的角色不同,分為兩種情況第一種情況,UA接收到了該消息。UA收到該條SrvReg消息后,一方面用新的SA 信息替換掉原有的SA信息,以便在后續(xù)與SA的交互過(guò)程中使用。另一方面,使用SrvReg 消息中的服務(wù)位置信息更新原有的該類(lèi)型服務(wù)的位置信息。第二種情況,SA接收到了該消息。SA收到該條表示強(qiáng)制搶占的SrvReg消息后,一 方面轉(zhuǎn)換角色至UA,并且回應(yīng)一條表示搶占成功的SrvAck消息。該SrvAck消息內(nèi)的狀態(tài) 代碼字段攜帶搶占成功的信息。另一方面,使用SrvReg消息中的服務(wù)位置信息更新原有的 該類(lèi)型服務(wù)的位置信息。對(duì)于發(fā)送表示強(qiáng)制搶占的SrvReg消息的網(wǎng)絡(luò)設(shè)備來(lái)說(shuō),當(dāng)它收到表示搶占成功 的SrvAck消息回應(yīng)后,立即停止發(fā)送表示強(qiáng)制搶占的SrvReg消息,并且轉(zhuǎn)換角色至SA。如 果在連續(xù)三個(gè)表示強(qiáng)制搶占的SrvReg消息周期內(nèi)沒(méi)有收到回應(yīng),該網(wǎng)絡(luò)設(shè)備也轉(zhuǎn)換角色 至SA。圖4顯示了一個(gè)修改了服務(wù)位置信息后發(fā)生角色轉(zhuǎn)換的例子。圖中,網(wǎng)絡(luò)設(shè)備A、 B、C、D存在于一個(gè)網(wǎng)絡(luò)內(nèi),且B為SA。管理員修改D的服務(wù)位置信息后,D轉(zhuǎn)換為SA,B轉(zhuǎn) 換為UA,且A、B、C都開(kāi)始使用D提供的該類(lèi)型服務(wù)的位置信息。
6
4)角色沖突檢測(cè)階段考慮到各種意外,網(wǎng)絡(luò)中如果有兩個(gè)以上的SA同時(shí)存在時(shí),會(huì)出現(xiàn)角色沖突的情 況。由于SA會(huì)定期以組播方式發(fā)送表示非強(qiáng)制搶占的SrvReg消息,這個(gè)過(guò)程與上述初始 化階段中角色確定的過(guò)程類(lèi)似。該SrvReg消息攜帶有表示服務(wù)位置信息修改的時(shí)間戳信 息,收到表示非強(qiáng)制搶占的SrvReg消息的SA會(huì)比較SrvReg消息里的時(shí)間戳信息,如果服 務(wù)修改時(shí)間戳信息比自己的該信息舊,則發(fā)送一條回應(yīng)消息SrvAck,而且SrvAck消息中的 狀態(tài)代碼字段攜帶有搶占失敗的錯(cuò)誤信息。反之,自己轉(zhuǎn)換角色至UA,且使用對(duì)方SrvReg 消息中的服務(wù)位置信息來(lái)更新自己的相關(guān)信息。通過(guò)這種方式,發(fā)生角色沖突的SA們可以 決定留下一個(gè)最新的SA來(lái),其他的角色轉(zhuǎn)換為UA,且使用最新的SA的某種類(lèi)型服務(wù)位置信 息更新自己的該類(lèi)型服務(wù)位置信息。圖5顯示了一個(gè)角色沖突檢測(cè)與解決的例子。圖中網(wǎng)絡(luò)設(shè)備A、B、C、D位于網(wǎng)絡(luò) 中,且由于意外情況導(dǎo)致A和B角色都成為了 SA,在A、B 二者最近的一個(gè)組播周期內(nèi)檢測(cè) 到了角色沖突,此時(shí)按照上述的流程予以解決。以上對(duì)本發(fā)明所提供的基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法進(jìn)行了詳細(xì)的說(shuō)明。對(duì) 本領(lǐng)域的技術(shù)人員而言,在不背離本發(fā)明實(shí)質(zhì)精神的前提下對(duì)它所做的任何顯而易見(jiàn)的改 動(dòng),都將構(gòu)成對(duì)本發(fā)明專(zhuān)利權(quán)的侵犯,將承擔(dān)相應(yīng)的法律責(zé)任。
權(quán)利要求
1. 一種基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法,其特征在于在網(wǎng)絡(luò)設(shè)備進(jìn)入網(wǎng)絡(luò)系統(tǒng)之后,如果網(wǎng)絡(luò)系統(tǒng)中已經(jīng)存在服務(wù)代理,則所述網(wǎng)絡(luò)設(shè)備 的角色確定為用戶代理,此時(shí)所述網(wǎng)絡(luò)設(shè)備從收到的SrvAck消息中獲取所述服務(wù)代理的 位置,發(fā)送SrvRqst請(qǐng)求消息給所述服務(wù)代理以獲取網(wǎng)絡(luò)系統(tǒng)中的服務(wù)位置信息,所述服 務(wù)代理回復(fù)SrvRply消息,在所述SrvRply消息中攜帶用戶代理所請(qǐng)求的服務(wù)的位置信息, 從而實(shí)現(xiàn)所述網(wǎng)絡(luò)設(shè)備從已有網(wǎng)絡(luò)設(shè)備處獲取服務(wù)位置信息;所述網(wǎng)絡(luò)設(shè)備檢測(cè)到服務(wù)位置信息發(fā)生改變后,發(fā)送表示強(qiáng)制搶占的SrvReg消息來(lái) 嘗試搶占服務(wù)代理角色;另一用戶代理收到所述SrvReg消息后,一方面用新的服務(wù)代理信 息替換掉原有的服務(wù)代理信息,另一方面使用所述SrvReg消息中的服務(wù)位置信息更新原 有的服務(wù)位置信息;原有服務(wù)代理收到所述SrvReg消息后,一方面轉(zhuǎn)換角色至用戶代理, 另一方面使用所述SrvReg消息中的服務(wù)位置信息更新原有的服務(wù)位置信息。
2.如權(quán)利要求1所述的基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法,其特征在于在網(wǎng)絡(luò)設(shè)備啟動(dòng)后,所述網(wǎng)絡(luò)設(shè)備根據(jù)是否預(yù)置了某種類(lèi)型服務(wù)的位置信息決定其角 色,在存在預(yù)置的情況下作為服務(wù)代理,在不存在預(yù)置的情況下作為用戶代理。
3.如權(quán)利要求2所述的基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法,其特征在于所述網(wǎng)絡(luò)設(shè)備在存在預(yù)置的情況下,通過(guò)組播方式發(fā)送表示非強(qiáng)制搶占的SrvReg消 息,如果所述網(wǎng)絡(luò)設(shè)備收到對(duì)所述SrvReg消息的回應(yīng)消息,且回應(yīng)消息中的狀態(tài)代碼字段 攜帶了搶占失敗的錯(cuò)誤信息,此時(shí)表示網(wǎng)絡(luò)系統(tǒng)中已經(jīng)存在服務(wù)代理,啟用服務(wù)代理角色 失敗。
4.如權(quán)利要求3所述的基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法,其特征在于如果連續(xù)三個(gè)SrvReg消息的周期內(nèi)沒(méi)有收到回應(yīng),認(rèn)為網(wǎng)絡(luò)系統(tǒng)內(nèi)沒(méi)有服務(wù)代理,所 述網(wǎng)絡(luò)設(shè)備停止發(fā)送SrvReg消息,并且啟動(dòng)服務(wù)代理角色。
5.如權(quán)利要求1所述的基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法,其特征在于對(duì)于發(fā)送表示強(qiáng)制搶占的SrvReg消息的網(wǎng)絡(luò)設(shè)備而言,當(dāng)所述網(wǎng)絡(luò)設(shè)備收到表示搶 占成功的SrvAck消息后,立即停止發(fā)送表示強(qiáng)制搶占的SrvReg消息,并且轉(zhuǎn)換角色至服務(wù) 代理。
6.如權(quán)利要求5所述的基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法,其特征在于對(duì)于發(fā)送表示強(qiáng)制搶占的SrvReg消息的網(wǎng)絡(luò)設(shè)備而言,如果在連續(xù)三個(gè)SrvReg消息 的周期內(nèi)沒(méi)有收到回應(yīng),所述網(wǎng)絡(luò)設(shè)備轉(zhuǎn)換角色至服務(wù)代理。
7.如權(quán)利要求1所述的基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法,其特征在于作為服務(wù)代理的網(wǎng)絡(luò)設(shè)備定期以組播方式發(fā)送表示非強(qiáng)制搶占的SrvReg消息,收到 表示非強(qiáng)制搶占的SrvReg消息的另一服務(wù)代理比較SrvReg消息里的時(shí)間戳信息;如果服 務(wù)修改時(shí)間戳信息比自己的信息舊,則發(fā)送一條回應(yīng)消息,而且回應(yīng)消息中的狀態(tài)代碼字 段攜帶有搶占失敗的錯(cuò)誤信息;反之,另一服務(wù)代理轉(zhuǎn)換角色至用戶代理,且使用SrvReg 消息中的服務(wù)位置信息來(lái)更新自己的信息。
全文摘要
本發(fā)明公開(kāi)了一種基于角色轉(zhuǎn)換的網(wǎng)絡(luò)服務(wù)定位方法。該方法通過(guò)網(wǎng)絡(luò)設(shè)備在服務(wù)代理SA與用戶代理UA之間的角色轉(zhuǎn)換,并通過(guò)網(wǎng)絡(luò)設(shè)備之間的自學(xué)習(xí),實(shí)現(xiàn)對(duì)遠(yuǎn)端服務(wù)的位置發(fā)現(xiàn)與定位。與傳統(tǒng)服務(wù)定位方法相比,本網(wǎng)絡(luò)服務(wù)定位方法不要求網(wǎng)絡(luò)中有單獨(dú)的目錄代理DA存在,不要求網(wǎng)絡(luò)中對(duì)于每種類(lèi)型服務(wù)都提供一個(gè)單獨(dú)的SA;通過(guò)對(duì)等網(wǎng)絡(luò)設(shè)備間的角色轉(zhuǎn)換實(shí)現(xiàn)所有網(wǎng)絡(luò)設(shè)備對(duì)網(wǎng)絡(luò)上的某種類(lèi)型服務(wù)的定位,適合對(duì)數(shù)量比較大的網(wǎng)絡(luò)設(shè)備的操作;通過(guò)網(wǎng)絡(luò)設(shè)備之間的自學(xué)習(xí)實(shí)現(xiàn)了簡(jiǎn)化配置的功能,因此不需要集中配置服務(wù)器,也不需要對(duì)網(wǎng)絡(luò)中所有網(wǎng)絡(luò)設(shè)備一一進(jìn)行修改;如果網(wǎng)絡(luò)中有個(gè)別網(wǎng)絡(luò)設(shè)備出現(xiàn)損壞,不會(huì)對(duì)整個(gè)業(yè)務(wù)造成影響。
文檔編號(hào)H04L29/08GK102118409SQ200910244550
公開(kāi)日2011年7月6日 申請(qǐng)日期2009年12月30日 優(yōu)先權(quán)日2009年12月30日
發(fā)明者付景林, 曹藝坪, 陳玉強(qiáng) 申請(qǐng)人:北京大唐高鴻數(shù)據(jù)網(wǎng)絡(luò)技術(shù)有限公司