專利名稱:基于Web服務(wù)的統(tǒng)一代理適配方法、裝置以及適配系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種基于Web服務(wù)(WebService)的統(tǒng)一 代理適配方法,還涉及一種基于Web服務(wù)的統(tǒng)一代理適配裝置,以及一種包括該裝置的統(tǒng) 一代理適配系統(tǒng)。
背景技術(shù):
Web Service是一種應(yīng)用程序,它向外界暴露出一個能夠通過Web進行調(diào)用的 API (A卯lication Programming Interface應(yīng)用程序編程接口 ),能夠用編程的方法通過 Web來調(diào)用這個應(yīng)用程序。 隨著互聯(lián)網(wǎng)的不斷發(fā)展,軟件提供商越來越多的希望能夠?qū)④浖訵ebService 的方式提供,這樣的優(yōu)勢是,用戶的計算機成為了一個完全的服務(wù)使用者,而服務(wù)可以是跨 平臺的,用戶無需關(guān)心,用戶使用軟件更加方便,而企業(yè)的維護也更加方便,不用為每個客 戶的電腦上的軟件提供維護。 很多大的企業(yè)也采用了 Web的方式(如企業(yè)門戶)為用戶提供各種業(yè)務(wù)的服務(wù) (如移動的網(wǎng)上營業(yè)廳),這些業(yè)務(wù)通常由各軟件提供商幫其定制,而且以Web Service的 方式暴露給企業(yè)的運營系統(tǒng)(這些大企業(yè)都有一套自己的運營系統(tǒng)),這就導(dǎo)致企業(yè)的運 營系統(tǒng)需要與這多個業(yè)務(wù)系統(tǒng)進行對接,才能對外提供服務(wù),并且由于各業(yè)務(wù)的開發(fā)可能 是多家企業(yè),服務(wù)接口各不相同,很多時候企業(yè)不得不開發(fā)多套小系統(tǒng)與各個業(yè)務(wù)系統(tǒng)對 接,這樣就不能提供一個統(tǒng)一對外服務(wù)的接口 ,導(dǎo)致用戶不能在一個地方看到企業(yè)的所有 服務(wù),這是企業(yè)所不愿意看到的。 由于上述的原因,如果能夠提供一種將企業(yè)提供的所有各種WebService服務(wù) 進行集中的管理和適配裝置,讓企業(yè)看到的只是一種服務(wù),一個URL(Uniform Resource Locator統(tǒng)一資源定位符),并且能否對用戶的權(quán)限進行統(tǒng)一的控制,將會大大減少企業(yè)與 各種業(yè)務(wù)系統(tǒng)的對接以及接口維護的工作量,并且使企業(yè)很方便的對用戶提供統(tǒng)一的服 務(wù)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種Web Service的統(tǒng)一代理適配方法,能夠?qū)?外提供統(tǒng)一的對接接口,并與代理的各種Web Service服務(wù)器進行適配后,進行請求轉(zhuǎn)發(fā), 并且能對代理的各種業(yè)務(wù)的服務(wù)進行開啟和關(guān)閉,并且進行業(yè)務(wù)的權(quán)限進行鑒權(quán)。
為了解決上述問題,本發(fā)明提供了一種基于Web服務(wù)的統(tǒng)一代理適配方法,應(yīng)用 于包括企業(yè)運營系統(tǒng)和若干業(yè)務(wù)系統(tǒng)的架構(gòu),包括 在所述企業(yè)運營系統(tǒng)和若干業(yè)務(wù)系統(tǒng)之間設(shè)置統(tǒng)一代理適配裝置,所述統(tǒng)一代理 適配裝置接收所述企業(yè)運營系統(tǒng)發(fā)來的封裝為所述統(tǒng)一代理適配裝置適用格式的服務(wù)請 求,將所述服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式并發(fā)送 到所述對應(yīng)的業(yè)務(wù)系統(tǒng)。
進一步地,上述統(tǒng)一代理適配方法還可包括,在所述統(tǒng)一代理適配裝置中保存各 業(yè)務(wù)系統(tǒng)的服務(wù)描述語言WSDL及其服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系,并提供一 Web 服務(wù)調(diào)用接口; 所述統(tǒng)一代理適配裝置接收所述企業(yè)運營系統(tǒng)發(fā)出的經(jīng)所述Web服務(wù)調(diào)用接口 封裝為所述統(tǒng)一代理適配裝置適用的格式的服務(wù)請求,所述服務(wù)請求包含用戶所選服務(wù)名 及所輸入服務(wù)數(shù)據(jù); 所述統(tǒng)一代理適配裝置根據(jù)所述各業(yè)務(wù)系統(tǒng)的WSDL進行接口適配,將所述Web服 務(wù)調(diào)用接口封裝的服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格 式; 所述統(tǒng)一代理適配裝置根據(jù)服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系,將適配后的 服務(wù)請求發(fā)送到與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng),由所述業(yè)務(wù)系統(tǒng)進行業(yè)務(wù)處理。 進一步地,上述統(tǒng)一代理適配方法還可包括,所述統(tǒng)一代理適配裝置接收所述企 業(yè)運營系統(tǒng)發(fā)出的經(jīng)所述Web服務(wù)調(diào)用接口封裝為所述統(tǒng)一代理適配裝置適用的格式的 服務(wù)請求的步驟,與所述統(tǒng)一代理適配裝置根據(jù)所述各業(yè)務(wù)系統(tǒng)的WSDL將所述Web服務(wù)調(diào) 用接口封裝的服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式的 步驟之間,還包括 所述統(tǒng)一代理適配裝置首先根據(jù)所述服務(wù)請求中攜帶的服務(wù)名對所述服務(wù)名對
應(yīng)的業(yè)務(wù)系統(tǒng)進行狀態(tài)判斷,如果所述業(yè)務(wù)系統(tǒng)處于停用狀態(tài),則流程結(jié)束;如果所述業(yè)務(wù)
系統(tǒng)處于啟用狀態(tài),則所述統(tǒng)一代理適配裝置根據(jù)所述各業(yè)務(wù)系統(tǒng)的WSDL將所述Web服務(wù)
調(diào)用接口封裝的服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式。 進一步地,上述統(tǒng)一代理適配方法還可包括,所述統(tǒng)一代理適配裝置根據(jù)各業(yè)務(wù)
系統(tǒng)上報的狀態(tài)信息,來判斷各業(yè)務(wù)系統(tǒng)處于啟用還是停用狀態(tài);或者,所述統(tǒng)一代理適配
裝置打開自動探測開關(guān),定時遠(yuǎn)程調(diào)用所述各業(yè)務(wù)系統(tǒng)提供的服務(wù),生成遠(yuǎn)程實例,如果所
生成的遠(yuǎn)程實例失敗,則自動將所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)的狀態(tài)設(shè)為停用,如果所生
成的遠(yuǎn)程實例成功,則自動將所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)的狀態(tài)設(shè)為啟用。 進一步地,上述統(tǒng)一代理適配方法還可包括,所述服務(wù)請求中還包括用戶標(biāo)識; 如果所述業(yè)務(wù)系統(tǒng)處于啟用狀態(tài),還包括所述統(tǒng)一代理適配裝置根據(jù)服務(wù)請求
中攜帶的用戶標(biāo)識及服務(wù)名在權(quán)限數(shù)據(jù)庫中進行查詢,如果所述用戶標(biāo)識沒有所述服務(wù)名
對應(yīng)服務(wù)的權(quán)限,則流程結(jié)束;如果所述用戶標(biāo)識有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,則所述統(tǒng)
一代理適配裝置根據(jù)所述各業(yè)務(wù)系統(tǒng)的WSDL將所述Web服務(wù)調(diào)用接口封裝的服務(wù)請求適
配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式。 本發(fā)明的目的還在于提供一種基于Web服務(wù)的統(tǒng)一代理適配裝置,所述統(tǒng)一代理 適配裝置,設(shè)置于企業(yè)運營系統(tǒng)和若干業(yè)務(wù)系統(tǒng)之間,包括接收模塊,適配匹配模塊和發(fā) 送模塊; 所述接收模塊,用于接收所述企業(yè)運營系統(tǒng)封裝的所述統(tǒng)一代理適配裝置適用格 式的服務(wù)請求,并交由所述適配匹配模塊處理; 所述適配匹配模塊,用于根據(jù)所述封裝后的服務(wù)請求所攜帶服務(wù)名匹配與該服務(wù) 名對應(yīng)的業(yè)務(wù)系統(tǒng),通知所述發(fā)送模塊;并將所述封裝后的服務(wù)請求適配為所述對應(yīng)的業(yè)
6務(wù)系統(tǒng)適用的格式,交由所述發(fā)送模塊處理; 所述發(fā)送模塊,用于將所述適配得到的服務(wù)請求發(fā)送到所述對應(yīng)的業(yè)務(wù)系統(tǒng)。
進一步地,上述統(tǒng)一代理適配裝置還可包括存儲模塊,用于保存各業(yè)務(wù)系統(tǒng)的服 務(wù)描述語言WSDL,以及服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系; 所述適配匹配模塊,用于根據(jù)所保存的各業(yè)務(wù)系統(tǒng)的WSDL將所述Web服務(wù)調(diào)用接 口封裝的服務(wù)請求適配為與該服務(wù)請求所攜帶的服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式;根據(jù) 所保存的服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系,匹配與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的 業(yè)務(wù)系統(tǒng),并通知所述發(fā)送模塊。 進一步地,上述統(tǒng)一代理適配裝置還可包括狀態(tài)檢測模塊; 所述適配匹配模塊,根據(jù)所述封裝后的服務(wù)請求所攜帶服務(wù)名匹配與該服務(wù)名對 應(yīng)的業(yè)務(wù)系統(tǒng)后,還通知所述狀態(tài)檢測模塊并觸發(fā)其開始工作; 所述狀態(tài)檢測模塊,用于對所述匹配的對應(yīng)的業(yè)務(wù)系統(tǒng)進行狀態(tài)判斷,如果所述 業(yè)務(wù)系統(tǒng)處于停用狀態(tài),向所述企業(yè)運營系統(tǒng)返回所述業(yè)務(wù)系統(tǒng)的停用信息,并通知所述 適配匹配模塊停止處理;如果所述業(yè)務(wù)系統(tǒng)處于啟用狀態(tài),則通知所述適配匹配模塊狀態(tài) 檢測完成。 進一步地,上述統(tǒng)一代理適配裝置還可包括,所述狀態(tài)檢測模塊,根據(jù)各業(yè)務(wù)系統(tǒng) 上報的狀態(tài)信息,來判斷各業(yè)務(wù)系統(tǒng)處于啟用還是停用狀態(tài);或者打開自動探測開關(guān),定時 遠(yuǎn)程調(diào)用所述各業(yè)務(wù)系統(tǒng)提供的服務(wù),生成遠(yuǎn)程實例,如果所生成的遠(yuǎn)程實例失敗,則自動 將所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)的狀態(tài)設(shè)為停用,如果所生成的遠(yuǎn)程實例成功,則自動將 所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)的狀態(tài)設(shè)為為啟用。 進一步地,上述統(tǒng)一代理適配裝置還可包括,所述適配匹配模塊,收到所述狀態(tài)檢 測模塊返回的狀態(tài)檢測完成的通知后,將所述封裝后的服務(wù)請求適配為所述對應(yīng)的業(yè)務(wù)系 統(tǒng)適用的格式。 進一步地,上述統(tǒng)一代理適配裝置還可包括權(quán)限數(shù)據(jù)庫及鑒權(quán)模塊; 所述適配匹配模塊,收到所述狀態(tài)檢測模塊返回的狀態(tài)檢測完成的通知后,觸發(fā)
所述鑒權(quán)模塊啟動,并將所述服務(wù)請求中攜帶的用戶標(biāo)識及服務(wù)名通知所述鑒權(quán)模塊;在
收到所述鑒權(quán)模塊返回的鑒權(quán)成功的通知后,將所述封裝后的服務(wù)請求適配為所述對應(yīng)的
業(yè)務(wù)系統(tǒng)適用的格式; 所述鑒權(quán)模塊,用于連接所述權(quán)限數(shù)據(jù)庫,根據(jù)服務(wù)請求中攜帶的用戶標(biāo)識及服
務(wù)名在所述權(quán)限數(shù)據(jù)庫中進行查詢,如果所述用戶標(biāo)識沒有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,
向所述企業(yè)運營系統(tǒng)返回鑒權(quán)失敗信息,并通知所述適配匹配模塊停止處理;如果所述用
戶標(biāo)識有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,通知所述適配匹配模塊鑒權(quán)成功; 所述權(quán)限數(shù)據(jù)庫,用于存儲用戶標(biāo)識及該用戶標(biāo)識有權(quán)操作的服務(wù)名,供所述鑒
權(quán)模塊進行查詢。 本發(fā)明的目的還在于提供一種基于Web服務(wù)的統(tǒng)一代理適配系統(tǒng),包括企業(yè)運 營系統(tǒng),統(tǒng)一代理適配裝置和若干業(yè)務(wù)系統(tǒng);其中, 所述企業(yè)運營系統(tǒng),用于將用戶提交的包含用戶所選服務(wù)名的服務(wù)請求封裝為所 述統(tǒng)一代理適配裝置適用格式并發(fā)送給所述統(tǒng)一代理適配裝置; 所述統(tǒng)一代理適配裝置,接收所述企業(yè)運營系統(tǒng)發(fā)來的服務(wù)請求,將所述服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式,并將所述適配得到的服 務(wù)請求發(fā)送到所述對應(yīng)的業(yè)務(wù)系統(tǒng)。 進一步地,上述統(tǒng)一代理適配系統(tǒng)還可包括,所述統(tǒng)一代理適配裝置,用于提供一 Web服務(wù)調(diào)用接口 ,用于根據(jù)所保存的各業(yè)務(wù)系統(tǒng)的服務(wù)描述語言WSDL將所述Web服務(wù)調(diào) 用接口封裝的服務(wù)請求適配為與該服務(wù)請求所攜帶的服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式; 根據(jù)所保存的服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系,將所述適配后得到的服務(wù)請求發(fā)送 到與該服務(wù)請求所攜帶的服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng); 所述業(yè)務(wù)系統(tǒng),用于根據(jù)所述統(tǒng)一代理適配裝置發(fā)來的服務(wù)請求中用戶所輸入的
服務(wù)數(shù)據(jù)進行業(yè)務(wù)處理,還用于向所述統(tǒng)一代理適配裝置發(fā)送WSDL。 本發(fā)明的有益技術(shù)效果 當(dāng)使用統(tǒng)一代理適配裝置后,對于企業(yè)運營系統(tǒng)來說,所有的實際業(yè)務(wù)系統(tǒng),都由 統(tǒng)一代理適配裝置集成為了一個恥b服務(wù),企業(yè)運營系統(tǒng)不用再擔(dān)心與各業(yè)務(wù)系統(tǒng)對接, 實現(xiàn)復(fù)雜的的對接邏輯。從而便于企業(yè)運營系統(tǒng)整體結(jié)構(gòu)的整合,統(tǒng)一對用戶提供各種Web Service月艮務(wù); 同時對于各種業(yè)務(wù)系統(tǒng)升級維護,不能提供服務(wù)的時候,企業(yè)運營系統(tǒng)本身不用 做任何調(diào)整,由統(tǒng)一代理適配裝置做啟用和停用的設(shè)置。統(tǒng)一代理適配裝置也可自動探測 后端各服務(wù)是否正常運行,然后自動設(shè)定其狀態(tài)為啟用或停用; 同時如果企業(yè)提供用戶權(quán)限數(shù)據(jù),還可以對用戶服務(wù)進行鑒權(quán)。這些都大大方便 了企業(yè)應(yīng)用整合。
圖1為本發(fā)明實施例中基于Web
圖2為本發(fā)明實施例中基于Web
圖3為本發(fā)明實施例中基于Web
Service的統(tǒng)一代理適配方法的處理流程圖。 Service的統(tǒng)一代理適配系統(tǒng)的結(jié)構(gòu)圖。 Service的統(tǒng)一代理適配裝置的結(jié)構(gòu)圖。
具體實施例方式
本發(fā)明的核心在于在統(tǒng)一代理適配系統(tǒng)中設(shè)置統(tǒng)一代理適配裝置,企業(yè)運營系 統(tǒng)與統(tǒng)一代理適配裝置之間定制統(tǒng)一的Web Service調(diào)用接口,各實際業(yè)務(wù)系統(tǒng)提供自己 的WSDL,給統(tǒng)一代理適配裝置,作為統(tǒng)一代理適配裝置的適配基礎(chǔ)。通過統(tǒng)一代理適配裝 置,將用戶不同的業(yè)務(wù)請求發(fā)送到相應(yīng)的業(yè)務(wù)系統(tǒng);各業(yè)務(wù)系統(tǒng)完成業(yè)務(wù)處理后,將處理結(jié) 果返回給統(tǒng)一代理適配裝置,再由統(tǒng)一代理適配裝置返回給企業(yè)運營系統(tǒng),最后反應(yīng)在恥b 門戶上給用戶。 其具體的連接關(guān)系與配置 企業(yè)運營系統(tǒng)與統(tǒng)一代理適配裝置之間 企業(yè)運營系統(tǒng)與統(tǒng)一代理適配裝置之間定制統(tǒng)一的Web Service調(diào)用接口 ,該調(diào) 用接口中定義了兩個必要參數(shù),包括服務(wù)名和參數(shù)列表,其中,服務(wù)名是用來為統(tǒng)一代理適 配裝置做服務(wù)路由使用,參數(shù)列表用來描述具體業(yè)務(wù)。這兩個參數(shù)的值均是通過用戶在企 業(yè)運營系統(tǒng)的恥b門戶提交所得到。注意,除去上述兩個必要參數(shù)外,如果需要統(tǒng)一代理服 務(wù)裝置進行用戶服務(wù)鑒權(quán)的話,還需要帶上用戶ID這個可選參數(shù)。
8
該調(diào)用接口中還定制了參數(shù)的格式,采用JS0N的統(tǒng)一數(shù)據(jù)格式,其中參數(shù)列表的
格式可以為{paraml: valuel, par咖value2, par咖3:value3.......} 。 JSON (JavaScript
Object Notation)是一種輕量級、基于文本、語言無關(guān)的數(shù)據(jù)交換格式,它是從ECMAScript 語言標(biāo)準(zhǔn)衍生而成,其使用字符串將數(shù)據(jù)在web客戶機與服務(wù)端進行傳遞,并且方便在 Javascript中使用,由于JS0N對象本身并不是本發(fā)明介紹的內(nèi)容,所以在此只做簡單介 紹。 以上調(diào)用接口的定義詳見后面的"附接口描述"一節(jié)"。
各業(yè)務(wù)系統(tǒng)與統(tǒng)一代理適配裝置之間 各業(yè)務(wù)系統(tǒng)提供自己的WSDL(Web Services Description Language Web服務(wù)描 述語言)給統(tǒng)一代理適配裝置,作為統(tǒng)一代理適配裝置的適配基礎(chǔ)。同時各業(yè)務(wù)系統(tǒng)提供 自己的web服務(wù)調(diào)用地址,在統(tǒng)一代理適配裝置中配置各業(yè)務(wù)系統(tǒng)提供的服務(wù)對應(yīng)的服務(wù) 名與其對應(yīng)的web服務(wù)調(diào)用地址的鍵值對并保存,作為統(tǒng)一代理適配裝置服務(wù)路由的基 礎(chǔ)。 同時統(tǒng)一代理適配裝置上還要配置各業(yè)務(wù)系統(tǒng)處于啟用還是停用狀態(tài),以便進行 狀態(tài)判斷 統(tǒng)一代理適配裝置可以根據(jù)各業(yè)務(wù)系統(tǒng)定時上報的狀態(tài)信息,來判斷各業(yè)務(wù)系統(tǒng) 處于啟用還是停用狀態(tài),完成配置;例如業(yè)務(wù)系統(tǒng)升級、維護的時候,該業(yè)務(wù)系統(tǒng)需通知統(tǒng) 一代理適配裝置,統(tǒng)一代理適配裝置將其狀態(tài)設(shè)為停用,待升級維護結(jié)束后,該業(yè)務(wù)系統(tǒng)再 通知統(tǒng)一代理適配裝置,統(tǒng)一代理適配裝置恢復(fù)狀態(tài)為啟用; 統(tǒng)一代理適配裝置也可以打開自動探測開關(guān),自動探測開關(guān)打開時,統(tǒng)一代理適 配裝置定時去遠(yuǎn)程調(diào)用各業(yè)務(wù)系統(tǒng)提供的服務(wù),生成遠(yuǎn)程實例,如果生成實例失敗就自動 將其狀態(tài)設(shè)為停用,生成實例成功就自動將其狀態(tài)恢復(fù)為啟用。
權(quán)限數(shù)據(jù)庫與統(tǒng)一代理適配裝置之間(可選) 如果企業(yè)運營系統(tǒng)能夠提供用戶權(quán)限數(shù)據(jù)(如可選參數(shù)用戶ID),統(tǒng)一代理適配 裝置還可以連接權(quán)限數(shù)據(jù)庫,進行用戶的服務(wù)請求的鑒權(quán);如果企業(yè)運營系統(tǒng)不提供用戶 權(quán)限數(shù)據(jù)或者由企業(yè)運營系統(tǒng)自己進行服務(wù)鑒權(quán),則統(tǒng)一代理適配裝置可以不連接權(quán)限數(shù) 據(jù)庫。 完成上述的連接、配置后,即可以通過統(tǒng)一代理適配裝置完成業(yè)務(wù):
用戶在企業(yè)運營系統(tǒng)的web門戶上登錄后,選擇相應(yīng)的服務(wù)(比如預(yù)定酒店或查 詢天氣),提交服務(wù)請求,企業(yè)運營系統(tǒng)接收到用戶請求后,將用戶請求按照統(tǒng)一代理適配 裝置提供的調(diào)用接口,以soap請求(其中包含了JSON格式封裝的參數(shù))的方式提交到統(tǒng)一 代理適配裝置(統(tǒng)一代理適配裝置本身暴露為一個Web Service),統(tǒng)一代理適配裝置查詢 相應(yīng)業(yè)務(wù)系統(tǒng)的狀態(tài),如為啟用狀態(tài)再進行用戶的鑒權(quán)(可選),鑒權(quán)成功后,根據(jù)各種業(yè) 務(wù)系統(tǒng)提供的WSDL描述,對所述soap請求的參數(shù)進行適配(主要將其中JS0N格式封裝的 參數(shù)適配成相應(yīng)業(yè)務(wù)系統(tǒng)適用的格式),轉(zhuǎn)化為各業(yè)務(wù)系統(tǒng)能夠識別的so即請求,將轉(zhuǎn)換 后的soap請求發(fā)送到對應(yīng)業(yè)務(wù)系統(tǒng),對應(yīng)業(yè)務(wù)系統(tǒng)完成業(yè)務(wù)處理后,將結(jié)果返回給統(tǒng)一代 理適配裝置,再由統(tǒng)一代理適配裝置返回給企業(yè)運營系統(tǒng),最后反應(yīng)在恥b門戶上給用戶。
下面通過一個具體實施例對本發(fā)明的方法流程進行說明。 圖1本發(fā)明實施例中基于Web Service的統(tǒng)一代理適配方法的處理流程圖,包括如下步驟 步驟101 :用戶登錄到企業(yè)運營系統(tǒng)的web門戶上,選擇自己需要的服務(wù),根據(jù)其 所選服務(wù)的要求輸入數(shù)據(jù),點擊提交服務(wù)請求; 該請求中攜帶有用戶所選服務(wù)的服務(wù)名及用戶所填寫的服務(wù)數(shù)據(jù)參數(shù);也可以攜 帶有用戶ID ; 步驟102 :企業(yè)運營系統(tǒng)得到用戶提交的服務(wù)請求后,將該服務(wù)請求按照統(tǒng)一代 理適配裝置定義的調(diào)用接口進行封裝,得到符合統(tǒng)一代理適配裝置的格式的服務(wù)請求,將 所得到的服務(wù)請求提交到統(tǒng)一代理適配裝置,以WebService方式調(diào)用統(tǒng)一代理適配裝置 提供的服務(wù)名; 步驟103 :統(tǒng)一代理適配裝置接收到企業(yè)運營系統(tǒng)的調(diào)用后,首先根據(jù)服務(wù)請求 中攜帶的服務(wù)名對該服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)是否啟用進行狀態(tài)判斷,如果處于停用狀態(tài), 則流程結(jié)束,返回企業(yè)運營系統(tǒng),顯示在恥b門戶上告知用戶"該服務(wù)已停用";如果對應(yīng)的 業(yè)務(wù)系統(tǒng)處于啟用狀態(tài),則進行步驟104,執(zhí)行鑒權(quán)判斷; 對于各業(yè)務(wù)系統(tǒng)處于啟用還是停用狀態(tài)的判斷,其實現(xiàn)方式前面已有描述統(tǒng)一 代理適配裝置可以根據(jù)各業(yè)務(wù)系統(tǒng)定時上報的狀態(tài)信息,來判斷各業(yè)務(wù)系統(tǒng)處于啟用還是 停用狀態(tài),完成配置;統(tǒng)一代理適配裝置也可以打開自動探測開關(guān),自動探測開關(guān)打開時, 統(tǒng)一代理適配裝置定時去遠(yuǎn)程調(diào)用各業(yè)務(wù)系統(tǒng)提供的服務(wù),生成遠(yuǎn)程實例,如果生成實例 失敗就自動將其狀態(tài)設(shè)為停用,生成實例成功就自動將其狀態(tài)恢復(fù)為啟用;
步驟104 :統(tǒng)一代理適配裝置連接權(quán)限數(shù)據(jù)庫,對該用戶進行鑒權(quán)判斷;
統(tǒng)一代理適配裝置根據(jù)服務(wù)請求中攜帶的用戶ID及服務(wù)名在權(quán)限數(shù)據(jù)庫中進行 查詢,如果該用戶ID沒有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,則流程結(jié)束,返回企業(yè)運營系統(tǒng),顯 示在web門戶上告知用戶"操作失敗,沒有權(quán)限";如果有,則執(zhí)行步驟105,進行接口適配與 服務(wù)請求轉(zhuǎn)發(fā); 步驟105 :統(tǒng)一代理適配裝置按照服務(wù)請求中攜帶的服務(wù)名所對應(yīng)的提供該服務(wù) 的業(yè)務(wù)系統(tǒng)的WSDL,進行接口適配,將統(tǒng)一代理適配裝置的調(diào)用接口傳遞過來以JSON格式 封裝的服務(wù)請求,適配為該業(yè)務(wù)系統(tǒng)實際使用的soap服務(wù)請求,然后執(zhí)行步驟106 ;
上述接口適配的過程,主要是對參數(shù)進行封裝的過程。在各業(yè)務(wù)系統(tǒng)提供的Web Service服務(wù)中,接口定義差別很大,通常有兩種類型, 一種是每個參數(shù)由一個字符串,而另 一種是復(fù)雜類型的參數(shù),比如可以是J肌a程序中一個或多個類。這里我們?yōu)榱撕雎愿鳂I(yè)務(wù) 系統(tǒng)中不同編程語言存在差異的影響,統(tǒng)一封裝成soap (simple object access protocol 簡單對象訪問協(xié)議)格式;soap是一種輕量的、簡單的、基于XML的協(xié)議,它被設(shè)計成在WEB 上交換結(jié)構(gòu)化的和固化的信息,由于xml是跨平臺的,所以so即可以跨平臺,因此使用so即 封裝請求從而避免了跨平臺對接的問題。 步驟106 :統(tǒng)一代理適配裝置根據(jù)服務(wù)請求中攜帶的服務(wù)名,按照配置保存的服 務(wù)調(diào)用地址與服務(wù)名的對應(yīng)關(guān)系進行服務(wù)路由,從而將soap服務(wù)請求以Web Service方 式,通過soap接口發(fā)送到相應(yīng)的業(yè)務(wù)系統(tǒng); 步驟107 :所述業(yè)務(wù)系統(tǒng)收到soap服務(wù)請求,根據(jù)該服務(wù)請求獲取其中攜帶的參
數(shù)(如用戶在web門戶上輸入的數(shù)據(jù)參數(shù)),進行業(yè)務(wù)處理; 步驟108 :所述業(yè)務(wù)系統(tǒng)將處理結(jié)果返回給統(tǒng)一代理適配裝置;
10
步驟109 :統(tǒng)一代理適配裝置將處理結(jié)果返回給企業(yè)運營系統(tǒng),最后顯示在web門 戶上,告知用戶。
以下通過一組應(yīng)用實例,對上述流程進行說明 下面以某大型旅行網(wǎng)為例,其可以提供在線的機票預(yù)定,酒店預(yù)定,目的地指南等 在線服務(wù)。 步驟a :用戶登錄該大型旅行網(wǎng)web門戶,進行了查詢航班的操作,填寫了包括出 發(fā)城市,目的城市,出發(fā)時間,乘客類型,乘客人數(shù),航空公司(可選)等信息,點擊查詢航 班,發(fā)出服務(wù)請求; 步驟b :查詢航班的服務(wù)請求被提交到該網(wǎng)站的后臺服務(wù)器,后臺服務(wù)器按照定 義好的請求格式(其中包含了 JSON格式封裝的參數(shù)),通過so即接口調(diào)用統(tǒng)一代理適配裝 置提供的web服務(wù)名; 步驟C :統(tǒng)一代理適配裝置在收到企業(yè)運營系統(tǒng)的請求后,首先判斷查詢航班的 服務(wù)是否處于啟用狀態(tài),如果停用,就結(jié)束流程,返回企業(yè)運營系統(tǒng),在恥b門戶上顯示告 知用戶"查詢航班服務(wù)已停用"; 如果處于啟用狀態(tài),判斷該用戶是否有權(quán)限進行航班的查詢,如果沒有權(quán)限,返回 企業(yè)運營系統(tǒng),顯示在恥b門戶上告知用戶"操作失敗,沒有航班查詢權(quán)限";
如果有權(quán)限,則進行接口適配,根據(jù)航班查詢的業(yè)務(wù)系統(tǒng)提供的WSDL描述文件, 進行soap請求的封裝(主要將其中JSON格式封裝的參數(shù)適配成適用于相應(yīng)業(yè)務(wù)系統(tǒng)的格 式),并按照航班查詢的業(yè)務(wù)系統(tǒng)的服務(wù)調(diào)用地址進行服務(wù)路由,將查詢航班的soap服務(wù) 請求(包含適用于此業(yè)務(wù)系統(tǒng)的格式的參數(shù))轉(zhuǎn)發(fā)給航班查詢業(yè)務(wù)系統(tǒng),待航班查詢業(yè)務(wù) 系統(tǒng)處理業(yè)務(wù)完畢后,將查詢到的結(jié)果返回給統(tǒng)一代理適配裝置,統(tǒng)一代理適配裝置將結(jié) 果再返回給企業(yè)運營系統(tǒng); 步驟d :企業(yè)運營系統(tǒng)將查詢結(jié)果返回在web門戶上,給用戶查看。 在另一應(yīng)用實例中,用戶選擇選定的航班,進行預(yù)定操作輸入航班號,票的數(shù)量,
信用卡號,選擇送票方式等信息,然后點擊訂票,發(fā)出服務(wù)請求; 訂票的服務(wù)請求被提交到該網(wǎng)站的后臺服務(wù)器,后臺服務(wù)器按照定義好的請求格 式(其中包含了 JSON格式封裝的參數(shù)),通過so即接口調(diào)用統(tǒng)一代理適配裝置提供的web 服務(wù)名; 重復(fù)上面的步驟c、d過程,這里不再重復(fù)。 在另一應(yīng)用實例中,用戶完成機票預(yù)定后,開始酒店的預(yù)定,在界面上選擇酒店預(yù) 定,同樣先查詢酒店,輸入城市,到達(dá)時間,離開時間,房間數(shù),入住人數(shù),價格范圍,星級要 求,進行酒店的查詢,然后再進行預(yù)定; 與上面訂機票的過程相似,酒店查詢的服務(wù)請求被提交到該網(wǎng)站的后臺服務(wù)器, 后臺服務(wù)器按照定義好的請求格式,通過soap接口調(diào)用統(tǒng)一代理適配裝置提供的web服務(wù) 名; 重復(fù)上面的步驟c、 d過程,這里就不再贅述了。
附接口描述 這里定義了統(tǒng)一代理適配裝置對外的調(diào)用接口
接口定義(用java實現(xiàn))
11
public String integrate WsServer (String serviceName, String params,String id) ^0093] 參數(shù)說明
0094] serviceName :月艮務(wù)名(唯一木示i只);
0095] params :各個服務(wù)需要的參數(shù),參數(shù)的組織規(guī)范應(yīng)符合JSON的規(guī)范,如下面的例子(paraml:V valuel\〃 ,param2:\〃 value2\〃 ,param3:\〃 value3\〃 };00%] id:用戶標(biāo)識(可選),用于服務(wù)鑒權(quán)。0097] 這是我們對企業(yè)運營系統(tǒng)統(tǒng)一發(fā)布的WSDL描述0098] 〈? xml version =〃 1.0〃 encoding = 〃 UTF-8〃 ?〉
0099] -〈wsdl: definitions targetNamespace =〃 http://ws. integration, zte.
com 〃
0100] xmlns:apachesoap = 〃 http://xml. apache. org/xml_soap 〃 xmlns:impl=〃 http://ws. integration, zte. com〃
0101] xmlns:intf =〃 http://ws. integration.zte.com=〃 http://schemas. xmlso即.org/soap/encoding/〃0102] xmlns:wsdl =〃 http://schemas. xmlsoap. org/wsdl/=〃 http://schemas. xmlsoap. org/wsdl/soap/〃0103] xmlns:xsd=〃 http://www. w3. org/2001/XMLSchema〃 〉
xmlns:soapencxmlns:wsdlsoap
0104]0105]0106]0107]0108]0109]0110]
WSDL created by Apache Axis version: 1.2. 1Built on Aug 08,2005(11:49:10 PDT)
0112]0113]0114]
xsd:
一〈wsdl:message name〈wsdl:part name〈wsdl:part name〈wsdl:part name〈/wsdl:message〉-〈wsdl :message name =〃〈wsdl:part name =string〃 /〉
〈/wsdl:message〉-〈wsdl :portType name ='—〈wsdl:operation name=〃 serviceName params id〃 〉0118] 〈wsdl:input message
=〃 integrateWsServerRequest〃 /〉0119] 〈wsdl:output message
=〃 integrateWsServerResponse 〃 /〉0120] 〈/wsdl:operation〉
=〃 integrateWsSerwerRequest 〃 〉serviceName 〃 type =〃 xsd: string'params 〃 type =〃 xsd: string〃 /〉id〃 type =〃 xsd:string〃 /〉
integrateWsServerResponse 〃 〉〃 integrateWsServerReturn
type
0115]0116]0117]
IntegrationWS〃 〉=〃 integrateWsServer
par膽eterOrder
impl:integrateWsServerRequest 〃 name
impl:integrateWsServerResponse 〃 nameIntegrationWSSoapBinding
type
rpc transport
http://schemas.
0121] 〈/wsdl:portType〉
0122] -〈wsdl: binding name =
=〃 impl:IntegrationWS〃 〉0123] 〈wsdlsoap:binding style =
xmlso即.org/so即/http〃 /〉
0124] -〈wsdl: operation name =〃 integrateWsServer 〃 〉
0125] 〈wsdlsoap:operation soapAction =〃 〃 /〉
0126] -〈wsdl: input name =〃 integrateWsServerRequest 〃 〉
0127] 〈wsdlso即body encodingStyle = 〃 http: //
schemas. xmlso即.org/soap/encoding/〃
0128] namespace =〃 http://ws. integration, zte. com〃 use =〃 encoded〃 /〉0129] 〈/wsdl:input〉
0130] -〈wsdl: output name =〃 integrateWsServerResponse 〃 〉
0131 ] 〈wsdlso即body encodingStyle = 〃 http: //
schemas. xmlso即.org/soap/encoding/〃
0132] namespace =〃 http://ws. integration, zte. com〃 use =〃 encoded〃 /〉0133] 〈/wsdl:output〉0134] 〈/wsdl:operation〉
0135] 〈/wsdl:binding〉
0136] -〈wsdl: service name =〃 IntegrationWSService 〃 〉
0137] -〈wsdl:port binding = 〃 impl:IntegrationWSSoapBinding 〃 name
=〃 IntegrationWS〃 〉
0138] 〈wsdlsoap:address location =〃 http://1ocalhost:8080/WebModulel/
services/IntegrationWS〃 /〉0139] 〈/wsdl:port〉0140] 〈/wsdl:service〉
0141] 〈/wsdl:definitions〉
0142] 統(tǒng)一代理適配裝置接收到Web Service調(diào)用后,使用
0143] JS0N0bjectjson0bject = JS0N0bject. from0bject (jsonStr);
0144] 進行JSON對象的實例化,然后適配后臺的各種業(yè)務(wù)系統(tǒng),根據(jù)各服務(wù)系統(tǒng)提供的
WSDL,包裝適用于相應(yīng)業(yè)務(wù)系統(tǒng)的soap服務(wù)請求,向各業(yè)務(wù)系統(tǒng)進行Web Service調(diào)用,完
成服務(wù)處理。
0145] 下面通過一個具體實施例對本發(fā)明統(tǒng)一代理適配系統(tǒng)的構(gòu)成進行說明。
0146] 圖2為本發(fā)明實施例中基于Web Service的統(tǒng)一代理適配系統(tǒng)的結(jié)構(gòu)圖,該系統(tǒng)
包括企業(yè)運營系統(tǒng)100,統(tǒng)一代理適配裝置200,若干業(yè)務(wù)系統(tǒng)300,權(quán)限數(shù)據(jù)庫400和管
理終端500。 其中,所述企業(yè)運營系統(tǒng)100,用于為用戶提供可登錄的web門戶,供其選擇所需要的服務(wù),并輸入其所選服務(wù)要求的數(shù)據(jù),將所得到的用戶提交的服務(wù)請求按照所述統(tǒng)一代理適配裝置定義的調(diào)用接口進行封裝,得到符合統(tǒng)一代理適配裝置的JS0N格式的服務(wù)
13請求,將所得到的服務(wù)請求提交到統(tǒng)一代理適配裝置,以Web Service方式調(diào)用統(tǒng)一代理適配裝置提供的服務(wù)名;所述服務(wù)請求中攜帶有用戶所選服務(wù)的服務(wù)名及用戶所填寫的數(shù)據(jù)參數(shù);也可以攜帶有用戶ID; 所述企業(yè)運營系統(tǒng)IOO,還用于接收所述統(tǒng)一代理適配裝置200返回的業(yè)務(wù)系統(tǒng)停用信息,顯示在恥b門戶上告知用戶"該服務(wù)已停用";接收所述統(tǒng)一代理適配裝置200返回的鑒權(quán)失敗信息,顯示在恥b門戶上告知用戶"操作失敗,沒有權(quán)限";
所述企業(yè)運營系統(tǒng)IOO,還用于將所述統(tǒng)一代理適配裝置200返回的處理結(jié)果顯示在web門戶上告知用戶。 所述統(tǒng)一代理適配裝置200,接收到所述企業(yè)運營系統(tǒng)100的調(diào)用后,首先根據(jù)服務(wù)請求中攜帶的服務(wù)名對該服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)是否啟用進行狀態(tài)判斷,如果處于停用狀態(tài),則返回停用信息給所述企業(yè)運營系統(tǒng)100 ;如果對應(yīng)的業(yè)務(wù)系統(tǒng)300處于啟用狀態(tài),則連接到所述權(quán)限數(shù)據(jù)庫400,根據(jù)服務(wù)請求中攜帶的用戶ID及服務(wù)名在所述權(quán)限數(shù)據(jù)庫400中進行查詢,如果在所述權(quán)限數(shù)據(jù)庫400中查詢到該用戶ID沒有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,則返回鑒權(quán)失敗信息給所述企業(yè)運營系統(tǒng)100 ;如果在所述權(quán)限數(shù)據(jù)庫400中查詢到該用戶ID有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,則按照所述服務(wù)請求中攜帶的服務(wù)名所對應(yīng)的提供該服務(wù)的業(yè)務(wù)系統(tǒng)300的WSDL進行接口適配,將所述所述企業(yè)運營系統(tǒng)100傳遞過來的JSON格式的服務(wù)請求,適配為所述業(yè)務(wù)系統(tǒng)300實際使用的格式的服務(wù)請求;根據(jù)服務(wù)請求中攜帶的服務(wù)名,按照配置保存的服務(wù)調(diào)用地址與服務(wù)名的對應(yīng)關(guān)系進行服務(wù)路由,將所述的服務(wù)請求以Web Service方式,通過將soap服務(wù)請求發(fā)送到所述服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)300 ; 所述統(tǒng)一代理適配裝置200,還用于將所述服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)300返回的處理結(jié)果返回給企業(yè)運營系統(tǒng)100 ; 所述統(tǒng)一代理適配裝置200,還用于根據(jù)各業(yè)務(wù)系統(tǒng)300定時上報的狀態(tài)信息,來判斷各業(yè)務(wù)系統(tǒng)300處于啟用還是停用狀態(tài),完成各業(yè)務(wù)系統(tǒng)300的狀態(tài)配置;還可以用于接受管理終端500控制打開自動探測開關(guān),定時去遠(yuǎn)程調(diào)用各業(yè)務(wù)系統(tǒng)300提供的服務(wù),生成遠(yuǎn)程實例,如果生成實例失敗就自動將其狀態(tài)設(shè)為停用,生成實例成功就自動將其狀態(tài)恢復(fù)為啟用。 所述業(yè)務(wù)系統(tǒng)300,接收所述soap服務(wù)請求,并根據(jù)該服務(wù)請求獲取其中攜帶的參數(shù)(如用戶在恥b門戶上輸入的服務(wù)數(shù)據(jù)),進行業(yè)務(wù)處理,并將所述處理結(jié)果返回給所述統(tǒng)一代理適配裝置200。 所述管理終端500,用于控制所述統(tǒng)一代理適配裝置200打開自動探測開關(guān),還用與控制所述統(tǒng)一代理適配裝置200是否連接到所述權(quán)限數(shù)據(jù)庫400完成鑒權(quán),如果設(shè)置所述統(tǒng)一代理適配裝置200與所述權(quán)限數(shù)據(jù)庫400斷開,則跳過鑒權(quán)操作。
所述權(quán)限數(shù)據(jù)庫400,用于存儲用戶ID及該用戶ID有權(quán)操作的服務(wù)名,供所述統(tǒng)一代理適配裝置200進行鑒權(quán)操作時查詢。 可見,在企業(yè)運營系統(tǒng)100不提供用戶權(quán)限數(shù)據(jù)或者由企業(yè)運營系統(tǒng)100自己進行服務(wù)鑒權(quán)時,可以通過管理終端500的操作,關(guān)閉所述統(tǒng)一代理適配裝置200的鑒權(quán)服務(wù),斷開所述權(quán)限數(shù)據(jù)庫400與所述統(tǒng)一代理適配裝置200的連接。 另外,在另一實施例中,本發(fā)明中提供用戶權(quán)限數(shù)據(jù)的權(quán)限數(shù)據(jù)庫400也可以存
14在于所述統(tǒng)一代理適配裝置200內(nèi)部。即權(quán)限數(shù)據(jù)庫獨立于統(tǒng)一代理適配裝置之外或依存于統(tǒng)一代理適配裝置內(nèi)部都可以實現(xiàn),本發(fā)明不限于此。 下面通過一個具體實施例對本發(fā)明統(tǒng)一代理適配裝置的構(gòu)成進行說明。 圖3為本發(fā)明實施例中基于Web Service的統(tǒng)一代理適配裝置的結(jié)構(gòu)圖,統(tǒng)一代
理適配裝置200,設(shè)置于企業(yè)運營系統(tǒng)100和若干業(yè)務(wù)系統(tǒng)300之間,包括接收模塊201,
適配匹配模塊202、發(fā)送模塊203、存儲模塊204、狀態(tài)檢測模塊205、鑒權(quán)模塊206及權(quán)限數(shù)
據(jù)庫400。 所述接收模塊201,用于接收所述企業(yè)運營系統(tǒng)100封裝的所述統(tǒng)一代理適配裝置200適用格式的服務(wù)請求,并交由所述適配匹配模塊202處理; 所述適配匹配模塊202,用于根據(jù)所述封裝后的服務(wù)請求所攜帶服務(wù)名匹配與該服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)300,通知所述發(fā)送模塊203 ;并將所述封裝后的服務(wù)請求適配為所述對應(yīng)的業(yè)務(wù)系統(tǒng)300適用的格式,交由所述發(fā)送模塊203處理; 所述發(fā)送模塊203,用于將所述適配得到的服務(wù)請求發(fā)送到所述對應(yīng)的業(yè)務(wù)系統(tǒng)300。 具體來說,所述適配匹配模塊202,用于根據(jù)所保存的各業(yè)務(wù)系統(tǒng)300的WSDL將所述Web服務(wù)調(diào)用接口封裝的服務(wù)請求適配為與該服務(wù)請求所攜帶的服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)300適用的格式;根據(jù)所保存的服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系,匹配與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)300,并通知所述發(fā)送模塊203 ; 存儲模塊204,用于保存各業(yè)務(wù)系統(tǒng)300的服務(wù)描述語言WSDL,以及服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系。 另外,在所述適配匹配模塊202對服務(wù)請求進行適配之前,還可以連接所述狀態(tài)檢測模塊205,對對應(yīng)的業(yè)務(wù)系統(tǒng)300進行狀態(tài)檢測 所述適配匹配模塊202,根據(jù)所述封裝后的服務(wù)請求所攜帶服務(wù)名匹配與該服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)300后,還通知所述狀態(tài)檢測模塊205并觸發(fā)其開始工作;收到所述狀態(tài)檢測模塊205返回的狀態(tài)檢測完成的通知后,將所述封裝后的服務(wù)請求適配為所述對應(yīng)的業(yè)務(wù)系統(tǒng)300適用的格式;收到所述狀態(tài)檢測模塊205返回的停用通知后,停止工作;
所述狀態(tài)檢測模塊205,用于對所述匹配的對應(yīng)的業(yè)務(wù)系統(tǒng)300進行狀態(tài)判斷,如果所述業(yè)務(wù)系統(tǒng)300處于停用狀態(tài),向所述企業(yè)運營系統(tǒng)100返回所述業(yè)務(wù)系統(tǒng)300的停用信息,并通知所述適配匹配模塊202停止處理;如果所述業(yè)務(wù)系統(tǒng)300處于啟用狀態(tài),則通知所述適配匹配模塊202狀態(tài)檢測完成。 其中,所述狀態(tài)檢測模塊205可以根據(jù)各業(yè)務(wù)系統(tǒng)300上報的狀態(tài)信息,來判斷各業(yè)務(wù)系統(tǒng)300處于啟用還是停用狀態(tài);或者打開自動探測開關(guān),定時遠(yuǎn)程調(diào)用所述各業(yè)務(wù)系統(tǒng)300提供的服務(wù),生成遠(yuǎn)程實例,如果所生成的遠(yuǎn)程實例失敗,則自動將所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)300的狀態(tài)設(shè)為停用,如果所生成的遠(yuǎn)程實例成功,則自動將所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)300的狀態(tài)設(shè)為為啟用。 另外,在所述狀態(tài)檢測模塊205檢測完成之后,在所述適配匹配模塊202對服務(wù)請
求進行適配之前,還可以連接權(quán)限數(shù)據(jù)庫400及鑒權(quán)模塊206對用戶進行鑒權(quán) 所述適配匹配模塊202,收到所述狀態(tài)檢測模塊205返回的狀態(tài)檢測完成的通知
后,觸發(fā)所述鑒權(quán)模塊206啟動,并將所述服務(wù)請求中攜帶的用戶標(biāo)識及服務(wù)名通知所述鑒權(quán)模塊206 ;在收到所述鑒權(quán)模塊206返回的鑒權(quán)成功的通知后,將所述封裝后的服務(wù)請求適配為所述對應(yīng)的業(yè)務(wù)系統(tǒng)300適用的格式;收到所述鑒權(quán)模塊206返回的鑒權(quán)失敗的通知后,停止工作; 所述鑒權(quán)模塊206,用于連接所述權(quán)限數(shù)據(jù)庫400,根據(jù)服務(wù)請求中攜帶的用戶標(biāo)識及服務(wù)名在所述權(quán)限數(shù)據(jù)庫400中進行查詢,如果所述用戶標(biāo)識沒有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,向所述企業(yè)運營系統(tǒng)100返回鑒權(quán)失敗信息,并通知所述適配匹配模塊202停止處理;如果所述用戶標(biāo)識有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,通知所述適配匹配模塊202鑒權(quán)成功; 所述權(quán)限數(shù)據(jù)庫400,用于存儲用戶標(biāo)識及該用戶標(biāo)識有權(quán)操作的服務(wù)名,供所述鑒權(quán)模塊206進行查詢。 另外,如前所述,權(quán)限數(shù)據(jù)庫400獨立于統(tǒng)一代理適配裝置200之外或依存于統(tǒng)一
代理適配裝置200內(nèi)部都可以實現(xiàn),本發(fā)明不限于此。因此,在另一實施例中,上述存在于
統(tǒng)一代理適配裝置200內(nèi)部的權(quán)限數(shù)據(jù)庫400,也可以獨立于統(tǒng)一代理適配裝置200之外,
其他操作不變,依然由鑒權(quán)模塊206對權(quán)限數(shù)據(jù)庫400進行連接,完成鑒權(quán)。 上述說明示出并描述了本發(fā)明的一個優(yōu)選實施例,但如前所述,應(yīng)當(dāng)理解本發(fā)明
并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、
修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進行改動。而本領(lǐng)域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)力要求的保護范圍內(nèi)。
權(quán)利要求
一種基于Web服務(wù)的統(tǒng)一代理適配方法,應(yīng)用于包括企業(yè)運營系統(tǒng)和若干業(yè)務(wù)系統(tǒng)的架構(gòu),其特征在于,包括在所述企業(yè)運營系統(tǒng)和若干業(yè)務(wù)系統(tǒng)之間設(shè)置統(tǒng)一代理適配裝置,所述統(tǒng)一代理適配裝置接收所述企業(yè)運營系統(tǒng)發(fā)來的封裝為所述統(tǒng)一代理適配裝置適用格式的服務(wù)請求,將所述服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式并發(fā)送到所述對應(yīng)的業(yè)務(wù)系統(tǒng)。
2. 如權(quán)利要求2所述的方法,其特征在于,進一步包括在所述統(tǒng)一代理適配裝置中保存各業(yè)務(wù)系統(tǒng)的服務(wù)描述語言WSDL及其服務(wù)名與Web 服務(wù)調(diào)用地址的對應(yīng)關(guān)系,并提供一 Web服務(wù)調(diào)用接口 ;所述統(tǒng)一代理適配裝置接收所述企業(yè)運營系統(tǒng)發(fā)出的經(jīng)所述Web服務(wù)調(diào)用接口封裝 為所述統(tǒng)一代理適配裝置適用的格式的服務(wù)請求,所述服務(wù)請求包含用戶所選服務(wù)名及所 輸入服務(wù)數(shù)據(jù);所述統(tǒng)一代理適配裝置根據(jù)所述各業(yè)務(wù)系統(tǒng)的WSDL進行接口適配,將所述Web服務(wù)調(diào) 用接口封裝的服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式;所述統(tǒng)一代理適配裝置根據(jù)服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系,將適配后的服務(wù) 請求發(fā)送到與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng),由所述業(yè)務(wù)系統(tǒng)進行業(yè)務(wù)處理。
3. 如權(quán)利要求2所述的方法,其特征在于,所述統(tǒng)一代理適配裝置接收所述企業(yè)運營 系統(tǒng)發(fā)出的經(jīng)所述Web服務(wù)調(diào)用接口封裝為所述統(tǒng)一代理適配裝置適用的格式的服務(wù)請 求的步驟,與所述統(tǒng)一代理適配裝置根據(jù)所述各業(yè)務(wù)系統(tǒng)的WSDL將所述Web服務(wù)調(diào)用接口 封裝的服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式的步驟之 間,還包括所述統(tǒng)一代理適配裝置首先根據(jù)所述服務(wù)請求中攜帶的服務(wù)名對所述服務(wù)名對應(yīng)的 業(yè)務(wù)系統(tǒng)進行狀態(tài)判斷,如果所述業(yè)務(wù)系統(tǒng)處于停用狀態(tài),則流程結(jié)束;如果所述業(yè)務(wù)系統(tǒng) 處于啟用狀態(tài),則所述統(tǒng)一代理適配裝置根據(jù)所述各業(yè)務(wù)系統(tǒng)的WSDL將所述Web服務(wù)調(diào)用 接口封裝的服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式。
4. 如權(quán)利要求3所述的方法,其特征在于,所述統(tǒng)一代理適配裝置根據(jù)各業(yè)務(wù)系統(tǒng)上 報的狀態(tài)信息,來判斷各業(yè)務(wù)系統(tǒng)處于啟用還是停用狀態(tài);或者,所述統(tǒng)一代理適配裝置打 開自動探測開關(guān),定時遠(yuǎn)程調(diào)用所述各業(yè)務(wù)系統(tǒng)提供的服務(wù),生成遠(yuǎn)程實例,如果所生成的 遠(yuǎn)程實例失敗,則自動將所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)的狀態(tài)設(shè)為停用,如果所生成的遠(yuǎn) 程實例成功,則自動將所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)的狀態(tài)設(shè)為啟用。
5. 如權(quán)利要求4所述的方法,其特征在于,所述服務(wù)請求中還包括用戶標(biāo)識; 如果所述業(yè)務(wù)系統(tǒng)處于啟用狀態(tài),還包括所述統(tǒng)一代理適配裝置根據(jù)服務(wù)請求中攜帶的用戶標(biāo)識及服務(wù)名在權(quán)限數(shù)據(jù)庫中進行查詢,如果所述用戶標(biāo)識沒有所述服務(wù)名對應(yīng) 服務(wù)的權(quán)限,則流程結(jié)束;如果所述用戶標(biāo)識有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,則所述統(tǒng)一代 理適配裝置根據(jù)所述各業(yè)務(wù)系統(tǒng)的WSDL將所述Web服務(wù)調(diào)用接口封裝的服務(wù)請求適配為 與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式。
6. —種基于Web服務(wù)的統(tǒng)一代理適配裝置,其特征在于,所述統(tǒng)一代理適配裝置,設(shè)置 于企業(yè)運營系統(tǒng)和若干業(yè)務(wù)系統(tǒng)之間,包括接收模塊,適配匹配模塊和發(fā)送模塊;所述接收模塊,用于接收所述企業(yè)運營系統(tǒng)封裝的所述統(tǒng)一代理適配裝置適用格式的服務(wù)請求,并交由所述適配匹配模塊處理;所述適配匹配模塊,用于根據(jù)所述封裝后的服務(wù)請求所攜帶服務(wù)名匹配與該服務(wù)名對 應(yīng)的業(yè)務(wù)系統(tǒng),通知所述發(fā)送模塊;并將所述封裝后的服務(wù)請求適配為所述對應(yīng)的業(yè)務(wù)系 統(tǒng)適用的格式,交由所述發(fā)送模塊處理;所述發(fā)送模塊,用于將所述適配得到的服務(wù)請求發(fā)送到所述對應(yīng)的業(yè)務(wù)系統(tǒng)。
7. 如權(quán)利要求6所述的統(tǒng)一代理適配裝置,其特征在于,還包括存儲模塊,用于保存 各業(yè)務(wù)系統(tǒng)的服務(wù)描述語言WSDL,以及服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系;所述適配匹配模塊,用于根據(jù)所保存的各業(yè)務(wù)系統(tǒng)的WSDL將所述Web服務(wù)調(diào)用接口封 裝的服務(wù)請求適配為與該服務(wù)請求所攜帶的服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式;根據(jù)所保 存的服務(wù)名與Web服務(wù)調(diào)用地址的對應(yīng)關(guān)系,匹配與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù) 系統(tǒng),并通知所述發(fā)送模塊。
8. 如權(quán)利要求7所述的統(tǒng)一代理適配裝置,其特征在于,還包括狀態(tài)檢測模塊; 所述適配匹配模塊,根據(jù)所述封裝后的服務(wù)請求所攜帶服務(wù)名匹配與該服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)后,還通知所述狀態(tài)檢測模塊并觸發(fā)其開始工作;所述狀態(tài)檢測模塊,用于對所述匹配的對應(yīng)的業(yè)務(wù)系統(tǒng)進行狀態(tài)判斷,如果所述業(yè)務(wù) 系統(tǒng)處于停用狀態(tài),向所述企業(yè)運營系統(tǒng)返回所述業(yè)務(wù)系統(tǒng)的停用信息,并通知所述適配 匹配模塊停止處理;如果所述業(yè)務(wù)系統(tǒng)處于啟用狀態(tài),則通知所述適配匹配模塊狀態(tài)檢測 完成。
9. 如權(quán)利要求8所述的統(tǒng)一代理適配裝置,其特征在于,所述狀態(tài)檢測模塊,根據(jù)各 業(yè)務(wù)系統(tǒng)上報的狀態(tài)信息,來判斷各業(yè)務(wù)系統(tǒng)處于啟用還是停用狀態(tài);或者打開自動探測 開關(guān),定時遠(yuǎn)程調(diào)用所述各業(yè)務(wù)系統(tǒng)提供的服務(wù),生成遠(yuǎn)程實例,如果所生成的遠(yuǎn)程實例失 敗,則自動將所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)的狀態(tài)設(shè)為停用,如果所生成的遠(yuǎn)程實例成功, 則自動將所述遠(yuǎn)程實例對應(yīng)的業(yè)務(wù)系統(tǒng)的狀態(tài)設(shè)為為啟用。
10. 如權(quán)利要求8所述的統(tǒng)一代理適配裝置,其特征在于,所述適配匹配模塊,收到所 述狀態(tài)檢測模塊返回的狀態(tài)檢測完成的通知后,將所述封裝后的服務(wù)請求適配為所述對應(yīng) 的業(yè)務(wù)系統(tǒng)適用的格式。
11. 如權(quán)利要求8所述的統(tǒng)一代理適配裝置,其特征在于,還包括權(quán)限數(shù)據(jù)庫及鑒權(quán) 模塊;所述適配匹配模塊,收到所述狀態(tài)檢測模塊返回的狀態(tài)檢測完成的通知后,觸發(fā)所述 鑒權(quán)模塊啟動,并將所述服務(wù)請求中攜帶的用戶標(biāo)識及服務(wù)名通知所述鑒權(quán)模塊;在收到 所述鑒權(quán)模塊返回的鑒權(quán)成功的通知后,將所述封裝后的服務(wù)請求適配為所述對應(yīng)的業(yè)務(wù) 系統(tǒng)適用的格式;所述鑒權(quán)模塊,用于連接所述權(quán)限數(shù)據(jù)庫,根據(jù)服務(wù)請求中攜帶的用戶標(biāo)識及服務(wù)名 在所述權(quán)限數(shù)據(jù)庫中進行查詢,如果所述用戶標(biāo)識沒有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,向所 述企業(yè)運營系統(tǒng)返回鑒權(quán)失敗信息,并通知所述適配匹配模塊停止處理;如果所述用戶標(biāo) 識有所述服務(wù)名對應(yīng)服務(wù)的權(quán)限,通知所述適配匹配模塊鑒權(quán)成功;所述權(quán)限數(shù)據(jù)庫,用于存儲用戶標(biāo)識及該用戶標(biāo)識有權(quán)操作的服務(wù)名,供所述鑒權(quán)模 塊進行查詢。
12. —種基于Web服務(wù)的統(tǒng)一代理適配系統(tǒng),其特征在于,包括企業(yè)運營系統(tǒng),統(tǒng)一代理適配裝置和若干業(yè)務(wù)系統(tǒng);其中,所述企業(yè)運營系統(tǒng),用于將用戶提交的包含用戶所選服務(wù)名的服務(wù)請求封裝為所述統(tǒng) 一代理適配裝置適用格式并發(fā)送給所述統(tǒng)一代理適配裝置;所述統(tǒng)一代理適配裝置,接收所述企業(yè)運營系統(tǒng)發(fā)來的服務(wù)請求,將所述服務(wù)請求適 配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式,并將所述適配得到的服務(wù)請 求發(fā)送到所述對應(yīng)的業(yè)務(wù)系統(tǒng)。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述統(tǒng)一代理適配裝置,用于提供一 Web服務(wù)調(diào)用接口 ,用于根據(jù)所保存的各業(yè)務(wù)系 統(tǒng)的服務(wù)描述語言WSDL將所述Web服務(wù)調(diào)用接口封裝的服務(wù)請求適配為與該服務(wù)請求所 攜帶的服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式;根據(jù)所保存的服務(wù)名與Web服務(wù)調(diào)用地址的對 應(yīng)關(guān)系,將所述適配后得到的服務(wù)請求發(fā)送到與該服務(wù)請求所攜帶的服務(wù)名對應(yīng)的業(yè)務(wù)系 統(tǒng);所述業(yè)務(wù)系統(tǒng),用于根據(jù)所述統(tǒng)一代理適配裝置發(fā)來的服務(wù)請求中用戶所輸入的服務(wù) 數(shù)據(jù)進行業(yè)務(wù)處理,還用于向所述統(tǒng)一代理適配裝置發(fā)送WSDL。
全文摘要
本發(fā)明公開了一種基于Web服務(wù)的統(tǒng)一代理適配方法、裝置以及適配系統(tǒng),應(yīng)用于包括企業(yè)運營系統(tǒng)和若干業(yè)務(wù)系統(tǒng)的架構(gòu),包括在企業(yè)運營系統(tǒng)和若干業(yè)務(wù)系統(tǒng)之間設(shè)置統(tǒng)一代理適配裝置,統(tǒng)一代理適配裝置接收所述企業(yè)運營系統(tǒng)發(fā)來的封裝為所述統(tǒng)一代理適配裝置適用格式的服務(wù)請求,將所述服務(wù)請求適配為與該服務(wù)請求所攜帶服務(wù)名對應(yīng)的業(yè)務(wù)系統(tǒng)適用的格式并發(fā)送到所述對應(yīng)的業(yè)務(wù)系統(tǒng)。應(yīng)用本發(fā)明,能夠?qū)ν馓峁┙y(tǒng)一的對接接口,并與代理的各種Web Service服務(wù)器進行適配后,進行請求轉(zhuǎn)發(fā),并且能對代理的各種業(yè)務(wù)的服務(wù)進行開啟和關(guān)閉,并且對業(yè)務(wù)的權(quán)限進行鑒權(quán)。
文檔編號H04L29/08GK101695076SQ20091017567
公開日2010年4月14日 申請日期2009年9月21日 優(yōu)先權(quán)日2009年9月21日
發(fā)明者楊永明, 祝文軍 申請人:中興通訊股份有限公司;