[發明專利]一種基于組合服務柔性描述模型的服務調用引擎方法有效
| 申請號: | 201710493681.3 | 申請日: | 2017-06-26 |
| 公開(公告)號: | CN107135113B | 公開(公告)日: | 2019-11-08 |
| 發明(設計)人: | 王學斌;林正;楊志華;周紅芳;陸佳煒;馬俊;張元鳴;高飛;肖剛 | 申請(專利權)人: | 浙江省特種設備檢驗研究院;浙江西子富沃德電機有限公司;浙江工業大學 |
| 主分類號: | H04L12/24 | 分類號: | H04L12/24;H04L29/08 |
| 代理公司: | 杭州九洲專利事務所有限公司 33101 | 代理人: | 姚旺波;王洪新 |
| 地址: | 310020 浙*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 組合 服務 柔性 描述 模型 調用 引擎 方法 | ||
1.一種基于組合服務柔性描述模型的服務調用引擎方法,其特征在于:包括如下步驟:
第一步:對已經發布在互聯網上的SOAP服務和REST服務進行集成;
1.1、SOAP服務集成;首先通過人工手動收集WSDL或者爬蟲程序爬取發布在互聯網上的WSDL,其次對WSDL進行解析得到服務的具體描述信息并用SOAP服務柔性描述模型描述;
1.2、REST服務集成;采用人工獲取或者爬蟲程序爬取發布在互聯網上的REST網頁,對其解析提取出REST服務相關描述信息,至少包含服務的名稱、功能、發布地址、輸入參數、輸出參數的信息;
第二步:對集成后的SOAP服務和REST服務采用柔性描述模型進行建模;
2.1、SOAP服務柔性描述模型;SOAP服務柔性描述模型為定義1,至少包含SOAP服務的基本描述屬性、SOAP服務的輸入參數、返回信息以及用來實現SOAP服務調用的SOAP請求體信息;
定義1:SOAP服務柔性描述模型是由基本描述屬性、SOAP請求體、輸入參數、返回信息組成的四元組;可形式化表示為如下形式
SOAP-FDM=<attributes,soapRequestBody,inputParams,outputParams>。
·attributes描述服務的基本信息,至少包含服務的名稱、類型、描述信息、發布地址、調用方法、來源;
·soapRequestBody來自于dom4J的JAVA庫解析WSDL文件,用來與SOAP服務器進行通信,實現SOAP服務的自動化調用;
·inputParams描述了所需的輸入參數信息,包括輸入參數的個數、類型、含義;可形式化表述為inputParams=<param1,param2,…,paramn>;其中,param是一個二元組,由參數類型type、輸入參數描述inputParamDes組成,即param=<type,inputParamDes>;
·outputParams描述了返回信息,包含返回信息的含義以及類型;可形式化表述為outputParams=<param1,param2,…,paramn>;其中,param是一個二元組,由參數類型type、輸出參數描述outputParamDes組成,即param=<type,outputParamDes>;
其中,attributes是一個九元組,可形式化表示為如下形式:
attributes=<id,url,serviceType,name,chiName,method,description,comeFrom,area>
id是每個服務的唯一標識符;url是服務發布的地址;serviceType是明服務類型,取值為soap或者rest;name是服務的英文名稱;chiName是服務的中文名稱;method是服務調用的方法,取值為post、get、put、delete;description是服務的功能描述;comeFrom是服務的來源;area是服務所屬的領域。
2.2、REST服務柔性描述模型;REST服務柔性描述模型為定義2,包含了REST服務的基本描述屬性、REST服務的輸入參數、返回信息;
定義2:REST服務柔性描述模型是由基本描述屬性、輸入參數、返回信息組成的三元組,可形式化表示為如下形式:
REST-FDM=<attributes,inputParams,outputParams>。
·attributes至少包含服務的名稱、類型、描述信息、發布地址、調用方法、來源;
·inputParams描述了所需的輸入參數信息,包括輸入參數的個數、類型、含義;
·outputParams描述了返回信息,包含返回信息的含義以及類型;
其中,attributes是一個十一元組,可形式化表示為如下形式:
attributes=<id,url,serviceType,queryType,contentType,name,chiName,method,description,comeFrom,area>
其中,id是每個服務的唯一標識符;url是服務發布的地址;serviceType是明服務類型,取值為soap或者rest;queryType屬性指明了REST服務的參數來源,至少包含以下幾類標注:@PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixParam、@FormParam;其中,@PathParam表明請求來自于url的路徑,@QueryParam表明請求自于url的查詢參數;contentType為瀏覽器端以編碼格式接收返回結果;name是服務的英文名稱;chiName是服務的中文名稱;method是服務調用的方法,取值為post、get、put、delete;description是服務的功能描述;comeFrom是服務的來源;area是服務所屬的領域;
第三步:基于原子服務柔性描述模型,SOAP服務和REST服務調用方法如下:
3.1:SOAP服務調用方法;根據SOAP服務柔性描述模型,生成SOAP服務的請求體,將用戶輸入的信息與所生成的SOAP服務請求體進行拼接替換生成本次訪問的、真實的SOAP請求體,并采用JAVA語言的HttpURLConnection類將該請求體發送至SOAP服務器,實現SOAP服務的調用;
3.2:REST服務調用方法;根據REST服務柔性描述模型,生成REST服務的請求體,將用戶輸入的信息與所生成的REST服務請求體進行拼接替換生成本次訪問的、真實的REST請求體,并采用JAVA語言的HttpURLConnection類將該請求體發送至REST服務器,實現REST服務的調用;
第四步:在步驟一至步驟三的基礎上,根據原子服務構成組合服務的組合情況,給出各類組合情況的定義;記iPi,oPi分別為ASi的輸入參數,輸出參數,iPj,oPj分別為ASj的輸入參數,輸出參數,f為輸入參數與輸出參數之間的依賴關系,則各類組合情況的定義如下:
定義3:順序結構;對于原子服務ASi,ASj,若則ASi→ASj,即ASi與ASj之間是順序結構依賴,ASi為ASj的兒子節點,ASi為ASj的父親節點;
定義4:同步結構;對于原子服務AS1、AS2、…、ASm以及ASj,若則AS1∧AS2∧…∧ASm→ASj;
定義5:合并結構;對于原子服務AS1、AS2、…、ASm以及ASj,若則AS1∨AS2∨…∨ASm→ASj;
定義6:選擇結構;對于原子服務ASi以及AS1、AS2、…、ASm,若則ASi→AS1∨AS2∨…∨ASm;
定義7:并發結構;對于原子服務ASi以及AS1、AS2、…、ASm,若則ASi→AS1∧AS2∧…∧ASm;
第五步:根據第四步所述原子服務構成組合服務的組合情況,結合定義1、定義2所述的原子服務柔性描述模型,給出組合服務柔性描述模型如下:
定義8:組合服務柔性描述模型是由基本描述屬性、服務組合關系集合、服務節點集合組成的三元組;可形式化表示為如下形式:
CDS-FDM=<attributes,links,nodes>;除了包含了組合服務的基本功能信息外,還包含了構成組合服務的原子服務組合信息以及對應的各個原子服務之間的參數匹配關系;其中:
·attributes至少包含服務的id、名稱、描述信息、領域、來源;
·links節點內包含了各個原子服務之間的組合關系;可形式化描述為links=<father,child,and,or,end,paramMatch>;其中,father代表組合關系可分為父節點關系;child代表組合關系可分為兒子節點關系;and為與操作,用來定義順序結構、同步結構和并發結構;or為或操作,用來定義合并結構與選擇結構;end描述了組合服務最終的輸出節點;paramMatch節點用來描述原子服務之間的輸入輸出參數依賴關系;
·nodes節點包含了該組合服務所涉及到的所有原子服務;
其中,attributes是一個七元組,可形式化表示為如下形式:
attributes=<id,name,chiName,description,area,comeFrom,contentType>
其中,id是每個組合服務的唯一標識符;name是服務的英文名稱;chiName是服務的中文名稱;description是服務的功能描述;area是服務所屬的領域;comeFrom是服務的來源;contentType為瀏覽器端以編碼格式接收返回結果;
第六步:根據所述組合服務柔性描述模型,給出組合服務調用引擎執行步驟:
6.1、發起原子服務調用請求;組合服務由有限個數的原子服務組合而成,用戶選取組合服務中的某一個原子服務ASi,輸入ASi所需的輸入參數,發起調用請求;
6.2、調用判斷;服務調用引擎接收到用戶發起的調用請求,在組合服務緩存池中查找調用請求所屬的組合服務網絡,并判斷ASi是否滿足以下調用條件之一,滿足即可執行調用請求:
1)當ASi不存在兒子節點時,判斷ASi執行所需的輸入參數是否滿足,若滿足,則執行本次調用;若不滿足,則將本次用戶發起調用請求中的輸入參數緩存到組合服務緩存池中該調用請求所屬的組合服務網絡,等待用戶發起新的調用請求;
2)當ASi存在兒子節點時,判斷組合服務緩存池中ASi的所有兒子節點是否都已執行完畢,若完畢,則執行本次調用;若未完畢,則將本次用戶發起調用請求中的輸入參數緩存到組合服務緩存池中該調用請求所屬的組合服務網絡,等待用戶發起新的請求,將所有的兒子節點執行完畢;
6.3、執行調用請求;當步驟6.2服務調用引擎判斷本次調用請求滿足執行條件時,服務調用引擎發起模擬訪問請求得到本次調用的返回結果,并將得到的返回結果更新到組合服務緩存池中該調用請求所屬的組合服務網絡中;
6.4、end輸出節點判斷;服務調用引擎判斷本次調用的服務節點ASi是否為組合服務的end輸出節點,若為end輸出節點,則輸出本次調用結果;若非end輸出節點,則執行步驟6.5;
6.5、對ASi的所有父節點進行模擬訪問,執行步驟6.2至6.4;
6.6、組合服務網絡狀態判斷;當步驟6.5中ASi的所有父節點、祖父節點、曾祖父節點等祖先節點都執行過步驟6.2至6.4,此時組合服務網絡達到穩定狀態,等待用戶發起新的調用請求;當存在一個ASi的祖先節點仍未執行完畢時,則組合服務網絡處于演化推進狀態,繼續對ASi的祖先節點執行步驟6.2至6.4,直到ASi的所有祖先節點都執行過6.2至6.4,即組合服務網絡達到穩定狀態為止。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江省特種設備檢驗研究院;浙江西子富沃德電機有限公司;浙江工業大學,未經浙江省特種設備檢驗研究院;浙江西子富沃德電機有限公司;浙江工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710493681.3/1.html,轉載請聲明來源鉆瓜專利網。





