两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種web服務合成方案轉換方法及應用服務器的制作方法

文檔序號:7687903閱讀:229來源:國知局

專利名稱::一種web服務合成方案轉換方法及應用服務器的制作方法
技術領域
:本發(fā)明涉及WEB月良務,尤指一種WEB服務合成方案轉換方法及應用服務器。
背景技術
:WEB服務(WebServices,WS)合成分為三種類型手動合成、半自動合成和自動合成。手動合成主要通過圖形或文本編輯界面手工生成WebServices執(zhí)行流程,并提交流程執(zhí)行引擎。有的業(yè)務合成系統(tǒng)提供了圖形化用戶接口,用戶使用UI(USERINTERFACE,用戶界面)從UDDI(UniversalDescription,Discovery,andIntegration,統(tǒng)一4笛述、發(fā)王見禾口集成)合適的WebServices來構建執(zhí)行流程。有的業(yè)務合成系統(tǒng)使用了服務容器來聚合UDDI中功能相同的WebServices,并在運行時使用打分機制來選l奪合適的服務。這些系統(tǒng)的缺點是當UDDI中的服務數達到一定值時,服務的發(fā)現和選擇就會變得很困難,手動選擇也增加了用戶的負擔。半自動合成在用戶合成過程中4是供選擇WebServices的語義上的建議,但是用戶仍需要在篩選后的服務列表中選擇需要合成的WebServices,并把他們連接起來。雖然這些系統(tǒng)解決了一些手動合成的問題,但是還是需要用戶在很多服務中手動選擇。自動合成很好的解決了上述問題,它們一般使用人工智能等技術進行自動服務選擇和服務流程生成。BPEL(BusinessProcessExecutionLanguageForWebServices,Web月良務的業(yè)務流程執(zhí)行語言)是WebServices業(yè)務流程執(zhí)行語言,它并不執(zhí)行商業(yè)流程中的任何細節(jié),也不涉及商業(yè)數據的存儲和處理,只是用來控制各子服務的調用以及流程控制。BPEL可以用以下的結構表示〈processname="UserProcess"〉<partners〉....</partners〉<variables〉....</variables><correlationSets〉....</correlationSets〉<faultHandlers〉....</faultHandlers〉<compensationHandler〉....</compensationHandler〉<eventHandlers〉....</eventHandlers〉<sequence>....</sequence></proccss〉每個流程以<口1"00688〉開始,其中定義了流程名和名字空間。<partners〉部分定義了流程調用的外部WebServices。<¥31^1^8〉定義了流程中使用的數據,這些數據基于WebServices的輸入和輸出。其中最主要的標簽為<sequence>,定義了流程的執(zhí)行結構,在該|殳中可以定義結構化活動(StructureActivities)和基本活動(PrimitiveActivities),結構化活動中可以嵌套基本活動。結構化活動有<sequence〉(順序執(zhí)行);<switch〉(分支);<pick>(根據條件選4奪執(zhí)行);<flow>(并行執(zhí)行);<while>(循環(huán))。基本活動主要有<invoke〉(調用外部WebService);<receive〉(接收用戶輸入);<reply〉(把先前receive活動的輸出返回給用戶);〈assign〉(賦值操作,用于兩個流程間的輸入輸出的賦值);<throw>(拋出異常);<terminate〉(強迫業(yè)務流程實例停止執(zhí)行);<wait〉(執(zhí)行延遲一個固定的時間周期);<empty〉(什么都不做);<compensate〉(指定作用域的補償處理)。在合成方案轉化為BPEL方面,現有技術把最后生成的流程表示轉換為BPEL,但是最后生成的流程方案都順序執(zhí)行每個子服務,不存在并行和分支情況。還有一種WTOP(WebservicesTOBPEL,Web服務的合成方案自動向BPEL轉換)算法,其基本思路是把合成方案按層次進行劃分,一層一層往下遍歷,直到執(zhí)行所有的結點。方法是,找當前圖中所有入度為零的結點,如果只有一個這樣的結點,則直接輸出并刪除該結點及相關的邊;如果多于一個入度為零的結點,把所有入度為零的結點用flow標簽并行輸出,并刪除結點及相關的邊。該算法可以實現從DAG(Directedacyclicgraph,有向無環(huán)圖)向BPEL的自動轉換,并且使用了并行流程。但是該算法最大的問題是不支持并行流程的嵌套。圖1所示的是算法的流程。該算法查找入度為零的結點按照層次遍歷,算法輸出如圖2所示??梢钥吹?,開始時入度為零的結點只有^1,則直接輸出,然后刪除該結點與之相關邊;再查找入度為零的結點發(fā)現有麗2和w、此時輸出fiow標簽,概2和船3作為flow的子結點輸出;使用這種方法直至所有結點都執(zhí)行完畢。WTOP算法結果如圖2(a)所示,而實際上該DAG的輸出應該按圖2(b)所示,即結點鄉(xiāng)3ws5m6和結點麗2并行執(zhí)行,而結點H^H^又是m6流程中的并行嵌套子流程。根據具體實例很容易看出不支持嵌套所產生的問題。設^2的執(zhí)行時間為1000S,結點W^W^V^M^執(zhí)行時間均為300s,結點W^^7的執(zhí)行時間均為100s。并行流程的執(zhí)行時間按照執(zhí)行時間最大的那條子路徑計算。則按照圖2(a)WTOP算法計算合成服務的執(zhí)行時間為tl+Max(t2,t3)+Max(t4,t5)+t6+t7=100+1000+300+300+100=1800s,如果按照圖2(b)方式執(zhí)行該服務應該為tl+Max(t2,(t3+Max(t4,t5)+t6))+t7=100+1000+100=1200s。看出WTOP算法因不支持嵌套并行流程對執(zhí)行時間產生的影響?,F有技術中,用BPEL方式描述的合成方案指定了之后就不會更改,由BPEL引擎來按照順序調用WEB服務,這種情況下,無法按照實際的多個WEB服務調用可以并行或嵌套的情況來對調用進行主動優(yōu)化。
發(fā)明內容為解決上述問題,本發(fā)明的實施例提供了一種將WEB業(yè)務合成方案進行轉化的方法及應用服務器。本發(fā)明的一個實施例提供了一種WEB服務合成方案轉換方法,該方法包括獲取WEB服務的業(yè)務流程執(zhí)行語言合成方案的第一WEB服務的業(yè)務流程#^于^吾言流禾呈4匡架;根據所述第一WEB服務的業(yè)務流程執(zhí)行語言流程框架生成有向無環(huán)圖方式的合成方案;根據所述有向無環(huán)圖方式的合成方案得到獨立路徑組;將所述獨立路徑組進行分析處理生成第二WEB服務的業(yè)務流程執(zhí)行語言流程纟匡架;將所述第二WEB服務的業(yè)務流程執(zhí)行語言流程框架進行流程填充生成可執(zhí)4于流程。本發(fā)明的一個實施例提供了一種WEB服務合成方案轉換方法,該方法包括合成方案為WEB服務的業(yè)務流程執(zhí)行語言合成方案,獲取WEB服務的業(yè)務流程執(zhí)行語言合成方案的WEB服務的業(yè)務流程執(zhí)行語言流程框架;根據所述WEB服務的業(yè)務流程執(zhí)行語言流程框架生成有向無環(huán)圖方式的合成方案。本發(fā)明的一個實施例提供了一種WEBService合成方案轉換方法,其特征在于,所述WEBService合成方案為有向無環(huán)圖方式的合成方案,根據所述有向無環(huán)圖方式的合成方案獲得獨立路徑組;將所述獨立路徑組行分析處理生成WEB服務的業(yè)務流程執(zhí)行語言流程框架;將所述第二WEB服務的業(yè)務流程執(zhí)行語言流程框架進行流程填充生成可執(zhí)行流程。本發(fā)明的一個實施例提供了一種應用服務器,該應用服務器包括中央處理器,流程提取單元,用于提取已有的BPEL合成方案的第一BPEL流程框架;流程處理單元,用于根據所述第一BPEL流程框架生成DAG方式的合成方案;路徑組劃分單元,用于將所述DAG方式的合成方案進行路徑組劃分;流程生成單元,用于根據所述DAG方式的合成方案進行分析處理生成第二BPEL流程框架;流程填充單元將所述第二BPEL流程框架進行流程填充生成可執(zhí)行流程。本發(fā)明的一個實施例提供了一種應用服務器,該應用服務器包括中央處理器;流程提取單元,用于提取已有的BPEL合成方案的BPEL流程框架;流程處理單元,用于根據所述BPEL流程框架生成DAG方式的合成方案。本發(fā)明的一個實施例提供了一種應用服務器,該應用服務器包括中央處理器;路徑組劃分單元,用于將所述DAG方式的合成方案進行路徑組劃分;流程生成單元,用于根據DAG方式的合成方案生成BPEL流程框架;流程填充單元,將所述BPEL流程框架進行流程填充生成可執(zhí)行流程。通過本發(fā)明實施例的方法和應用服務器將現有的BPEL方式描述的合成方案進行DAG方案生成和DAG方案映射后可以#4居WS月良務調用的并行或嵌套來對方案執(zhí)行進行優(yōu)化控制,以提高執(zhí)行效率,同時解決了復雜合成方案轉換為BPEL的問題。圖1是WTOP算法的流程圖;圖2a是WTOP算法的不支持并行嵌套情況下的輸出結果;圖2b是WTOP算法的如果支持并行嵌套情況下的輸出結果;圖3是DAG合成方案的圖形化表示方式;圖4是本發(fā)明第一實施例的流程圖;圖5是本發(fā)明第二實施例的流程圖;圖6是本發(fā)明第三實施例的流程圖;圖7是本發(fā)明第三實施例BPLE合成方案轉化為DAG描述的圖形化的示意圖;圖8是本發(fā)明第三實施例中獨立路徑組的示意圖;圖9是本發(fā)明第四實施例的系統(tǒng)結構圖;圖IO是本發(fā)明第五實施例的系統(tǒng)結構圖;圖11是本發(fā)明第六實施例的系統(tǒng)結構圖。具體實施方式為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖并舉較佳實施例,對本發(fā)明進一步詳細說明。實施例一本實施例將結合圖4說明將BPEL合成方案轉換為DAG合成方案。步驟41:可以從合成方案存儲庫中獲取BPEL合成方案。步驟42:將BPEL合成方案進行流程提取獲得BPEL流程框架。通過一定的方式(例如采用XML(eXensibleMarkupLanguage可擴展標識語言)解析器,Xpath查詢方法等)提取出BPEL腳本中流程相關的信息(也可以采用本領域普通技術人員知道的其他方式獲取流程相關的信息),包括順序(Sequence)、并行(Flow)以及賦值4喿作(assign)中的來源(from)和目的(to),將這些信息組合成為BPEL流程框架。同時可以獲得除流程框架所需相關信息之外的非流程信息(變量定義、角色定義等)。例如一個BPEL流程框架圖示如下<image>imageseeoriginaldocumentpage16</image>步驟43:通過流程處理獲得DAG形式的合成方案。DAG形式的合成方案就是按照一種通用的描述模式將多個WebServices及服務的關系描述出來,經過轉換后的DAG合成方案可以通過多種方式表示,一般有圖形化表示和數據表方式表示。合成方案的圖形化表示如圖3所示,將WebServices合成引擎得到的合成方案通過DAG圖的形式來表示,結點表示某個WebServices的操作,邊表示上一個WebServices的輸出和下一個WebServices的輸入,并描述各WebServices之間的執(zhí)行依賴和數據依賴。DAG合成方案的lt據表表示方法一般如下將WebService的每一個操作(operation)都定義為一個DAG的一個結點。如果某個WebService包含多個operation,就將其定義為不同的結點。(即可以看作多個僅有一個才喿作的WebService)將WebService的上一個WebService的輸出和下一個WebServices的輸入定義為一個DAG的相關結點的一個邊。分別表示出結點的前驅節(jié)點集(即執(zhí)行依賴)和數據依賴圖3的圖形化表示的DAG合成方案的數據表方式表示如表1所示:<table>tableseeoriginaldocumentpage17</column></row><table>表l:合成方案的數據表方式表示概念1:一個WebServices合成方案是一個DAG圖G=(V,E),向量V和E能唯一標識一個合成方案G,其中結點V={WebServices中的操作wsi<formula>formulaseeoriginaldocumentpage17</formula>邊E為有序積「xr的一個子集,£=kvI^=船,.—酉;},其中的是結點碼指向w^的有向邊,表示服務,和服務w^相關。如圖l中,e"=ws3—m5,邊、5表示^3的一個輸出是^的輸入。概念2:結點的前驅結點集<formula>formulaseeoriginaldocumentpage17</formula>圖1中,^的前驅結點為{冊4,柳5}。概念3:執(zhí)行依賴,必須在嚴W—s')執(zhí)行完才能執(zhí)行,即某結點必須等待其所有前驅結點都執(zhí)行完畢才能執(zhí)行。概念4:數據依賴如果,與,之間有邊e",則,與^存在數據依賴。表明的一個輸出流入W5)的一個輸入。具體的流程處理可以采取以下方式判斷BPEL流程框架中的每一個〈assign〉元素下的來源(from)屬性和目的(to)屬性。對于from屬性,如果from是用戶輸入,將from標記為NULL;如果from不是用戶輸入且不在DAG描述中則將from加入DAG中,并記錄from的parent為NULL;如果from在DAG描述中,則繼續(xù)判斷to屬性;對于to屬性,如果不在DAG描述中則加入,并將from屬性加入到其parent屬性中;如果to屬性在DAG中,則將from屬性加入到其父節(jié)點(parent)屬性中。重復執(zhí)行對其他from屬性和to屬性的判斷,結束后DAG描述中包含所有的WebService對應的節(jié)點且通過parent關系構建了整個DAG描述。沖艮據整個DAG描述即可生成DAG形式的合成方案。實施例二本實施例將結合圖5說明將BPEL合成方案轉換為DAG合成方案。首先獲取DAG合成方案,可以從合成方案存儲單元獲??;步驟50:將獲取的DAG合成方案進行方案驗證,如果驗證通過,則進入步驟51,該驗證步驟可選。具體-瞼i正方法如下驗證合成方案表述是否是聯(lián)通圖如果其中有多于一個獨立的結點或者結點集則合成方案驗證失敗。驗證是否含有環(huán)路如果合成方案含有環(huán)路則合成方案驗證失敗。驗證是否含有入度為零結點如果所有的結點的入度均不為0,則說明該DAG不完整,合成方案驗證失敗。是否含有出度為零結點如果所有的結點的出度均不為0,則說明該DAG不完整,合成方案-險證失敗。步驟51:將驗證通過的DAG合成方案進行路徑組劃分。在此部分需要先明確幾個概念概念5:路徑相關如果路徑A中的某一結點存在于路徑B中,則稱A與B路徑相關。路徑無關路徑A中的所有結點都不在路徑B中,則稱A與B^^徑無關。如圖1中的{2}與{3-4-6}路徑無關,{3-4-6}和{3-5-6}則路徑相關。才既念6:獨立i各徑組^各徑集中所有相關5^徑構成一組。如圖1中路徑{3-4-6}和{3-5-6}是相關路徑,就構成一組獨立路徑組{{3-4-6},{3-5隱6}}。概念7:如果存在某條路徑Pe路徑組G,且結點N是路徑P上的點,那么稱N為路徑組G中的點。形式化表示為如果NeP且PeG,則NeV(G)。其中V(G)表示路徑組G中所有路徑上的結點集合。定理l:任何獨立路徑組之間都是不相關的。證明假設A與B屬于兩個不同的獨立^各徑組,且A與B相關。則必定3路徑Se^和路徑Ae丑,S與A相關。根據獨立路徑組的概念,相關路徑構成一組,則S與P2屬于同一獨立路徑組,則A與B屬于同一獨立路徑組。與假設A與B屬于不同獨立路徑組矛盾。具體的路徑組劃分方法為將DAG合成方案按照深度優(yōu)先遍歷方法得到所有從頭結點到尾結點的路徑組,本領域的普通技術人員都知道除了本實施例采用的深度優(yōu)先遍歷方法,還有其他方法可以得到所有從頭結點到尾結點的^各徑組。步驟52:將所有相關路徑組進行合并,將所有相關路徑劃分為一個獨立路徑組。直到不能合并為止,將最終的得到的獨立路徑組輸出。步驟53:通過分析處理生成BPEL流程框架,該分析處理具體包括以下步驟步驟531:將合并的獨立路徑組進行分組判斷;如果劃分結果只有一個獨立路徑組,即進行步驟532;如果多于一組,則進行步驟533和步驟534;步驟532:判斷獨立路徑組為什么方式(共四種),并分別按照相應的方式進行處理,輸出相應的順序信息以及節(jié)點。<formula>formulaseeoriginaldocumentpage20</formula>四種方式處理法(a)表示所有路徑都有相同的頭結點和尾結點,就先輸出相同的頭尾結點,同時刪除所有路徑中相同的頭結點和尾結點,然后對剩下的子路徑遞歸并執(zhí)行流程生成方法的531步驟;(b)表示所有路徑的頭結點相同而尾結點不同,此時先輸出相同頭結點,同時刪除所有路徑中相同的頭結點,并對剩下的子路徑遞歸并執(zhí)行流程生成方法的531步驟;(c)表示所有路徑的尾結點相同而頭結點不同,方法與前面類似,先輸出尾結點并刪除,然后再對剩下的路徑遞歸并執(zhí)行流程生成方法的531步驟;(d)表示頭尾結點都不相同,該情況下不能使用并行或者順序流程進行轉換,結合WTOP算法,在該情況下對結點按層次進行劃分;然后取出所有入度為零的頭結點并行輸出到flow標簽描述中,表示所有入度為零的節(jié)點所表示的服務并行執(zhí)行;再對去掉頭結點的子路徑集合遞歸并執(zhí)行流程生成方法的531步驟。算法在這4種情況下的執(zhí)行結果如表2所示<table>tableseeoriginaldocumentpage20</column></row><table><table>tableseeoriginaldocumentpage21</column></row><table>表2:四種方式處理法的執(zhí)行結果步驟533、步驟534:對于存在的多個獨立路徑組,針對每個獨立路徑組輸出并行信息,并進行遞歸回調后針對每個獨立路徑組執(zhí)行步驟531。步驟535:將最終的分類的輸出信息(包括順序信息等)進行結果整合,輸出BPEL的流程才匡架。步驟54:流程填充在流程生成階段生成了BPEL流程框架,包含并行、順序等信息,需要補充其它信息生成可執(zhí)行流程變量定義、參與者定義、操作。例如一個BPEL流程框架圖示如下<formula>formulaseeoriginaldocumentpage21</formula></proc6ss>則需要將相應的變量填入之后,生成的腳本如下<processxmlns="http:〃schemas.xmlsoap.org/ws/2003/03/business-process/"><v3riables><variablen訓e二"userRequest言'messageType="tns:userRequest,7><variablename="userResponse"messageType="tns:userResponse'7></variables><partners><partnername="User"serviceLinkType="tns:UserSLT"myRole="UserProvider7><partnernarrte="wsrserviceUnkType="ws1LT"partnerRole="ws1PR'7></p3rtn6rs><S6qU6flC6><3ssign><copy><fromvariable="userRequest"part="ws1in"/><tovariable="ws1in'7></copy></3ssign><invokename=Tpart隱?wsTportType="ws1PT"operation="ws10P"inputVsiriabie="ws1in"outputVariable="ws1out'V></sequence></proc6SS>實施例三本實施例用以說明將一個可執(zhí)行的BPEL的合成方案進行優(yōu)化,使其可以針對多個WS的并行和嵌套進行優(yōu)化(通過DAG方案的生成和DAG方案的映射)。本實施例以一個可執(zhí)行BPEL合成方案為例說明本系統(tǒng)的執(zhí)行。該BPEL合成方案的表述如下<xm!version="1.0"encoding="UTF-8"><processxmhs="http:〃schemas.xmlsoap.org/ws/2003/03/business-process/"><v3riables><variablename="userRequest"messageType="tns:userRequest"/><variablename="userResponse"messageType="tns:userResponse'V><variablename="ws1in"messageType="wsiintype'7><variablen3me="ws2in,'messageType="ws2intype7><variablename="ws3in"messageType="ws3intype,7><variablen3me="ws4in"mess8geType="ws4intype7><variablen3me="ws5h,,messageType="ws5int^pe"/><variablename="ws6in"messageType="ws6int^pe"/><variablen3me="ws7in1',messageType="ws7in1type7><variablen細ews7in2',rness8geType="ws7in2t^pe7>(variablename="ws8inrmesseigeType="ws8in1t^pe"/><variablename="ws8in2"messageType="ws8in2t^pe"/><variablename="ws1out"messageType="ws1outt^pe7><variablename="ws2out"messageType="ws2outtype"/><variablename="ws3out"messageType="ws3outtype"/><variablename="ws4out"messageType="ws4outtype7><variablename="ws5out"messageType="ws5outtype7><variablename="ws6out"messageType="ws6outtype"/><variablename="ws7out"messageType="ws7outt^pe'7><variablename二"ws8out"messageType="ws8outt^pe7></vairi3bles><partners><partnername="User"serviceLinkType="tns:UserSLT"myRoie="UserProvider,7><partnername="wsTserviceLinkType="ws1LT"partnerRoie="ws1PR"/><partnername="ws2"servicelJnkType="ws2LT"partnerRole="ws2PR7><partnername="ws3"sen/iceUnkType=',ws3LT"partnerRole="ws3PR"/><partnername="ws4"serviceLinkTypews4LT"partnerRole="ws4PR"/><partnername="ws5"serviceLinkTypews5LT"partnerRole="ws5PR7><partnername="ws6"serviceLinkType="ws6LT"partnerRole="ws6PR7><partnername="ws7"serviceLinkType="ws7LT"partnerRole="ws7PR"/><partnername="ws8"serviceiJnkType="ws8LT"partnerRole="ws8PR"/></partners><S6qU6DC6><3ssign><copy><fromvariable="userRequest"part="ws1in7><tovariable="ws1in'7></copy></3Ssign><invokename="1"partner="ws1,'portType="ws1PT"operation="ws1OP"inputVariable="ws1in'output/ariable="ws1out7></s6qu6nc6><S6qu6nc6><3ssign><copy><fromvariable="ws1out"part="ws1out'7><tovariable="ws2in'7></copy></3Ssign><invokename="2"partner="ws2"portType="ws2PT"operation="ws20P"i叩utVariablews2in'outputVariable="ws2out7></s6qu6nc6><S6qu6nc6><eissign><copy><fromvariable="ws2out"part="ws2out'7><tovsiriable="ws3in7></copy></3ssign><invokename="3"partner="ws3"portType="ws3PT"operation="ws30P"i叩utVariablews3in'outputVariable="ws3out"/></s6qu6nc6><S6qu6nc6><3ssign><copy><fromvariable="ws1out"part=,'ws1out'7><tovariable="ws4in,7></copy></3ssign><invokename="4"partner="ws4"portType="ws4PT"operatbn="ws40P"inputVariable="ws4in'outputVariable="ws4out7></ssqu6nc6><sequenc6><3ssign><copy><fromvariable="ws4out"part="ws4out"/><tovariable="ws5in"/></copy></3Ssign><invokename="5"partner="ws5"portType="ws5PT"operation="ws50P"inputVariable="ws5in,outputVariabte="ws5out7></s6qu6nc6><S6qu6nc6><3ssign><copy><fromvariable="ws4out"part="ws4out"/><tovariable="ws6in'7></copy></3Ssign><invokename="6"partner="ws6"portType=',ws6PT"operation="ws60P"inputVaiable="ws6in'outputVariable="ws6out'7></s6qu6nc6><S6qu6nc6><3ssign><copy><fromvariable="ws5out"part="ws5out'7><tovariable="ws7in17></copy></3Ssign><3ssign><copy><fromvariable="ws6out"part="ws6out'7><tovariable="ws7in27></copy></eissign><invokename="7"partner="ws7"portType="ws7PT"operation="ws70P"inputVarjable="ws7in1ws7in2"outputVariable="ws7out',/></S6qU6I1C6><S6qu6ncs><3ssign><copy><fromvariable="ws3out"part="ws3out7><tovariable="ws8in1'7></copy></sissign><3ssign><copy><fromvariable="ws7out"part="ws7out'7><tovariable="ws8in27></copy></assign><invokename="8"partner="ws8"portType="ws8PT"operation="ws80P"inputVariable-"ws8in1ws8in2"outputVariable="ws8out7></s6qti6nc6><S6quence><3ssign><copy><framvariable="ws8out"part="ws8out'7><tovariable="userResponse"part="ws8out"/></copy></assign><replyname="reply"partner="User',portType="tns:machine-xxPT"operation="mxx"variable="userResponse7></s6qu6ncs></proc6SS>步驟60:流程提取獲取該BPEL文件,本實施例中可以從合成方案存儲單元中獲取該文件,通過XML解析器獲得所有〈assign〉元素。并保留流程相關的元素(Sequence、Flow),此處也可以提取其他非流程信息。提取后的BPEL流程框架為▲procsss▲sequence(9)assign1▲assign(1)<>from<>to1,fromvariable=userRequestpart=ws:Un,tovariable-wslin2▲assign(1)<>fromto1,fromvariable=wsloutpart=wslout,tovariable-ws2in3▲assign(1)24<table>tableseeoriginaldocumentpage25</column></row><table>表3:提取后的BPEL流程框架整個輸出為<process><s6qu6nc6><3ssign><fromvariable="userRequest"part="ws1in"/><tovariable="ws1in'7></assign></s6qu6nc6><S6qu6nc6><3ssign><fromvariable="ws1out"part="ws1out7><tovariable="ws2in7></3Ssign></s6qu6nc6><sequenc6><3ssign><fromvariable='Vs2out"part="ws2out7><toV3h3ble="ws3in7></3ssign></s6qu6nc6><S6qu6nc6><3ssign><fromvariable="ws1out"part="ws1out7><toV3riable="ws4in7></3Ssign></s6qusrC6><ssqu6ncs><3ssign><fromvariable="ws4out"part="ws4out'7><tovariable="ws5in'7></3Ssign></s6qu6nc6><ssqu6nc6><3ssign><fromvatiable="ws4out"part="ws4out'7><tovari3ble="ws6in7></sssign></s6qu6nc6><S6qu6nc6><3ssign><fromvariable="ws5out"part="ws5out'7><toV3fi3ble="ws7in17></3Ssign><3ssign><fromvariable="ws6out"part="ws6out"/><tovariable="ws7in27></3ssign></s6qu6nc6><s6qu6nc6><3ssign><fromvariable="ws3out"part="ws3out'7><toV3ri3bte="ws8in17></3ssign><3ssign><fromvariable="ws7out"part="ws7out7><tovariable="ws8in2"/></3Ssign></s6qu6nc6><S6qU6flC6><3ssign><fromvariabSe="ws8out"part="ws8out"/><to麗她leuserResponse',p3rt="ws8out7></3ssign></ssqu6nc6></proccss>步驟61:流程處理流程處理的一般方法是判斷BPEL流程框架中的每一個〈assign〉元素下的from屬性和to屬性。對于from屬性,如果from是用戶輸入,將from標記為NULL;如果from不是用戶輸入且不在DAG描述中則將from加入DAG中,并記錄from的parent為NULL;如果from在DAG描述中,則繼續(xù)判斷to屬性;對于to屬性,如果不在DAG描述中則加入,并將from屬性加入到其parent屬性中;如果to屬性在DAG中,則將from屬性加入到其parent屬性中。重復執(zhí)行對其他from屬性和to屬性的判斷,結束后DAG描述中包含所有的WebService對應的節(jié)點且通過parent關系構建了整個DAG描述。根據所生成的DAG描述即可成為一個DAG合成方案。根據以上方法,本實施例的進行流程處理后獲得的DAG合成方案以圖形的方式如圖7所示。以數據庫表為例表示生成的結果為表4所示<table>tableseeoriginaldocumentpage27</column></row><table>表4:實施例合成方案的數據表表示方式步驟62:合成方案驗證從合成方案存儲環(huán)境取出該新生成的DAG合成方案按照下面的原則進行判斷驗證合成方案表述是否是聯(lián)通圖如果其中有多于一個獨立的結點或者結點集則合成方案驗證失敗。驗證是否含有環(huán)路如果合成方案含有環(huán)路則合成方案驗證失敗。驗證是否含有入度為零結點如果所有的結點的入度均不為0,則說明該DAG不完整,合成方案驗證失敗。是否含有出度為零結點如果所有的結點的出度均不為0,則說明該DAG不完整,合成方案驗證失敗。判斷結果為該方案符合要求。繼續(xù)下面的步驟步驟63:路徑組劃分對該DAG合成方案進行路徑組劃分。得到路徑組Group={{l-2-3-8},{1-4-5-7-8},{1-4畫6陽7-8}}步驟64:合并相關路徑組,將所有相關路徑劃分為一個獨立路徑組,直到不能合并為止,將最終的得到的獨立路徑組輸出。合并路徑組#Group={{l-2-3-8},{1-4-5-7-8},{1-4-6-7-8}}進行合并相關路徑組得到獨立路徑組Group={{l-2-3-8},{1-4-5-7-8},{1-4-6-7-8}}。獨立路徑組的個數為1。步驟65:流程生成流禾呈生成方法為步驟651:進行分組判斷。如果劃分結果只有一個獨立路徑組,即根據獨立路徑組的方式進行相應處理;如果有多個獨立路徑組,對于存在的多個獨立路徑組,針對每個獨立路徑組輸出并行信息,標記后進行分析處理。本實施例中合并后的獨立^各徑組Group={{l-2-3-8},{1-4-5-7-8},{1_4-6-7-8}},獨立路徑組的個數為1。則進入步驟652;步驟652:判斷獨立路徑組為什么方式(共四種),并分別按照相應的方式進行處理,輸出相應的順序信息以及節(jié)點。四種方式處理方法(a)表示所有路徑都有相同的頭結點和尾結點,就先輸出相同的頭尾結點,同時刪除所有路徑中相同的頭結點和尾結點,然后對剩下的子路徑進行分析處理;(b)表示所有路徑的頭結點相同而尾結點不同,此時先輸出相同頭結點,同時刪除所有路徑中相同的頭結點,并對剩下的子路徑進行分析處理;(C)表示所有路徑的尾結點相同而頭結點不同,方法與前面類似,先輸出尾結點并刪除,然后再對剩下的路徑進行分析處理;(d)表示頭尾結點都不相同,該情況下不能使用并行或者順序流程進行轉換,結合WTOP算法,在該情況下對結點按層次進行劃分;然后取出所有入度為零的頭結點并行輸出到flow標簽描述中,表示所有入度為零的節(jié)點所表示的服務并行執(zhí)行;再對去掉頭結點的子路徑集合進行分析處理。算法在這4種情況下的執(zhí)行結果如表5所示<table>tableseeoriginaldocumentpage29</column></row><table>表5:四種方式處理法的執(zhí)行結果本實施例中判斷出其為方式a(僅有一個頭尾節(jié)點),按照方式a進行處理。輸出的信息為<sequence〉<1><遞歸><8></sequence>因為處理后判斷還有剩余節(jié)點,則執(zhí)行步驟651,判斷剩余節(jié)點存在多個獨立路徑組,則執(zhí)行步驟653、步驟654步驟653:首先將剩余子路徑的路徑組進行標記,輸出并行信息,將該多個獨立路徑組進行遞歸處理得到相關路徑組Group={{2-3},{{4-5-7},{4-6-7}}}回調到步驟651進行分組判斷判斷出獨立路徑組的個數為2。使用并行流程flow進行描述,如圖8所示。圖8中的兩個虛線框中的獨立路徑組中的路徑數分別為Size-l和Size=2,就分為兩種不同的情況獨立路徑組l中只有一條路徑,則直接按序輸出;獨立路徑組2中有多于l條子路徑,則對其中所有的子路徑遞歸。結果如表6所示<table>tableseeoriginaldocumentpage30</column></row><table>>表6:圖8的執(zhí)行結果<table>tableseeoriginaldocumentpage30</column></row><table>整個輸出為<table>tableseeoriginaldocumentpage31</column></row><table>表7:圖8獨立路徑組并行流程輸出<formula>formulaseeoriginaldocumentpage31</formula>步驟655,進行結果整合,整合后生成BPEL流程框架為<image>imageseeoriginaldocumentpage31</image>步驟66:流程填充。將步驟60流程提取中獲得其他非流程信息填充到步驟65的BPEL流程框架中,生成可執(zhí)行的BPEL腳本。實施例4:本實施例提供了一種應用服務器,下面結合附圖9進行詳細說明。本實施例中的應用服務器,包括中央處理器90、流程提取單元91、流程處理單元92、流程驗證單元93、路徑組劃分單元94、流程生成單元95、流程填充單元96、合成方案存儲單元97。中央處理器90用于發(fā)出控制信令控制其他各個單元。流程提取單元91:從合成方案存儲器97中獲取合成方案,本實施例中所獲取的合成方案是BPEL合成方案,本實施例中的流程提取單元91具體可以是XML解析器,通過XML解析器提取出BPEL合成方案中的流程信息,具體的流程信息為順序、并行以及賦值操作中的來源和目的,通過這些具體信息就可以獲得BPEL合成方案的流程框架,同時流程提取單元也可以獲取出流程信息之外的其他非流程信息,如變量定義、角色定義等,流程提取單元可以將BPEL合成方案的流程框架存儲到合成方案存儲單元97中,也可以不存儲直接發(fā)給流程處理單元92、流程填充單元97進行后續(xù)處理;流程處理單元92:主要用于獲得DAG形式的合成方案。流程處理單元92從流程提取單元91或合成方案存儲單元97中中獲取BPEL的流程框架和非流程信息,具體處理流程為流程處理單元92判斷BPEL流程框架中的每一個〈assign〉元素下的from屬性和to屬性。對于from屬性,如果from是用戶輸入,將from標記為NULL;如果from不是用戶輸入且不在DAG描述中則將from加入DAG中,并記錄from的parent為NULL;如果from在DAG描述中,則繼續(xù)判斷to屬性;對于to屬性,如果不在DAG描述中則加入,并將from屬性加入到其parent屬性中;如果to屬性在DAG中,則將from屬性加入到其parent屬性中。重復執(zhí)行對其他from屬性和to屬性的判斷,結束后DAG描述中包含所有的WebService對應的節(jié)點且通過parent關系構建了整個DAG描述。根據所生成的DAG描述可以生成一個DAG合成方案,存儲于合成方案存儲單元97或直接發(fā)送給流程驗證單元93,或直接發(fā)給路徑組劃分單元94。流程驗證單元93:用于將流程處理單元92產生的DAG方式的合成方案進行驗證,如果驗證通過則將所述DAG方式的合成方案傳送給路徑組劃分單元,流程驗證單元可以從流程處理單元92獲得需驗證的DAG方式的合成方案,也可以從合成方案存儲單元97獲得DAG方式的合成方案,流程-驗證單元93可選,DAG合成方案也可以不經流程驗證單元93的驗證而直接在流程組劃分單元進行后續(xù)處理。具體的—瞼i正方法為,流程驗證單元93驗證合成方案表述是否是聯(lián)通圖如果其中有多于一個獨立的結點或者結點集則合成方案驗證失敗。流程驗證單元93驗證是否含有環(huán)路如果合成方案含有環(huán)路則合成方案驗證失敗。流程驗證單元93驗證是否含有入度為零結點如果所有的結點的入度均不為0,則說明該DAG不完整,合成方案騶T證失敗。流程驗證單元93是否含有出度為零結點如果所有的結點的出度均不為0,則說明該DAG不完整,合成方案驗證失敗。如果驗證成功,則將驗證通過的DAG合成方案發(fā)給路徑組劃分單元94;路徑組劃分單元94:將DAG合成方案進行路徑組劃分。將DAG合成方案按照深度優(yōu)先遍歷方法得到所有從頭結點到尾結點的路徑組,本領域的普通技術人員都知道除了本實施例采用的深度優(yōu)先遍歷方法,還有其他方法可以得到所有從頭結點到尾結點的路徑組。流程生成單元95:接收路徑組劃分單元94的劃分結果,通過分析處理生成BPLE的流程框架。流程生成單元95包括路徑組合并模塊951和框架生成模塊952:其中路徑組合并模塊951根據路徑組劃分結果進行路徑組合并,將所有的相關路徑合并成一個路徑組,直到不能合并為止,將最終的得到的獨立路徑組輸出給框架生成模塊952;框架生成模塊952收到路徑組合并模塊951的合并結果,首先進行分組判斷。如果劃分結果只有一個獨立路徑組,即根據獨立路徑組的的方式進行相應處理,輸出相應的順序信息和節(jié)點;如果有2個以上獨立路徑組,對于存在的多個獨立路徑組,針對每個獨立路徑組輸出并行信息,標記并進行遞歸回調后再次進行分組判斷,根據分組判斷的不同結果重復框架生成模塊中的分析處理。將每個獨立路徑組的順序信息、節(jié)點信息、并行信息進行結果整合,輸出BPLE的流程框架。通過框架生成模塊的處理,將原有的BPLE的合成方案轉化為支持并行流程嵌套BPLE流程框架流程填充單元96:接收流程生成單元95或合成方案存儲器的BPLE的流程框架,接收流程提取單元91或合成方案存儲單元97的其他非流程信息,并將該非流程信息填充到BPLE的流程框架,生成可執(zhí)行的BPLE腳本,該可執(zhí)行的BPLE腳本在保持原有合成方案數據依賴和執(zhí)行依賴的基礎上支持嵌套的并行流程的生成。合成方案存儲單元97:用于存儲BPLE合成方案、DAG合成方案,存儲流程提取單元91產生的BPLE的流程框架和其他非流程信息。該存儲器在應用服務器上可選,可以獨立于應用服務器的形式獨立存在。實施例5:本實施例為一種應用服務器,其可以將BPLE合成方案轉化為DAG形式的合成方案。下面結合附圖IO進行詳細說明。本實施例中的應用服務器,包括中央處理器100、流程提取單元101、流程處理單元102、合成方案存儲單元103。中央處理器100用于發(fā)出控制信令控制其他各個單元。流程^是取單元101:從合成方案存儲器103中獲耳又合成方案,本實施例中所獲取的合成方案是BPEL合成方案,本實施例中的流程提取單元101具體可以是XML解析器,通過XML解析器提取出BPEL合成方案中的流程信息,具體的流程信息為順序、并行以及賦值操作中的來源和目的,通過這些具體信息就可以獲得BPEL合成方案的流程框架,同時流程提取單元也可以獲取出流程信息之外的其他非流程信息,如變量定義、角色定義等,流程提取單元可以將BPEL合成方案的流程框架存儲到合成方案存儲單元103中,也可以不存儲直接發(fā)給流程處理單元102進行后續(xù)處理;流程處理單元102:主要用于獲得DAG形式的合成方案。流程處理單元102從流程提取單元IOI或合成方案存儲單元103中中獲取BPEL的流程框架和非流程信息,具體處理流程為判斷BPEL流程框架中的每一個〈assign〉元素下的from屬性和to屬性。對于from屬性,如果from是用戶輸入,將from標記為NULL;如果from不是用戶輸入且不在DAG描述中則將from加入DAG中,并記錄from的parent為NULL;如果from在DAG描述中,則繼續(xù)判斷to屬性;對于to屬性,如果不在DAG描述中則加入,并將from屬性加入到其parent屬性中;如果to屬性在DAG中,則將from屬性加入到其parent屬性中。重復執(zhí)行對其他from屬性和to屬性的判斷,結束后DAG描述中包含所有的WebService對應的節(jié)點且通過parent關系構建了整個DAG描述。根據所生成的DAG描述可以得到一個DAG合成方案,存儲于合成方案存儲單元103。合成方案存儲單元103:用于存儲BPLE可執(zhí)行腳本,存儲流程提取單元91產生的BPLE的流程框架、其他非流程信息和DAG合成方案。實施例6:本實施例提供了一種應用服務器,可以將DAG合成方案轉化為可執(zhí)行的BPLE腳本,下面結合附圖11具體說明。本實施例中的應用服務器包括中央處理器110、流程驗證單元111、路徑組劃分單元112、流程生成單元113、流程填充單元114、合成方案存儲單元115。中央處理器IIO用于發(fā)出控制信令控制其他各個單元。流程驗證單元111:用于從合成方案存儲單元115獲取DAG方式的合成方案并進行驗證,如果驗證通過則將所述DAG方式的合成方案傳送給路徑組劃分單元112,流程驗證單元111可選,DAG合成方案也可以不經流程驗證單元111的-險證而直接在流程組劃分單元112進行后續(xù)處理。具體的—險i正方法為驗證合成方案表述是否是聯(lián)通圖如果其中有多于一個獨立的結點或者結點集則合成方案驗證失敗。驗證是否含有環(huán)路如果合成方案含有環(huán)路則合成方案驗證失敗。驗證是否含有入度為零結點如果所有的結點的入度均不為0,則說明該DAG不完整,合成方案-瞼證失敗。是否含有出度為零結點如果所有的結點的出度均不為0,則說明該DAG不完整,合成方案驗證失敗。如果驗證成功,則將驗證通過的DAG合成方案發(fā)給路徑組劃分單元112路徑組劃分單元112:將DAG合成方案進4亍路徑組劃分。將DAG合成方案按照深度優(yōu)先遍歷方法得到所有從頭結點到尾結點的路徑組,本領域的普通技術人員都知道除了本實施例采用的深度優(yōu)先遍歷方法,還有其他方法可以得到所有從頭結點到尾結點的路徑組。流程生成單元113:接收路徑組劃分單元112的劃分結果,通過分析處理生成BPLE的流程框架。流程生成單元113包括路徑組合并模塊1131和框架生成一莫塊1132:其中路徑組合并模塊1131根據路徑組劃分結果進行路徑組合并,將所有的相關路徑合并成一個路徑組,直到不能合并為止,將最終的得到的獨立路徑組輸出給框架生成模塊1132;框架生成模塊1132收到路徑組合并模塊1131的合并結果,首先進行分組判斷。如果劃分結果只有一個獨立路徑組,即根據獨立路徑組的的方式進行相應處理,輸出相應的順序信息和節(jié)點;如果有2個以上獨立^^徑組,對于存在的多個獨立路徑組,針對每個獨立路徑組輸出并行信息,標記并進行遞歸回調后再次進行分組判斷,根據分組判斷的不同結果重復框架生成模塊中的分析處理。將每個獨立路徑組的順序信息、節(jié)點信息、并行信息進行結果整合,輸出BPLE的流程框架。通過框架生成模塊的處理,將原有的BPLE的合成方案轉化位支持并行流程嵌套BPLE流程框架流程填充單元114:接收流程生成單元113或合成方案存儲器的BPLE的流程框架,接收流程提取單元的其他非流程信息,并將該非流程信息填充到BPLE的流程框架,生成可執(zhí)行的BPLE腳本,該可執(zhí)行的BPLE腳本在保持原有合成方案數據依賴和執(zhí)行依賴的基礎上支持嵌套的并行流程的生成。合成方案存儲單元115:用于DAG合成方案,存儲流程提取單元91產生的BPLE的流程框架和其他非流程信息,流程填充單元114生成的可執(zhí)行《勺BPLE的扭卩*。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。權利要求1.一種WEB服務合成方案轉換方法,其特征在于,獲取WEB服務的業(yè)務流程執(zhí)行語言合成方案的第一WEB服務的業(yè)務流程執(zhí)行語言流程框架;根據所述第一WEB服務的業(yè)務流程執(zhí)行語言流程框架生成有向無環(huán)圖方式的合成方案;根據所述有向無環(huán)圖方式的合成方案得到獨立路徑組;將所述獨立路徑組進行分析處理生成第二WEB服務的業(yè)務流程執(zhí)行語言流程框架;將所述第二WEB服務的業(yè)務流程執(zhí)行語言流程框架進行流程填充生成可執(zhí)行流程。2.根據權利要求1所述的方法,其特征在于根據所述有向無環(huán)圖方式的合成方案得到獨立路徑組包括將所述有向無環(huán)圖方式的合成方案進行路徑組劃分;將所述路徑組劃分的結果進行路徑組合并得到獨立路徑組。3.根據權利要求1所述的方法,其特征在于所述獲取WEB服務的業(yè)務流程執(zhí)行語言合成方案的第一WEB服務的業(yè)務流程執(zhí)行語言流程框架包括提取出WEB服務的業(yè)務流程執(zhí)行語言合成方案中的流程信息,將所述流程信息組合成為第一WEB服務的業(yè)務流程執(zhí)行語言流程框架,所述流程信息為順序、并行以及賦值操作中的來源和目的。4.如權利要求3所述的方法,其特征在于所述提取出WEB服務的業(yè)務流程執(zhí)行語言合成方案中的流程信息具體是通過XML解析器提取出WEB服務的業(yè)務流程執(zhí)行語言合成方案中的流程信息。5.根據權利要求1所述的方法,其特征在于,所述根據所述第一WEB服務的業(yè)務流程執(zhí)行語言流程框架生成有向無環(huán)圖方式的合成方案包括根據所述第一WEB服務的業(yè)務流程執(zhí)行語言流程框架構建有向無環(huán)圖描述,將所述有向無環(huán)圖描述生成所述有向無環(huán)圖方案。6.根據權利要求5所述的方法,其特征在于,所述根據所述第一WEB服務的業(yè)務流程執(zhí)行語言流程框架構建有向無環(huán)圖描述包括判斷第一WEB服務的業(yè)務流程執(zhí)行語言流程框架中的每一個元素下的來源屬性和目的屬性;如果所述賦值操作中的來源是用戶輸入,將該來源標記為空;如果所述賦值操作中的來源不是用戶輸入且不在有向無環(huán)圖描述中則將該來源加入有向無環(huán)圖中,并記錄該來源的父節(jié)點為空;如果所述賦值操作中的目的不在有向無環(huán)圖描述中則加入,并將來源屬性加入到其父節(jié)點屬性中;如果目的屬性在有向無環(huán)圖中,則將來源屬性加入到其父節(jié)點屬性中。7.根據權利要求1所述的方法,其特征在于,所述分析處理包括將所述獨立路徑組進行分組判斷;根據所述獨立路徑組獲得相應的順序信息及節(jié)點;根據所述順序信息及節(jié)點生成第二WEB服務的業(yè)務流程執(zhí)行語言流程框架。8.根據權利要求7所述方法,其特征在于,將所述獨立路徑組進行分組判斷具體包括如果獨立路徑組個數為1,則根據所述獨立路徑組獲得相應的順序信息及節(jié)點;如果合并后的獨立路徑組個數為2個或2個以上,則輸出并行信息,將剩余子路徑進行所述分析處理。9.根據權利要求2所述的方法,其特征在于,所述將所述有向無環(huán)圖方式的合成方案進行路徑組劃分為采用深度優(yōu)先遍歷方法得到所有從頭節(jié)點到尾節(jié)點的路徑組。10.根據權利要求7所述的方法,其特征在于,所述根據所述獨立路徑組獲得相應的順序信息及節(jié)點包括如果所述獨立路徑組中只有1條鴻4圣,則直接順序輸出相應的順序信息及節(jié)點信息;如果所述獨立路徑組中有2條或2條以上路徑,則對其中所有的子路徑進行遞歸后進行所述分析處理,輸出順序信息及節(jié)點信息。11.根據權利要求7所述的方法,其特征在于,所述根據所述獨立路徑組獲得相應的順序信息及節(jié)點包括如果所有路徑中頭節(jié)點或尾節(jié)點相同,則先輸出路徑中相同的節(jié)點,刪除所有路徑中相同的節(jié)點,對剩余的子路徑進行判斷,如果剩余子路徑只有一個獨立路徑組,則輸出順序信息和節(jié)點;否則,針對每個獨立路徑組輸出并行信息并進行分析處理;如果頭結點、尾結點都不相同,則對結點按層次進行劃分;然后取出所有入度為零的頭結點并行輸出到并行標簽描述中,表示所有入度為零的節(jié)點所表示的服務并行執(zhí)行;再對去掉頭結點的子路徑集合判斷,如果剩余子路徑只有一個獨立路徑組,則輸出順序信息和節(jié)點;否則,針對每個獨立路徑組輸出并行信息并進行分析處理。12.根據權利要求1所述的方法,其特征在于,該方法還包括獲取已有的WEB服務的業(yè)務流程執(zhí)行語言合成方案的非流程信息,所述流程填充包括,將所述非流程信息填充到第二WEB服務的業(yè)務流程執(zhí)行語言流程框架中生成可執(zhí)行流程。13.根據權利要求l-12所述的方法,其特征在于,所述方法還包括,將所述有向無環(huán)圖方式的合成方案進行驗證,如果驗證通過則根據所述有向無環(huán)圖方式的合成方案得到獨立路徑組。14.根據權利要求13所述的方法,其特征在于,所述驗證方法為如果所述有向無環(huán)圖方式的合成方案中只有一個獨立的結點或者結點集則合成方案驗證通過;或如果有向無環(huán)圖方式的合成方案不含有環(huán)路則合成方案驗證通過;或如果所述有向無環(huán)圖方式的合成方案的所有的結點的入度均不為0,則有向無環(huán)圖方案驗證通過;或如果所述有向無環(huán)圖方式的合成方案有結點的出度為0,則說明該有向無環(huán)圖方案驗證通過。15.—種WEB服務合成方案轉換方法,其特征在于,所述WEB服務合成方案為WEB月l務的業(yè)務流程執(zhí)行語言合成方案,獲取WEB服務的業(yè)務流程執(zhí)行語言合成方案的WEB服務的業(yè)務流程執(zhí)行語言流程框架;根據所述WEB服務的業(yè)務流程執(zhí)行語言流程框架生成有向無環(huán)圖方式的合成方案。16.如權利要求15所述的方法,其特征在于,所述根據所述WEB服務的業(yè)務流程執(zhí)行語言流程框架生成有向無環(huán)圖方式的合成方案包括根據所述第一WEB服務的業(yè)務流程執(zhí)行語言流程框架構建有向無環(huán)圖描述,將所述有向無環(huán)圖描述結合生成所述有向無環(huán)圖方案。17.根據權利要求16所述的方法,其特征在于,所述根據所述WEB服務的業(yè)務流程執(zhí)行語言流程框架構建有向無環(huán)圖描述包括判斷WEB服務的業(yè)務流程執(zhí)行語言流程框架中的每一個元素下的來源屬性和目的屬性;如果所述賦值操作中的來源屬性是用戶輸入,將該來源標記為空;如果所述賦值操作中的來源不是用戶輸入且不在有向無環(huán)圖描述中則將該來源加入有向無環(huán)圖中,并記錄該來源的父節(jié)點為空;如果所述賦值操作中的目的屬性不在有向無環(huán)圖描述中則加入,并將來源屬性加入到其父節(jié)點屬性中;如果目的屬性在有向無環(huán)圖中,則將來源屬性加入到其父節(jié)點屬性中。18.—種WEB"良務合成方案轉換方法,其特征在于,所述WEBService合成方案為有向無環(huán)圖方式的合成方案,根據所述有向無環(huán)圖方式的合成方案獲得獨立路徑組;將所述獨立路徑組進行分析處理生成WEB服務的業(yè)務流程執(zhí)行語言流程框架;將所述第二WEB服務的業(yè)務流程執(zhí)行語言流程框架進行流程填充生成可扭j于流禾呈。19.根據權利要求18所述的方法,其特征在于,根據所述有向無環(huán)圖方式的合成方案獲得獨立路徑組包括將所述有向無環(huán)圖方式的合成方案進行路徑組劃分;將所述路徑組劃分結果進行路徑組合并得到獨立路徑組。20.根據權利要求18所述的方法,其特征在于,所述分析處理包括將所述獨立路徑組進行分組判斷;根據所述獨立路徑組獲得相應的順序信息及節(jié)點;根據所述順序信息及節(jié)點生成第二WEB服務的業(yè)務流程執(zhí)行語言流程框架。21.根據權利要求18所述方法,其特征在于,將所述獨立路徑組進行分組判斷具體包括如果獨立路徑組個數為1,則根據所述獨立路徑組獲得相應的順序信息及節(jié)點;如果合并后的獨立路徑組個數為2個或2個以上,則輸出并行信息,將剩余子路徑進行所述分析處理。22.根據權利要求18所述的方法,其特征在于,所述將所述有向無環(huán)圖方式的合成方案進行路徑組劃分為采用深度優(yōu)先遍歷方法得到所有從頭節(jié)點到尾節(jié)點的路徑組。23.根據權利要求20所述的方法,其特征在于,所述根據所述獨立路徑組獲得相應的順序信息及節(jié)點包括如果所述獨立路徑組中只有1條路徑,則直接順序輸出相應的順序信息及節(jié)點信息;如果所述獨立路徑組中有2條或2條以上路徑,則對其中所有的子路徑進行遞歸,并進行所述分析處理,輸出順序信息及節(jié)點信息。24.根據權利要求20所述的方法,其特征在于,所述根據所述獨立路徑組獲得相應的順序信息及節(jié)點包括如果所有路徑中頭節(jié)點或尾節(jié)點相同,則先輸出路徑中相同的節(jié)點,刪除所有路徑中相同的節(jié)點,對剩余的子路徑進行判斷,如果剩余子路徑只有一個獨立路徑組,則輸出順序信息和節(jié)點;否則,針對每個獨立路徑組輸出并行信息并進行分析處理;如果頭結點、尾結點都不相同,則對結點按層次進行劃分;取出所有入度為零的頭結點并行輸出到并行標簽描述中,表示所有入度為零的節(jié)點所表示的服務并行執(zhí)行;對去掉頭結點的子路徑集合判斷,如果剩余子路徑只有一個獨立路徑組,則輸出順序信息和節(jié)點;否則,針對每個獨立路徑組輸出并行信息并進行分析處理。25.—種應用服務器,包括中央處理器,其特征在于,包括流程提取單元,用于提取已有的WEB服務的業(yè)務流程執(zhí)行語言合成方案的第一WEB服務的業(yè)務流程執(zhí)行語言流程框架;流程處理單元,用于根據所述第一WEB服務的業(yè)務流程執(zhí)行語言流程框架生成有向無環(huán)圖方式的合成方案;路徑組劃分單元,用于將所述有向無環(huán)圖方式的合成方案進行路徑組劃分;流程生成單元,用于根據所述有向無環(huán)圖方式的合成方案進行分析處理生成第二WEB服務的業(yè)務流程執(zhí)行語言流程框架;流程填充單元將所述第二WEB服務的業(yè)務流程執(zhí)行語言流程框架進行流程填充生成可執(zhí)行流程。26.根據權利要求25所述的應用服務器,其特征在于,還包括合成方案存儲單元,用于存儲合成方案,根據流程提取單元或流程生成單元的請求將合成方案發(fā)送給流程提取單元或流程生成單元。27.根據權利要求26所述的應用服務器,其特征在于,所述合成方案存儲單元還用于存儲流程處理單元或流程填充單元的處理結果。28.根據權利要求25所述的應用服務器,其特征在于,還包括方案驗證單元,用于將所述有向無環(huán)圖方式的合成方案進行驗證,如果驗證通過則將所述有向無環(huán)圖方式的合成方案生成第二WEB服務的業(yè)務流程執(zhí)行語言流程框架。29.根據權利要求25所述的應用服務器,其特征在于,所述流程生成單元包括路徑組合并模塊、流程框架生成模塊,所述路徑組合并纟莫塊用于將所述路徑組進行合并得到獨立路徑組;流程框架生成模塊用于根據所述獨立路徑組獲得相應的順序信息及節(jié)點,并根據所述順序信息及節(jié)點生成第二WEB服務的業(yè)務流程執(zhí)行語言流程框架。30.根據權利要求25所述的應用服務器,其特征在于,所述流程提取單元還用于提取除第一WEB服務的業(yè)務流程執(zhí)行語言流程框架所需流程信息之外的其他非流程信息,并將所述非流程信息發(fā)送流程生成單元進行流程填充。31.根據權利要求26所述的應用服務器,其特征在于,所述流程提取單元還用于提取除第一WEB服務的業(yè)務流程執(zhí)行語言流程框架所需流程信息之外的其他非流程信息,并將所述非流程信息發(fā)送合成方案存儲單元保存。32.—種應用服務器,包括中央處理器,其特征在于,還包括流程提取單元,用于提取已有的WEB服務的業(yè)務流程執(zhí)行語言合成方案的WEB服務的業(yè)務流程執(zhí)行語言流程框架;流程處理單元,用于根據所述WEB服務的業(yè)務流程執(zhí)行語言流程框架生成有向無環(huán)圖方式的合成方案。33.根據權利要求32所述的應用服務器,其特征在于,還包括合成方案存儲單元,用于存儲合成方案,根據流程提取單元或流程生成單元的請求將合成方案發(fā)送給流程提取單元或流程生成單元。34.根據權利要求33所述的應用服務器,其特征在于,所述合成方案存儲單元還用于存儲流程處理單元或流程填充單元的處理結果。35.根據權利要求33所述的應用服務器,其特征在于,所述流程提取單元還用于提取WEB服務的業(yè)務流程執(zhí)行語言合成方案的非流程信息,并發(fā)送給合成方案存儲單元保存。36.—種應用服務器,包括中央處理器,其特征在于,包括路徑組劃分單元,用于將所述有向無環(huán)圖方式的合成方案進行路徑組劃分;流程生成單元,用于根據有向無環(huán)圖方式的合成方案生成WEB服務的業(yè)務流程執(zhí)行語言流程框架;流程填充單元,將所述WEB服務的業(yè)務流程執(zhí)行語言流程框架進行流程填充生成可執(zhí)行流程。37.根據權利要求36所述的應用服務器,其特征在于,所述流程生成單元包括路徑組合并模塊、流程框架生成模塊,所述路徑組合并模塊用于將所述路徑組進行合并得到獨立路徑組;流程框架生成模塊用于根據所述獨立路徑組獲得相應的順序信息及節(jié)點,并根據所述順序信息及節(jié)點生成第二WEB服務的業(yè)務流程執(zhí)行語言流程框架o全文摘要本發(fā)明公開了一種WEB服務的合成方案的轉化方法,通過獲取已有的BPEL合成方案的第一BPEL流程框架;根據所述第一BPEL流程框架生成DAG方式的合成方案;根據所述DAG方式的合成方案得到獨立路徑組;將所述獨立路徑組劃分結果進行分析處理生成第二BPEL流程框架;將所述第二BPEL流程框架進行流程填充生成可執(zhí)行流程,同時提供了一種應用服務器可以實現WEB合成方案的轉化,通過本方法和應用服務器可以實現根據WS服務調用的并行或嵌套來對方案執(zhí)行進行優(yōu)化控制,以提高執(zhí)行效率。文檔編號H04L29/08GK101267452SQ20081006572公開日2008年9月17日申請日期2008年2月27日優(yōu)先權日2008年2月27日發(fā)明者劉鐵江,周樹蕙,朱一聞,彥李,石曉旻,寧顧,慶顧申請人:華為技術有限公司;復旦大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
呼伦贝尔市| 北川| 稷山县| 唐山市| 古浪县| 诏安县| 台前县| 抚松县| 台东县| 兰西县| 新田县| 浪卡子县| 东至县| 龙川县| 中西区| 德保县| 宁乡县| 长丰县| 都昌县| 黄大仙区| 桐城市| 海宁市| 西乌珠穆沁旗| 芒康县| 理塘县| 庄浪县| 合川市| 邮箱| 公主岭市| 保定市| 额尔古纳市| 武乡县| 铁力市| 上虞市| 赤壁市| 南城县| 南川市| 临沂市| 博爱县| 凤台县| 白玉县|