肖 剛,項哲銳,張元鳴,章振杰,陸佳煒,高 飛
?
面向云制造的服務組合執(zhí)行引擎框架研究
肖 剛1,2,項哲銳1,張元鳴2,章振杰1,陸佳煒2,高 飛2
(1. 浙江工業(yè)大學機械工程學院,浙江 杭州 310014;2. 浙江工業(yè)大學計算機科學與技術學院,浙江 杭州 310023)
云制造模式下,制造資源被封裝成制造服務,通常以服務組合的方式滿足用戶復雜的制造需求。針對云制造服務組合執(zhí)行過程中高效性、準確性和動態(tài)性等要求,提出了面向云制造的服務組合執(zhí)行引擎框架,并詳細闡述了引擎運行機制。首先,通過解析云制造服務組合描述文件,構造服務組合節(jié)點和服務組合依賴邊,建立服務組合節(jié)點參數(shù)關聯(lián)關系,歸納推倒出相應的執(zhí)行規(guī)則。然后,基于執(zhí)行狀態(tài)變更的服務組合執(zhí)行算法實現(xiàn)了制造服務組合的動態(tài)執(zhí)行。最后,給出了面向電梯產(chǎn)業(yè)聯(lián)盟的云制造服務組合執(zhí)行引擎實例,驗證了框架的可行性和有效性。
云制造;服務組合;服務組合執(zhí)行;執(zhí)行引擎
云制造(cloud manufacturing,CMfg)是一種面向服務的網(wǎng)絡化制造新模式[1],利用云計算、物聯(lián)網(wǎng)等技術將各類制造資源和制造能力虛擬化、服務化,通過云制造平臺實現(xiàn)多方共贏、普適化和高效的共享與協(xié)同[2]。云制造模式中,用戶發(fā)布制造任務后選擇合適的云制造服務,在業(yè)務流程的驅動下[3]得到云制造服務組合。云制造服務組合作為提高云制造資源利用率、實現(xiàn)制造資源增值的關鍵途徑之一,對云制造的實施和開展具有重要作用[4]。為完成制造任務,需要在云制造服務組合的執(zhí)行階段[5]對制造服務進行調用。目前,眾多云制造平臺[6-8]處于研發(fā)試用階段,用戶已經(jīng)可以在云制造平臺上對制造服務進行組合來滿足自身的業(yè)務需求[9]。因此如何有效地對云制造服務組合進行執(zhí)行,成為云制造領域迫切需要解決的問題。
針對服務組合的執(zhí)行問題,研究者們提出了多種服務組合執(zhí)行方案:宋波和李妙妍[10]提出了先創(chuàng)建服務組合模型,然后將模型轉化為BPEL描述,最后在BPEL引擎上加以執(zhí)行的方法;王朔等[11]針對服務組合模型轉化為BPEL后的執(zhí)行效率問題,提出了層次化服務流程向可執(zhí)行BPEL轉換的方法對服務組合執(zhí)行進行優(yōu)化;鐵威等[12]通過擴展BPEL元模型,增加了BPEL對異步RESTful Web服務組合的支持,并設計實現(xiàn)了擴展后的BPEL執(zhí)行引擎。但是以上方案需要建立服務組合模型并進行模型轉換,流程較為復雜,需要專業(yè)的開發(fā)人員。班倩超等[13]針對業(yè)務模型轉化為執(zhí)行模型的語義失配缺陷問題,提出了一種基于業(yè)務流程建模標注的Web服務組合執(zhí)行方案,但一定程度依賴于Web服務的結構,不具備良好的通用性。孫強等[14]將Petri網(wǎng)應用于服務組合領域,使用基于Petri網(wǎng)的服務組合執(zhí)行引擎實現(xiàn)服務組合的執(zhí)行;陳偉安和高春鳴[15]針對Web服務組合執(zhí)行引擎中解耦流程執(zhí)行和成分Web服務調用問題,提出了一種基于反饋控制的Web服務組合執(zhí)行引擎,提高引擎性能。但是這些方法沒有考慮服務組合執(zhí)行過程中的流程判斷問題,不能應用于包含選擇、并行等結構的服務組合。
以上方案并不能很好地運用于云制造服務組合的執(zhí)行:①自身方案不夠完善,存在各自不足;②面向的服務對象主要為傳統(tǒng)Web服務。與傳統(tǒng)Web服務相比,云制造服務的調用周期較長,在復雜多變的云制造運行環(huán)境下調用條件更為苛刻[16-18],需要在執(zhí)行過程中通過流程驗證方法[19-23]防止服務組合執(zhí)行階段因服務失效造成執(zhí)行失敗。
結合上述分析,服務組合執(zhí)行引擎能較好地改進上述方案的不足,具有較大的現(xiàn)實意義。執(zhí)行引擎解耦了服務選擇和服務執(zhí)行過程,實現(xiàn)了多服務之間的參數(shù)傳遞和自動調用,使用戶專注于業(yè)務邏輯層面的服務優(yōu)選組合操作,由執(zhí)行引擎對服務進行統(tǒng)一調度,同時為云平臺后期對云制造服務進行質量監(jiān)控、流量統(tǒng)計以及調用決策等方面的進一步研究打下基礎。本文通過解析云制造服務組合中的服務組合依賴和服務組合節(jié)點,保證執(zhí)行過程中流程判斷的正確性,通過基于執(zhí)行狀態(tài)變更的服務組合執(zhí)行算法實現(xiàn)云制造模式下服務組合的動態(tài)執(zhí)行,提出了一種面向云制造的服務組合執(zhí)行引擎框架。
如圖1所示,對于一個云制造服務組合,包含了1、2、3、4、5、6、7、8等8個云制造服務,每個方塊表示一個云制造服務,每個服務的具體信息見表1,云制造服務之間的連線代表2個云制造服務之間的依賴關系。
該服務組合執(zhí)行流程如下:Start表示服務組合的原始輸入?yún)?shù)I、T,獲得原始輸入后開始調用服務1、5,得到1的調用結果、、、、和5的調用結果后,將、、、作為2的輸入?yún)?shù),自動執(zhí)行2得到調用結果P,結合1的調用結果自動調用3,獲得3的調用結果T按照此規(guī)則,最終獲得8的調用結果A作為云制造服務組合的執(zhí)行結果。
圖1 云制造服務組合
表1 服務屬性表
云制造模式下,制造企業(yè)通過虛擬化技術將制造資源封裝成服務并發(fā)布到云制造平臺中,用戶通過服務組合的方式滿足自身復雜的制造需求。由于用戶需求的多樣化,會產(chǎn)生大量的云制造服務組合,所有服務組合共享云平臺服務庫中的云制造服務。如圖2所示,由于云制造服務組合只包含了需要調用的服務及其調用順序,為了實現(xiàn)其執(zhí)行,需要設計一個執(zhí)行引擎進行解讀,管理服務參數(shù),按照組合邏輯自動調用云制造服務。
圖2 服務組合與服務組合執(zhí)行
服務組合是由多個服務及服務間復雜的調用邏輯和嚴格的調用時序所共同組成的整體。為了保證以服務組合的方式實現(xiàn)業(yè)務流程的正確運行,本文將服務組合中的服務及其關系抽象為服務組合節(jié)點、服務組合依賴邊和節(jié)點參數(shù)關聯(lián),進行結構化描述,以Json格式進行持久化,生成服務組合描述文件,保存在云平臺中。以圖1中的服務組合為例,其云制造服務組合描述文件如下所示:
{"comeFrom": "yzz016",
"area": "垂直梯",
"Links":
{
"7": {"child": {"and": [{"id":"3"}]}, "father": {"and": [{"id": "6","paramMatch": [{"M1": "M1"}]}]}},
"6":{"child":{"and":[{"id":"5"},{"id":"7"}]},"father":{"and": [{"id": "end","paramMatch": []}]}},
"5":{"child":{"and":[{"id":"3"},{"id":"0"},{"id":"4"}]},"father":{"and":[{"id":"6","paramMatch":[{"Mmax":"Mmax"}]}]}},
…
"0": {"child": {"and": []},"father": {"and": [{"id": "1","paramMatch": [{"Q": "Q"}, {"V": "V"}, {"alpha": "alpha"}, {"H": "H"}],"paramRule":[{"Q": "Q>2000"}]},{"id": "2","paramMatch": [{"V": "V"}]}, {"id": "5","paramMatch": [{"alpha": "alpha"}, {"Q": "Q"}]}]}},
"end": "6"
},
"description": "用于曳引機扭矩校核",
"name": "yyjjhxt",
"edgeInCanvas": [{"0": "1"}, {"1": "2"}, {"0": "2"}, {"2": "3"}, {"3": "5"}, {"0": "5"}, {"4": "5"}, {"3": "7"}, {"5": "6"}, {"7": "6"}],
"executeArr": [],
"chiName": "曳引機校核系統(tǒng)",
"Nodes":
{
"3":{"id":"3","outputParams":[{"param":"Imax"},{"param":"D1"},{"param":"N"},{"param":"n1"},{"param":"RGS"},{"param":"gama"},{"param":"beta"},{"param":"i"}],"realId":"20171122173123789","inputParams":[{"mathed":"true","param": "Tractortype"}],"name": "tractor technical parameter query","chiName": "曳引機技術參數(shù)查詢","y": 229.33333206176758,"x": 497.75},
"2":{"id":"2","outputParams":[{"param":"Tractortype"}],"realId":"20171117163421730","inputParams":[{"mathed":"true", "param":"V"},{"mathed":"true","param":"Pd"}],"name": "tractor choose","chiName": "曳引機選型","y": 194.33333206176758,"x": 455.75},
…
}
}
服務組合描述文件中的Nodes和Links是對服務組合節(jié)點和服務組合依賴邊的文本描述。Nodes代表云制造服務組合中所有服務組合節(jié)點的集合,組合文件通過該集合描述執(zhí)行過程中需要調用的云制造服務;Links代表云制造服務組合中所有服務組合依賴邊集合,組合文件通過該集合描述云制造服務之間的調用順序、參數(shù)匹配以及參數(shù)依賴。
服務組合節(jié)點是指云制造服務組合系統(tǒng)中的服務本身以及其所依賴的參數(shù)和依賴該節(jié)點輸出的參數(shù),用表示。
定義1. 服務組合節(jié)點可表示為一個四元組=(,,,),其中,為節(jié)點的標識;為節(jié)點所包含服務的名稱;為節(jié)點所依賴的輸入?yún)?shù),其個數(shù)稱為入度;為依賴節(jié)點輸出的參數(shù),其個數(shù)稱為出度。
服務組合依賴邊是指云制造服務組合系統(tǒng)中節(jié)點之間的參數(shù)依賴關系,用表示。
定義2. 服務組合依賴邊可表示為五元組=(,,,,),其中,為依賴邊的標識;o為依賴邊的起點;o為依賴邊的終點;為依賴邊的匹配條件;為依賴邊的依賴條件,不存在依賴條件時用表示。
服務組合節(jié)點參數(shù)關聯(lián)關系指的是作用于同一節(jié)點的輸入?yún)?shù)或者輸出參數(shù)之間的關系。每個云制造服務都包含輸入?yún)?shù)和輸出參數(shù),在服務組合過程中,復雜的組合邏輯使得輸入、輸出參數(shù)之間產(chǎn)生各種關聯(lián),通過服務組合節(jié)點參數(shù)關聯(lián)關系對其進行闡述,作為服務組合在執(zhí)行過程中流程判斷的依據(jù)。服務組合節(jié)點參數(shù)關聯(lián)關系如圖3所示,包含以下4種類型:
(1) 輸入并行關系。云制造服務組合節(jié)點的入度為,以該節(jié)點為終點的依賴邊的個數(shù)為,若滿足=,則稱該節(jié)點為輸入并行關系。
(2) 輸入選擇關系。云制造服務組合節(jié)點的入度為,以該節(jié)點為終點的依賴邊的個數(shù)為,若滿足<,則稱該節(jié)點為輸入選擇關系。
(3) 輸出并行關系。云制造服務組合節(jié)點的出度為,以該節(jié)點為起點的依賴邊的個數(shù)為,若滿足=,則稱該節(jié)點為輸出并行關系。
(4) 輸出選擇關系。云制造服務組合節(jié)點的出度為,以該節(jié)點為起點的依賴邊的個數(shù)為,若滿足<,則稱該節(jié)點為輸出選擇關系。
圖3 云制造服務節(jié)點NO參數(shù)關聯(lián)關系
當云制造服務組合執(zhí)行時,執(zhí)行引擎會讀取其描述文件,在內存中生成云制造服務組合執(zhí)行時對象(cloud manufacturing service composition execution object,CMSCEO),完成服務組合的一次實例化。每個CMSCEO包含區(qū)分執(zhí)行時對象的唯一標志符,執(zhí)行狀態(tài)信息(包括等待、執(zhí)行、掛起和結束狀態(tài))以及記錄運行過程的執(zhí)行上下文。服務組合每次執(zhí)行都會產(chǎn)生一個新的執(zhí)行時對象。
定義3.云制造服務組合執(zhí)行時對象可以表示為一個三元組=(V,l,V),其中:
(1)V={NO|NO是服務組合節(jié)點,1≤≤},表示所有服務組合節(jié)點集合;
(2)l={LO|LO是服務組合依賴邊,1≤≤},表示所有服務組合依賴邊集合;
(3)V={NO|j是服務組合節(jié)點,1≤≤},表示正在執(zhí)行的服務組合節(jié)點集合。
云制造服務組合執(zhí)行時對象初始化過程包括服務組合節(jié)點初始化和服務組合依賴邊初始化。
首先,讀取服務組合描述文件Nodes中的信息,獲取服務組合包含的云制造服務以及服務具體信息完成云制造服務組合節(jié)點初始化。其次,讀取服務組合描述文件Links中的信息,提取服務間的參數(shù)匹配關系和參數(shù)依賴關系完成云制造服務組合依賴邊初始化。然后,根據(jù)獲得的節(jié)點和依賴邊,計算每個服務組合節(jié)點的出度和入度,確定每個服務組合節(jié)點的參數(shù)關聯(lián)關系。最終,云制造服務組合節(jié)點和云制造服務組合依賴邊的集合共同構成執(zhí)行時對象。
以圖1中的服務組合為例,執(zhí)行時對象的初始化過程為:
對于云制造服務1,該服務的輸入?yún)?shù)為I,輸出參數(shù)為、、、、,設1為包含1的云制造服務組合節(jié)點,該節(jié)點的為1。因為1的輸入?yún)?shù)I依賴于Start節(jié)點的1個原始參數(shù)I,所以節(jié)點1的入度為1;1的輸出參數(shù)被2的輸入?yún)?shù)和6的輸入?yún)?shù)所依賴,輸出參數(shù)未被其他服務參數(shù)依賴,結合其他輸出參數(shù)、、的被依賴情況,可得到共有7個參數(shù)依賴于節(jié)點1的輸出,所以出度為7。最終得到節(jié)點1={1,1,1,7}。同理,可得節(jié)點1~8。
對于云制造服務組合節(jié)點1和2,由于1的輸出參數(shù)作為2的輸入?yún)?shù),即參數(shù)匹配關系:→,同時根據(jù)約束條件只有當1的輸出參數(shù)大于2 000時才能作為2的輸入?yún)?shù)的輸入,即存在參數(shù)依賴關系:>2000,所以涉及的依賴邊表示為1={1,1,2,→,>2000}。同理??傻靡蕾囘?~24。
云制造服務組合節(jié)點和云制造服務組合依賴邊初始化完成后,對服務組合節(jié)點參數(shù)關聯(lián)關系進行判斷。服務組合節(jié)點2={2,2,4,1},該節(jié)點的輸入?yún)?shù)依賴于1的、、、的4個輸出參數(shù),所以入度為4,以該節(jié)點為終點的依賴邊有1={1,1,2,→,>2000},2={1,1,2,→,},3={1,1,2,→,},4={1,1,2,→,},共4條,與入度數(shù)量相等,所以為輸入并行關系;共有1個參數(shù)(3輸入?yún)?shù)P)依賴于該節(jié)點的輸出參數(shù),所以出度為1,以該節(jié)點為起點的依賴邊有8={1,2,3,P→P,},共1個,與出度數(shù)量相等,所以為輸出并行關系。同理,可得其他服務組合節(jié)點的參數(shù)關聯(lián)關系。
將依賴于Start節(jié)點的1和5歸入正在執(zhí)行的服務組合節(jié)點集合,最終得到執(zhí)行時對象如下:
V={NO|NO是云制造服服組合節(jié)點,1≤≤8};
l= {LO|LO是云制造服務組合依賴邊,1≤≤24 };
V= {1,5}。
云制造服務組合執(zhí)行引擎的框架如圖4所示,包括業(yè)務層、調度層、執(zhí)行層、服務層和交互層。
(1) 業(yè)務層。執(zhí)行引擎在業(yè)務層中對云制造服務組合描述文件進行相關操作,包括云制造服務組合描述文件的創(chuàng)建、查找、存儲、修改以及刪除,并對外提供操作接口。
圖4 云制造服務組合執(zhí)行引擎框架
(2) 調度層。執(zhí)行引擎在調度層中進行云制造服務組合執(zhí)行任務的調度。調度層中包含任務請求隊列、任務線程池、任務管理器、負載監(jiān)測模塊,負責云制造服務組合從開始運行到執(zhí)行完畢的整個生命周期管理。其中,任務請求隊列是一個隊列對象,用戶每次發(fā)起云制造服務組合執(zhí)行請求,執(zhí)行引擎將把請求加入該隊列中;任務線程池是執(zhí)行引擎管理工作線程的工具,可以根據(jù)硬件條件和用戶需求設置有效的工作線程數(shù)量;任務管理器是執(zhí)行引擎管理任務執(zhí)行請求的工具,負責從隊列中獲取任務執(zhí)行請求,以及為任務請求分配工作線程;負載監(jiān)測模塊用于根據(jù)當前任務數(shù)量監(jiān)測引擎負載。
(3) 執(zhí)行層。執(zhí)行引擎在執(zhí)行層完成云制造服務組合的執(zhí)行流程解析和服務調用。執(zhí)行層包含預處理模塊、流程解析模塊、服務調用模塊、服務監(jiān)控模塊、異常處理模塊等。其中,預處理模塊負責讀取云制造服務組合文件,并將云制造服務組合文件轉化為執(zhí)行時對象;流程解析模塊負責執(zhí)行時對象執(zhí)行過程中節(jié)點的服務執(zhí)行條件判斷和執(zhí)行狀態(tài)轉移條件判斷;服務調用模塊負責接收用戶外部參數(shù)輸入,并通過服務操作接口實現(xiàn)云制造服務的調用;服務監(jiān)控模塊負責服務調用過程中的服務監(jiān)控,并將服務調用日志記錄在服務狀態(tài)文檔中;異常處理模塊負責云制造服務組合執(zhí)行過程中發(fā)生服務調用異常時的相關處理操作。
(4) 服務層。執(zhí)行引擎在服務層中對云制造服務進行相關操作,包括云制造服務的查找、聚類、替換以及調用,并對外提供云制造服務操作接口。
(5) 交互層。交互層是由前端頁面組成,提供用戶對執(zhí)行引擎進行各種操作的入口,包括業(yè)務層交互、調度層交互、執(zhí)行層交互和服務層交互。用戶通過業(yè)務層交互對執(zhí)行引擎發(fā)起云制造服務組合描述文件的相關操作請求;用戶通過調度層交互查看引擎當前包含的執(zhí)行任務,并可以使用任務管理器設置任務執(zhí)行的優(yōu)先級;用戶通過執(zhí)行層交互輸入服務調用需要的外部輸入?yún)?shù),查看服務調用結果;用戶通過服務層交互對執(zhí)行引擎發(fā)起云制造服務的相關操作請求。
云制造服務組合的執(zhí)行需要引擎框架中的業(yè)務層、調度層、執(zhí)行層、服務層和交互層共同協(xié)作完成,執(zhí)行引擎的執(zhí)行流程如圖5所示。用戶通過交互層選擇需要運行的云制造服務組合并通過服務層提供的云制造服務操作接口查看云制造服務組合中包含的云制造服務的具體信息,在業(yè)務層中調用云制造服務組合操作接口,根據(jù)讀取的服務組合文件生成運行實例,在調度層中將運行實例放入運行實例隊列,執(zhí)行引擎不斷輪詢任務線程池中的空閑線程數(shù)量,當查詢到有空閑的任務線程并且引擎負載在正常范圍內時,任務管理器將運行實例從隊列中取出,占用該空閑任務線程。任務線程在執(zhí)行層中生成云制造服務組合執(zhí)行時對象,調用流程解析模塊解析執(zhí)行時對象的執(zhí)行流程順序,然后結合服務調用模塊實現(xiàn)服務的自動調用,同時用戶通過交互層輸入服務調用需要的外部參數(shù),利用服務監(jiān)控模塊和異常處理模塊確保服務調用的正常執(zhí)行,得到服務調用的結果。
圖5 執(zhí)行引擎運行流程
云制造服務組合的執(zhí)行過程可以抽象為云制造服務組合執(zhí)行時對象(V,l,V)的執(zhí)行狀態(tài)變更過程。每次組合節(jié)點中的云制造服務調用完成,則發(fā)生執(zhí)行狀態(tài)變更。串行業(yè)務流程所形成的云制造服務組合呈線性結構,引擎解析節(jié)點參數(shù)關聯(lián)關系依次調用云制造服務,經(jīng)過一定次數(shù)的執(zhí)行狀態(tài)變更,得到最終結果;并行業(yè)務流程所形成的云制造服務組合呈分叉結構,引擎解析節(jié)點參數(shù)關聯(lián)關系,獲取并行服務的信息并發(fā)起調用,待多次執(zhí)行狀態(tài)變更操作完成,則并行業(yè)務流程結束。當正在執(zhí)行的云制造服務組合節(jié)點集合V中節(jié)點數(shù)量為0時,稱執(zhí)行狀態(tài)為穩(wěn)定狀態(tài),否則為不穩(wěn)定狀態(tài)。通過上述分析,將云制造服務組合執(zhí)行問題轉化為執(zhí)行狀態(tài)判斷流程。此時如若正在執(zhí)行的云制造服務組合發(fā)生變化(例如,服務失效),執(zhí)行引擎不會受其影響運行出錯,而是根據(jù)服務組合的執(zhí)行狀態(tài)是否穩(wěn)定而繼續(xù)運行,即將服務組合原本基于流程的靜態(tài)執(zhí)行轉化為動態(tài)執(zhí)行。
如圖6所示,執(zhí)行狀態(tài)變更分為執(zhí)行狀態(tài)轉移和服務執(zhí)行兩個環(huán)節(jié),當某個云制造服務組合節(jié)點執(zhí)行完畢后,獲取后續(xù)將要執(zhí)行的云制造服務組合節(jié)點,對滿足執(zhí)行狀態(tài)轉移條件和服務執(zhí)行條件的節(jié)點完成執(zhí)行狀態(tài)變更操作。
圖6 執(zhí)行狀態(tài)變更示意圖
算法1. 服務組合動態(tài)執(zhí)行算法。
Input:V,V,l
Output:
(1)V
(2) IF=THEN V.add(n)
(3) END IF
(4) WHILE(V)>0:
(5)n = V. reduce()
(6) IF=THEN
(7)=()
(8) IF>0 THEN
(9)lV=
(10) IF=THEN
(11) IF !V.contains ()
(12)V.add ()
(13) END IF
(14) END FOR
(15) END IF
(16) END WHILE
(17) RETURN
基于執(zhí)行狀態(tài)變更的服務組合執(zhí)行算法見算法1,其中,為云制造服務組合節(jié)點;l為云制造服務組合依賴邊;=為節(jié)點滿足服務執(zhí)行條件;=為依賴邊l的起點節(jié)點滿足到終點節(jié)點的執(zhí)行狀態(tài)轉移條件。其具體過程為:首先,獲取節(jié)點集合V進行循環(huán)判斷,找出入度為0的節(jié)點放入正在執(zhí)行的節(jié)點集合V(第1~3行)。其次,對V中的節(jié)點循環(huán)判斷是否滿足服務執(zhí)行條件,如若節(jié)點滿足條件,則執(zhí)行節(jié)點包含的云制造服務,將執(zhí)行結果保存在CMSCEO的上下文中(第4~7行)。然后將節(jié)點從V中去除,判斷與其后續(xù)節(jié)點是否滿足執(zhí)行狀態(tài)轉移條件,如果滿足,則將該后續(xù)節(jié)點放入V,繼續(xù)循環(huán)直到執(zhí)行狀態(tài)達到穩(wěn)定。最終,返回服務組合執(zhí)行結果(第8~17行)。
(1) 服務執(zhí)行條件的判斷規(guī)則為:當判斷節(jié)點執(zhí)行條件時,首先獲取以為終點并且滿足依賴條件的所有依賴邊,依次查詢依賴邊中包含的參數(shù)匹配條件,然后從的上下文中搜索依賴邊的起始節(jié)點的執(zhí)行結果,若所有匹配條件中涉及的參數(shù)都在上下文中找到對應執(zhí)行結果,并且節(jié)點的輸入?yún)?shù)都有對應的匹配參數(shù),則說明滿足節(jié)點執(zhí)行條件。
(2) 執(zhí)行狀態(tài)轉移條件的判斷規(guī)則為:設節(jié)點1服務執(zhí)行完畢,2為1的后續(xù)節(jié)點,(,1,2,,)為連接1,2的依賴邊,開始進行1到2的轉移條件判斷。①當1為輸出并行關系,2為輸入并行關系時:若滿足依賴條件,則說明滿足1到2執(zhí)行狀態(tài)轉移條件。②當1為輸出并行關系,2為輸入選擇關系時:若中是1的輸出參數(shù)與2的輸入?yún)?shù)的參數(shù)匹配關系,當以2為終點并且匹配條件涉及該參數(shù)的依賴邊數(shù)目為1時,若滿足的依賴條件,則說明滿足1到2執(zhí)行狀態(tài)轉移條件;當以2為終點并且匹配條件涉及該參數(shù)的依賴邊數(shù)目>1時,則說明參數(shù)是選擇邏輯,只有當滿足依賴條件時,說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉移條件,于此同時把其他依賴邊的置為。③當1為輸出選擇關系,2為輸入并行關系時,若中是1的輸出參數(shù)與2的輸入?yún)?shù)的參數(shù)匹配關系,當以1為起點并且涉及該參數(shù)的依賴邊數(shù)目等于1,若滿足的依賴條件,則說明滿足1到2執(zhí)行狀態(tài)轉移條件;當以1為起點并且涉及該參數(shù)的依賴邊數(shù)目>1,則說明參數(shù)是選擇邏輯,只有當滿足依賴條件時,說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉移條件,于此同時把其他依賴邊的置為。④當1為輸出選擇關系,2為輸入選擇關系時:若中是1的輸出參數(shù)與2的輸入?yún)?shù)的參數(shù)匹配關系。當以1為起點并且涉及該參數(shù)的依賴邊數(shù)目等于1,以2為終點并且涉及該參數(shù)的依賴邊數(shù)目等于1,若滿足的依賴條件,則說明滿足1到2執(zhí)行狀態(tài)轉移條件;當以1為起點并且涉及該參數(shù)的依賴邊數(shù)目等于1,以2為終點并且涉及該參數(shù)的依賴邊數(shù)目>1,只有當滿足依賴條件時,說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉移條件,于此同時把其他涉及參數(shù)的依賴邊的置為;當以1為起點并且涉及該參數(shù)的依賴邊數(shù)目>1,以2為終點并且涉及該參數(shù)的依賴邊數(shù)目等于1,只有當滿足依賴條件時,說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉移條件,于此同時把其他涉及參數(shù)的依賴邊的置為;當以1為起點并且涉及該參數(shù)的依賴邊數(shù)目>1,以2為終點并且涉及該參數(shù)的依賴邊數(shù)目>1,只有當滿足依賴條件時,說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉移條件,于此同時把其他涉及參數(shù)和的依賴邊的置為。
電梯作為一類重要的特種設備,對電梯企業(yè)的生產(chǎn)水平具有較高要求,然而由于大多數(shù)電梯企業(yè)屬于中小型企業(yè),制造資源短缺,不具備獨立自主研發(fā)的條件;另一方面,具有優(yōu)質資源的大企業(yè),在生產(chǎn)過程中往往出現(xiàn)制造資源閑置現(xiàn)象。
本文依托面向電梯產(chǎn)業(yè)聯(lián)盟的云制造平臺[24],以Intel Xeon X3430 2.40 GH、8 G內存、320 G硬盤的服務器和Windows10操作系統(tǒng)終端作為硬件開發(fā)環(huán)境,以Java和Javascript編程語言,Eclipse開發(fā)環(huán)境、Mysql數(shù)據(jù)庫、Tomcat7.0服務器、Windows10操作系統(tǒng)等為軟件開發(fā)環(huán)境,結合服務組合執(zhí)行引擎框架構建了面向電梯產(chǎn)業(yè)聯(lián)盟的云制造服務組合執(zhí)行引擎,實現(xiàn)了云制造平臺對于大量個性化服務組合的執(zhí)行功能。
本節(jié)以電梯制造過程中的設計階段為例,驗證執(zhí)行引擎的有效性。電梯的設計本質上是根據(jù)領域知識對制造資源中計算資源的使用,通過面向電梯產(chǎn)業(yè)聯(lián)盟的云制造平臺對計算服務進行組合,可以為不同聯(lián)盟企業(yè)用戶定制個性化的設計計算系統(tǒng)。圖7給出了電梯曳引機校驗服務組合的執(zhí)行過程。
(1) 根據(jù)曳引機校驗流程對云制造服務進行服務組合。通過云制造服務信息區(qū)查看服務的具體信息,在云制造服務庫中選取需要的服務,在服務組合操作區(qū)域定義服務調用流程,在服務匹配操作區(qū)域為服務節(jié)點之間添加參數(shù)匹配條件和參數(shù)依賴條件,最終生成云制造服務組合并產(chǎn)生相應的云制造服務組合描述文件,曳引機校驗流程服務組合和該組合涉及的具體服務如圖1和表1所示,相應生成的服務組合描述文件及參數(shù)依賴關系在第2節(jié)已做詳細說明。
(2) 引擎讀取服務組合描述文件開始執(zhí)行。曳引機校核服務組合包含的云制造服務顯示在服務列表區(qū),運行區(qū)中部顯示當前正在執(zhí)行的云制造服務的輸入?yún)?shù)表單,底部顯示服務調用結果。所有執(zhí)行步驟完成后最終云制造服務組合得出執(zhí)行結果“max<1,滿足設計要求”,與實際設計結果相符。
按照上述流程,云制造平臺管理員對所有云制造服務組合進行管理,根據(jù)電梯企業(yè)用戶各自提出的服務組合定制需求,為不同的企業(yè)組合出個性化的電梯設計計算服務組合。通過云制造平臺,如圖8所示垂直梯設計計算和扶梯設計計算的流程,分別為西奧電梯公司設計了垂直梯設計設計算服務組合,為巨人電梯公司設計了扶梯設計計算服務組合,并同時在執(zhí)行引擎中進行執(zhí)行,執(zhí)行效果如圖9所示。
圖8 電梯設計計算服務流程圖
圖9 電梯設計計算服務組合執(zhí)行引擎運行效果圖
企業(yè)設計人員通過選擇垂直梯設計計算服務組合和扶梯設計計算服務組合進行執(zhí)行,最后獲得垂直梯和扶梯的設計計算說明書。由實例運行結果可知,該引擎框架能正確解析云制造服務組合的執(zhí)行流程,并實現(xiàn)云制造服務的自動調用,進一步推進了云制造技術的發(fā)展,使云制造平臺在集成企業(yè)以服務方式發(fā)布的制造資源的同時,支持用戶在產(chǎn)業(yè)聯(lián)盟電梯產(chǎn)品的設計、生產(chǎn)、裝配、測試、認證等制造活動過程中,自主、高效、靈活地組合所需要的設計服務、分析服務、裝配服務、測試服務,并且將最終的組合方案以云制造服務組合的形式由引擎自動執(zhí)行,實現(xiàn)企業(yè)間資源共享和按需調度。
云制造模式下,服務組合是實現(xiàn)制造資源增值的重要手段。本文提出了一種面向云制造的服務組合執(zhí)行引擎框架,對云制造服務組合的執(zhí)行方法、運行機制、框架結構進行了詳細闡述。基于該執(zhí)行引擎,可以解析制造服務組合描述文件,構造云制造服務節(jié)點和云制造服務依賴邊,實現(xiàn)了動態(tài)環(huán)境下制造服務組合的自動執(zhí)行。最后以面向產(chǎn)業(yè)聯(lián)盟的云制造服務平臺為例,驗證了執(zhí)行引擎框架的可行性和有效性。下一步將針對云制造服務組合的高并發(fā)執(zhí)行情況下,確保執(zhí)行引擎執(zhí)行準確率的同時提高執(zhí)行效率進行研究。
[1] 李伯虎, 張霖, 王時龍, 等. 云制造——面向服務的網(wǎng)絡化制造新模式[J]. 計算機集成制造系統(tǒng), 2010, 16(1): 1-7.
[2] 李伯虎, 張霖, 任磊, 等. 再論云制造[J]. 計算機集成制造系統(tǒng), 2011, 17(3): 449-457.
[3] 張霖, 羅永亮, 陶飛, 等. 制造云構建關鍵技術研究[J]. 計算機集成制造系統(tǒng), 2010, 16(11): 2510-2520.
[4] 陶飛, 張霖, 郭華, 等. 云制造特征及云服務組合關鍵問題研究[J]. 計算機集成制造系統(tǒng), 2011, 17(3): 477-486.
[5] 易樹平, 劉覓, 溫沛涵. 基于全生命周期的云制造服務研究綜述[J]. 計算機集成制造系統(tǒng), 2016, 22(4): 871-883.
[6] 尹瀚坤, 尹超, 龔小容, 等. 汽摩零部件新產(chǎn)品開發(fā)云制造平臺總體框架及關鍵技術[J]. 計算機集成制造系統(tǒng), 2013, 19(9): 2332-2339.
[7] 楊琛, 王中杰, 劉朝輝, 等. 面向起重機企業(yè)的云制造服務平臺的研究與應用[J]. 系統(tǒng)仿真學報, 2017, 29(6): 1351-1358.
[8] 楊晨, 李伯虎, 柴旭東, 等. 面向云制造的云仿真支撐框架及應用過程模型[J]. 計算機集成制造系統(tǒng), 2012, 18(7): 1444-1452.
[9] 趙秋云, 魏樂, 舒紅平. 基于業(yè)務流程的制造云服務組合模型[J]. 計算機應用, 2014, 34(11): 3100-3103.
[10] 宋波, 李妙妍. 面向Web服務的BPEL的研究與實現(xiàn)[J]. 計算機工程與設計, 2007, 28(9): 2212-2214.
[11] 王朔, 王忠杰, 于夢, 等. 層次化服務流程向可執(zhí)行BPEL轉換的方法[J]. 計算機科學與探索, 2015, 9(7): 781-792.
[12] 鐵威, 黃志球, 王進, 等. 基于BPEL的RESTful Web服務異步交互及組合研究[J]. 計算機工程與科學, 2013, 35(4): 29-36.
[13] 班倩超, 劉旭東, 曾晉, 等. 基于BPMN的服務組合執(zhí)行引擎的研究與實現(xiàn)[J]. 計算機應用研究, 2009, 26(7): 2554-2558.
[14] 孫強, 馬炳先, 孫華強. Web服務組合構建與執(zhí)行的Petri網(wǎng)平臺研究[J]. 計算機科學, 2016, 43(11): 117-120.
[15] 陳偉安, 高春鳴. 一種基于反饋控制的Web服務組合執(zhí)行引擎設計[J]. 計算機工程與應用, 2007, 43(29): 154-158.
[16] YADEKAR Y, SHEHAB E, MEHNEN J. Taxonomy and uncert-ainties of cloud manufacturing [J]. International Journal of Agile Systems & Management, 2016, 9(1): 48-66.
[17] LIU W, LIU B, SUN D, et al. Study on multi-task oriented services composition and optimisation with the ‘multi-composition for each task’ pattern in cloud manufacturing systems [J]. International Journal of Computer Integrated Manufacturing, 2013, 26(8): 786-805.
[18] 章振杰, 張元鳴, 徐雪松, 等. 基于動態(tài)匹配網(wǎng)絡的制造服務組合自適應方法[J/OL]. 軟件學報, 2018, 29(11). [2018-02-05]. http://www.jos.org.cn/1000-9825/ 5475.html.
[19] 黃貽望, 徐松金, 馮在文, 等. 基于數(shù)據(jù)流約束的可配置業(yè)務流程分析與驗證[J]. 計算機集成制造系統(tǒng), 2017, 23(8): 1797-1808.
[20] 易良辰, 黃林鵬. 基于抽象狀態(tài)機的普適服務組合分析與驗證[J]. 微電子學和計算機, 2013, 30(3): 122-126.
[21] 敬石開, 姜浩, 許文婷, 等. 考慮執(zhí)行可靠性的云制造服務組合算法[J]. 計算機輔助設計與圖形學學報, 2014, 26(3): 392-400.
[22] 單保華, 韓燕波, 李厚福, 等. 一種驗證業(yè)務級服務組合可執(zhí)行能力的方法[J]. 計算機科學, 2006, 33 (3): 114-116.
[23] 劉之強, 李紅燕, 王磊, 等. 面向業(yè)務流程的數(shù)據(jù)模型異常檢測方法[J]. 計算機學報, 2010, 33(8): 1349-1358.
[24] 肖剛, 柯旭東, 張元鳴, 等. 面向產(chǎn)業(yè)聯(lián)盟的云制造應用模式及關鍵技術研究[J]. 浙江工業(yè)大學學報, 2018, 46(1): 11-20.
Research on Service Composition Execution Engine Framework for Cloud Manufacturing
XIAO Gang1,2, XIANG Zherui1, ZHANG Yuanming2, ZHANG Zhenjie1, LU Jiawei2, GAO Fei2
(1. College of Mechanical Engineering, Zhejiang University of Technology, Hangzhou Zhejiang 310014, China; 2. College of Computer Science and Technology, Zhejiang University of Technology, Hangzhou Zhejiang 310023, China)
In the cloud manufacturing model, manufacturing resources are encapsulated into manufacturing services and they meet users’ complex needs in service composition. Aiming at the efficiency, correctness and dynamic of the implementation requirements of cloud manufacturing service composition, Service Composition Execution Engine Framework for Cloud Manufacturing are proposed. By parsing cloud manufacturing service composition description file, this paper constructs service composition nodes and service composition dependencies and establishes the service composition node parameter association relationship and summarize the corresponding execution rules. The dynamic implementation of Manufacturing Service Compositions is carried out through service composition execution algorithm based on execution status change. Finally, an example of a cloud manufacturing service composition execution engine for the elevator industry alliance is given, which verifies the feasibility and effectiveness of the framework.
cloud manufacturing; service composition; service composition execution; execution engine
TP 311
10.11996/JG.j.2095-302X.2018061165
A
2095-302X(2018)06-1165-10
2018-03-08;
2018-06-04
浙江省重大科技專項(2014C01048,2018C01064);浙江省公益性技術項目(2017C31014)
肖 剛(1965-),男,浙江上虞人,教授,博士。主要研究方向為云計算、云制造、智能信息系統(tǒng)。E-mail:xg@zjut.edu.cn