專利名稱:一種業(yè)務(wù)部署方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Web服務(wù)應(yīng)用技術(shù)領(lǐng)域,特別是涉及一種業(yè)務(wù)部署方法及裝置。
背景技術(shù):
Web服務(wù)的基礎(chǔ)建立在HTTP (HyperText Transfer Protoco 1,超文本傳輸協(xié) i義)、XML(Extensible Markup Language, njJrMfeiSip- 目)、SOAP(SimpleObject Access Protocol,簡單對象訪問協(xié)議)、WSDL(Web ServicesDescription Language, Web service 描述語言)等開放的因特網(wǎng)標(biāo)準(zhǔn)之上。這種技術(shù)允許網(wǎng)絡(luò)上的所有系統(tǒng)進(jìn)行交互,一般 采用SOAP作為對象調(diào)用的通信協(xié)議,XML作為標(biāo)準(zhǔn)的數(shù)據(jù)格式。WSDL和UDDI (Universal DescriptionDiscovery and Integration,統(tǒng)一描述、發(fā)現(xiàn)和集成)分別是獲得當(dāng)今工業(yè)界 普遍支持的服務(wù)描述協(xié)議和服務(wù)發(fā)現(xiàn)協(xié)議。但UDDI機(jī)制需要有一個UDDI注冊中心,這一 般用于集中式工作流系統(tǒng)中,這就難以實(shí)現(xiàn)分布式服務(wù)發(fā)現(xiàn)。由于分布式的端對端工作流 系統(tǒng)的成為工作流系統(tǒng)發(fā)展的必然趨勢,因此要做好分布式業(yè)務(wù)執(zhí)行引擎,必須解決好分 布式服務(wù)發(fā)現(xiàn)問題。分布式服務(wù)發(fā)現(xiàn)就是要在分布式環(huán)境中找到服務(wù)所在的節(jié)點(diǎn)集合,或者是該集合 的一個子集,這就存在兩方面的問題一是提高發(fā)現(xiàn)的效率,二是要提高發(fā)現(xiàn)的能力。當(dāng)前的分布式服務(wù)業(yè)務(wù)的業(yè)務(wù)部署方法還沒有具體的方法來支持服務(wù)查找工作。 只采用隨機(jī)游走的查找方式,系統(tǒng)開銷大。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明的目的是提供一種分布式工作流系統(tǒng)中Web業(yè)務(wù)部署方 法,該方法利用構(gòu)建多重覆蓋網(wǎng)絡(luò)技術(shù)來滿足分布式環(huán)境下的業(yè)務(wù)需求。為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例一方面提出了一種業(yè)務(wù)部署方法,該方法包括如 下步驟Al 業(yè)務(wù)代理模塊接收業(yè)務(wù)部署指令,并對所述業(yè)務(wù)部署指令中的業(yè)務(wù)描述文檔 進(jìn)行解析,生成內(nèi)部流程描述文檔;A2:業(yè)務(wù)部署模塊接收來自所述業(yè)務(wù)代理模塊的業(yè)務(wù)部署啟動指令和內(nèi)部流程描 述文檔,并根據(jù)所述內(nèi)部流程描述文檔獲取Web服務(wù)信息;A3 所述業(yè)務(wù)部署模塊根據(jù)所述Web服務(wù)信息生成業(yè)務(wù)路由表,并向所述業(yè)務(wù)路 由表中的Web服務(wù)的節(jié)點(diǎn)發(fā)送所述業(yè)務(wù)部署指令和所述內(nèi)部流程描述文檔;A4:當(dāng)所述業(yè)務(wù)部署模塊將所述業(yè)務(wù)部署指令和所述內(nèi)部流程描述文檔發(fā)送到所 述Web服務(wù)的最后一個節(jié)點(diǎn)時(shí),部署完成。本發(fā)明實(shí)施例另一方面提出了一種業(yè)務(wù)部署裝置,該裝置包括業(yè)務(wù)代理模塊和業(yè) 務(wù)部署模塊,所述業(yè)務(wù)代理模塊,用于接收業(yè)務(wù)部署指令,并對所述業(yè)務(wù)部署指令中的業(yè)務(wù)描 述文檔進(jìn)行解析,生成內(nèi)部流程描述文檔;
所述業(yè)務(wù)部署模塊,用于接收來自所述業(yè)務(wù)代理模塊的業(yè)務(wù)部署啟動指令和內(nèi)部 流程描述文檔,獲取Web服務(wù)信息并生成業(yè)務(wù)路由表,并向所述Web服務(wù)的節(jié)點(diǎn)發(fā)送所述業(yè) 務(wù)部署指令和所述內(nèi)部流程描述文檔,當(dāng)發(fā)送到所述Web服務(wù)的最后一個節(jié)點(diǎn)時(shí),部署完 成,所述業(yè)務(wù)部署模塊位于每個服務(wù)節(jié)點(diǎn)上。 根據(jù)本發(fā)明實(shí)施例,利用覆蓋網(wǎng)技術(shù)解決分布式服務(wù)發(fā)現(xiàn)問題就是利用結(jié)構(gòu)化/ 非結(jié)構(gòu)化P2P網(wǎng)絡(luò)來完成節(jié)點(diǎn)定位,如結(jié)構(gòu)化P2P網(wǎng)絡(luò)常采用DHT (分布式哈希表)來支持 節(jié)點(diǎn)定位,每一個節(jié)點(diǎn)上存有其它一部分節(jié)點(diǎn)的服務(wù)信息,從而從全局上看,可以精確地查 找服務(wù)。具體地說,本發(fā)明具有以下特點(diǎn)(1)提供了一種完全分布式的業(yè)務(wù)部署方案,該方案中沒有集中式的業(yè)務(wù)管控模 塊,業(yè)務(wù)部署模塊分布在各個節(jié)點(diǎn)上,實(shí)現(xiàn)了業(yè)務(wù)部署的完全分布式。(2)該業(yè)務(wù)部署方案較為可靠安全而又不失靈活性,如在業(yè)務(wù)部署中,可以獲取所 有下一跳服務(wù),也可以獲取所有下一跳服務(wù)的子集,根據(jù)系統(tǒng)開銷的大小,能夠靈活選擇。 而制定下一跳服務(wù)列表時(shí),可以采用不同的策略,如跳數(shù)、延時(shí)、帶寬等。
本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變 得明顯和容易理解,其中圖1為根據(jù)本發(fā)明實(shí)施例的業(yè)務(wù)部署方法的流程框圖;圖2為根據(jù)本發(fā)明實(shí)施例的業(yè)務(wù)部署功能示意圖;圖3為根據(jù)本發(fā)明實(shí)施例的基于覆蓋網(wǎng)查詢服務(wù)節(jié)點(diǎn)的工作流程圖;圖4為根據(jù)本發(fā)明實(shí)施例的生成業(yè)務(wù)路由表過程示意圖;圖5為根據(jù)本發(fā)明實(shí)施例的業(yè)務(wù)部署裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。為實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明實(shí)施例一方面提出了一種業(yè)務(wù)部署方法,圖1示出 了該業(yè)務(wù)部署方法的流程框圖,結(jié)合圖1和圖2所示,該方法包括如下步驟Al 業(yè)務(wù)代理模塊(SA,Service Agent)接收業(yè)務(wù)部署指令,并對業(yè)務(wù)部署指令中 的業(yè)務(wù)描述文檔進(jìn)行解析,生成內(nèi)部流程描述文檔。其中,業(yè)務(wù)部署指令中包括業(yè)務(wù)號和業(yè)務(wù)描述文檔(BDD,BusinessDescription Document)。業(yè)務(wù)號是業(yè)務(wù)的唯一標(biāo)識。業(yè)務(wù)描述文檔,是對Web服務(wù)的一種描述,這種描述的本身也由Web服務(wù)提供,并 可以當(dāng)作Web服務(wù)使用。通過上述業(yè)務(wù)描述文檔可以描寫一個參加Web服務(wù)過程的Web服 務(wù)接口。例如,描述信息的輸入順序,使得業(yè)務(wù)流程能夠在Web服務(wù)之間以標(biāo)準(zhǔn)化的交互方 式得到精心組織。業(yè)務(wù)代理模塊接收到上述業(yè)務(wù)部署指令,并解析其中的業(yè)務(wù)描述文檔。該解析方 法是預(yù)先對BPEL標(biāo)準(zhǔn)文檔的關(guān)鍵結(jié)構(gòu)活動和基元活動進(jìn)行學(xué)習(xí),構(gòu)建BPEL關(guān)鍵詞-解析方法庫,其解析過程包括如下步驟1)分析基于BPEL標(biāo)準(zhǔn)的業(yè)務(wù)描述文檔,提取組成業(yè)務(wù)流程的關(guān)鍵詞,復(fù)現(xiàn)業(yè)務(wù)流 程邏輯拓?fù)?。其中,業(yè)務(wù)流程為一項(xiàng)Web服務(wù)業(yè)務(wù)的。上述步驟通過將BPEL流程文檔作為 方法XMLParse (String口 args)的輸入來實(shí)現(xiàn)。為了生成業(yè)務(wù)相關(guān)的數(shù)據(jù)處理腳本,控制信息與資源配置的腳本,考慮采用類DOM 解析器,以樹狀結(jié)構(gòu)將節(jié)點(diǎn)或信息片斷的集合組織起來,在樹中上下導(dǎo)航以尋找特定信息, 在語法樹的基礎(chǔ)上遍歷逐步理解文檔的語義信息,從而完成對業(yè)務(wù)描述文檔的掃描與分 析。上述步驟通過方法 XMLParse ()再調(diào) getTempString (Elementroot, StringBuffertempString),方法getTempString ()將BPEL做類DOM解析,將其XML格式轉(zhuǎn)換成帶空格的字 符串格式實(shí)現(xiàn)。2)在上述解析結(jié)果中,針對順序、并發(fā)、分支和循環(huán)等結(jié)構(gòu)進(jìn)行計(jì)算,得到流程中 各步驟的時(shí)序關(guān)系。3)根據(jù)提取出的關(guān)鍵詞與流程邏輯,自定義內(nèi)部流程描述規(guī)范,生成以業(yè)務(wù)鏈路 表為主要表示形式的內(nèi)部流程描述文檔,該文檔包括業(yè)務(wù)流程中每一執(zhí)行步驟的被調(diào)用服 務(wù)名稱、前置執(zhí)行條件、后置路由條件等,可以被服務(wù)節(jié)點(diǎn)上的分布式執(zhí)行引擎直接解釋執(zhí) 行。上述步驟的實(shí)現(xiàn)通過方法matchingOut (StringBuffer tempString)將字符串格 式的文檔,逐詞與關(guān)鍵詞策略庫中的關(guān)鍵詞匹配,生成各種內(nèi)部描述策略,并按照此策略組 織該關(guān)鍵詞有效范圍的其他字符串,并如此循環(huán),直至最終生成中間描述文檔。通過上述解析過程,生成內(nèi)部流程描述文檔(IPDD,Internal ProcessDescription Document)。內(nèi)部流程描述文檔作為業(yè)務(wù)描述文檔的解析結(jié)果,包含 業(yè)務(wù)描述文檔的一部分信息,是系統(tǒng)內(nèi)部能夠識別的關(guān)于業(yè)務(wù)的描述。并且,上述內(nèi)部流程 描述文檔能夠由服務(wù)節(jié)點(diǎn)上的分布式執(zhí)行引擎直接解釋執(zhí)行。A2 業(yè)務(wù)部署模塊(BDM,Business Deployment Module)接收來自業(yè)務(wù)代理模塊的 業(yè)務(wù)部署啟動指令和內(nèi)部流程描述文檔,并根據(jù)內(nèi)部流程描述文檔獲取Web服務(wù)信息。業(yè)務(wù)部署模塊是業(yè)務(wù)部署工作的核心模塊,將業(yè)務(wù)分成單個的網(wǎng)絡(luò)服務(wù)單元,然 后通過覆蓋網(wǎng)尋址能夠提供每個網(wǎng)絡(luò)服務(wù)的服務(wù)節(jié)點(diǎn)、然后以業(yè)務(wù)路由表的形式將分布在 各個服務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)服務(wù)連接起來,在物理上形成業(yè)務(wù)鏈路。業(yè)務(wù)部署模塊接收到來自業(yè)務(wù)代理模塊的業(yè)務(wù)部署啟動指令和內(nèi)部流程描述文 檔,并對內(nèi)部流程描述文檔進(jìn)行分析。業(yè)務(wù)部署模塊分析內(nèi)部流程描述文檔,從中分離出有關(guān)下一個Web服務(wù)信息。將 包含上述分離出的Web服務(wù)信息的指令發(fā)送到服務(wù)查詢模塊。服務(wù)查詢模塊根據(jù)上述Web 服務(wù)信息進(jìn)行查詢,上述查詢過程基于覆蓋網(wǎng)進(jìn)行。其中,覆蓋網(wǎng)采用基于chord的有結(jié)構(gòu) P2P網(wǎng)絡(luò)和無結(jié)構(gòu)P2P網(wǎng)絡(luò)混合而成。 在本實(shí)施例中,Web服務(wù)信息包括Web服務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。 結(jié)合圖3所示,覆蓋網(wǎng)絡(luò)底層是物理網(wǎng)絡(luò)層,其上是節(jié)點(diǎn)覆蓋網(wǎng)絡(luò)層,再上是服
務(wù)層,頂層是業(yè)務(wù)層。
如圖3中所示,業(yè)務(wù)層上的A、B、C、D、E為各個功能,組成一項(xiàng)業(yè)務(wù)。服務(wù)層上的 al和a4為能夠完成A功能的服務(wù)實(shí)例,b2、b5和b7為能夠完成B功能的服務(wù)實(shí)例,c2、c3 和c4能夠完成C功能的服務(wù)實(shí)例,dl和d6為能夠完成D功能的服務(wù)實(shí)例,e5和e7為能夠 完成E功能的服務(wù)實(shí)例。數(shù)字表示服務(wù)所在的節(jié)點(diǎn)。上述流程中有多條可選的業(yè)務(wù)鏈路, 具體如何執(zhí)行則由每個節(jié)點(diǎn)從業(yè)務(wù)路由表中根據(jù)下一跳服務(wù)節(jié)點(diǎn)的實(shí)時(shí)負(fù)載確定。
服務(wù)查詢基于上述覆蓋網(wǎng)絡(luò)進(jìn)行查詢,將查詢得到的查詢結(jié)果發(fā)送到業(yè)務(wù)部署模 塊。其中,服務(wù)查詢模塊的查詢結(jié)果包括能夠提供Web服務(wù)的所以節(jié)點(diǎn)的網(wǎng)絡(luò)地址。A3 業(yè)務(wù)部署模塊根據(jù)Web服務(wù)信息生成業(yè)務(wù)路由表,并向業(yè)務(wù)路由表中的Web服 務(wù)的節(jié)點(diǎn)發(fā)送業(yè)務(wù)部署指令和內(nèi)部流程描述文檔。業(yè)務(wù)部署模塊在獲得的能夠提供Web服務(wù)的所有節(jié)點(diǎn)的網(wǎng)絡(luò)地址中,挑選出性能 最優(yōu)的一部分節(jié)點(diǎn)作為下一跳候選服務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。其中,下一跳候選服務(wù)節(jié)點(diǎn)包括 所有下一跳候選服務(wù)節(jié)點(diǎn)及其子集。在判斷服務(wù)節(jié)點(diǎn)是否性能最優(yōu)時(shí),可以綜合考慮網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)時(shí)延、服務(wù)器內(nèi)存 等多種因素。綜合上述多個因素,判度該服務(wù)節(jié)點(diǎn)是否性能最優(yōu)。如果是,則將該服務(wù)節(jié)點(diǎn) 挑選出來作為下一跳候選服務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。服務(wù)性能分析模塊對上述挑選出來的服務(wù)節(jié)點(diǎn)進(jìn)行性能分析,包括本節(jié)點(diǎn)與目標(biāo) 服務(wù)節(jié)點(diǎn)之間網(wǎng)絡(luò)延時(shí),網(wǎng)絡(luò)帶寬,網(wǎng)絡(luò)層路由跳數(shù),目標(biāo)服務(wù)節(jié)點(diǎn)的內(nèi)存使用情況,CPU占 用率等。硬件設(shè)備的性能都能影響到目標(biāo)服務(wù)節(jié)點(diǎn)運(yùn)行網(wǎng)絡(luò)服務(wù)時(shí)的質(zhì)量,所以對以上條 件進(jìn)行量化來綜合評定目標(biāo)服務(wù)節(jié)點(diǎn)的性能。在完成對上述服務(wù)節(jié)點(diǎn)的性能分析后業(yè)務(wù)部署模塊將這部分已挑選出來的性能 最優(yōu)的服務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)地址寫入本節(jié)點(diǎn)的相應(yīng)業(yè)務(wù)的業(yè)務(wù)路由表中。向業(yè)務(wù)路由表中的所 有Web服務(wù)節(jié)點(diǎn)傳遞業(yè)務(wù)部署啟動指令和內(nèi)部流程描述文檔。圖4示出了生成業(yè)務(wù)路由表的流程圖。根據(jù)內(nèi)部流程文檔中的流程有關(guān)信息,每 個節(jié)點(diǎn)都對其下一跳的服務(wù)做出查詢,并根據(jù)一定策略,例如系統(tǒng)開銷、服務(wù)響應(yīng)等,來選 擇下一跳服務(wù)的具體位置。如圖4中所示,節(jié)點(diǎn)m作為挑選出的下一跳服務(wù)Sl的服務(wù)節(jié)點(diǎn),將其網(wǎng)絡(luò)地址作 為下一跳服務(wù)SI的網(wǎng)絡(luò)地址寫入業(yè)務(wù)路由表。節(jié)點(diǎn)m對其下一跳服務(wù)S2作出查詢服務(wù) 節(jié)點(diǎn)。根據(jù)系統(tǒng)開銷、服務(wù)響應(yīng)等,挑選出N2、N3和N4作為下一跳服務(wù)S2的服務(wù)節(jié)點(diǎn),將 其網(wǎng)絡(luò)地址作為下一跳服務(wù)S2的網(wǎng)絡(luò)地址寫入業(yè)務(wù)路由表。節(jié)點(diǎn)N2對其下一跳服務(wù)S3 作出查詢服務(wù)節(jié)點(diǎn)。根據(jù)系統(tǒng)開銷、服務(wù)響應(yīng)等,挑選出附2、N13和N14作為下一跳服務(wù) S3的服務(wù)節(jié)點(diǎn),將其網(wǎng)絡(luò)地址作為下一跳服務(wù)S3的網(wǎng)絡(luò)地址寫入業(yè)務(wù)路由表。同理,節(jié)點(diǎn) N3挑選出其下一跳服務(wù)節(jié)點(diǎn)N12、N23和N24,節(jié)點(diǎn)N4挑選出其下一跳服務(wù)節(jié)點(diǎn)N22、N13和 N26,分別將其網(wǎng)絡(luò)地址寫入業(yè)務(wù)路由表。在生成業(yè)務(wù)路由表后,將本節(jié)點(diǎn)相應(yīng)業(yè)務(wù)的業(yè)務(wù)路由表發(fā)送到服務(wù)管理模塊。服 務(wù)管理模塊能夠?qū)崿F(xiàn)根據(jù)接收到的業(yè)務(wù)路由表完成相應(yīng)業(yè)務(wù)。在本實(shí)施例中,步驟A2中的業(yè)務(wù)部署啟動指令和內(nèi)部流程描述文檔由業(yè)務(wù)代理 模塊發(fā)送到業(yè)務(wù)部署模塊。在步驟A3中,業(yè)務(wù)部署模塊生成業(yè)務(wù)路由表后,該業(yè)務(wù)部署模 塊作為第一業(yè)務(wù)部署模塊將業(yè)務(wù)部署啟動指令和內(nèi)部流程描述文檔傳遞給該業(yè)務(wù)路由表 中的所有Web服務(wù)節(jié)點(diǎn)上的業(yè)務(wù)部署模塊。
A4:當(dāng)業(yè)務(wù)部署模塊傳遞到Web服務(wù)的最后一個節(jié)點(diǎn)時(shí),發(fā)送部署完成信息到業(yè) 務(wù)代理模塊。在步驟A3中,第一業(yè)務(wù)部署模塊將業(yè)務(wù)部署啟動指令和內(nèi)部流程描述文檔發(fā)送 到業(yè)務(wù)路由表中的所有Web服務(wù)節(jié)點(diǎn)。當(dāng)發(fā)送到Web服務(wù)的最后一個節(jié)點(diǎn)時(shí),該服務(wù)節(jié)點(diǎn) 的業(yè)務(wù)部署模塊向業(yè)務(wù)代理模塊發(fā)送部署完成消息。根據(jù)本發(fā)明實(shí)施例的方法,沒有采用集中式的業(yè)務(wù)管控模塊,業(yè)務(wù)部署模塊分布 在各個節(jié)點(diǎn)上,實(shí)現(xiàn)了業(yè)務(wù)部署的完全分布式。并且,該方法較為可靠安全而又不失靈活 性,如在業(yè)務(wù)部署中,可以獲取所有下一跳服務(wù),也可以獲取所有下一跳服務(wù)的子集,根據(jù) 系統(tǒng)開銷的大小,能夠靈活選擇。而制定下一跳服務(wù)列表時(shí),可以采用不同的策略,如跳數(shù)、 延時(shí)、帶寬等。本發(fā)明實(shí)施例另一方面還提出了一種業(yè)務(wù)部署裝置,如圖5所示,該業(yè)務(wù)部署裝 置500包括業(yè)務(wù)代理模塊501、業(yè)務(wù)代理模塊502、服務(wù)查詢模塊503、服務(wù)性能分析模塊 504和服務(wù)管理模塊505。業(yè)務(wù)代理模塊501,用于接收業(yè)務(wù)部署指令,業(yè)務(wù)部署指令中包括業(yè)務(wù)描述文檔。 并對業(yè)務(wù)部署指令中的業(yè)務(wù)描述文檔進(jìn)行解析,生成內(nèi)部流程描述文檔。業(yè)務(wù)代理模塊501接收到上述業(yè)務(wù)部署指令,并解析其中的業(yè)務(wù)描述文檔。業(yè)務(wù) 描述文檔,是對Web服務(wù)的一種描述,這種描述的本身也由Web服務(wù)提供,并可以當(dāng)作Web 服務(wù)使用。通過上述業(yè)務(wù)描述文檔可以描寫一個參加Web服務(wù)過程的Web服務(wù)接口。例如, 描述信息的輸入順序,使得業(yè)務(wù)流程能夠在Web服務(wù)之間以標(biāo)準(zhǔn)化的交互方式得到精心組
幺口
/Ν ο業(yè)務(wù)部署模塊502,用于接收來自業(yè)務(wù)代理模塊501的業(yè)務(wù)部署啟動指令和內(nèi)部 流程描述文檔,獲取Web服務(wù)信息并生成業(yè)務(wù)路由表,并向業(yè)務(wù)路由表中的Web服務(wù)的節(jié)點(diǎn) 發(fā)送業(yè)務(wù)部署指令和內(nèi)部流程描述文檔。當(dāng)業(yè)務(wù)部署模塊傳遞到Web服務(wù)的最后一個節(jié)點(diǎn) 時(shí),發(fā)送部署完成信息到所述業(yè)務(wù)代理模塊502。 在本實(shí)施例中,Web服務(wù)信息包括Web服務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)地址。業(yè)務(wù)部署模塊502是業(yè)務(wù)部署工作的核心模塊,將業(yè)務(wù)分成單個的網(wǎng)絡(luò)服務(wù)單 元,然后通過覆蓋網(wǎng)尋址能夠提供每個網(wǎng)絡(luò)服務(wù)的服務(wù)節(jié)點(diǎn)、然后以業(yè)務(wù)路由表的形式將 分布在各個服務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)服務(wù)連接起來,在物理上形成業(yè)務(wù)鏈路。在每個服務(wù)節(jié)點(diǎn)上部 署有業(yè)務(wù)部署模塊。服務(wù)查詢模塊503,用于接收來自業(yè)務(wù)部署模塊502的包含Web服務(wù)信息的查詢指 令,并將查詢得到的能夠提供Web服務(wù)的所有節(jié)點(diǎn)的網(wǎng)絡(luò)地址發(fā)送到業(yè)務(wù)部署模塊502。服務(wù)查詢模塊503根據(jù)底層服務(wù)承載網(wǎng)的特性建立,主要負(fù)責(zé)得到下一跳服務(wù)或 下一跳服務(wù)WSDL文檔的所在節(jié)點(diǎn)IP和端口信息等。經(jīng)該模塊查詢后可以得到擁有某一特 定服務(wù)的所有節(jié)點(diǎn)的集合或者是該集合的一個子集。其中,底層覆蓋網(wǎng)采用的是基于chord 的有結(jié)構(gòu)P2P網(wǎng)絡(luò)和無結(jié)構(gòu)P2P網(wǎng)絡(luò)混合而成,其查詢效率較快而且具備一定的復(fù)雜查詢 能力。服務(wù)節(jié)點(diǎn)性能分析模塊504,用于分析服務(wù)節(jié)點(diǎn)的性能。服務(wù)性能分析模塊504對 上述挑選出來的服務(wù)節(jié)點(diǎn)進(jìn)行性能分析,包括本節(jié)點(diǎn)與目標(biāo)服務(wù)節(jié)點(diǎn)之間網(wǎng)絡(luò)延時(shí),網(wǎng)絡(luò) 帶寬,網(wǎng)絡(luò)層路由跳數(shù),目標(biāo)服務(wù)節(jié)點(diǎn)的內(nèi)存使用情況,CPU占用率等。硬件設(shè)備的性能都能影響到目標(biāo)服務(wù)節(jié)點(diǎn)運(yùn)行網(wǎng)絡(luò)服務(wù)時(shí)的質(zhì)量,所以對以上條件進(jìn)行量化來綜合評定目標(biāo)服務(wù)節(jié)點(diǎn)的性能。在完成對上述服務(wù)節(jié)點(diǎn)的性能分析后業(yè)務(wù)部署模塊502將這部分已挑選出來的性能最優(yōu)的服務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)地址寫入本節(jié)點(diǎn)的相應(yīng)業(yè)務(wù)的業(yè)務(wù)路由表中。向業(yè)務(wù)路由表中 的所有Web服務(wù)節(jié)點(diǎn)傳遞業(yè)務(wù)部署啟動指令和內(nèi)部流程描述文檔。業(yè)務(wù)部署模塊502生成業(yè)務(wù)路由表,并將該業(yè)務(wù)路由表進(jìn)一步發(fā)送到服務(wù)管理模塊 505。根據(jù)本發(fā)明的實(shí)施例,利用覆蓋網(wǎng)技術(shù)解決分布式服務(wù)發(fā)現(xiàn)問題就是利用結(jié)構(gòu)化/非結(jié)構(gòu)化P2P網(wǎng)絡(luò)來完成節(jié)點(diǎn)定位,如結(jié)構(gòu)化P2P網(wǎng)絡(luò)常采用DHT (分布式哈希表)來支 持節(jié)點(diǎn)定位,每一個節(jié)點(diǎn)上存有其它一部分節(jié)點(diǎn)的服務(wù)信息,從而從全局上看,可以精確地 查找服務(wù)。具體地說,本發(fā)明具有以下特點(diǎn)(1)提供了一種完全分布式的業(yè)務(wù)部署方案,該方案中沒有集中式的業(yè)務(wù)管控模 塊,業(yè)務(wù)部署模塊分布在各個節(jié)點(diǎn)上,實(shí)現(xiàn)了業(yè)務(wù)部署的完全分布式。(2)該業(yè)務(wù)部署方案較為可靠安全而又不失靈活性,如在業(yè)務(wù)部署中,可以獲取所 有下一跳服務(wù),也可以獲取所有下一跳服務(wù)的子集,根據(jù)系統(tǒng)開銷的大小,能夠靈活選擇。 而制定下一跳服務(wù)列表時(shí),可以采用不同的策略,如跳數(shù)、延時(shí)、帶寬等。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計(jì)算機(jī)可讀存儲介質(zhì)中, 該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理模塊中,也可以 是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模 塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如 果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲在一個計(jì)算機(jī) 可讀取存儲介質(zhì)中。上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上所披露的僅為本發(fā)明的優(yōu)選實(shí)施例,當(dāng)然不能以此來限定本發(fā)明的權(quán)利保護(hù) 范圍??梢岳斫?,依據(jù)本發(fā)明所附權(quán)利要求中限定的實(shí)質(zhì)和范圍所作的等同變化,仍屬于本 發(fā)明所涵蓋的范圍。
權(quán)利要求
一種業(yè)務(wù)部署方法,其特征在于,該方法包括如下步驟A1業(yè)務(wù)代理模塊接收業(yè)務(wù)部署指令,并對所述業(yè)務(wù)部署指令中的業(yè)務(wù)描述文檔進(jìn)行解析,生成內(nèi)部流程描述文檔;A2業(yè)務(wù)部署模塊接收來自所述業(yè)務(wù)代理模塊的業(yè)務(wù)部署啟動指令和內(nèi)部流程描述文檔,并根據(jù)所述內(nèi)部流程描述文檔獲取Web服務(wù)信息;A3所述業(yè)務(wù)部署模塊根據(jù)所述Web服務(wù)信息生成業(yè)務(wù)路由表,并向所述業(yè)務(wù)路由表中的Web服務(wù)的節(jié)點(diǎn)發(fā)送所述業(yè)務(wù)部署指令和所述內(nèi)部流程描述文檔;A4當(dāng)所述業(yè)務(wù)部署模塊將所述業(yè)務(wù)部署指令和所述內(nèi)部流程描述文檔發(fā)送到所述Web服務(wù)的最后一個節(jié)點(diǎn)時(shí),部署完成。
2.如權(quán)利要求1所述業(yè)務(wù)部署方法,其特征在于,所述業(yè)務(wù)部署指令包括業(yè)務(wù)號和業(yè) 務(wù)描述文檔。
3.如權(quán)利要求1所述的業(yè)務(wù)部署方法,其特征在于,步驟Al中的所述業(yè)務(wù)描述文檔, 用于描述參加Web服務(wù)過程的Web服務(wù)的接口,所述業(yè)務(wù)描述文檔基于BPEL標(biāo)準(zhǔn),由所述 Web服務(wù)提供,并能夠當(dāng)作Web服務(wù)使用,解析業(yè)務(wù)描述文檔包括如下步驟解析所述業(yè)務(wù)描述文檔,提取組成業(yè)務(wù)流程的關(guān)鍵詞并復(fù)現(xiàn)邏輯拓?fù)?,得到解析結(jié)果;對所述解析結(jié)果進(jìn)行計(jì)算,得到業(yè)務(wù)流程的時(shí)序關(guān)系;根據(jù)所述提取出的業(yè)務(wù)流程的關(guān)鍵詞與邏輯拓?fù)?,生成?nèi)部流程描述文檔,所述內(nèi)部 流程描述文檔由所述Web服務(wù)節(jié)點(diǎn)上的分布式執(zhí)行引擎直接解釋執(zhí)行。
4.如權(quán)利要求1所述的業(yè)務(wù)部署方法,其特征在于,所述步驟A2還包括分析所述內(nèi) 部流程描述文檔,分離出Web服務(wù)信息;將包含所述分離出的Web服務(wù)信息的指令發(fā)送到服務(wù)查詢模塊進(jìn)行查詢; 所述業(yè)務(wù)部署模塊接收來自所述服務(wù)查詢模塊的查詢結(jié)果,所述查詢結(jié)果中包含能夠 提供所述Web服務(wù)的所有節(jié)點(diǎn)的網(wǎng)絡(luò)地址。
5.如權(quán)利要求4所述的業(yè)務(wù)部署方法,其特征在于,所述服務(wù)查詢模塊的查詢基于覆 蓋網(wǎng)進(jìn)行,所述覆蓋網(wǎng)采用基于chord的有結(jié)構(gòu)P2P網(wǎng)絡(luò)和無結(jié)構(gòu)P2P網(wǎng)絡(luò)混合而成。
6.如權(quán)利要求1所述的業(yè)務(wù)部署方法,其特征在于,所述步驟A2中的所述業(yè)務(wù)部署啟 動指令和所述內(nèi)部流程描述文檔由業(yè)務(wù)代理模塊或上一服務(wù)節(jié)點(diǎn)的業(yè)務(wù)部署模塊發(fā)送。
7.如權(quán)利要求1所述的業(yè)務(wù)部署方法,其特征在于,所述步驟A3中生成業(yè)務(wù)路由表的 步驟還包括所述業(yè)務(wù)部署模塊在已獲得的提供所述Web服務(wù)信息中,挑選出下一跳候選服 務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)地址;將所述已挑選出的下一跳候選服務(wù)節(jié)點(diǎn)的網(wǎng)絡(luò)地址寫入本節(jié)點(diǎn)的相應(yīng)業(yè)務(wù)的業(yè)務(wù)路 由表,所述下一跳候選服務(wù)節(jié)點(diǎn)為所有下一跳候選服務(wù)節(jié)點(diǎn)或所有下一跳候選服務(wù)節(jié)點(diǎn)的子集。
8.如權(quán)利要求1所述的業(yè)務(wù)部署方法,其特征在于,所述步驟A3還包括,生成業(yè)務(wù)路由 表后,將所述本節(jié)點(diǎn)相應(yīng)業(yè)務(wù)的業(yè)務(wù)路由表發(fā)送到服務(wù)管理模塊。
9.一種業(yè)務(wù)部署裝置,其特征在于,所述裝置包括業(yè)務(wù)代理模塊和業(yè)務(wù)部署模塊,所述業(yè)務(wù)代理模塊,用于接收業(yè)務(wù)部署指令,并對所述業(yè)務(wù)部署指令中的業(yè)務(wù)描述文檔進(jìn)行解析,生成內(nèi)部流程描述文檔;所述業(yè)務(wù)部署模塊,用于接收來自所述業(yè)務(wù)代理模塊的業(yè)務(wù)部署啟動指令和內(nèi)部流程 描述文檔,獲取Web服務(wù)信息并生成業(yè)務(wù)路由表,并向所述Web服務(wù)的節(jié)點(diǎn)發(fā)送所述業(yè)務(wù)部 署指令和所述內(nèi)部流程描述文檔,當(dāng)發(fā)送到所述Web服務(wù)的最后一個節(jié)點(diǎn)時(shí),部署完成, 所述業(yè)務(wù)部署模塊位于每個服務(wù)節(jié)點(diǎn)上。
10.如權(quán)利要求9所述的業(yè)務(wù)部署裝置,其特征在于,所述裝置還包括服務(wù)查詢模塊和 服務(wù)節(jié)點(diǎn)性能分析模塊,所述服務(wù)查詢模塊,用于接收來自所述業(yè)務(wù)部署模塊的包含所述Web服務(wù)信息的查 詢指令,并將查詢得到的能夠提供Web服務(wù)的所有節(jié)點(diǎn)的網(wǎng)絡(luò)地址發(fā)送到所述業(yè)務(wù)部署模 塊,所述服務(wù)查詢模塊的查詢基于覆蓋網(wǎng)進(jìn)行;所述服務(wù)節(jié)點(diǎn)性能分析模塊,用于分析所述Web服務(wù)的服務(wù)節(jié)點(diǎn)的性能。
全文摘要
本發(fā)明提出了一種業(yè)務(wù)部署方法,包括如下步驟業(yè)務(wù)代理模塊接收業(yè)務(wù)部署指令,并對業(yè)務(wù)描述文檔進(jìn)行解析,生成內(nèi)部流程描述文檔;業(yè)務(wù)部署模塊接收來自業(yè)務(wù)代理模塊的業(yè)務(wù)部署啟動指令和內(nèi)部流程描述文檔,獲取Web服務(wù)信息;業(yè)務(wù)部署模塊根據(jù)Web服務(wù)信息生成業(yè)務(wù)路由表,并向業(yè)務(wù)路由表中的Web服務(wù)的節(jié)點(diǎn)發(fā)送業(yè)務(wù)部署指令和內(nèi)部流程描述文檔;當(dāng)業(yè)務(wù)部署模塊傳遞到Web服務(wù)的最后一個節(jié)點(diǎn)時(shí),部署完成。本發(fā)明還提出了一種業(yè)務(wù)部署裝置,包括業(yè)務(wù)代理模塊和業(yè)務(wù)部署模塊。根據(jù)本發(fā)明的方法及裝置,實(shí)現(xiàn)了業(yè)務(wù)部署的完全分布式,可靠安全而又不失靈活性。
文檔編號H04L29/06GK101808140SQ201010138930
公開日2010年8月18日 申請日期2010年3月19日 優(yōu)先權(quán)日2010年3月19日
發(fā)明者侯立佩, 朱明 , 王雷, 馬林, 齊美石 申請人:中國科學(xué)技術(shù)大學(xué)