• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種基于流程編排的服務組合路徑推導方法技術

    技術編號:14004987 閱讀:82 留言:0更新日期:2016-11-16 19:25
    本發明專利技術一種基于流程編排的服務組合路徑推導方法,屬于軟件測試技術領域,具體包括:首先、提取某段BPEL源文檔中的元素并分別進行編號;同時將該BPEL源文檔劃分為正常處理程序和異常處理程序;然后分別提取出BPEL路徑信息形成中間XML文檔;并去除冗余元素,得到描述路徑的XML文檔,讀取邊以及節點,建立服務組合路徑的鄰接矩陣以及并行節點集合;最后、結合深度優先搜索算法,得到所有的服務組合路徑,在路徑執行條件下輸出;優點在于:能夠自動化解析BPEL源文檔,得到服務組合執行順序,簡化了測試人員的BPEL解析工作;完備的尋找到所有的服務組合路徑,輔助測試過程,使得測試結果更加全面。

    【技術實現步驟摘要】

    本專利技術屬于軟件測試
    ,具體是一種基于流程編排的服務組合路徑推導方法。
    技術介紹
    相對于傳統面向過程或功能的軟件結構,面向服務的體系結構(Service-Oriented Architecture,SOA)能更好的適應當下信息化和網絡服務的不斷發展,在各種企業和IT系統得到廣泛應用。SOA中,不同的功能單元通過接口連接完成一個完整的程序功能,這些單元被稱為服務。接口的定義是中立的,即SOA的各個服務之間是松耦合的,使SOA具有極高的靈活性和適應性,其中的服務具有良好的可替換性和可復用性;但松耦合的特性同時也對SOA系統的測試帶來了一些困難,主要體現在以下三個方面:第一,使用者無法知曉服務內部的運行原理,只有服務的提供者才能對系統進行完整的測試。第二,SOA服務具有動態綁定的特性,會使系統參數在測試運行時發生改變,使得已測得的數據失效。第三,SOA通過對各個服務進行編排來實現完整的業務功能,即使各項服務都能夠單獨通過測試,將它們整合起來后,測試業務流程時仍可能出現問題。同時,在一個較為復雜的SOA系統中,也可能在測試中錯過了某些能夠完成功能的服務組合,測試結果可能是不全面的。當前針對SOA系統的測試技術研究有三個不同的階段:第一階段為:關注企業內部的測試,主要測試單個服務的功能,檢測其功能實現能力和對接口、消息的交換能力;第二階段為關注面向服務的系統特性,測試主要針對服務的發布、查找和綁定的三種行為,以及服務之間不能及時互相傳遞信息的問題。第三階段為關注服務的動態特性和服務組合總體的測試,一般從SOA系統整體上看待問題,關注各個服務組合的集成測試。綜合國內外對SOA系統的研究與應用來看,關于SOA測試的研究,其內容一般分為以下三類:針對服務協議和狀態進行的簡單測試,用自動化生成測試用例對SOA系統整體進行測試以及對SOA系統自動檢測工具的相關研究。從相關的文獻資料可以看出,目前SOA測試的研究大多只針對系統中的單個服務或者服務之間的關系,對真正能夠實現功能的含有多個服務的業務流程的測試較少。自動化檢測工具和整體測試中,多用確定的規則自動化生成生成測試用例,而很少使用真實數據進行測試。對于服務組合集成測試需要解析BPEL源文檔,得到服務組合執行順序。Web服務的業務流程執行語言BPEL4WS(Business Process Execution Language For Web Services),是為了整合Web服務而制定的一項規范標準。許多BPEL編輯工具提供從業務流程圖轉化到BPEL語言的映射,以實現BPEL的圖形化設計和分析?,F在大約有二十幾種能夠進行BPEL編輯的工具和相應的平臺,其中許多還可以進行可視化的圖形操作。但這些工具中的圖形或其他符號都是為了轉換成BPEL代碼而使用的,需要對BPEL的書寫規范和代碼結構十分熟悉才能高效的利用這些編輯工具。從業務流程模型或業務流程建模與標注標準(Business Process Modeling Notation,BPMN)到BPEL程序的轉換算法廣泛的被提出和應用,使人們能夠更好地利用BPEL語言來設計規劃業務流程。但對業務流程的測試還沒有得到足夠的重視,所需要的從BPEL語言程序到控制流程圖形的逆向轉換算法并不完備。
    技術實現思路
    本專利技術為了解決BPEL語言程序到控制流程圖的轉換問題,從測試角度出發,基于BPEL源程序自動化生成測試服務組合路徑的技術還不成熟,提出了一種基于流程編排的服務組合路徑推導方法;具體步驟如下:步驟一、針對某段BPEL源文檔,提取BPEL源文檔中的元素并分別進行編號;BPEL源文檔中的元素分為基本活動元素以及結構化活動元素,首先將對基本活動元素按序進行編號,然后,繼續順次對結構化活動元素按序進行編號;并記錄基本活動元素的最后一個編號作為分界編號。步驟二、按BPEL語法標準將該BPEL源文檔劃分為正常處理程序和異常處理程序;步驟三、分別對正常處理程序和異常處理程序提取出BPEL路徑信息;具體步驟為:步驟301、首選針對某段程序,判斷是否為正常程序,如果是,刪除scope元素;否則,保留scope元素;步驟302、從外層到內層逐層遍歷該段程序中的每層元素;步驟303、針對某層作為當前層,判斷該層遍歷到的當前元素是否為基本活動元素,如果是,進入步驟304,否則,進入步驟307;步驟304、判斷當前層下一個元素是否為基本活動元素;如果是,將兩個基本活動元素的編號相連,形成一條邊;否則,進入步驟305;步驟305、判斷當前層下一個元素是否為結構化活動元素,如果是,將當前基本活動元素與結構化活動元素的編號相連形成一條邊,進入步驟307;否則,進入步驟306;步驟306、判斷當前層下一個元素是否為throw,如果是,當前層的throw元素與該throw元素尋找的到異常程序中的第一個節點相連,并返回步驟303;否則,當前層下一個元素不存在,結束。第一個節點是指異常程序中的結構化活動元素catchAll或catch;throw元素按BPEL語法標準尋找異常程序。步驟307、判斷結構化活動元素的內層元素是否為基本活動元素,如果是,該結構化活動元素與內層基本活動元素的編號相連形成邊;否則,與內層結構化活動元素的編號相連形成邊;步驟四、將所有層提取的BPEL路徑信息形成中間XML文檔;BPEL路徑信息包括節點和邊;其中節點是指每個基本活動元素的編號;邊包括連邊和邊屬性兩部分;BPEL路徑形式為:from=\編號
    o=\編號\condition=\null/valid\flow=
    rue/false\;步驟五、對中間XML文檔,去除冗余元素,得到描述路徑的XML文檔;具體去除方法為:針對兩條BPEL不同的路徑:當第一條路徑中的to屬性與第二條路徑中的from屬性中采用的編號值相同,且該編號大于分界編號時,刪除該編號,將兩條路徑合并為一條路徑;當兩條路徑的condition屬性中至少有一個為valid,則合并condition屬性為valid;當兩條路徑的flow屬性至少有一個為true,則合并flow屬性為true。步驟六、利用XML解析工具讀取描述路徑的XML文檔中的邊以及節點;步驟七、利用邊和節點建立服務組合路徑的鄰接矩陣以及并行節點集合;鄰接矩陣為邊和點的連接有向圖;并行節點集合為一維向量,用來存儲鄰接矩陣中具有并行分支路徑的開始節點;每個開始節點向下一個節點相連邊的flow屬性均為true;并行節點用于記錄并行路徑信息。步驟八、結合深度優先搜索算法,得到所有的服務組合路徑;首先、從鄰接矩陣中提取所有路徑并存儲到總路徑集合中;所有路徑包括無并行執行的路徑和并行執行路徑,其中并行執行路徑的開始節點存放在并行節點集合中;然后、從總路徑集合中,將無并行執行路徑一一提取并存儲到臨時存儲空間;針對并行節點集合中的每個開始節點,將該開始節點下同時執行的至少兩條路徑分別提取,作為一組并行路徑,放到臨時存儲空間。具體提取過程為:針對并行節點集合中的每個開始節點,該開始節點下的所有同時執行的并行子節點,對每一個并行子節點對應的分支路徑一一提取,并將同一個并行子節點下的所有分支路徑存儲在一個塊結構中,從每個塊結構中各選取一條分支路徑組合在一起本文檔來自技高網
    ...
    一種基于流程編排的服務組合路徑推導方法

    【技術保護點】
    一種基于流程編排的服務組合路徑推導方法,其特征在于,具體步驟如下:步驟一、針對某段BPEL源文檔,提取BPEL源文檔中的元素并分別進行編號;BPEL源文檔中的元素分為基本活動元素以及結構化活動元素,首先將對基本活動元素按序進行編號,然后,繼續順次對結構化活動元素按序進行編號;并記錄基本活動元素的最后一個編號作為分界編號;步驟二、按BPEL語法標準將該BPEL源文檔劃分為正常處理程序和異常處理程序;步驟三、分別對正常處理程序和異常處理程序提取出BPEL路徑信息;步驟四、將所有層提取的BPEL路徑信息形成中間XML文檔;步驟五、對中間XML文檔,去除冗余元素,得到描述路徑的XML文檔;具體去除方法為:針對兩條BPEL不同的路徑:當第一條路徑中的to屬性與第二條路徑中的from屬性中采用的編號值相同,且該編號大于分界編號時,刪除該編號,將兩條路徑合并為一條路徑;當兩條路徑的condition屬性中至少有一個為valid,則合并condition屬性為valid;當兩條路徑的flow屬性至少有一個為true,則合并flow屬性為true;步驟六、利用XML解析工具讀取描述路徑的XML文檔中的邊以及節點;步驟七、利用邊和節點建立服務組合路徑的鄰接矩陣以及并行節點集合;鄰接矩陣為邊和點的連接有向圖;并行節點集合為一維向量,用來存儲鄰接矩陣中具有并行分支路徑的開始節點;每個開始節點向下一個節點相連邊的flow屬性均為true;并行節點用于記錄并行路徑信息;步驟八、結合深度優先搜索算法,得到所有的服務組合路徑;步驟九、將所有的服務組合路徑,在路徑執行條件下輸出;路徑執行條件是指每條邊上condition屬性中的valid條件。...

    【技術特征摘要】
    1.一種基于流程編排的服務組合路徑推導方法,其特征在于,具體步驟如下:步驟一、針對某段BPEL源文檔,提取BPEL源文檔中的元素并分別進行編號;BPEL源文檔中的元素分為基本活動元素以及結構化活動元素,首先將對基本活動元素按序進行編號,然后,繼續順次對結構化活動元素按序進行編號;并記錄基本活動元素的最后一個編號作為分界編號;步驟二、按BPEL語法標準將該BPEL源文檔劃分為正常處理程序和異常處理程序;步驟三、分別對正常處理程序和異常處理程序提取出BPEL路徑信息;步驟四、將所有層提取的BPEL路徑信息形成中間XML文檔;步驟五、對中間XML文檔,去除冗余元素,得到描述路徑的XML文檔;具體去除方法為:針對兩條BPEL不同的路徑:當第一條路徑中的to屬性與第二條路徑中的from屬性中采用的編號值相同,且該編號大于分界編號時,刪除該編號,將兩條路徑合并為一條路徑;當兩條路徑的condition屬性中至少有一個為valid,則合并condition屬性為valid;當兩條路徑的flow屬性至少有一個為true,則合并flow屬性為true;步驟六、利用XML解析工具讀取描述路徑的XML文檔中的邊以及節點;步驟七、利用邊和節點建立服務組合路徑的鄰接矩陣以及并行節點集合;鄰接矩陣為邊和點的連接有向圖;并行節點集合為一維向量,用來存儲鄰接矩陣中具有并行分支路徑的開始節點;每個開始節點向下一個節點相連邊的flow屬性均為true;并行節點用于記錄并行路徑信息;步驟八、結合深度優先搜索算法,得到所有的服務組合路徑;步驟九、將所有的服務組合路徑,在路徑執行條件下輸出;路徑執行條件是指每條邊上condition屬性中的valid條件。2.如權利要求1所述的一種基于流程編排的服務組合路徑推導方法,其特征在于,所述的步驟三具體為:步驟301、首選針對某段程序,判斷是否為正常程序,如果是,刪除scope元素;否則,保留scope元素;步驟302、從外層到內層逐層遍歷該段程序中的每層元素;步驟303、針對某層作為當前層,判斷該層遍歷到的當前元素是否為基本活動元素,如果是,進入步驟304,否則,進入步驟307;步驟304、判斷當前層下一個元素是否為基本活動元素;如果是,將兩個基本活動...

    【專利技術屬性】
    技術研發人員:韓榮賓,王世海,
    申請(專利權)人:北京航空航天大學
    類型:發明
    國別省市:北京;11

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 中文字幕久无码免费久久| 无码办公室丝袜OL中文字幕| 无码视频在线播放一二三区| 免费看无码特级毛片| 久久久久亚洲AV片无码下载蜜桃| 色综合久久久无码中文字幕波多| 亚洲精品无码永久在线观看你懂的| 97久久精品无码一区二区| 国产精品99久久久精品无码| 免费无码中文字幕A级毛片| 久久中文字幕无码专区| 中文AV人妻AV无码中文视频 | 国产精品无码一区二区三级| 久久精品无码一区二区无码 | 久久久久久AV无码免费网站| 亚洲av无码日韩av无码网站冲| 无码无套少妇毛多18p| 中文字幕精品无码一区二区| 内射人妻无套中出无码| 精品久久久久久久无码久中文字幕 | 亚洲av午夜精品无码专区| 少妇无码太爽了在线播放| 一级片无码中文字幕乱伦| 亚洲精品无码专区在线播放| av无码国产在线看免费网站| 国产精品亚韩精品无码a在线| 久久精品无码一区二区三区日韩 | AA区一区二区三无码精片| 久久人妻内射无码一区三区 | 久久久久无码国产精品不卡| 无码人妻少妇久久中文字幕 | 亚洲av无码一区二区三区不卡| 亚洲av无码国产精品色在线看不卡 | 激情无码人妻又粗又大| 97无码免费人妻超级碰碰碰碰| 亚洲6080yy久久无码产自国产| 精品多人p群无码| 久久AV高潮AV无码AV| 在人线av无码免费高潮喷水| 亚洲人成人无码.www石榴| 亚洲AV成人无码久久WWW|