專利名稱:分布式主動Web服務(wù)注冊信息管理系統(tǒng)及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種面向Web服務(wù)的注冊信息管理系統(tǒng),尤其涉及一種具有分布式結(jié)構(gòu)、采用主動監(jiān)測機(jī)制的Web服務(wù)注冊信息管理系統(tǒng),也涉及到實(shí)現(xiàn)該Web服務(wù)注冊信息管理系統(tǒng)的方法,屬于計算機(jī)網(wǎng)絡(luò)應(yīng)用
背景技術(shù):
在電子商務(wù)領(lǐng)域,未來的技術(shù)發(fā)展趨勢是從緊耦合的單一系統(tǒng)發(fā)展為松耦合的動態(tài)綁定組件系統(tǒng),Web服務(wù)正是在這種趨勢下出現(xiàn)的新的構(gòu)造商務(wù)系統(tǒng)的技術(shù)手段。
一般認(rèn)為,Web服務(wù)是獨(dú)立的、模塊化的應(yīng)用程序,能夠在網(wǎng)絡(luò)上被描述、發(fā)布、查找和調(diào)用。目前,比較成熟的Web服務(wù)標(biāo)準(zhǔn)包括SOAP、WSDL和UDDI。其中SOAP(Simple Object Access Protocol)是在分散或分布式環(huán)境中交換信息的協(xié)議;WSDL(Web Services Description Language)描述Web服務(wù)的接口以及服務(wù)的功能;UDDI(Universal Description,Discovery and Integration)是Web服務(wù)的信息注冊規(guī)范。
UDDI系列規(guī)范是目前廣泛使用的Web服務(wù)資源注冊規(guī)范,2004年10月發(fā)布的UDDI3.0.2承認(rèn)全球統(tǒng)一的服務(wù)注冊庫不能有效地解決服務(wù)Web發(fā)布和發(fā)現(xiàn)的問題,提出了附屬注冊中心的概念,用于指代目前廣泛存在的私有或半私有服務(wù)注冊中心。但其附屬注冊中心是對UBR(UniversalBusiness Registry)信息的部分復(fù)制,而UBR仍然記錄所有的公共信息,附屬注冊中心主要作為信息的本地緩存存在,其大集中的模式?jīng)]有改變。另外,UDDI3.0.2的提出并沒有改變UDDI作為被動服務(wù)信息注冊系統(tǒng)的性質(zhì),UDDI服務(wù)器被動地接受服務(wù)提供者注冊或更新服務(wù)請求,被動地接受服務(wù)請求者的服務(wù)查詢請求。而Su Myeon Kim等人的統(tǒng)計研究表明,服務(wù)提供者在發(fā)布服務(wù)后極少有提供者能及時更新UDDI上注冊的服務(wù)信息,進(jìn)而導(dǎo)致服務(wù)請求者從UDDI獲取的信息是過時的、無效的信息,因此提高UDDI中信息的有效性,以及UDDI結(jié)構(gòu)的合理性是服務(wù)資源注冊的重要發(fā)展方向。
MSWDI(METEOR-S Web Service Discovery Infrastructure)是美國佐治亞大學(xué)提出的分布式UDDI。它是一個可擴(kuò)展的,在多個注冊庫間執(zhí)行聯(lián)合Web服務(wù)發(fā)布及發(fā)現(xiàn)的框架,主要考慮語義Web服務(wù)的發(fā)布、發(fā)現(xiàn)。提出了注冊庫Ontology來維護(hù)各注冊庫間的關(guān)系,由于Ontology的維護(hù)是另外的一套語義維護(hù)體系,增加了系統(tǒng)實(shí)現(xiàn)和使用的復(fù)雜度。另外,該研究也不解決UDDI中服務(wù)信息有效性的問題。
荷蘭的Mike P.Papazogloul等人試圖將Web服務(wù)與P2P網(wǎng)絡(luò)融合在一起,提出了結(jié)合P2P網(wǎng)絡(luò)的服務(wù)注冊系統(tǒng),主要考慮在某服務(wù)領(lǐng)域內(nèi)部將服務(wù)注冊于統(tǒng)一的注冊庫中,然后各服務(wù)加入自己感興趣的聯(lián)盟,每個聯(lián)盟內(nèi)部是P2P的結(jié)構(gòu)。其服務(wù)信息仍主要發(fā)布在統(tǒng)一的注冊庫中,無法有效解決單點(diǎn)失效問題。該研究也不解決UDDI中信息有效性問題。
UDDIe是英國Cardiff大學(xué)提出的針對UDDI的擴(kuò)展,主要提出了服務(wù)的租賃時間和屬性包概念。其中服務(wù)租賃時間允許服務(wù)定義其租賃UDDI空間的時間,在服務(wù)租賃時間內(nèi),UDDI確信服務(wù)的信息是實(shí)時有效的,過了租賃時間或沒有定義租賃時間,則UDDI不提供信息有效性保障。但其有效性保障主要是依靠UDDI與服務(wù)提供者之間的信任關(guān)系建立,并沒有提供相應(yīng)的監(jiān)測機(jī)制來確認(rèn)服務(wù)信息的實(shí)際有效性。
發(fā)明內(nèi)容
鑒于上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種新型的分布式主動Web服務(wù)注冊信息管理系統(tǒng)。該Web服務(wù)注冊信息管理系統(tǒng)通過對服務(wù)的主動監(jiān)測機(jī)制來保證其上注冊的服務(wù)信息的有效性;通過分布式的互連結(jié)構(gòu),避免UDDI的集中服務(wù)管理模式下出現(xiàn)的單點(diǎn)失效問題,從而提高服務(wù)注冊庫的實(shí)際可用性。
為實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明采用下述的技術(shù)方案一種分布式主動Web服務(wù)注冊信息管理系統(tǒng),其特征在于所述Web服務(wù)注冊信息管理系統(tǒng)采用分布式結(jié)構(gòu),分為三層,其頂層為根注冊中心,用于管理維護(hù)注冊于其上的各主動Web服務(wù)注冊信息管理服務(wù);中間層為主動Web服務(wù)信息管理器層,包含多個主動Web信息管理器,所述各主動Web服務(wù)注冊信息管理器按照全球行業(yè)分類標(biāo)準(zhǔn)分類建立,每個主動Web服務(wù)注冊信息管理器作為Web服務(wù)注冊于所述根注冊中心中;底層為服務(wù)層,每個業(yè)務(wù)服務(wù)分別注冊于其中的一個主動Web服務(wù)注冊信息管理器上,所述主動Web服務(wù)注冊信息管理器負(fù)責(zé)管理、維護(hù)注冊于其上的服務(wù)信息。
其中,每個所述主動Web服務(wù)注冊信息管理器具有本地服務(wù)信息庫,用戶信息庫,鄰居信息庫和緩存服務(wù)信息庫,所述各信息庫通過本地服務(wù)監(jiān)測模塊、本地服務(wù)管理模塊、緩存服務(wù)管理模塊、用戶管理模塊以及服務(wù)同步模塊、擴(kuò)散查詢模塊、調(diào)度模塊進(jìn)行維護(hù),所述本地服務(wù)管理模塊分別連接所述本地服務(wù)監(jiān)測模塊和所述本地服務(wù)庫,所述調(diào)度模塊分別連接所述本地服務(wù)管理模塊、所述緩存服務(wù)管理模塊、所述擴(kuò)散查詢模塊和所述用戶管理模塊,所述緩存服務(wù)管理模塊連接所述緩存服務(wù)庫和所述服務(wù)同步模塊,所述本地服務(wù)監(jiān)測模塊也與所述服務(wù)同步模塊相連接,所述服務(wù)同步模塊連接所述鄰居表,用戶管理模塊連接所述用戶信息庫。
所述鄰居信息庫中記錄已與本主動Web服務(wù)注冊信息管理器建立鄰居關(guān)系的主動Web服務(wù)注冊信息管理器的基本信息。
所述緩存服務(wù)信息庫中記錄為請求者緩存的服務(wù)信息。
一種分布式主動Web服務(wù)注冊信息管理系統(tǒng)實(shí)現(xiàn)主動監(jiān)測機(jī)制的方法,其特征在于所述主動Web服務(wù)注冊信息管理器由定時觸發(fā)事件觸發(fā),進(jìn)入監(jiān)測狀態(tài);首先所述主動Web服務(wù)注冊信息管理器向服務(wù)提供者發(fā)送消息,該消息中包含目前主動Web服務(wù)注冊信息管理器中注冊的服務(wù)名稱、鍵值以及當(dāng)前服務(wù)版本號;所述服務(wù)提供者按照服務(wù)名稱、鍵值以及版本號與自身服務(wù)的基本信息進(jìn)行匹配,若完全一致,則返回一致消息;若不完全一致,則返回新的服務(wù)信息,通過所述主動Web服務(wù)注冊信息管理器的信息更新算法完成服務(wù)信息更新;所述主動Web服務(wù)注冊信息管理器若收到一致消息,則結(jié)束監(jiān)測線程;若收到不一致消息,則執(zhí)行更新服務(wù)算法;若在規(guī)定時間內(nèi),未收到返回消息,則說明當(dāng)前服務(wù)無效,主動Web服務(wù)注冊信息管理器進(jìn)入更新狀態(tài),將該服務(wù)更新為無效服務(wù)。
當(dāng)前服務(wù)無效時,繼續(xù)進(jìn)行預(yù)定次數(shù)的監(jiān)測,若在多次監(jiān)測中都無法獲得服務(wù)信息,則將該服務(wù)徹底刪除;若其中某一次監(jiān)測得到了正確返回結(jié)果,則根據(jù)返回結(jié)果更新服務(wù)信息,并將該服務(wù)狀態(tài)恢復(fù)為有效狀態(tài)。
一種在分布式主動Web服務(wù)注冊信息管理系統(tǒng)中建立新的鄰居關(guān)系的方法,其特征在于當(dāng)新的主動Web服務(wù)注冊信息管理器加入時,首先將自身基本信息注冊到根注冊中心;然后在根注冊中心查找與其屬于同一行業(yè)的其他主動Web服務(wù)注冊信息管理器;根據(jù)查找結(jié)果,與全部或部分同行業(yè)其他主動Web服務(wù)注冊信息管理器分別建立連接,請求與其建立鄰居關(guān)系;如果被請求方同意,則雙方均在自己的鄰居表中記錄對方信息,鄰居關(guān)系建立。
一種在分布式主動Web服務(wù)注冊信息管理系統(tǒng)中維護(hù)鄰居關(guān)系的方法,其特征在于所述根注冊中心主動監(jiān)測分布式主動Web服務(wù)注冊信息管理系統(tǒng)服務(wù)的狀態(tài),發(fā)現(xiàn)其信息變化時,將該Web服務(wù)注冊信息管理器的信息廣播至同行業(yè)的其他Web服務(wù)注冊信息管理器,以更新鄰居表。
一種在分布式主動Web服務(wù)注冊信息管理系統(tǒng)中實(shí)現(xiàn)服務(wù)信息查找的方法,其特征在于服務(wù)請求者首先在連接到的Web服務(wù)注冊信息管理器緩存中查找服務(wù)信息,如果緩存中有所需服務(wù)信息,則將結(jié)果返回,查找過程結(jié)束;如果本地?zé)o緩存,則Web服務(wù)注冊信息管理器在本地查詢服務(wù),同時將查詢請求信息廣播給鄰居Web服務(wù)注冊信息管理器,并等待本地和鄰居的查詢結(jié)果返回;將返回的結(jié)果信息加入緩存中,最后將結(jié)果信息按請求者要求返回。
一種在分布式主動Web服務(wù)注冊信息管理系統(tǒng)中實(shí)現(xiàn)服務(wù)信息同步更新的方法,其特征在于某個Web服務(wù)注冊信息管理器中的服務(wù)信息出現(xiàn)更新時,首先向其鄰居Web服務(wù)注冊信息管理器發(fā)出查詢緩存信息,所述鄰居Web服務(wù)注冊信息管理器查詢本地的緩存信息;如果本地?zé)o該服務(wù)緩存,則丟棄該查詢信息,如果本地有關(guān)于該服務(wù)信息的緩存,則更新該服務(wù)信息。
本發(fā)明所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng)及其實(shí)現(xiàn)方法具有如下的優(yōu)點(diǎn)1.針對各行業(yè)的主動Web服務(wù)注冊信息管理器均通過鄰居表與其他主動Web服務(wù)注冊信息管理器建立聯(lián)系,只有新的主動Web服務(wù)注冊信息管理器進(jìn)入時才通過根注冊中心,因此根注冊中心的單點(diǎn)失效問題被大幅度弱化;2.根注冊中心僅管理各行業(yè)的Web服務(wù)注冊信息管理服務(wù),不管理具體業(yè)務(wù)Web服務(wù),使得其管理負(fù)擔(dān)大幅下降,提高了根注冊中心的實(shí)用性;3.各行業(yè)的主動Web服務(wù)注冊信息管理器的建立及連接方式,為目前廣泛存在的私有或半私有UDDI的互連提供了基礎(chǔ),使得各服務(wù)孤島可以方便的連接在一起;4.主動監(jiān)測機(jī)制使得從主動Web服務(wù)注冊信息管理系統(tǒng)中查詢到的服務(wù)信息的實(shí)時有效性大幅提高。
下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步的說明。
圖1為具有分布式結(jié)構(gòu)的分布式主動Web服務(wù)注冊信息管理系統(tǒng)的示意圖。
圖2為組成上述分布式主動Web服務(wù)注冊信息管理系統(tǒng)的單個主動Web服務(wù)注冊信息管理器的內(nèi)部結(jié)構(gòu)示意圖。
圖3為Web服務(wù)注冊信息管理系統(tǒng)實(shí)現(xiàn)主動檢測機(jī)制時的狀態(tài)示意圖。
圖4顯示了主動Web服務(wù)注冊信息管理器監(jiān)測單個服務(wù)時的交互協(xié)議。
圖5為在分布式主動Web服務(wù)注冊信息管理系統(tǒng)中,新的主動Web服務(wù)注冊信息管理器加入的交互過程示意圖。
圖6為在分布式主動Web服務(wù)注冊信息管理系統(tǒng)中,某個主動Web服務(wù)注冊信息管理器在退出時,將其服務(wù)信息委托給其他Web服務(wù)注冊信息管理器時的交互過程示意圖。
圖7為在分布式主動Web服務(wù)注冊信息管理系統(tǒng)中,服務(wù)查找請求交互過程的示意圖。
圖8為在分布式主動Web服務(wù)注冊信息管理系統(tǒng)中,服務(wù)信息擴(kuò)散同步機(jī)制的示意圖。
圖9為在分布式主動Web服務(wù)注冊信息管理系統(tǒng)中,Web服務(wù)注冊信息管理器實(shí)現(xiàn)主動監(jiān)測時的狀態(tài)示意圖。
具體實(shí)施例方式
本發(fā)明所提供的分布式主動Web服務(wù)注冊信息管理系統(tǒng)本身是分布式結(jié)構(gòu),包含多個主動Web服務(wù)注冊信息管理器,其分布式結(jié)構(gòu)如圖1所示,其中的每個主動Web服務(wù)注冊信息管理器的結(jié)構(gòu)如圖2所示。
圖1為本發(fā)明所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng)的整體結(jié)構(gòu)示意圖。該分布式系統(tǒng)的結(jié)構(gòu)分為三層,頂層為根注冊中心,它負(fù)責(zé)維護(hù)、管理注冊于其上的各主動Web服務(wù)注冊信息管理器的信息,但不接受業(yè)務(wù)服務(wù)的注冊與查找,以減輕根注冊中心的負(fù)擔(dān);中間層為主動Web服務(wù)注冊信息管理器層,各主動Web服務(wù)注冊信息管理器按照GICS(全球行業(yè)分類標(biāo)準(zhǔn))分類建立,一個主動Web服務(wù)注冊信息管理器中可以注冊一類或幾類行業(yè)服務(wù)。每個主動Web服務(wù)注冊信息管理器作為Web服務(wù)注冊于根注冊中心中;底層為服務(wù)層,每個業(yè)務(wù)服務(wù)注冊于某主動Web服務(wù)注冊信息管理器上,主動Web服務(wù)注冊信息管理器負(fù)責(zé)管理、維護(hù)注冊于其上的服務(wù)信息。為了提高服務(wù)查詢效率,每個主動Web服務(wù)注冊信息管理器中建立服務(wù)信息緩存空間,以記錄請求者查詢過的服務(wù)信息。由于緩存空間有限,長期沒有被查詢的信息會被新的緩存信息替代。
如圖2所示,上述分布式主動Web服務(wù)注冊信息管理系統(tǒng)中的單個主動Web服務(wù)注冊信息管理器包括本地服務(wù)監(jiān)測模塊、本地服務(wù)管理模塊、緩存服務(wù)管理模塊、用戶管理模塊以及服務(wù)同步模塊、擴(kuò)散查詢模塊、調(diào)度模塊。此外,還包括用戶信息庫、本地服務(wù)庫、鄰居信息庫和緩存服務(wù)庫。另外,服務(wù)同步模塊連接有鄰居表,用戶管理模塊連接用戶信息庫。每個主動Web服務(wù)注冊信息管理器對外提供四個接口,包括本地服務(wù)監(jiān)測接口、服務(wù)同步接口、擴(kuò)散查詢接口以及用戶請求處理接口。其中本地服務(wù)監(jiān)測接口用于向相關(guān)服務(wù)提供者發(fā)送定時主動監(jiān)測請求,并接收返回信息;服務(wù)同步接口用于在本地服務(wù)信息發(fā)生變化時,向鄰居主動Web服務(wù)信息管理器廣播更新的服務(wù)信息,若鄰居緩存了該服務(wù)信息,則進(jìn)行相應(yīng)的更新;服務(wù)擴(kuò)散查詢接口用于將本地的服務(wù)查詢請求擴(kuò)散至鄰居,以在更大范圍內(nèi)尋找合適的服務(wù);用戶請求處理接口與原有UDDI對外提供的接口類似,負(fù)責(zé)從用戶接收用戶信息管理請求、服務(wù)查詢請求以及服務(wù)注冊、更新請求等等。在Web服務(wù)注冊信息管理器內(nèi)部,本地服務(wù)管理模塊分別連接本地服務(wù)監(jiān)測模塊和本地服務(wù)庫,調(diào)度模塊作為本W(wǎng)eb服務(wù)注冊信息管理器的管理中心,分別連接本地服務(wù)管理模塊、緩存服務(wù)管理模塊、擴(kuò)散查詢模塊和用戶管理模塊,而緩存服務(wù)管理模塊則連接緩存服務(wù)庫和服務(wù)同步模塊,此外,本地服務(wù)監(jiān)測模塊也與服務(wù)同步模塊相連接。
在上述的主動Web服務(wù)注冊信息管理器中,保存的信息主要包括本地服務(wù)庫、用戶信息庫、鄰居信息庫以及緩存服務(wù)信息庫四部分。本地服務(wù)庫和用戶信息庫與UDDI的實(shí)現(xiàn)相同,本發(fā)明主要擴(kuò)充和實(shí)現(xiàn)鄰居信息庫以及緩存服務(wù)信息庫兩部分。鄰居信息庫主要記錄已與本W(wǎng)eb服務(wù)注冊信息管理器建立鄰居關(guān)系的Web服務(wù)注冊信息管理器的基本信息,包括其名稱、存取點(diǎn)、注冊行業(yè)等等;緩存服務(wù)信息庫中記錄了為請求者緩存的服務(wù)信息,主要記錄服務(wù)名稱、服務(wù)信息來源Web服務(wù)注冊信息管理器、服務(wù)類別、服務(wù)存取點(diǎn)等等。此外,還包括7個功能模塊來管理維護(hù)上述信息庫中的信息,它們分別是√用戶管理模塊管理屬于本自治域的服務(wù)提供者及服務(wù)請求者信息,1)接受注冊,2)進(jìn)行身份認(rèn)證及訪問控制管理,3)將通過身分認(rèn)證和訪問控制的服務(wù)發(fā)布請求或查詢請求遞送給調(diào)度器,以對不同的請求,進(jìn)行相應(yīng)的處理;√調(diào)度模塊1)負(fù)責(zé)根據(jù)用戶的不同請求(注冊/查詢)調(diào)用不同的管理模塊;2)服務(wù)查詢時負(fù)責(zé)調(diào)度本地、緩存以及擴(kuò)散更新模塊以找到服務(wù);√本地服務(wù)管理模塊注冊、查詢、更新本地服務(wù)庫,以維護(hù)本地服務(wù)信息的有效性;√本地服務(wù)探測模塊負(fù)責(zé)根據(jù)本地服務(wù)庫信息,聯(lián)系相應(yīng)服務(wù)提供者,檢測服務(wù)的版本及有效性,負(fù)責(zé)定時更新變化了的服務(wù)信息,以避免服務(wù)發(fā)生變化導(dǎo)致的調(diào)用失?。弧叹彺娣?wù)管理模塊負(fù)責(zé)管理、維護(hù)緩存服務(wù)庫,1)記錄擴(kuò)散更新模塊找回的其它自治域提供的服務(wù);2)根據(jù)同步更新模塊請求,查找緩存服務(wù)庫,如果有待同步信息,則修改緩存中的服務(wù);3)管理、維護(hù)緩存空間;√服務(wù)同步模塊1)本地服務(wù)發(fā)生變化時,負(fù)責(zé)根據(jù)鄰居表,將變化廣播給鄰居,以更新其它注冊服務(wù)信息管理器上的相關(guān)緩存;2)接收其它注冊服務(wù)信息管理器廣播過來的更新請求,將請求交給緩存服務(wù)管理器,以更新緩存中的相應(yīng)服務(wù)信息;3)負(fù)責(zé)將接收到的請求繼續(xù)廣播給其它鄰居;√擴(kuò)散更新模塊服務(wù)請求者發(fā)起的查詢請求由擴(kuò)散查詢模塊向鄰居廣播請求,找相應(yīng)的Web服務(wù)。
上面介紹了主動Web服務(wù)注冊信息管理器的基本結(jié)構(gòu),下面具體介紹本分布式Web服務(wù)注冊信息管理系統(tǒng)如何實(shí)現(xiàn)主動監(jiān)測機(jī)制以及多個主動Web服務(wù)注冊信息管理器如何連接組成分布式結(jié)構(gòu)的具體方法。
眾所周知,Web服務(wù)注冊庫能實(shí)用的一個重要前提就是其注冊信息的實(shí)時有效性,即需要保證服務(wù)請求者在其上找到的服務(wù)是實(shí)時有效的。但實(shí)際的Web服務(wù)注冊庫中,由于很少有組織在發(fā)布服務(wù)信息后主動進(jìn)行更新,導(dǎo)致服務(wù)注冊庫中信息多數(shù)變?yōu)槔畔?,因此必須提供服?wù)的主動監(jiān)測機(jī)制,由服務(wù)注冊庫主動向服務(wù)提供者發(fā)起監(jiān)測請求,監(jiān)測服務(wù)的當(dāng)前狀態(tài),以保證注冊庫中服務(wù)信息的有效性。本發(fā)明提出的主動監(jiān)測機(jī)制為定時監(jiān)測機(jī)制,即分布式主動Web服務(wù)注冊信息管理系統(tǒng)定時向注冊于其上的服務(wù)提供者發(fā)送監(jiān)測請求。
主動Web服務(wù)注冊信息管理器的狀態(tài)圖如圖3所示,其中正常狀態(tài)指主動Web服務(wù)注冊信息管理器被動等待觸發(fā)事件的狀態(tài);監(jiān)測狀態(tài)指主動Web服務(wù)注冊信息管理器主動向服務(wù)提供者發(fā)起監(jiān)測請求的狀態(tài);更新狀態(tài)指主動Web服務(wù)注冊信息管理器根據(jù)服務(wù)提供者的返回信息更新服務(wù)注冊庫的狀態(tài)。處于正常狀態(tài)的主動Web服務(wù)注冊信息管理器由定時觸發(fā)事件觸發(fā),進(jìn)入監(jiān)測狀態(tài),運(yùn)行主動監(jiān)測算法,如果監(jiān)測服務(wù)沒有更新,則主動Web服務(wù)注冊信息管理器由監(jiān)測狀態(tài)回到正常狀態(tài),等待其他事件觸發(fā);如果需要更新,則通過更新信息觸發(fā)進(jìn)入更新狀態(tài),運(yùn)行服務(wù)信息更新算法,更新結(jié)束后,主動Web服務(wù)注冊信息管理器回到正常狀態(tài),等待其他事件觸發(fā)。本主動Web服務(wù)注冊信息管理系統(tǒng)是對目前UDDI規(guī)范的擴(kuò)充,它仍然提供接口接受服務(wù)提供者對服務(wù)的更新請求,因此在正常狀態(tài)下的主動Web服務(wù)注冊信息管理器也接收服務(wù)提供者的更新請求,由更新請求觸發(fā)進(jìn)入更新狀態(tài),運(yùn)行服務(wù)信息更新算法,更新結(jié)束返回正常狀態(tài)。
圖3顯示了主動Web服務(wù)注冊信息管理器監(jiān)測單個服務(wù)時的交互協(xié)議。首先主動Web服務(wù)注冊信息管理器向服務(wù)提供者發(fā)送“Monitor”消息,消息中包含目前主動Web服務(wù)注冊信息管理器中注冊的服務(wù)名稱、鍵值以及當(dāng)前服務(wù)版本號。服務(wù)提供者按照服務(wù)名稱、鍵值以及版本號與自身服務(wù)的基本信息進(jìn)行匹配,若完全一致,則返回在“nonUpdate”消息;若不完全一致,則將新的服務(wù)信息通過“save_Service”消息返回給主動Web服務(wù)注冊信息管理器。該主動Web服務(wù)注冊信息管理器若收到“nonUpdate”消息,則結(jié)束監(jiān)測線程;若收到“save_service”消息,則執(zhí)行更新服務(wù)算法;若在規(guī)定時間內(nèi),未收到返回消息,則說明服務(wù)當(dāng)前無效,主動Web服務(wù)注冊信息管理器進(jìn)入更新狀態(tài),將該服務(wù)更新為(unavailible)無效服務(wù)。
由于無效服務(wù)可能是因為網(wǎng)絡(luò)的異常或服務(wù)提供者服務(wù)器的短期失效引起的,也有可能是因為服務(wù)本身已經(jīng)被取消引起的,因此不能簡單的刪除無效服務(wù)的注冊信息。而是通過不同的服務(wù)監(jiān)測策略來決定如何處理無效服務(wù),例如我們可以設(shè)定策略為若連續(xù)10次監(jiān)測,都無法獲得服務(wù)信息,則將該服務(wù)徹底刪除等等;若某次監(jiān)測得到了正確返回結(jié)果,則根據(jù)返回結(jié)果更新服務(wù)信息,并將該服務(wù)狀態(tài)恢復(fù)為有效狀態(tài)。服務(wù)請求者請求服務(wù)時,僅在狀態(tài)為有效的服務(wù)中進(jìn)行查詢、選擇。
以上是對本分布式Web服務(wù)注冊信息管理系統(tǒng)實(shí)現(xiàn)主動監(jiān)測機(jī)制的說明,下面將詳細(xì)介紹分布式主動Web服務(wù)注冊信息管理系統(tǒng)中的主動Web服務(wù)注冊信息管理器的加入與退出機(jī)制,服務(wù)的注冊、更新機(jī)制以及服務(wù)查找機(jī)制等。
1)新的主動Web服務(wù)注冊信息管理器的加入加入新的主動Web服務(wù)注冊信息管理器的過程實(shí)際上也是建立新的鄰居關(guān)系的過程。如圖5所示,新的主動Web服務(wù)注冊信息管理器加入時,首先需要將自身基本信息注冊到根注冊中心;然后在根注冊中心查找與其屬于同一行業(yè)的其他主動Web服務(wù)注冊信息管理器;根據(jù)查找結(jié)果,與全部或部分同行業(yè)其他主動Web服務(wù)注冊信息管理器分別建立連接,請求與其建立鄰居關(guān)系;如果被請求方同意,則雙方均在自己的鄰居表中記錄對方信息,鄰居關(guān)系建立。鄰居關(guān)系建立后,業(yè)務(wù)服務(wù)的發(fā)布和查找將僅在中間主動Web服務(wù)注冊信息管理器層進(jìn)行,而不涉及根注冊中心。通過主動Web服務(wù)注冊信息管理器之間鄰居關(guān)系的建立,可大大降低根注冊中心的負(fù)擔(dān),避免單點(diǎn)失效問題。
2)主動Web服務(wù)注冊信息管理器的退出主動Web服務(wù)注冊信息管理器的退出包含兩方面問題1)是否向根注冊中心發(fā)出退出請求;2)是否對注冊于自身的服務(wù)進(jìn)行相應(yīng)處理。根據(jù)這兩個問題的不同處理方法,可產(chǎn)生四種主動Web服務(wù)注冊信息管理器的退出機(jī)制。第一種是放棄注冊于自身的服務(wù),直接關(guān)閉Web服務(wù)注冊信息管理器,不通知根注冊中心;第二種是簡單放棄注冊于自身的服務(wù),并向根注冊中心更新自身信息為無效;第三種將自身服務(wù)委托給鄰居Web服務(wù)注冊信息管理器,直接關(guān)閉主動Web服務(wù)注冊信息管理器,不通知根注冊中心;第四種是將自身服務(wù)委托給鄰居主動Web服務(wù)注冊信息管理器,并向根注冊中心更新自身信息為無效。以上四種方法處理復(fù)雜度依次增加,第四種是處理復(fù)雜度最高,但最有利于根注冊中心的管理以及服務(wù)提供者利益的一種處理方法。由于主動Web服務(wù)注冊信息管理器的退出可能由不同原因引起,因此可能使用不同的退出方法。例如主動Web服務(wù)注冊信息管理器使命結(jié)束,正常退出時,可能選擇第四種方法;而由于網(wǎng)絡(luò)的原因?qū)е轮鲃覹eb服務(wù)注冊信息管理器無法與根注冊中心和其他服務(wù)主動Web服務(wù)注冊信息管理器建立連接時,則只能選擇第一種處理方法。
如果主動Web服務(wù)注冊信息管理器主動向根注冊中心請求更新其信息為無效,則根注冊中心直接刪除該Web服務(wù)注冊信息管理服務(wù)的信息,若主動Web服務(wù)注冊信息管理器未通知根注冊中心,而由根通過主動監(jiān)測機(jī)制發(fā)現(xiàn)Web服務(wù)注冊信息管理服務(wù)無法連接時,則根據(jù)根監(jiān)測策略,先將其信息置為無效(unavailable),而不能直接刪除。
待退出的主動Web服務(wù)注冊信息管理器若簡單放棄注冊于其上的服務(wù)信息,則不需做任何處理,關(guān)閉主動Web服務(wù)注冊信息管理器即可。若主動Web服務(wù)注冊信息管理器要將其服務(wù)信息委托(transfer)給其他主動Web服務(wù)注冊信息管理器,則需要征得對方的同意,并要通知服務(wù)信息所屬的服務(wù)提供者。其具體交互過程如圖6所示。
3)鄰居關(guān)系的維護(hù)新的主動Web服務(wù)注冊信息管理器加入時,通過加入?yún)f(xié)議建立了Web服務(wù)注冊信息管理器間的鄰居關(guān)系,而由于各Web服務(wù)注冊信息管理器的自治性,其更新或退出不一定會通知鄰居,因此需要建立鄰居關(guān)系維護(hù)機(jī)制。鄰居關(guān)系的維護(hù)主要利用根注冊中心的主動監(jiān)測機(jī)制實(shí)現(xiàn)。根注冊中心主動監(jiān)測主動Web服務(wù)注冊信息管理服務(wù)的狀態(tài),發(fā)現(xiàn)其信息變化時,將該Web服務(wù)注冊信息管理服務(wù)的信息廣播至同行業(yè)的其他主動Web服務(wù)注冊信息管理器,以更新鄰居表。
4)服務(wù)查找各主動Web服務(wù)注冊信息管理器負(fù)責(zé)管理注冊于其上的服務(wù)信息,并接收服務(wù)請求者發(fā)來的查找服務(wù)請求。為了給請求者提供更多、更好的服務(wù)選項,主動Web服務(wù)注冊信息管理器可根據(jù)請求者要求不僅在本地服務(wù)目錄中查詢,還同時將請求信息廣播給它的鄰居,以取得更多的服務(wù)選擇。
圖7顯示了服務(wù)請求者與主動Web服務(wù)注冊信息管理器的交互過程。服務(wù)請求者首先在連接到的主動Web服務(wù)注冊信息管理器緩存中查找服務(wù)信息,如果緩存中有所需服務(wù)信息,則將結(jié)果返回,查找過程結(jié)束;如果本地?zé)o緩存,則主動Web服務(wù)注冊信息管理器在本地查詢服務(wù),同時將查詢請求信息廣播給鄰居Web服務(wù)注冊信息管理器,并等待本地和鄰居的查詢結(jié)果返回;將返回的結(jié)果信息加入緩存中,最后將結(jié)果信息按請求者要求返回。
5)服務(wù)信息擴(kuò)散同步機(jī)制前面描述的服務(wù)主動監(jiān)測機(jī)制保證了單個主動Web服務(wù)注冊信息管理器上記錄的服務(wù)信息是實(shí)時有效的,但在分布式結(jié)構(gòu)下,由于緩存信息的存在,需要將單個主動Web服務(wù)注冊信息管理器上服務(wù)信息的更新擴(kuò)散至緩存了該信息的鄰居主動Web服務(wù)注冊信息管理器上,以同步緩存信息,服務(wù)信息擴(kuò)散同步交互過程如圖8所示。當(dāng)某個主動Web服務(wù)注冊信息管理器中的服務(wù)信息出現(xiàn)更新時,首先向其鄰居主動Web服務(wù)注冊信息管理器發(fā)出查詢緩存信息,鄰居Web服務(wù)注冊信息管理器查詢本地的緩存信息;如果本地?zé)o該服務(wù)緩存,則丟棄該查詢信息,如果本地有關(guān)于該服務(wù)信息的緩存,則更新該服務(wù)信息。
由于同步更新機(jī)制的存在,使得圖2所示的分布式主動Web服務(wù)注冊信息管理系統(tǒng)的主動監(jiān)測狀態(tài)圖擴(kuò)展為圖9,在服務(wù)信息完成更新后,需要向鄰居主動Web服務(wù)注冊信息管理器廣播更新信息,鄰居主動Web服務(wù)注冊信息管理器實(shí)現(xiàn)的緩存服務(wù)更新利用服務(wù)信息擴(kuò)散同步機(jī)制。
以上對本發(fā)明所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng)及其實(shí)現(xiàn)機(jī)制進(jìn)行了詳細(xì)的說明。對本領(lǐng)域的一般技術(shù)人員而言,在不背離本發(fā)明實(shí)質(zhì)精神的前提下對它所做的任何顯而易見的改動,都將構(gòu)成對本發(fā)明專利權(quán)的侵犯,將承擔(dān)相應(yīng)的法律責(zé)任。
權(quán)利要求
1.一種分布式主動Web服務(wù)注冊信息管理系統(tǒng),其特征在于所述Web服務(wù)注冊信息管理系統(tǒng)采用分布式結(jié)構(gòu),分為三層,其頂層為根注冊中心,用于管理維護(hù)注冊于其上的各主動Web服務(wù)注冊信息管理服務(wù);中間層為主動Web服務(wù)信息管理器層,包含多個主動Web信息管理器,所述各主動Web服務(wù)注冊信息管理器按照全球行業(yè)分類標(biāo)準(zhǔn)分類建立,每個主動Web服務(wù)注冊信息管理器作為Web服務(wù)注冊于所述根注冊中心中;底層為服務(wù)層,每個業(yè)務(wù)服務(wù)分別注冊于其中的一個主動Web服務(wù)注冊信息管理器上,所述主動Web服務(wù)注冊信息管理器負(fù)責(zé)管理、維護(hù)注冊于其上的服務(wù)信息。
2.如權(quán)利要求1所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng),其特征在于每個所述主動Web服務(wù)注冊信息管理器具有本地服務(wù)信息庫,用戶信息庫,鄰居信息庫和緩存服務(wù)信息庫,所述各信息庫通過本地服務(wù)監(jiān)測模塊、本地服務(wù)管理模塊、緩存服務(wù)管理模塊、用戶管理模塊以及服務(wù)同步模塊、擴(kuò)散查詢模塊、調(diào)度模塊進(jìn)行維護(hù),其中,所述本地服務(wù)管理模塊分別連接所述本地服務(wù)監(jiān)測模塊和所述本地服務(wù)庫,所述調(diào)度模塊分別連接所述本地服務(wù)管理模塊、所述緩存服務(wù)管理模塊、所述擴(kuò)散查詢模塊和所述用戶管理模塊,所述緩存服務(wù)管理模塊連接所述緩存服務(wù)庫和所述服務(wù)同步模塊,所述本地服務(wù)監(jiān)測模塊也與所述服務(wù)同步模塊相連接,所述服務(wù)同步模塊連接所述鄰居表,用戶管理模塊連接所述用戶信息庫。
3.如權(quán)利要求2所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng),其特征在于所述鄰居信息庫中記錄已與本主動Web服務(wù)注冊信息管理器建立鄰居關(guān)系的Web服務(wù)注冊信息管理器的基本信息。
4.如權(quán)利要求2所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng),其特征在于所述緩存服務(wù)信息庫中記錄為請求者緩存的服務(wù)信息。
5.一種分布式主動Web服務(wù)注冊信息管理系統(tǒng)實(shí)現(xiàn)主動監(jiān)測機(jī)制的方法,其特征在于所述主動Web服務(wù)注冊信息管理器由定時觸發(fā)事件觸發(fā),進(jìn)入監(jiān)測狀態(tài);首先所述主動Web服務(wù)注冊信息管理器向服務(wù)提供者發(fā)送消息,該消息中包含目前主動Web服務(wù)注冊信息管理器中注冊的服務(wù)名稱、鍵值以及當(dāng)前服務(wù)版本號;所述服務(wù)提供者按照服務(wù)名稱、鍵值以及版本號與自身服務(wù)的基本信息進(jìn)行匹配,若完全一致,則返回一致消息;若不完全一致,則返回新的服務(wù)信息,通過所述主動Web服務(wù)注冊信息管理器完成服務(wù)信息更新;所述主動Web服務(wù)注冊信息管理器若收到一致消息,則結(jié)束監(jiān)測線程;若收到不一致消息,則執(zhí)行更新服務(wù)算法;若在規(guī)定時間內(nèi),未收到返回消息,則說明當(dāng)前服務(wù)無效,主動Web服務(wù)注冊信息管理器進(jìn)入更新狀態(tài),將該服務(wù)更新為無效服務(wù)。
6.如權(quán)利要求5所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng)實(shí)現(xiàn)主動監(jiān)測機(jī)制的方法,其特征在于當(dāng)前服務(wù)無效時,繼續(xù)進(jìn)行預(yù)定次數(shù)的監(jiān)測,若在多次監(jiān)測中都無法獲得服務(wù)信息,則將該服務(wù)徹底刪除;若其中某一次監(jiān)測得到了正確返回結(jié)果,則根據(jù)返回結(jié)果更新服務(wù)信息,并將該服務(wù)狀態(tài)恢復(fù)為有效狀態(tài)。
7.一種在如權(quán)利要求1所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng)中建立新的鄰居關(guān)系的方法,其特征在于當(dāng)新的主動Web服務(wù)注冊信息管理器加入時,首先將自身基本信息注冊到根注冊中心;然后在根注冊中心查找與其屬于同一行業(yè)的其他主動Web服務(wù)注冊信息管理器;根據(jù)查找結(jié)果,與全部或部分同行業(yè)其他主動Web服務(wù)注冊信息管理器分別建立連接,請求與其建立鄰居關(guān)系;如果被請求方同意,則雙方均在自己的鄰居表中記錄對方信息,鄰居關(guān)系建立。
8.一種在如權(quán)利要求1所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng)中維護(hù)鄰居關(guān)系的方法,其特征在于所述根注冊中心主動監(jiān)測分布式主動Web服務(wù)注冊信息管理系統(tǒng)服務(wù)的狀態(tài),發(fā)現(xiàn)其信息變化時,將該Web服務(wù)注冊信息管理器的信息廣播至同行業(yè)的其他Web服務(wù)注冊信息管理器,以更新鄰居表。
9.一種在如權(quán)利要求1所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng)中實(shí)現(xiàn)服務(wù)信息查找的方法,其特征在于服務(wù)請求者首先在連接到的Web服務(wù)注冊信息管理器緩存中查找服務(wù)信息,如果緩存中有所需服務(wù)信息,則將結(jié)果返回,查找過程結(jié)束;如果本地?zé)o緩存,則Web服務(wù)注冊信息管理器在本地查詢服務(wù),同時將查詢請求信息廣播給鄰居Web服務(wù)注冊信息管理器,并等待本地和鄰居的查詢結(jié)果返回;將返回的結(jié)果信息加入緩存中,最后將結(jié)果信息按請求者要求返回。
10.一種在如權(quán)利要求1所述的分布式主動Web服務(wù)注冊信息管理系統(tǒng)中實(shí)現(xiàn)服務(wù)信息同步更新的方法,其特征在于某個Web服務(wù)注冊信息管理器中的服務(wù)信息出現(xiàn)更新時,首先向其鄰居Web服務(wù)注冊信息管理器發(fā)出查詢緩存信息,所述鄰居Web服務(wù)注冊信息管理器查詢本地的緩存信息;如果本地?zé)o該服務(wù)緩存,則丟棄該查詢信息,如果本地有關(guān)于該服務(wù)信息的緩存,則更新該服務(wù)信息。
全文摘要
本發(fā)明公開了一種分布式主動Web服務(wù)注冊信息管理系統(tǒng)。該系統(tǒng)由多個主動Web服務(wù)注冊信息管理器按照分布式結(jié)構(gòu)組織而成,每個主動Web服務(wù)注冊信息管理器具有本地服務(wù)庫、用戶信息庫、鄰居信息庫和緩存服務(wù)信息庫,各信息庫通過本地服務(wù)監(jiān)測模塊、本地服務(wù)管理模塊、緩存服務(wù)管理模塊、用戶管理模塊以及服務(wù)同步模塊、擴(kuò)散查詢模塊、調(diào)度模塊進(jìn)行維護(hù)。本W(wǎng)eb服務(wù)注冊信息管理系統(tǒng)通過對服務(wù)的主動監(jiān)測機(jī)制來保證其上注冊的服務(wù)信息的有效性;通過分布式的互連結(jié)構(gòu),避免UDDI的集中服務(wù)管理模式下出現(xiàn)的單點(diǎn)失效問題,從而提高服務(wù)注冊庫的實(shí)際可用性。
文檔編號G06F17/30GK1787524SQ20051007735
公開日2006年6月14日 申請日期2005年6月22日 優(yōu)先權(quán)日2005年6月22日
發(fā)明者杜宗霞, 懷進(jìn)鵬 申請人:北京航空航天大學(xué)