專利名稱:Web服務(wù)調(diào)用方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,特別涉及一種WEB服務(wù)調(diào)用方法及WEB服務(wù)調(diào)用系統(tǒng)。
背景技術(shù):
WEB服務(wù)由于其跨平臺(tái)、可互操作性等優(yōu)點(diǎn),得到越來越廣泛的應(yīng)用。但在實(shí)際使用中,由于網(wǎng)絡(luò)問題導(dǎo)致的WEB服務(wù)無法訪問或者WEB服務(wù)自身出錯(cuò)等原因,都會(huì)直接導(dǎo)致調(diào)用方調(diào)用WEB服務(wù)失敗。為了提高WEB服務(wù)的可靠性,通常采用負(fù)載均衡技術(shù)來減輕服務(wù)負(fù)載技術(shù)。負(fù)載 均衡技術(shù)的原理是客戶端訪問對(duì)外發(fā)布的WEB服務(wù)URL地址,負(fù)載均衡服務(wù)端收到客戶端請求之后將其分配給內(nèi)部多個(gè)服務(wù)中的一個(gè)進(jìn)行處理,負(fù)載均衡服務(wù)端將內(nèi)部服務(wù)返回的結(jié)果通過對(duì)外的URL返回給客戶端;這種技術(shù)特點(diǎn)決定了對(duì)外的這個(gè)WEB服務(wù)URL地址是唯一的,一旦該URL地址不能訪問,則這個(gè)WEB服務(wù)就不能被用戶使用了,即便后臺(tái)有再多的服務(wù),用戶都無法使用。當(dāng)然,用戶也可以通過訪問發(fā)布的其他WEB服務(wù)的URL地址以利用后臺(tái)的內(nèi)部服務(wù),但這樣就需要用戶手動(dòng)更改可用的Web服務(wù)URL地址,因此,該負(fù)載均衡技術(shù)雖然能夠減少服務(wù)故障發(fā)生的概率,但并不能完全保證WEB服務(wù)的可靠調(diào)用,還有待進(jìn)一步改進(jìn)。
發(fā)明內(nèi)容
本發(fā)明提供了一種WEB服務(wù)調(diào)用方法及系統(tǒng),用以使得的項(xiàng)目或應(yīng)用得以實(shí)現(xiàn)。根據(jù)本發(fā)明的一個(gè)方面,提供了一種WEB服務(wù)調(diào)用方法,該方法能夠保證WEB服務(wù)的可靠性。根據(jù)本發(fā)明的一個(gè)方面,提供了一種WEB服務(wù)調(diào)用系統(tǒng),該系統(tǒng)能夠保證WEB服務(wù)的可靠性。本發(fā)明的目的是通過下述技術(shù)方案實(shí)現(xiàn)的本發(fā)明提供了一種WEB服務(wù)調(diào)用方法,該方法包括A、接收請求;B、判斷主服務(wù)是否可用,如果可用,則調(diào)用主服務(wù)處理所述請求并反饋處理結(jié)果,如果不可用,則執(zhí)行步驟C ;C、調(diào)用可用的備份服務(wù)處理所述請求并反饋處理結(jié)果。較佳地,所述步驟B之后還包括監(jiān)測到主服務(wù)恢復(fù)至可用時(shí),切換至可用的主服務(wù)。上述方法中,步驟B所述判斷主服務(wù)是否可用包括將所述請求中攜帶的參數(shù)發(fā)送給所述主服務(wù),判斷在預(yù)設(shè)的第一時(shí)間內(nèi)內(nèi)是否接收到所述主服務(wù)反饋的處理結(jié)果,如果是,則確定所述主服務(wù)可用,否則確定所述主服務(wù)不可用。
上述方法中,所述步驟C包括Cl、將所述請求中攜帶的參數(shù)發(fā)送給一個(gè)備份服務(wù),判斷在預(yù)設(shè)的第二時(shí)間內(nèi)是否接收到所述備份服務(wù)反饋的處理結(jié)果,如果是,則確定所述備份服務(wù)可用,執(zhí)行步驟C2,否則執(zhí)行步驟Cl ;C2、輸出所述反饋的處理結(jié)果。較佳地,所述步驟A之前還包括利用一個(gè)代理類封裝主服務(wù)和至少一個(gè)備份服務(wù);調(diào)用所述代理類,以觸發(fā)執(zhí)行所述步驟A至所述步驟C。較佳地,所述調(diào)用所述代理類之前還包括將代理類編譯為一個(gè)動(dòng)態(tài)鏈接文件;所述調(diào)用所述代理類為通過引用所述動(dòng)態(tài)鏈接文件調(diào)用所述代理類。較佳地,該方法還包括從配置文件中獲取主服務(wù)及備份服務(wù),或者從配置文件中獲取主服務(wù)及備份服務(wù),并利用調(diào)用的備份服務(wù)或恢復(fù)至可用的主服務(wù)更新所述配置文件。上述方法中,所述主服務(wù)為提供WEB服務(wù)的首選URL ;所述備份服務(wù)為提供WEB服務(wù)的備用URL。本發(fā)明提供了一種WEB服務(wù)調(diào)用系統(tǒng),該系統(tǒng)包括服務(wù)調(diào)用模塊、主服務(wù)模塊及至少一個(gè)備份服務(wù)模塊;所述服務(wù)調(diào)用模塊接收來自客戶端的請求,監(jiān)測所述主服務(wù)模塊,確定所述主服務(wù)模塊可用,則調(diào)用所述主服務(wù)模塊處理所述請求,確定所述主服務(wù)模塊不可用,則調(diào)用可用的備份服務(wù)模塊處理所述請求;所述主服務(wù)模塊反饋所述請求的處理結(jié)果,或所述可用的備份服務(wù)模塊反饋所述請求的處理結(jié)果。較佳地,所述服務(wù)調(diào)用模塊還在監(jiān)測到不可用的主服務(wù)模塊恢復(fù)至可用后,由可用的備份服務(wù)模塊切換至可用的主服務(wù)模塊。上述系統(tǒng)中,所述服務(wù)調(diào)用模塊包括監(jiān)測單元及第一計(jì)時(shí)單元;所述監(jiān)測單元將所述請求中攜帶的參數(shù)發(fā)送給所述主服務(wù)模塊,啟動(dòng)第一計(jì)時(shí)單元,判斷在接收到第一計(jì)時(shí)單元的觸發(fā)之前是否接收到主服務(wù)模塊反饋的處理結(jié)果,如果是,則確定所述主服務(wù)模塊可用,觸發(fā)第一計(jì)時(shí)單元停止計(jì)時(shí),否則確定所述主服務(wù)模塊不可用,將所述請求中攜帶的參數(shù)發(fā)送給備份服務(wù)模塊,直至從一個(gè)備份服務(wù)模塊獲取所述請求的處理結(jié)果;所述第一計(jì)時(shí)單元啟動(dòng)后根據(jù)預(yù)設(shè)的第一時(shí)間觸發(fā)所述監(jiān)測單元。上述系統(tǒng)中,所述服務(wù)調(diào)用模塊包括監(jiān)測單元、第一計(jì)時(shí)單元及第二計(jì)時(shí)單元;所述監(jiān)測單元將所述請求中攜帶的參數(shù)發(fā)送給所述主服務(wù)模塊,啟動(dòng)第一計(jì)時(shí)單元,判斷在接收到第一計(jì)時(shí)單元的觸發(fā)之前是否接收到主服務(wù)模塊反饋的處理結(jié)果,如果是,則確定所述主服務(wù)模塊可用,觸發(fā)第一計(jì)時(shí)單元停止計(jì)時(shí),否則確定所述主服務(wù)模塊不可用,啟動(dòng)所述第二計(jì)時(shí)單元;所述監(jiān)測單元將所述請求中攜帶的參數(shù)發(fā)送給備份服務(wù)模塊,直至從一個(gè)備份服務(wù)模塊獲取所述請求的處理結(jié)果,根據(jù)第二計(jì)時(shí)單元的觸發(fā),確定不可用的主服務(wù)模塊恢復(fù)至可用,觸發(fā)所述第二計(jì)時(shí)單元停止計(jì)時(shí);
所述第一計(jì)時(shí)單元啟動(dòng)后根據(jù)預(yù)設(shè)的第一時(shí)間觸發(fā)所述監(jiān)測單元;所述第二計(jì)時(shí)單元啟動(dòng)后監(jiān)測不可用的主服務(wù)模塊的狀態(tài),在確定不可用的主服務(wù)模塊恢復(fù)至可用時(shí),觸發(fā)所述監(jiān)測模塊。較佳地,所述主服務(wù)模塊和所述備份服務(wù)模塊還通過一個(gè)接口連接所述服務(wù)調(diào)用模塊;所述主服務(wù)模塊為提供WEB服務(wù)的首選URL ;所述備份服務(wù)模塊為提供WEB服務(wù)的備用URL。較佳地,該系統(tǒng)還包含存儲(chǔ)有主服務(wù)模塊的信息及備份服務(wù)模塊的信息的配置模塊;所述服務(wù)調(diào)用模塊從所述配置模塊獲取主服務(wù)模塊的信息及備份服務(wù)模塊的信息,
或者所述服務(wù)調(diào)用模塊從所述配置模塊獲取主服務(wù)模塊的信息及備份服務(wù)模塊的信息,利用調(diào)用的備份服務(wù)模塊的信息或恢復(fù)至可用的主服務(wù)模塊的信息更新所述配置模塊中存儲(chǔ)的信息。由上述的技術(shù)方案可見,本發(fā)明提供了一種WEB服務(wù)調(diào)用方法及系統(tǒng),該方法中,接收請求,判斷主服務(wù)是否可用,如果可用,則調(diào)用主服務(wù)處理請求并反饋處理結(jié)果,如果不可用,則調(diào)用可用的備份服務(wù)處理請求并反饋處理結(jié)果。采用本發(fā)明的方法及系統(tǒng),能夠保證WEB服務(wù)的可靠性。
圖1為本發(fā)明WEB服務(wù)調(diào)用方法實(shí)施例一的流程圖;圖2為本發(fā)明WEB服務(wù)調(diào)用方法實(shí)施例二的流程圖;圖3為本發(fā)明WEB服務(wù)調(diào)用系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖;圖4為本發(fā)明WEB服務(wù)調(diào)用系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖。
具體實(shí)施例方式由于現(xiàn)有技術(shù)中作為首選WEB服務(wù)的URL因故障無法被使用時(shí),需要手動(dòng)重新設(shè)置提供WEB服務(wù)的URL,而本發(fā)明提供的WEB服務(wù)調(diào)用方法中,無需手動(dòng)重新設(shè)置提供WEB服務(wù)的URL,對(duì)作為首選WEB服務(wù)的主服務(wù)進(jìn)行監(jiān)測,如果其不可用,則自動(dòng)切換至提供WEB服務(wù)的備份服務(wù),調(diào)用備份服務(wù)提供WEB服務(wù),保證了 WEB服務(wù)的可靠性。為了表述清楚,先對(duì)本發(fā)明的專用詞進(jìn)行說明,具體如下主服務(wù)為提供WEB服務(wù)的首選URL,備份服務(wù)為提供WEB服務(wù)的備用URL ;本發(fā)明提及的主服務(wù)或備份服務(wù)反饋的處理結(jié)果為能夠連接相應(yīng)URL或連接成功的信息,如果無法連接相應(yīng)URL或連接失敗的信息視為未接收到相應(yīng)的處理結(jié)果。圖1為本發(fā)明WEB服務(wù)調(diào)用方法實(shí)施例一的流程圖。現(xiàn)結(jié)合圖1,對(duì)本發(fā)明實(shí)施例一的WEB服務(wù)調(diào)用方法進(jìn)行說明,具體如下步驟10 :接收來自客戶端的請求;該步驟可通過一個(gè)接口接收客戶端發(fā)送的請求。其中,客戶端可為運(yùn)行在一臺(tái)如計(jì)算機(jī)一樣的終端上的提供WEB服務(wù)的軟件程序;該步驟中提及的請求中包含終端獲取WEB服務(wù)所需的參數(shù)。本發(fā)明中,參數(shù)可以是任意類型的,數(shù)量也可有多個(gè)。具體的參數(shù)取決于具體的服務(wù),取決于發(fā)布者對(duì)于服務(wù)的定義。例如,對(duì)于計(jì)算數(shù)值之和的Web服務(wù),參數(shù)是多個(gè)數(shù)值,因此參數(shù)數(shù)量是多個(gè)。又例如,對(duì)于一個(gè)獲取居民身份證信息的服務(wù),參數(shù)是個(gè)人身份證號(hào),則只有一個(gè)參數(shù)。因此,Web服務(wù)的參數(shù)是根據(jù)具體需求靈活定制或配置的。步驟11 :判斷主服務(wù)是否可用,如果可用,則執(zhí)行步驟12,否則執(zhí)行步驟13 ;該步驟包括將請求中攜帶的參數(shù)發(fā)送給主服務(wù),判斷在預(yù)設(shè)的第一時(shí)間內(nèi)內(nèi)是否接收到主服務(wù)反饋的處理結(jié)果,如果是,則確定主服務(wù)可用,執(zhí)行步驟12,否則確定主服務(wù)不可用,執(zhí)行步驟13。本實(shí)施例中是采用發(fā)送請求給主服務(wù),以是否獲得處理結(jié)果判斷主服務(wù)是否可用,還可采用現(xiàn)有的其他檢測主服務(wù)是否可用的方法,比如用以檢測與主服務(wù)之間的鏈路 是否連通的Ping命令,在此不再對(duì)其他檢測主服務(wù)是否可用的方法進(jìn)行舉例說明。步驟12 :調(diào)用主服務(wù)處理請求并反饋處理結(jié)果,之后執(zhí)行步驟14 ;該步驟包括將請求中攜帶的參數(shù)發(fā)送給主服務(wù),從主服務(wù)獲取連接成功的信息或數(shù)據(jù),將連接成功的信息或數(shù)據(jù)作為處理結(jié)果反饋給發(fā)送請求的客戶端。步驟13 :調(diào)用可用的備份服務(wù)處理請求并反饋處理結(jié)果;該步驟包括將請求中攜帶的參數(shù)發(fā)送給一個(gè)備份服務(wù),判斷在預(yù)設(shè)的第二時(shí)間內(nèi)是否接收到備份服務(wù)反饋的處理結(jié)果,如果是,則確定備份服務(wù)可用,輸出反饋的處理結(jié)果,否則繼續(xù)執(zhí)行將請求中攜帶的參數(shù)發(fā)送給一個(gè)備份服務(wù)的步驟,直至從一個(gè)備份服務(wù)接收到處理結(jié)果為止。或者該步驟包括將請求中攜帶的參數(shù)發(fā)送給多個(gè)備份服務(wù),判斷是否接收到多個(gè)備份服務(wù)反饋的處理結(jié)果,如果是,則將反饋處理結(jié)果最快的備份服務(wù)作為可用的備份服務(wù),反饋其發(fā)送的處理結(jié)果,否則判斷是否接收到一個(gè)備份服務(wù)反饋的處理結(jié)果,如果是,則將該備份服務(wù)作為可用的備份服務(wù),反饋其發(fā)送的處理結(jié)果,否則執(zhí)行將請求中攜帶的參數(shù)發(fā)送給多個(gè)備份服務(wù)的步驟。該步驟是一個(gè)內(nèi)部循環(huán)處理,即將請求中攜帶的參數(shù)發(fā)送給備份服務(wù),直至從一個(gè)備份服務(wù)獲取處理結(jié)果,確定該備份服務(wù)可用,將其作為此次提供WEB服務(wù)的首選服務(wù)。步驟14 :結(jié)束。為了便于客戶端通過同一個(gè)接口方便地訪問主服務(wù)和多個(gè)備份服務(wù),步驟10之前還可包括利用一個(gè)代理類封裝主服務(wù)和至少一個(gè)備份服務(wù),通過調(diào)用代理類,觸發(fā)執(zhí)行步驟10至步驟14的流程。優(yōu)選地,在上述調(diào)用代理類的步驟之前前還包括將代理類編譯為一個(gè)動(dòng)態(tài)鏈接文件;則調(diào)用代理類的步驟為通過引用動(dòng)態(tài)鏈接文件調(diào)用代理類。優(yōu)選地,在步驟13之后還包括在預(yù)設(shè)的第三時(shí)間內(nèi)未接收到任何一個(gè)備份服務(wù)反饋的處理結(jié)果,則輸出無可用WEB服務(wù)的結(jié)果至發(fā)送請求的客戶端。為了提高工作效率,便于實(shí)現(xiàn)即插即用的服務(wù)切換,該方法還包括從配置文件中獲取主服務(wù)及備份服務(wù),在調(diào)用可用的備份服務(wù)后,可將配置文件中提供首選WEB服務(wù)的信息更新為所調(diào)用的備份服務(wù)的信息。另外,在不可用的主服務(wù)恢復(fù)至可用后,還可進(jìn)一步講配置文件中提供首選WEB服務(wù)的信息更新為恢復(fù)至可用的主服務(wù)的信息。
圖2為本發(fā)明WEB服務(wù)調(diào)用方法實(shí)施例二的流程圖?,F(xiàn)結(jié)合圖2,對(duì)本發(fā)明實(shí)施例二的WEB服務(wù)調(diào)用方法進(jìn)行說明,具體如下步驟20 :接收來自客戶端的請求;該步驟可通過一個(gè)接口接收客戶端發(fā)送的請求。其中,客戶端可為運(yùn)行在一臺(tái)如計(jì)算機(jī)一樣的終端上的提供WEB服務(wù)的軟件程序;該步驟中提及的請求中包含終端獲取WEB服務(wù)所需的參數(shù);所述參數(shù)的如前所述。步驟21 :判斷主服務(wù)是否可用,如果可用,則執(zhí)行步驟22,否則執(zhí)行步驟23 ;該步驟包括將請求中攜帶的參數(shù)發(fā)送給主服務(wù),判斷在預(yù)設(shè)的第一時(shí)間內(nèi)內(nèi)是 否接收到主服務(wù)反饋的處理結(jié)果,如果是,則確定主服務(wù)可用,執(zhí)行步驟22,否則確定主服務(wù)不可用,執(zhí)行步驟23。本實(shí)施例中是采用發(fā)送請求給主服務(wù),以是否獲得處理結(jié)果判斷主服務(wù)是否可用,還可采用現(xiàn)有的其他檢測主服務(wù)是否可用的方法,比如用以檢測與主服務(wù)之間的鏈路是否連通的Ping命令,在此不再對(duì)其他檢測主服務(wù)是否可用的方法進(jìn)行舉例說明。步驟22 :調(diào)用主服務(wù)處理請求并反饋處理結(jié)果,之后執(zhí)行步驟26 ;該步驟包括將請求中攜帶的參數(shù)發(fā)送給主服務(wù),從主服務(wù)獲取連接成功的信息或數(shù)據(jù),將連接成功的信息或數(shù)據(jù)作為處理結(jié)果反饋給發(fā)送請求的客戶端。步驟23 :調(diào)用可用的備份服務(wù)處理請求并反饋處理結(jié)果;該步驟包括將請求中攜帶的參數(shù)發(fā)送給一個(gè)備份服務(wù),判斷在預(yù)設(shè)的第二時(shí)間內(nèi)是否接收到備份服務(wù)反饋的處理結(jié)果,如果是,則確定備份服務(wù)可用,輸出反饋的處理結(jié)果,否則繼續(xù)執(zhí)行將請求中攜帶的參數(shù)發(fā)送給一個(gè)備份服務(wù)的步驟,直至從一個(gè)備份服務(wù)接收到處理結(jié)果為止?;蛘咴摬襟E包括將請求中攜帶的參數(shù)發(fā)送給多個(gè)備份服務(wù),判斷是否接收到多個(gè)備份服務(wù)反饋的處理結(jié)果,如果是,則將反饋處理結(jié)果最快的備份服務(wù)作為可用的備份服務(wù),反饋其發(fā)送的處理結(jié)果,否則判斷是否接收到一個(gè)備份服務(wù)反饋的處理結(jié)果,如果是,則將該備份服務(wù)作為可用的備份服務(wù),反饋其發(fā)送的處理結(jié)果,否則執(zhí)行將請求中攜帶的參數(shù)發(fā)送給多個(gè)備份服務(wù)的步驟。該步驟是一個(gè)內(nèi)部循環(huán)處理,即將請求中攜帶的參數(shù)發(fā)送給備份服務(wù),直至從一個(gè)備份服務(wù)獲取處理結(jié)果,確定該備份服務(wù)可用,將其作為此次提供WEB服務(wù)的首選服務(wù)。步驟24 :判斷不可用的主服務(wù)是否恢復(fù)至可用,如果是,則執(zhí)行步驟25,否則執(zhí)行步驟24 ;該步驟包括通過發(fā)送請求攜帶的參數(shù)至不可用的主服務(wù),檢測是否接收到主服務(wù)反饋的處理結(jié)果,來判斷不可用的主服務(wù)是否恢復(fù)可用,若接收到主服務(wù)反饋的處理結(jié)果,則確定不可用的主服務(wù)恢復(fù)至可用,執(zhí)行步驟25,否則執(zhí)行發(fā)送請求攜帶的參數(shù)至不可用的主服務(wù)的步驟。該步驟還可采用ping命令判斷不可用的主服務(wù)是否恢復(fù)至可用,在此不再對(duì)其它可行的檢測方法進(jìn)行逐一舉例說明。步驟25 :將恢復(fù)至可用的主服務(wù)設(shè)置為首選WEB服務(wù);該步驟包括由可用的備份服務(wù)切換至恢復(fù)至可用的主服務(wù),將恢復(fù)至可用的主服務(wù)設(shè)為首選WEB服務(wù)。
步驟26:結(jié)束。為了便于客戶端通過同一個(gè)接口方便地訪問主服務(wù)和多個(gè)備份服務(wù),步驟20之前還可包括利用一個(gè)代理類封裝主服務(wù)和至少一個(gè)備份服務(wù),通過調(diào)用代理類,觸發(fā)執(zhí)行步驟20至步驟24的流程。優(yōu)選地,在上述調(diào)用代理類的步驟之前前還包括將代理類編譯為一個(gè)動(dòng)態(tài)鏈接文件;則調(diào)用代理類的步驟為通過引用動(dòng)態(tài)鏈接文件調(diào)用代理類。優(yōu)選地,在步驟23之后還包括在預(yù)設(shè)的第三時(shí)間內(nèi)未接收到任何一個(gè)備份服務(wù)反饋的處理結(jié)果,則輸出無可用WEB服務(wù)的結(jié)果至發(fā)送請求的客戶端。為了提高工作效率,便于實(shí)現(xiàn)即插即用的服務(wù)切換,該方法還包括從配置文件中獲取主服務(wù)及備份服務(wù),在調(diào)用可用的備份服務(wù)后,可將配置文件中提供首選WEB服務(wù)的信息更新為所調(diào)用的備份服務(wù)的信息。另外,在不可用的主服務(wù)恢復(fù)至可用后,還可進(jìn)一步 講配置文件中提供首選WEB服務(wù)的信息更新為恢復(fù)至可用的主服務(wù)的信息。圖3為本發(fā)明WEB服務(wù)調(diào)用系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖?,F(xiàn)結(jié)合圖3,對(duì)本發(fā)明實(shí)施例一的WEB服務(wù)調(diào)用系統(tǒng)的結(jié)構(gòu)進(jìn)行說明,具體如下本實(shí)施例的WEB服務(wù)調(diào)用系統(tǒng)包括服務(wù)調(diào)用模塊30、主服務(wù)模塊31及至少一個(gè)備份服務(wù)模塊32。服務(wù)調(diào)用模塊30接收來自客戶端的請求,監(jiān)測主服務(wù)模塊31,確定主服務(wù)模塊31可用,則調(diào)用主服務(wù)模塊31處理請求,確定主服務(wù)模塊31不可用,則調(diào)用可用的備份服務(wù)模塊32處理請求。主服務(wù)模塊31接收請求,反饋請求的處理結(jié)果至服務(wù)調(diào)用模塊30,或者備份服務(wù)模塊32接收請求,反饋請求的處理結(jié)果至服務(wù)調(diào)用模塊30。另外,主服務(wù)模塊31和備份服務(wù)模塊32還通過一個(gè)接口(圖3中未示出)連接服務(wù)調(diào)用模塊30,以便通過一個(gè)接口調(diào)用相關(guān)服務(wù),實(shí)現(xiàn)即插即用的服務(wù)切換。為了提高工作效率,該系統(tǒng)還包含存儲(chǔ)有主服務(wù)模塊31的信息及備份服務(wù)模塊32的信息的配置模塊33。其中,服務(wù)調(diào)用模塊30從配置模塊33獲取主服務(wù)模塊31的信息及備份服務(wù)模塊32的信息;服務(wù)調(diào)用模塊30在調(diào)用備份服務(wù)模塊32之后,將配置模塊33中作為首選WEB服務(wù)的模塊信息更新為調(diào)用的備份服務(wù)模塊32的信息。其中,服務(wù)調(diào)用模塊30包括監(jiān)測單元301及第一計(jì)時(shí)單元302。監(jiān)測單元301將請求中攜帶的參數(shù)發(fā)送給主服務(wù)模塊31,啟動(dòng)第一計(jì)時(shí)單元302,判斷在接收到第一計(jì)時(shí)單元302的觸發(fā)之前是否接收到主服務(wù)模塊31反饋的處理結(jié)果,如果是,則確定主服務(wù)模塊31可用,觸發(fā)第一計(jì)時(shí)單元302停止計(jì)時(shí),否則確定主服務(wù)模塊31不可用,將請求中攜帶的參數(shù)發(fā)送給備份服務(wù)模塊32,直至從一個(gè)備份服務(wù)模塊32獲取請求的處理結(jié)果。另外,監(jiān)測單元301在預(yù)設(shè)的第三時(shí)間內(nèi)未接收到任何備份服務(wù)模塊32反饋的處理結(jié)果,則輸出無可用的WEB服務(wù)的信息至發(fā)送請求的一方。第一計(jì)時(shí)單元302啟動(dòng)后根據(jù)預(yù)設(shè)的第一時(shí)間觸發(fā)監(jiān)測單元301。圖4為本發(fā)明WEB服務(wù)調(diào)用系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖?,F(xiàn)結(jié)合圖4,對(duì)本發(fā)明實(shí)施例二的WEB服務(wù)調(diào)用系統(tǒng)的結(jié)構(gòu)進(jìn)行說明,具體如下本實(shí)施例的WEB服務(wù)調(diào)用系統(tǒng)包括服務(wù)調(diào)用模塊40、主服務(wù)模塊41及至少一個(gè)備份服務(wù)模塊42。服務(wù)調(diào)用模塊40接收來自客戶端的請求,監(jiān)測主服務(wù)模塊41,確定主服務(wù)模塊41可用,則調(diào)用主服務(wù)模塊41處理請求,確定主服務(wù)模塊41不可用,則調(diào)用可用的備份服務(wù)模塊42處理請求;服務(wù)調(diào)用模塊40監(jiān)測到不可用的主服務(wù)模塊41恢復(fù)至可用后,由可用的備份服務(wù)模塊42切換至可用的主服務(wù)模塊41。主服務(wù)模塊41接收請求,反饋請求的處理結(jié)果至服務(wù)調(diào)用模塊40,或者備份服務(wù)模塊42接收請求,反饋請求的處理結(jié)果至服務(wù)調(diào)用模塊40。另外,主服務(wù)模塊41和備份服務(wù)模塊42還通過一個(gè)接口(圖4中未示出)連接服務(wù)調(diào)用模塊40,以便通過一個(gè)接口調(diào)用相關(guān)服務(wù),實(shí)現(xiàn)即插即用的服務(wù)切換。 為了提高工作效率,該系統(tǒng)還包含存儲(chǔ)有主服務(wù)模塊41的信息及備份服務(wù)模塊42的信息的配置模塊43。其中,服務(wù)調(diào)用模塊40從配置模塊43獲取主服務(wù)模塊41的信息及備份服務(wù)模塊42的信息;服務(wù)調(diào)用模塊40在調(diào)用備份服務(wù)模塊42之后,將配置模塊43中作為首選WEB服務(wù)的模塊信息更新為調(diào)用的備份服務(wù)模塊42的信息;服務(wù)調(diào)用模塊40在不可用的主服務(wù)模塊412恢復(fù)至可用之后,將配置模塊43中作為首選WEB服務(wù)的模塊信息更新為恢復(fù)至可用的主服務(wù)模塊41的信息。其中,服務(wù)調(diào)用模塊40包括監(jiān)測單元401、第一計(jì)時(shí)單元402及第二計(jì)時(shí)單元403。監(jiān)測單元401將請求中攜帶的參數(shù)發(fā)送給主服務(wù)模塊41,啟動(dòng)第一計(jì)時(shí)單元402,判斷在接收到第一計(jì)時(shí)單元402的觸發(fā)之前是否接收到主服務(wù)模塊41反饋的處理結(jié)果,如果是,則確定主服務(wù)模塊41可用,觸發(fā)第一計(jì)時(shí)單元402停止計(jì)時(shí),否則確定主服務(wù)模塊41不可用,啟動(dòng)第二計(jì)時(shí)單元403。監(jiān)測單元401將請求中攜帶的參數(shù)發(fā)送給備份服務(wù)模塊42,直至從一個(gè)備份服務(wù)模塊42獲取請求的處理結(jié)果,根據(jù)第二計(jì)時(shí)單元403的觸發(fā),確定不可用的主服務(wù)模塊41恢復(fù)至可用,觸發(fā)第二計(jì)時(shí)單元403停止計(jì)時(shí)。另外,監(jiān)測單元401在預(yù)設(shè)的第三時(shí)間內(nèi)未接收到任何備份服務(wù)模塊42反饋的處理結(jié)果,則輸出無可用的WEB服務(wù)的信息至發(fā)送請求的一方。第一計(jì)時(shí)單元402啟動(dòng)后根據(jù)預(yù)設(shè)的第一時(shí)間觸發(fā)監(jiān)測單元401。第二計(jì)時(shí)單元403啟動(dòng)后監(jiān)測不可用的主服務(wù)模塊41的狀態(tài),在確定不可用的主服務(wù)模塊41恢復(fù)至可用時(shí),觸發(fā)監(jiān)測模塊401。本發(fā)明的上述較佳實(shí)施例中,提出使用一種基于代理機(jī)制的帶有自動(dòng)故障屏蔽的WEB服務(wù)調(diào)用方法,來完成對(duì)WEB服務(wù)可靠性的管理,在某一個(gè)WEB服務(wù)不可用時(shí)實(shí)現(xiàn)自動(dòng)切換,提供了一種低成本的可靠的WEB服務(wù)調(diào)用方法。另外,本發(fā)明通過配置文件可實(shí)時(shí)獲取主服務(wù)及備份服務(wù)的信息,可在不重啟程序的情況下,隨時(shí)添加或刪減配置文件中的Web服務(wù)信息,且在主服務(wù)和備份服務(wù)之間切換過程中也無需切換,實(shí)現(xiàn)即插即用的服務(wù)切換,提高了工作效率。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種WEB服務(wù)調(diào)用方法,其特征在于,該方法包括 A、接收請求; B、判斷主服務(wù)是否可用,如果可用,則調(diào)用主服務(wù)處理所述請求并反饋處理結(jié)果,如果不可用,則執(zhí)行步驟C ; C、調(diào)用可用的備份服務(wù)處理所述請求并反饋處理結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B之后還包括監(jiān)測到主服務(wù)恢復(fù)至可用時(shí),切換至可用的主服務(wù)。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,步驟B所述判斷主服務(wù)是否可用包括 將所述請求中攜帶的參數(shù)發(fā)送給所述主服務(wù),判斷在預(yù)設(shè)的第一時(shí)間內(nèi)內(nèi)是否接收到所述主服務(wù)反饋的處理結(jié)果,如果是,則確定所述主服務(wù)可用,否則確定所述主服務(wù)不可用。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述步驟C包括 Cl、將所述請求中攜帶的參數(shù)發(fā)送給一個(gè)備份服務(wù),判斷在預(yù)設(shè)的第二時(shí)間內(nèi)是否接收到所述備份服務(wù)反饋的處理結(jié)果,如果是,則確定所述備份服務(wù)可用,執(zhí)行步驟C2,否則執(zhí)行步驟Cl ; C2、輸出所述反饋的處理結(jié)果。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述步驟A之前還包括 利用一個(gè)代理類封裝主服務(wù)和至少一個(gè)備份服務(wù); 調(diào)用所述代理類,以觸發(fā)執(zhí)行所述步驟A至所述步驟C。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述調(diào)用所述代理類之前還包括將代理類編譯為一個(gè)動(dòng)態(tài)鏈接文件; 所述調(diào)用所述代理類為通過引用所述動(dòng)態(tài)鏈接文件調(diào)用所述代理類。
7.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,該方法還包括從配置文件中獲取主服務(wù)及備份服務(wù), 或者從配置文件中獲取主服務(wù)及備份服務(wù),并利用調(diào)用的備份服務(wù)或恢復(fù)至可用的主服務(wù)更新所述配置文件。
8.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述主服務(wù)為提供WEB服務(wù)的首選URL ; 所述備份服務(wù)為提供WEB服務(wù)的備用URL。
9.一種WEB服務(wù)調(diào)用系統(tǒng),其特征在于,該系統(tǒng)包括服務(wù)調(diào)用模塊、主服務(wù)模塊及至少一個(gè)備份服務(wù)模塊; 所述服務(wù)調(diào)用模塊接收來自客戶端的請求,監(jiān)測所述主服務(wù)模塊,確定所述主服務(wù)模塊可用,則調(diào)用所述主服務(wù)模塊處理所述請求,確定所述主服務(wù)模塊不可用,則調(diào)用可用的備份服務(wù)模塊處理所述請求; 所述主服務(wù)模塊反饋所述請求的處理結(jié)果,或所述可用的備份服務(wù)模塊反饋所述請求的處理結(jié)果。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述服務(wù)調(diào)用模塊還在監(jiān)測到不可用的主服務(wù)模塊恢復(fù)至可用后,由可用的備份服務(wù)模塊切換至可用的主服務(wù)模塊。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述服務(wù)調(diào)用模塊包括監(jiān)測單元及第一計(jì)時(shí)單元; 所述監(jiān)測單元將所述請求中攜帶的參數(shù)發(fā)送給所述主服務(wù)模塊,啟動(dòng)第一計(jì)時(shí)單元,判斷在接收到第一計(jì)時(shí)單元的觸發(fā)之前是否接收到主服務(wù)模塊反饋的處理結(jié)果,如果是,則確定所述主服務(wù)模塊可用,觸發(fā)第一計(jì)時(shí)單元停止計(jì)時(shí),否則確定所述主服務(wù)模塊不可用,將所述請求中攜帶的參數(shù)發(fā)送給備份服務(wù)模塊,直至從一個(gè)備份服務(wù)模塊獲取所述請求的處理結(jié)果; 所述第一計(jì)時(shí)單元啟動(dòng)后根據(jù)預(yù)設(shè)的第一時(shí)間觸發(fā)所述監(jiān)測單元。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述服務(wù)調(diào)用模塊包括監(jiān)測單元、第一計(jì)時(shí)單元及第二計(jì)時(shí)單元; 所述監(jiān)測單元將所述請求中攜帶的參數(shù)發(fā)送給所述主服務(wù)模塊,啟動(dòng)第一計(jì)時(shí)單元,判斷在接收到第一計(jì)時(shí)單元的觸發(fā)之前是否接收到主服務(wù)模塊反饋的處理結(jié)果,如果是,則確定所述主服務(wù)模塊可用,觸發(fā)第一計(jì)時(shí)單元停止計(jì)時(shí),否則確定所述主服務(wù)模塊不可用,啟動(dòng)所述第二計(jì)時(shí)單元; 所述監(jiān)測單元將所述請求中攜帶的參數(shù)發(fā)送給備份服務(wù)模塊,直至從一個(gè)備份服務(wù)模塊獲取所述請求的處理結(jié)果,根據(jù)第二計(jì)時(shí)單元的觸發(fā),確定不可用的主服務(wù)模塊恢復(fù)至可用,觸發(fā)所述第二計(jì)時(shí)單元停止計(jì)時(shí); 所述第一計(jì)時(shí)單元啟動(dòng)后根據(jù)預(yù)設(shè)的第一時(shí)間觸發(fā)所述監(jiān)測單元; 所述第二計(jì)時(shí)單元啟動(dòng)后監(jiān)測不可用的主服務(wù)模塊的狀態(tài),在確定不可用的主服務(wù)模塊恢復(fù)至可用時(shí),觸發(fā)所述監(jiān)測模塊。
13.根據(jù)權(quán)利要求9至12任一項(xiàng)所述的系統(tǒng),其特征在于,所述主服務(wù)模塊和所述備份服務(wù)模塊還通過一個(gè)接口連接所述服務(wù)調(diào)用模塊; 所述主服務(wù)模塊為提供WEB服務(wù)的首選URL ; 所述備份服務(wù)模塊為提供WEB服務(wù)的備用URL。
14.根據(jù)權(quán)利要求9至12任一項(xiàng)所述的系統(tǒng),其特征在于,該系統(tǒng)還包含存儲(chǔ)有主服務(wù)模塊的信息及備份服務(wù)模塊的信息的配置模塊; 所述服務(wù)調(diào)用模塊從所述配置模塊獲取主服務(wù)模塊的信息及備份服務(wù)模塊的信息, 或者所述服務(wù)調(diào)用模塊從所述配置模塊獲取主服務(wù)模塊的信息及備份服務(wù)模塊的信息,利用調(diào)用的備份服務(wù)模塊的信息或恢復(fù)至可用的主服務(wù)模塊的信息更新所述配置模塊中存儲(chǔ)的信息。
全文摘要
本發(fā)明公開了一種WEB服務(wù)調(diào)用方法和系統(tǒng)。所述方法包括A、接收請求;B、判斷主服務(wù)是否可用,如果可用,則調(diào)用主服務(wù)處理請求并反饋處理結(jié)果,如果不可用,則執(zhí)行步驟C;C、調(diào)用可用的備份服務(wù)處理請求并反饋處理結(jié)果。本發(fā)明還提供了一種WEB服務(wù)調(diào)用系統(tǒng)。采用本發(fā)明的方法及系統(tǒng),能夠保證WEB服務(wù)的可靠性。
文檔編號(hào)H04L29/08GK103024058SQ20121055571
公開日2013年4月3日 申請日期2012年12月19日 優(yōu)先權(quán)日2012年12月19日
發(fā)明者尹清準(zhǔn), 傅永財(cái), 滕波, 鄭揚(yáng)飛, 賈曉霞, 王志堅(jiān), 胡春波, 何巖, 郭紅鈺, 王非 申請人:中國電子科技集團(tuán)公司第十五研究所