專利名稱:面向同一客戶端的多服務(wù)器互操作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種面向同 一客戶端的多服務(wù)器互操作 方法。
背景技術(shù):
隨著WEB (萬維網(wǎng))技術(shù)的發(fā)展,基于WEB環(huán)境的軟件系統(tǒng)已經(jīng)成為主流, 這些系統(tǒng)大多采用B/S (瀏覽器/服務(wù)器)方式,用戶直接通過瀏覽器訪問軟件 系統(tǒng)提供的服務(wù)。
隨著軟件系統(tǒng)復(fù)雜度的日益提高,WEB環(huán)境下單服務(wù)器或側(cè)重于性能和可靠 性的群集系統(tǒng)已經(jīng)很難滿足客戶需要,在很多應(yīng)用中,系統(tǒng)需要多臺(tái)服務(wù)器提 供不同類型的服務(wù),這些服務(wù)器之間不必或者不能實(shí)現(xiàn)群集。這種系統(tǒng)簡化的 部署模型如圖1所示,服務(wù)器2對(duì)客戶端請(qǐng)求的執(zhí)行是依賴于服務(wù)器1的執(zhí)行 結(jié)果。由于安全性原因,不能將服務(wù)器1的執(zhí)行結(jié)果直接通過客戶端轉(zhuǎn)發(fā)給服 務(wù)器2,而是將服務(wù)器1中的執(zhí)行結(jié)果中與服務(wù)器2的執(zhí)行有關(guān)的部分作為用戶 狀態(tài)保存在服務(wù)器端?,F(xiàn)有的實(shí)現(xiàn)方式如下,如圖2所示
1、 客戶端向服務(wù)器1發(fā)出針對(duì)服務(wù)器2的服務(wù)請(qǐng)求,表示需要訪問服務(wù)器 2提供的服務(wù);
2、 在服務(wù)器1執(zhí)行與服務(wù)器2相關(guān)的請(qǐng)求后生成服務(wù)標(biāo)識(shí),將用戶狀態(tài)和 該服務(wù)標(biāo)識(shí)作——對(duì)應(yīng),保存在服務(wù)器1的內(nèi)存或后臺(tái)數(shù)據(jù)庫中;
3、 將步驟1生成的服務(wù)標(biāo)識(shí)和對(duì)服務(wù)器2的訪問請(qǐng)求通過客戶端轉(zhuǎn)發(fā)到服 務(wù)器2;
4、 服務(wù)器2接收到請(qǐng)求和服務(wù)標(biāo)識(shí)后,根據(jù)服務(wù)標(biāo)識(shí)向服務(wù)器1 (用戶狀 態(tài)保存在內(nèi)存中時(shí))或后臺(tái)數(shù)據(jù)庫查詢用戶狀態(tài);
5、 服務(wù)器2根據(jù)從服務(wù)器1 (用戶狀態(tài)保存在內(nèi)存中時(shí))或后臺(tái)數(shù)據(jù)庫查 詢到的用戶狀態(tài)向客戶端提供相應(yīng)的服務(wù);
6、 服務(wù)器2發(fā)送服務(wù)響應(yīng)到客戶端,處理結(jié)束。
在實(shí)現(xiàn)上述多服務(wù)器互操作的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題
1、 每次用戶請(qǐng)求服務(wù)器2的服務(wù)時(shí),服務(wù)器2都需要向服務(wù)器1 (或后臺(tái) 數(shù)據(jù)庫)查詢用戶狀態(tài),因而性能比較低;為提高性能,也可以在服務(wù)器2緩 存部分用戶狀態(tài),避免短期內(nèi)重復(fù)訪問服務(wù)器2的同一服務(wù)時(shí)還需要向服務(wù)器1
(或數(shù)據(jù)庫)查詢用戶狀態(tài),但這樣需要考慮緩存更新的問題,增加了系統(tǒng)的 復(fù)雜性;
2、 為保證后臺(tái)服務(wù)器間的用戶狀態(tài)交換,必須通過客戶端將服務(wù)標(biāo)識(shí)從服 務(wù)器1傳遞到服務(wù)器2,由于Cookie的跨DNS域限制,在服務(wù)器1和服務(wù)器2 不在同一個(gè)DNS域時(shí)而且必須通過Cookie傳遞服務(wù)標(biāo)識(shí)的情況時(shí)(必須通過 Cookie傳遞服務(wù)標(biāo)識(shí)的情況如內(nèi)容管理系統(tǒng)中向服務(wù)器1發(fā)出針對(duì)服務(wù)器2 的文件訪問請(qǐng)求時(shí),所訪問的文件是類似HTML的復(fù)合文檔,這類文檔會(huì)在主文 檔中嵌入圖片、視頻等對(duì)象的引用,客戶端接收到該文件后,會(huì)自動(dòng)向服務(wù)器2 發(fā)出訪問引用對(duì)象的請(qǐng)求,這些請(qǐng)求沒有經(jīng)過服務(wù)器1,無法通過URL參數(shù)的方 式顯式傳遞服務(wù)標(biāo)識(shí),只能在通過Cookie傳遞服務(wù)標(biāo)識(shí)),只能通過多次URL 重定向交換服務(wù)標(biāo)識(shí),導(dǎo)致系統(tǒng)結(jié)構(gòu)復(fù)雜,性能較低;
3、 對(duì)于以數(shù)據(jù)庫方式存儲(chǔ)用戶狀態(tài)的方案,需要在服務(wù)器1和服務(wù)器2能 夠訪問同一數(shù)據(jù)庫,在復(fù)雜的網(wǎng)絡(luò)環(huán)境下(服務(wù)器1和服務(wù)器2在地理位置上 不在同一位置)可能會(huì)由于網(wǎng)絡(luò)環(huán)境限制或性能原因,很難達(dá)到這個(gè)要求。而 且還需要在服務(wù)器2上部署數(shù)據(jù)庫訪問組件,因而系統(tǒng)結(jié)構(gòu)復(fù)雜;
4、 對(duì)于在服務(wù)器1內(nèi)存上緩存狀態(tài)的方案,需要在服務(wù)器1上緩存大量用 戶狀態(tài)數(shù)據(jù),這會(huì)消耗巨大的系統(tǒng)存儲(chǔ),另外為避免用戶狀態(tài)數(shù)據(jù)無限制膨脹, 還需要考慮定期清除用戶狀態(tài)數(shù)據(jù),因而系統(tǒng)結(jié)構(gòu)復(fù)雜。
總而言之,現(xiàn)有技術(shù)中的方案,由于服務(wù)器間的后臺(tái)狀態(tài)信息交換頻繁, 從而導(dǎo)致的互操作性能低,系統(tǒng)結(jié)構(gòu)復(fù)雜。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種面向同 一客戶端的多服務(wù)器互操作方法,用于提 高互操作性能,簡化系統(tǒng)結(jié)構(gòu)。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種面向同一客戶端的多服務(wù)器互操作方法,包括
客戶端向 一服務(wù)器發(fā)出針對(duì)另 一服務(wù)器的服務(wù)請(qǐng)求;
所述一服務(wù)器收到所述服務(wù)請(qǐng)求后,生成服務(wù)參數(shù),并將服務(wù)參數(shù)進(jìn)行數(shù) 字簽名,得到數(shù)字簽名結(jié)果;
所述一服務(wù)器將所述將服務(wù)參數(shù)和所述數(shù)字簽名結(jié)果通過客戶端轉(zhuǎn)發(fā)到所 述另一服務(wù)器;
所述另 一服務(wù)器接收所述服務(wù)參數(shù)和所述數(shù)字簽名結(jié)果,并對(duì)所述數(shù)字簽 名結(jié)果進(jìn)行驗(yàn)證,驗(yàn)證成功后,根據(jù)所述服務(wù)參數(shù)向客戶端提供服務(wù)。
本發(fā)明實(shí)施例提供的 一種面向同 一客戶端的多服務(wù)器互操作方法,客戶端 向一服務(wù)器發(fā)出針對(duì)另一服務(wù)器的服務(wù)請(qǐng)求后, 一服務(wù)器收到服務(wù)請(qǐng)求并生成 服務(wù)參數(shù),然后將服務(wù)參數(shù)進(jìn)行數(shù)字簽名;再通過客戶端將服務(wù)參數(shù)和數(shù)字簽 名結(jié)果轉(zhuǎn)發(fā)到另一服務(wù)器;另一服務(wù)器接收到后對(duì)數(shù)字簽名結(jié)果進(jìn)行驗(yàn)證,驗(yàn) 證成功后,向客戶端提供服務(wù)。
這樣一來,利用數(shù)字簽名的傳遞和驗(yàn)證,因每次另一服務(wù)器接收到一服務(wù) 器通過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),另一服務(wù)器都確知請(qǐng)求的來源,也就不再需 要向一服務(wù)器或后臺(tái)數(shù)據(jù)庫查詢用戶狀態(tài),從而避免了每次互操作都需要在后 臺(tái)進(jìn)行用戶狀態(tài)的頻繁交換,提高了互操作性能;
對(duì)于需要后臺(tái)交換用戶狀態(tài)的方案來說,本實(shí)施例提供的方法,因客戶端 每次向一服務(wù)器發(fā)出針對(duì)另一服務(wù)器的服務(wù)請(qǐng)求時(shí),不再需要通過客戶端傳遞 服務(wù)標(biāo)識(shí),提高了互操作性能,簡化了系統(tǒng)結(jié)構(gòu);
對(duì)于以數(shù)據(jù)庫方式存儲(chǔ)用戶狀態(tài)的方案來說,本實(shí)施例提供的方法,因每 次另一服務(wù)器接收到一服務(wù)器通過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),不再需要向后臺(tái) 數(shù)據(jù)庫查詢用戶狀態(tài),所以避免了在復(fù)雜網(wǎng)絡(luò)環(huán)境下訪問不到數(shù)據(jù)庫的可能, 同時(shí)也無需在服務(wù)器上部署數(shù)據(jù)庫訪問組件,因而簡化了系統(tǒng)結(jié)構(gòu);
對(duì)于在服務(wù)器的內(nèi)存上緩存狀態(tài)的方案來說,本實(shí)施例提供的方法,因每 次另一服務(wù)器接收到一服務(wù)器通過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),不再需要向一服 務(wù)器查詢用戶狀態(tài),所以減少了服務(wù)器為緩存用戶狀態(tài)而產(chǎn)生的存儲(chǔ)消耗,同 時(shí)也避免了因緩存的用戶狀態(tài)數(shù)據(jù)無限制膨脹,定期清除用戶狀態(tài)數(shù)據(jù)這一工
7作,因而簡化了系統(tǒng)結(jié)構(gòu)。
圖1為面向同一客戶端的多服務(wù)器的簡化模型圖2為現(xiàn)有技術(shù)中面向同一客戶端的多服務(wù)器互操作方法步驟示意圖3為本發(fā)明實(shí)施例1提供的面向同一客戶端的多服務(wù)器互操作方法流程
圖4為本發(fā)明實(shí)施例1提供的面向同一客戶端的多服務(wù)器互操作方法的步 驟流程圖。
具體實(shí)施例方式
本發(fā)明提供的 一種面向同 一客戶端的多服務(wù)器互操作方法,解決了由于服 務(wù)器間的后臺(tái)狀態(tài)信息交換頻繁,從而導(dǎo)致的互操作性能低,系統(tǒng)結(jié)構(gòu)復(fù)雜這 一問題。本發(fā)明提供的方法利用數(shù)字簽名的傳遞和驗(yàn)證,因每次另一服務(wù)器接 收到一服務(wù)器通過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),另 一服務(wù)器都確知請(qǐng)求的來源, 也就不再需要向一服務(wù)器或后臺(tái)數(shù)據(jù)庫查詢用戶狀態(tài),從而避免了每次互操作 都需要在后臺(tái)進(jìn)行用戶狀態(tài)的頻繁交換,提高了互操作性能;
對(duì)于需要后臺(tái)交換用戶狀態(tài)的方案來說,本發(fā)明提供的方法,因客戶端每 次向一服務(wù)器發(fā)出針對(duì)另一服務(wù)器的服務(wù)請(qǐng)求時(shí),不再需要通過客戶端傳遞服 務(wù)標(biāo)識(shí),從而提高了互操作性能,簡化了系統(tǒng)結(jié)構(gòu);
對(duì)于以數(shù)據(jù)庫方式存儲(chǔ)用戶狀態(tài)的方案來說,本發(fā)明提供的方法,因每次 另一服務(wù)器接收到一服務(wù)器通過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),不再需要向后臺(tái)數(shù) 據(jù)庫查詢用戶狀態(tài),所以避免了在復(fù)雜網(wǎng)絡(luò)環(huán)境下訪問不到數(shù)據(jù)庫的可能,同 時(shí)也無需在服務(wù)器上部署數(shù)據(jù)庫訪問組件,因而簡化了系統(tǒng)結(jié)構(gòu);
對(duì)于在服務(wù)器的內(nèi)存上緩存狀態(tài)的方案來說,本發(fā)明提供的方法,因每次 另一服務(wù)器接收到一服務(wù)器通過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),不再需要向一服務(wù) 器查詢用戶狀態(tài),所以減少了服務(wù)器為緩存用戶狀態(tài)而產(chǎn)生的存儲(chǔ)消耗,同時(shí) 也避免了因緩存的用戶狀態(tài)數(shù)據(jù)無限制膨脹,定期清除用戶狀態(tài)數(shù)據(jù)這一工作, 因而簡化了系統(tǒng)結(jié)構(gòu)。
下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例提供的面向同 一客戶端的多服務(wù)器互操作方
8法。
本發(fā)明實(shí)施例提供一種面向同一客戶端的多服務(wù)器互操作方法,如圖3所
示,該多服務(wù)器互操作方法包括如下步驟
301、 客戶端向 一服務(wù)器發(fā)出針對(duì)另 一服務(wù)器的服務(wù)請(qǐng)求;
302、 所述一服務(wù)器收到所述服務(wù)請(qǐng)求后,生成服務(wù)參數(shù),并將服務(wù)參數(shù)進(jìn) 行數(shù)字簽名,得到數(shù)字簽名結(jié)果;
303、 所述一服務(wù)器將所述將服務(wù)參數(shù)和所述數(shù)字簽名結(jié)果通過客戶端轉(zhuǎn)發(fā) 到所述另一服務(wù)器;
3(M、所述另一服務(wù)器接收所述服務(wù)參數(shù)和所述數(shù)字簽名結(jié)果,并對(duì)所述數(shù) 字簽名結(jié)果進(jìn)行驗(yàn)證,驗(yàn)證成功后,根據(jù)所述服務(wù)參數(shù)向客戶端提供服務(wù)。
其中一服務(wù)器記為服務(wù)器1,另一服務(wù)器記為服務(wù)器2。
本發(fā)明實(shí)施例提供的一種面向同 一客戶端的多服務(wù)器互操作方法,客戶端 向服務(wù)器1發(fā)出針對(duì)服務(wù)器2的服務(wù)請(qǐng)求后,服務(wù)器1收到服務(wù)請(qǐng)求并生成服 務(wù)參數(shù),然后將服務(wù)參數(shù)進(jìn)行數(shù)字簽名;再通過客戶端將服務(wù)參數(shù)和數(shù)字簽名 結(jié)果轉(zhuǎn)發(fā)到服務(wù)器2;服務(wù)器2接收到后對(duì)數(shù)字簽名結(jié)果進(jìn)行驗(yàn)證,驗(yàn)證成功后, 向客戶端提供服務(wù)。
這樣一來,利用數(shù)字簽名的傳遞和驗(yàn)證,每次服務(wù)器2接收到服務(wù)器1通 過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),服務(wù)器2都確知請(qǐng)求來源于服務(wù)器1,服務(wù)器2也 就不再需要向服務(wù)器1或后臺(tái)數(shù)據(jù)庫查詢用戶狀態(tài),從而避免了每次互操作都 需要在后臺(tái)進(jìn)行用戶狀態(tài)交換,提高了互操作性能;
對(duì)于需要后臺(tái)交換用戶狀態(tài)的方案來說,本實(shí)施例提供的方法,因客戶端 向服務(wù)器1發(fā)出針對(duì)服務(wù)器2的服務(wù)請(qǐng)求,不再需要通過客戶端傳遞服務(wù)標(biāo)識(shí), 提高了互操作性能,筒化了系統(tǒng)結(jié)構(gòu);
對(duì)于以數(shù)據(jù)庫方式存儲(chǔ)用戶狀態(tài)的方案來說,本實(shí)施例提供的方法,因每 次服務(wù)器2接收到服務(wù)器1通過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),服務(wù)器2不再需要 向后臺(tái)數(shù)據(jù)庫查詢用戶狀態(tài),所以避免了在復(fù)雜網(wǎng)絡(luò)環(huán)境下訪問不到數(shù)據(jù)庫的 可能,同時(shí)也無需在服務(wù)器2上部署數(shù)據(jù)庫訪問組件,因而簡化了系統(tǒng)結(jié)構(gòu);
對(duì)于在服務(wù)器1的內(nèi)存上緩存狀態(tài)的方案來說,本實(shí)施例提供的方法,因每次服務(wù)器2接收到服務(wù)器1通過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),服務(wù)器2不再需 要向服務(wù)器1的內(nèi)存查詢用戶狀態(tài),所以減少了服務(wù)器1為緩存用戶狀態(tài)而產(chǎn) 生的存儲(chǔ)消耗,同時(shí)也避免了因緩存的用戶狀態(tài)數(shù)據(jù)無限制膨脹,定期清除用 戶狀態(tài)lt據(jù)這一工作,因而簡化了系統(tǒng)結(jié)構(gòu)。
其中本實(shí)施例的所述步驟302的服務(wù)參數(shù)包括 需要訪問的實(shí)際統(tǒng)一資源定位符,記為Param. URLs。rTCr2; 當(dāng)前訪問客戶端的互洱關(guān)網(wǎng)協(xié)議地址,記為Pa r am. IPC1 ient; 客戶端發(fā)起所述服務(wù)請(qǐng)求的發(fā)起時(shí)間,記為Param. T2 se,rl; 客戶端發(fā)起的所述月l務(wù)請(qǐng)求的有效期,Param. LifeTime; 服務(wù)特定的參數(shù)。
如圖4所示,本發(fā)明實(shí)施例的步驟302服務(wù)器1收到所述服務(wù)請(qǐng)求后,生 成服務(wù)參數(shù),并將服務(wù)參數(shù)進(jìn)行數(shù)字簽名,得到數(shù)字簽名結(jié)果包括
302A、服務(wù)器1收到所述服務(wù)請(qǐng)求后,生成針對(duì)服務(wù)器2的統(tǒng)一資源定位 符,記為URL
server" 和月良務(wù)參H記為Pa ram;
302B、將所述服務(wù)參數(shù)Param進(jìn)行編碼,得到編碼服務(wù)參數(shù),記為 Enc (Param) , Enc表示編石馬函lt;
302C、利用數(shù)字簽名算法和服務(wù)器1的私鑰對(duì)編碼后的服務(wù)參數(shù)進(jìn)行數(shù)字 簽名,數(shù)字簽名結(jié)果記為D(AlgD, PVKs,山Enc(Parara));其中Alg。為數(shù)字簽名 算法,PVKs。,n為服務(wù)器1的私鑰,D為數(shù)字簽名函數(shù)。
步驟303服務(wù)器1將所述將服務(wù)參數(shù)和所述數(shù)字簽名結(jié)果通過客戶端轉(zhuǎn)發(fā) 到服務(wù)器2包括
303A、服務(wù)器1將所述統(tǒng)一資源定位符、所述編碼服務(wù)參數(shù)和數(shù)字簽名結(jié) 果返回給客戶端;
303B、所述客戶端根據(jù)所述統(tǒng)一資源定位符將所述編碼服務(wù)參數(shù)和數(shù)字簽 名結(jié)果轉(zhuǎn)發(fā)給服務(wù)器2。
如圖4所示,步驟303A服務(wù)器1將所述統(tǒng)一資源定位符、所述編碼服務(wù)參 數(shù)和數(shù)字簽名結(jié)果返回給客戶端包括
303A1、服務(wù)器1將所述編碼服務(wù)參數(shù)Enc (Param)和數(shù)字簽名結(jié)果D(AlgD,PVKSerVeil, Enc (Param))進(jìn)行統(tǒng)一資源定位符編碼,以保證這些數(shù)據(jù)能夠在 WEB環(huán)境中通過URL傳遞,其結(jié)果記為 UrlEnc(Enc(Param))和 UrlEnc (D (Alg。,PVK
Serverl, Enc (Param)))。 其中,UrlEnc表示統(tǒng)一資源定位符編碼函數(shù);
一個(gè)可選的統(tǒng)一資源定位符編碼函數(shù)是將Enc (Param)和D (Algn.PVKs_rl, Enc (Param))轉(zhuǎn)換為二進(jìn)制字符串表示;
然后將得到的統(tǒng)一資源定位符編碼服務(wù)參數(shù)UrlEnc (Enc (Param))和統(tǒng)一資 源定位符編碼數(shù)字簽名結(jié)果UrlEnc (D(AlgD,PVKServerl, Enc (Param)))以及統(tǒng)一資 源定位符URL se,2返回給客戶端。
303A2,客戶端接收服務(wù)器1的返回結(jié)果,并組織向服務(wù)器2發(fā)出請(qǐng)求轉(zhuǎn)發(fā) 服務(wù)URL。
進(jìn)一步的,如圖4所示,步驟303B所述客戶端根據(jù)所述統(tǒng)一資源定位符將 所述編碼服務(wù)參數(shù)和^:字簽名結(jié)果轉(zhuǎn)發(fā)給服務(wù)器2包括
303B1、所述客戶端根據(jù)所述統(tǒng)一資源定位符,將統(tǒng)一資源定位符編碼服務(wù) 參數(shù)和統(tǒng)一資源定位符編碼數(shù)字簽名結(jié)果轉(zhuǎn)發(fā)給服務(wù)器2。
如果通過HTTP GET方式向服務(wù)器2請(qǐng)求服務(wù)時(shí),完整的URL如下
URL server2 param=Ur lEnc (Enc (Param)) &s ignature=Ur lEnc (D (AlgD, PVKServeri, Enc (Param)));
如果通過HTTP P0ST方式向服務(wù)器2請(qǐng)求服務(wù)時(shí),URL則只有URLw2,參 數(shù)則通過表單傳遞。
如圖4所示,本發(fā)明實(shí)施例的步驟304服務(wù)器2接收所述將服務(wù)參數(shù)和所 述數(shù)字簽名結(jié)果,并記錄所述客戶端的互聯(lián)網(wǎng)協(xié)議地址,記為IPnient。
所述數(shù)字簽名結(jié)果包括
304A、所述另一服務(wù)器接收并讀取所述統(tǒng)一資源定位符編碼服務(wù)參數(shù) UrlEnc (Enc (Param))和統(tǒng) 一 資源定位符編碼數(shù)字簽名結(jié)果 UrlEnc (D (AlgD,PVKs—Enc (Param)));
304B、對(duì)所述統(tǒng)一資源定位符編碼服務(wù)參數(shù)Ur lEnc (Enc (Param))和所述統(tǒng) 一資源定位符編碼數(shù)字簽名結(jié)果UrlEnc (D (AlgD, PVKSe_,, Enc (Param)))進(jìn)行合法性^驗(yàn)ii;
當(dāng)驗(yàn)證合法時(shí),步驟304C、將所述統(tǒng)一資源定位符編碼服務(wù)參數(shù) UrlEnc(Enc(Param))和統(tǒng) 一 資源定位符編碼數(shù)字簽名結(jié)果 UrlEnc(D(Alg。,PVKse,n,Enc(Param)))進(jìn)行統(tǒng)一資源定位符解碼,解碼結(jié)果用 UrlEnc_1(UrlEnc(Enc(Param))) 和 UrlEnc-'(UrlEnc(D(AlgD,PVKs,n, Enc(Param))))表示,其中UrlEnc—是UrlEnc 的反函數(shù)。
其中,上述步驟304B對(duì)所述統(tǒng)一資源定位符編碼服務(wù)參數(shù)和所述統(tǒng)一資源 定位符編碼數(shù)字簽名結(jié)果進(jìn)行合法性驗(yàn)證具體為
確定統(tǒng)一資源定位符編碼服務(wù)參數(shù)和統(tǒng)一資源定位符編碼數(shù)字簽名結(jié)果是 否存在和格式是否合法,若所述統(tǒng)一資源定位符編碼服務(wù)參數(shù)和統(tǒng)一資源定位 符編碼數(shù)字簽名結(jié)果存在且格式合法,則所述驗(yàn)證統(tǒng)一資源定位符編碼服務(wù)參 數(shù)和統(tǒng)一資源定位符編碼^:字簽名結(jié)果具有合法性。
如圖4所示,本發(fā)明實(shí)施例的步驟304服務(wù)器2對(duì)所述數(shù)字簽名結(jié)果進(jìn)行 驗(yàn)證,驗(yàn)證成功后,根據(jù)所述服務(wù)參數(shù)向客戶端提供服務(wù)包括
304C、根據(jù)統(tǒng)一資源定位符解碼后的UrlEnc—' (UrlEnc(Enc(Param)))和 Ur lEnc—1 (UrlEnc (D (AlgD,PVKSe,,, Enc (Param)))),利用與步驟104相同的數(shù)字簽 名算法和服務(wù)器1的公鑰PBKs_d進(jìn)行簽名驗(yàn)證,驗(yàn)證過程用 V (AlgD,PBKs— UrlEncT1 (UrlEnc (Enc (Param))) , UrlEnc-1 (UrlEnc (D (AlgD,
PVKs,山Enc(Param)))))表示,其中V為驗(yàn)證函數(shù);
304D、若驗(yàn)證失敗,執(zhí)行步驟304H向客戶端發(fā)送錯(cuò)誤消息,并結(jié)束處理; 304E 、若驗(yàn)證成功,對(duì)統(tǒng) 一 資源定位符解碼后的服務(wù)參數(shù) UrlEnc—1 (UrlEnc (Enc (Param)))進(jìn)行服務(wù)參數(shù)解碼,解碼結(jié)果用 Enc—'(UrlEncT1 (UrlEnc (Enc (Param))))表示,其中Enc^是Enc的反函數(shù),解碼結(jié) 果簡化記為Param2;
304F、服務(wù)器2對(duì)所述服務(wù)參數(shù)進(jìn)行驗(yàn)證包括
比較所述服務(wù)參數(shù)中的統(tǒng)一資源定位符Param2. URL^^與客戶端轉(zhuǎn)發(fā)時(shí)所 根據(jù)的統(tǒng)一資源定位符URL _ 2是否相同;和比較所述服務(wù)參數(shù)中的客戶端的互聯(lián)網(wǎng)協(xié)議地址Param2. IPu^與服務(wù)器2
所記錄的客戶端的互聯(lián)網(wǎng)協(xié)議地址IPment是否相同;和
確定客戶端發(fā)起的服務(wù)請(qǐng)求是否在有效期之內(nèi),包括如下步驟 如圖4所示,服務(wù)器1和服務(wù)器2定期同步時(shí)鐘
41、 服務(wù)器2向服務(wù)器1查詢服務(wù)器1時(shí)鐘;
42、 服務(wù)器1讀取本機(jī)時(shí)鐘T1^,"將本機(jī)時(shí)鐘返回服務(wù)器2;
43、 服務(wù)器2接收服務(wù)器1時(shí)鐘,并讀取本機(jī)時(shí)鐘Tlw2,計(jì)算時(shí)鐘差T,
=Tlserver2— Tlserveri; 并卡己錄下來備用;
驗(yàn)證客戶端發(fā)起的服務(wù)請(qǐng)求是否在有效期之內(nèi)時(shí),讀取服務(wù)器2當(dāng)前時(shí)鐘 T2ser er2, ^口果T2server2—TDiff — Param. T2serverl<Param2. LifeTime,貝寸表示該i青求在有 效期內(nèi);
304G、若驗(yàn)證失敗,則執(zhí)行步驟304H,若成功,則執(zhí)行步驟3041; 304H、向客戶端發(fā)送錯(cuò)誤消息,并結(jié)束處理;
3041、若成功,則執(zhí)行步驟3041,根據(jù)所述服務(wù)參數(shù)向客戶端提供服務(wù)。 本發(fā)明的實(shí)施例提供的面向同 一客戶端的多服務(wù)器互操作的方法、客戶端 向服務(wù)器1發(fā)出針對(duì)服務(wù)器2的服務(wù)請(qǐng)求,服務(wù)器1根據(jù)請(qǐng)求生成服務(wù)參數(shù), 并將服務(wù)參數(shù)編碼后進(jìn)行數(shù)字簽名,再將編碼后的服務(wù)參數(shù)和數(shù)字簽名進(jìn)行URL 編碼,并通過客戶端轉(zhuǎn)發(fā)至服務(wù)器2;服務(wù)器2接收并驗(yàn)證通過Get或Post傳 遞的請(qǐng)求參數(shù),驗(yàn)證成功后進(jìn)行URL解碼,再進(jìn)行數(shù)字簽名驗(yàn)證,驗(yàn)證成功后, 進(jìn)行解碼得到服務(wù)參數(shù),再對(duì)服務(wù)參數(shù)進(jìn)行驗(yàn)證,驗(yàn)證成功后,根據(jù)服務(wù)參數(shù) 向客戶端提供服務(wù)。
這樣一來,利用數(shù)字簽名的傳遞和驗(yàn)證,每次服務(wù)器2接收到服務(wù)器1通 過客戶端轉(zhuǎn)發(fā)的服務(wù)請(qǐng)求時(shí),服務(wù)器2都確知請(qǐng)求來源于服務(wù)器1,服務(wù)器2也 就不再需要向服務(wù)器1或后臺(tái)數(shù)據(jù)庫查詢用戶狀態(tài),從而避免了每次互操作都 需要在后臺(tái)進(jìn)行用戶狀態(tài)交換,提高了互操作性能;由于無需在每次互操作時(shí) 在服務(wù)器1和服務(wù)器2之間進(jìn)行后臺(tái)用戶狀態(tài)交換,避免了通過客戶端傳遞服 務(wù)標(biāo)識(shí),而且也不需要在共享數(shù)據(jù)庫或服務(wù)器1的內(nèi)存存儲(chǔ)用戶狀態(tài),筒化了 系統(tǒng)結(jié)構(gòu);
13另外本發(fā)明實(shí)施例還利用了是否超出有效期這一驗(yàn)證來避免重放攻擊。 以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于 此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到 變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng) 所迷以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種面向同一客戶端的多服務(wù)器互操作方法,其特征在于,包括客戶端向一服務(wù)器發(fā)出針對(duì)另一服務(wù)器的服務(wù)請(qǐng)求;所述一服務(wù)器收到所述服務(wù)請(qǐng)求后,生成服務(wù)參數(shù),并將服務(wù)參數(shù)進(jìn)行數(shù)字簽名,得到數(shù)字簽名結(jié)果;所述一服務(wù)器將所述將服務(wù)參數(shù)和所述數(shù)字簽名結(jié)果通過客戶端轉(zhuǎn)發(fā)到所述另一服務(wù)器;所述另一服務(wù)器接收所述服務(wù)參數(shù)和所述數(shù)字簽名結(jié)果,并對(duì)所述數(shù)字簽名結(jié)果進(jìn)行驗(yàn)證,驗(yàn)證成功后,根據(jù)所述服務(wù)參數(shù)向客戶端提供服務(wù)。
2、 根據(jù)權(quán)利要求1所述的面向同一客戶端的多服務(wù)器互操作的方法,其特 征在于,所述服務(wù)參數(shù)包括所述統(tǒng)一資源定位符;客戶端的互聯(lián)網(wǎng)協(xié)i義地址;客戶端發(fā)起所述服務(wù)請(qǐng)求的發(fā)起時(shí)間;客戶端發(fā)起的所述服務(wù)請(qǐng)求的有效期。
3、 根據(jù)權(quán)利要求2所述的面向同一客戶端的多服務(wù)器互操作的方法,其特 征在于,所述一服務(wù)器收到所述服務(wù)請(qǐng)求后,生成服務(wù)參數(shù),并將服務(wù)參數(shù)進(jìn) 行數(shù)字簽名,得到數(shù)字簽名結(jié)果,包括所述一服務(wù)器收到所述服務(wù)請(qǐng)求后,生成針對(duì)另一服務(wù)器的統(tǒng)一資源定位 符和服務(wù)參數(shù);將所述服務(wù)參數(shù)進(jìn)行編碼,得到編碼服務(wù)參數(shù); 將所述編碼服務(wù)參數(shù)進(jìn)行數(shù)字簽名,得到數(shù)字簽名結(jié)果。
4、 根據(jù)權(quán)利要求3所述的面向同一客戶端的多服務(wù)器互操作的方法,其特 征在于,所述一服務(wù)器將所述將服務(wù)參數(shù)和所述數(shù)字簽名結(jié)果通過客戶端轉(zhuǎn)發(fā) 到所述另一服務(wù)器包括所述一服務(wù)器將所述統(tǒng)一資源定位符、所述編碼服務(wù)參數(shù)和數(shù)字簽名結(jié)果 返回給客戶端;所述客戶端根據(jù)所述統(tǒng)一資源定位符將所述編碼服務(wù)參數(shù)和數(shù)字簽名結(jié)果 轉(zhuǎn)發(fā)給所述另一服務(wù)器。
5、 根據(jù)權(quán)利要求4所述的面向同一客戶端的多服務(wù)器互操作的方法,其特 征在于,所述一服務(wù)器將所述統(tǒng)一資源定位符、所述編碼服務(wù)參數(shù)和數(shù)字簽名結(jié)果返回給客戶端包括所述一服務(wù)器將所述編碼服務(wù)參數(shù)和數(shù)字簽名結(jié)果進(jìn)行統(tǒng)一資源定位符編 碼,得到統(tǒng)一資源定位符編碼服務(wù)參數(shù)和統(tǒng)一資源定位符編碼數(shù)字簽名結(jié)果, 并將所述統(tǒng)一資源定位符和統(tǒng)一資源定位符編碼服務(wù)參數(shù)以及統(tǒng)一資源定位符 編碼數(shù)字簽名結(jié)果返回給客戶端。
6、 根據(jù)權(quán)利要求5所述的面向同一客戶端的多服務(wù)器互操作的方法,其特 征在于,所述客戶端根據(jù)所述統(tǒng)一資源定位符將所述編碼服務(wù)參數(shù)和數(shù)字簽名 結(jié)果轉(zhuǎn)發(fā)給所述另一服務(wù)器包括所述客戶端根據(jù)所述統(tǒng)一資源定位符,將統(tǒng)一資源定位符編碼服務(wù)參數(shù)和 統(tǒng)一 資源定位符編碼數(shù)字簽名結(jié)果轉(zhuǎn)發(fā)給所述另 一服務(wù)器。
7、 根據(jù)權(quán)利要求6所述的面向同一客戶端的多服務(wù)器互操作的方法,其特 征在于,所述另 一服務(wù)器接收所述將服務(wù)參數(shù)和所述數(shù)字簽名結(jié)果包括所述另一服務(wù)器接收所述統(tǒng)一資源定位符編碼服務(wù)參數(shù)和統(tǒng)一資源定位符 編碼數(shù)字簽名結(jié)果,并對(duì)所述統(tǒng)一資源定位符編碼服務(wù)參數(shù)和所述統(tǒng)一資源定 位符編碼數(shù)字簽名結(jié)果進(jìn)行合法性驗(yàn)證,當(dāng)驗(yàn)證合法時(shí),將所述統(tǒng)一資源定位 符編碼服務(wù)參數(shù)和統(tǒng)一資源定位符編碼數(shù)字簽名結(jié)果進(jìn)行統(tǒng)一資源定位符解 碼,得到所述編碼^^務(wù)參數(shù)和數(shù)字簽名結(jié)果。
8、 根據(jù)權(quán)利要求7所述的面向同 一客戶端的多服務(wù)器互操作的方法,其特 征在于,對(duì)所述統(tǒng)一資源定位符編碼服務(wù)參數(shù)和所述統(tǒng)一資源定位符編碼數(shù)字 簽名結(jié)果進(jìn)行合法性驗(yàn)證具體為確定統(tǒng)一資源定位符編碼服務(wù)參數(shù)和統(tǒng)一資源定位符編碼數(shù)字簽名結(jié)果是 否存在和格式是否合法,若所述統(tǒng)一資源定位符編碼服務(wù)參數(shù)和統(tǒng)一資源定位 符編碼數(shù)字簽名結(jié)果存在且格式合法,則所述驗(yàn)證統(tǒng)一資源定位符編碼服務(wù)參 數(shù)和統(tǒng)一資源定位符編碼數(shù)字簽名結(jié)果具有合法性。
9、 根據(jù)權(quán)利要求7所述的面向同一客戶端的多服務(wù)器互操作的方法,其特 征在于,所述另一服務(wù)器對(duì)所述數(shù)字簽名結(jié)果進(jìn)行驗(yàn)證,驗(yàn)證成功后,根據(jù)所述服務(wù)參數(shù)向客戶端提供服務(wù)包括所述另一服務(wù)器對(duì)所述數(shù)字簽名結(jié)果進(jìn)行驗(yàn)證,驗(yàn)證成功后,對(duì)所述編碼 服務(wù)參數(shù)進(jìn)行解碼得到所述服務(wù)參數(shù),并根據(jù)所述服務(wù)參數(shù)向客戶端提供服務(wù)。
10、根據(jù)權(quán)利要求9所述的面向同一客戶端的多服務(wù)器互操作的方法,其 特征在于,所述另一服務(wù)器根據(jù)所述服務(wù)參數(shù)向客戶端提供服務(wù)之前還包括對(duì)所述服務(wù)參數(shù)進(jìn)行驗(yàn)證的步驟,包括比較所述服務(wù)參數(shù)中的統(tǒng)一資源定位符與客戶端轉(zhuǎn)發(fā)時(shí)所根據(jù)的統(tǒng)一資源定位符是否相同;和比較所述服務(wù)參數(shù)中的客戶端的互聯(lián)網(wǎng)協(xié)議地址與所述另 一服務(wù)器接收所 述編碼服務(wù)參數(shù)和數(shù)字簽名結(jié)果時(shí)讀取的客戶端的互聯(lián)網(wǎng)協(xié)議地址是否相同; 和確定客戶端發(fā)起的所述服務(wù)請(qǐng)求是否在有效期之內(nèi)。
全文摘要
本發(fā)明公開了一種面向同一客戶端的多服務(wù)器互操作方法,解決了用戶每次發(fā)出請(qǐng)求后服務(wù)器間都要頻繁進(jìn)行后臺(tái)狀態(tài)信息交換,從而導(dǎo)致的互操作性能低,系統(tǒng)結(jié)構(gòu)復(fù)雜這一問題。本發(fā)明實(shí)施例提供的方法為客戶端向一服務(wù)器發(fā)出針對(duì)另一服務(wù)器的服務(wù)請(qǐng)求;一服務(wù)器收到服務(wù)請(qǐng)求后,生成服務(wù)參數(shù),并將服務(wù)參數(shù)進(jìn)行數(shù)字簽名,得到數(shù)字簽名結(jié)果;然后將服務(wù)參數(shù)和數(shù)字簽名結(jié)果通過客戶端轉(zhuǎn)發(fā)到另一服務(wù)器;另一服務(wù)器接收服務(wù)參數(shù)和數(shù)字簽名結(jié)果,并對(duì)數(shù)字簽名結(jié)果進(jìn)行驗(yàn)證,驗(yàn)證成功后,根據(jù)服務(wù)參數(shù)向客戶端提供服務(wù)。本發(fā)明實(shí)施例主要用于面向同一客戶端的多服務(wù)器間的互操作。
文檔編號(hào)H04L29/06GK101478535SQ20081022603
公開日2009年7月8日 申請(qǐng)日期2008年11月4日 優(yōu)先權(quán)日2008年11月4日
發(fā)明者王緒勝 申請(qǐng)人:北京大學(xué);北大方正集團(tuán)有限公司;北京方正電子政務(wù)信息科技有限公司