肖 剛,項(xiàng)哲銳,張?jiān)Q,章振杰,陸佳煒,高 飛
?
面向云制造的服務(wù)組合執(zhí)行引擎框架研究
肖 剛1,2,項(xiàng)哲銳1,張?jiān)Q2,章振杰1,陸佳煒2,高 飛2
(1. 浙江工業(yè)大學(xué)機(jī)械工程學(xué)院,浙江 杭州 310014;2. 浙江工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310023)
云制造模式下,制造資源被封裝成制造服務(wù),通常以服務(wù)組合的方式滿足用戶復(fù)雜的制造需求。針對(duì)云制造服務(wù)組合執(zhí)行過程中高效性、準(zhǔn)確性和動(dòng)態(tài)性等要求,提出了面向云制造的服務(wù)組合執(zhí)行引擎框架,并詳細(xì)闡述了引擎運(yùn)行機(jī)制。首先,通過解析云制造服務(wù)組合描述文件,構(gòu)造服務(wù)組合節(jié)點(diǎn)和服務(wù)組合依賴邊,建立服務(wù)組合節(jié)點(diǎn)參數(shù)關(guān)聯(lián)關(guān)系,歸納推倒出相應(yīng)的執(zhí)行規(guī)則。然后,基于執(zhí)行狀態(tài)變更的服務(wù)組合執(zhí)行算法實(shí)現(xiàn)了制造服務(wù)組合的動(dòng)態(tài)執(zhí)行。最后,給出了面向電梯產(chǎn)業(yè)聯(lián)盟的云制造服務(wù)組合執(zhí)行引擎實(shí)例,驗(yàn)證了框架的可行性和有效性。
云制造;服務(wù)組合;服務(wù)組合執(zhí)行;執(zhí)行引擎
云制造(cloud manufacturing,CMfg)是一種面向服務(wù)的網(wǎng)絡(luò)化制造新模式[1],利用云計(jì)算、物聯(lián)網(wǎng)等技術(shù)將各類制造資源和制造能力虛擬化、服務(wù)化,通過云制造平臺(tái)實(shí)現(xiàn)多方共贏、普適化和高效的共享與協(xié)同[2]。云制造模式中,用戶發(fā)布制造任務(wù)后選擇合適的云制造服務(wù),在業(yè)務(wù)流程的驅(qū)動(dòng)下[3]得到云制造服務(wù)組合。云制造服務(wù)組合作為提高云制造資源利用率、實(shí)現(xiàn)制造資源增值的關(guān)鍵途徑之一,對(duì)云制造的實(shí)施和開展具有重要作用[4]。為完成制造任務(wù),需要在云制造服務(wù)組合的執(zhí)行階段[5]對(duì)制造服務(wù)進(jìn)行調(diào)用。目前,眾多云制造平臺(tái)[6-8]處于研發(fā)試用階段,用戶已經(jīng)可以在云制造平臺(tái)上對(duì)制造服務(wù)進(jìn)行組合來滿足自身的業(yè)務(wù)需求[9]。因此如何有效地對(duì)云制造服務(wù)組合進(jìn)行執(zhí)行,成為云制造領(lǐng)域迫切需要解決的問題。
針對(duì)服務(wù)組合的執(zhí)行問題,研究者們提出了多種服務(wù)組合執(zhí)行方案:宋波和李妙妍[10]提出了先創(chuàng)建服務(wù)組合模型,然后將模型轉(zhuǎn)化為BPEL描述,最后在BPEL引擎上加以執(zhí)行的方法;王朔等[11]針對(duì)服務(wù)組合模型轉(zhuǎn)化為BPEL后的執(zhí)行效率問題,提出了層次化服務(wù)流程向可執(zhí)行BPEL轉(zhuǎn)換的方法對(duì)服務(wù)組合執(zhí)行進(jìn)行優(yōu)化;鐵威等[12]通過擴(kuò)展BPEL元模型,增加了BPEL對(duì)異步RESTful Web服務(wù)組合的支持,并設(shè)計(jì)實(shí)現(xiàn)了擴(kuò)展后的BPEL執(zhí)行引擎。但是以上方案需要建立服務(wù)組合模型并進(jìn)行模型轉(zhuǎn)換,流程較為復(fù)雜,需要專業(yè)的開發(fā)人員。班倩超等[13]針對(duì)業(yè)務(wù)模型轉(zhuǎn)化為執(zhí)行模型的語義失配缺陷問題,提出了一種基于業(yè)務(wù)流程建模標(biāo)注的Web服務(wù)組合執(zhí)行方案,但一定程度依賴于Web服務(wù)的結(jié)構(gòu),不具備良好的通用性。孫強(qiáng)等[14]將Petri網(wǎng)應(yīng)用于服務(wù)組合領(lǐng)域,使用基于Petri網(wǎng)的服務(wù)組合執(zhí)行引擎實(shí)現(xiàn)服務(wù)組合的執(zhí)行;陳偉安和高春鳴[15]針對(duì)Web服務(wù)組合執(zhí)行引擎中解耦流程執(zhí)行和成分Web服務(wù)調(diào)用問題,提出了一種基于反饋控制的Web服務(wù)組合執(zhí)行引擎,提高引擎性能。但是這些方法沒有考慮服務(wù)組合執(zhí)行過程中的流程判斷問題,不能應(yīng)用于包含選擇、并行等結(jié)構(gòu)的服務(wù)組合。
以上方案并不能很好地運(yùn)用于云制造服務(wù)組合的執(zhí)行:①自身方案不夠完善,存在各自不足;②面向的服務(wù)對(duì)象主要為傳統(tǒng)Web服務(wù)。與傳統(tǒng)Web服務(wù)相比,云制造服務(wù)的調(diào)用周期較長(zhǎng),在復(fù)雜多變的云制造運(yùn)行環(huán)境下調(diào)用條件更為苛刻[16-18],需要在執(zhí)行過程中通過流程驗(yàn)證方法[19-23]防止服務(wù)組合執(zhí)行階段因服務(wù)失效造成執(zhí)行失敗。
結(jié)合上述分析,服務(wù)組合執(zhí)行引擎能較好地改進(jìn)上述方案的不足,具有較大的現(xiàn)實(shí)意義。執(zhí)行引擎解耦了服務(wù)選擇和服務(wù)執(zhí)行過程,實(shí)現(xiàn)了多服務(wù)之間的參數(shù)傳遞和自動(dòng)調(diào)用,使用戶專注于業(yè)務(wù)邏輯層面的服務(wù)優(yōu)選組合操作,由執(zhí)行引擎對(duì)服務(wù)進(jìn)行統(tǒng)一調(diào)度,同時(shí)為云平臺(tái)后期對(duì)云制造服務(wù)進(jìn)行質(zhì)量監(jiān)控、流量統(tǒng)計(jì)以及調(diào)用決策等方面的進(jìn)一步研究打下基礎(chǔ)。本文通過解析云制造服務(wù)組合中的服務(wù)組合依賴和服務(wù)組合節(jié)點(diǎn),保證執(zhí)行過程中流程判斷的正確性,通過基于執(zhí)行狀態(tài)變更的服務(wù)組合執(zhí)行算法實(shí)現(xiàn)云制造模式下服務(wù)組合的動(dòng)態(tài)執(zhí)行,提出了一種面向云制造的服務(wù)組合執(zhí)行引擎框架。
如圖1所示,對(duì)于一個(gè)云制造服務(wù)組合,包含了1、2、3、4、5、6、7、8等8個(gè)云制造服務(wù),每個(gè)方塊表示一個(gè)云制造服務(wù),每個(gè)服務(wù)的具體信息見表1,云制造服務(wù)之間的連線代表2個(gè)云制造服務(wù)之間的依賴關(guān)系。
該服務(wù)組合執(zhí)行流程如下:Start表示服務(wù)組合的原始輸入?yún)?shù)I、T,獲得原始輸入后開始調(diào)用服務(wù)1、5,得到1的調(diào)用結(jié)果、、、、和5的調(diào)用結(jié)果后,將、、、作為2的輸入?yún)?shù),自動(dòng)執(zhí)行2得到調(diào)用結(jié)果P,結(jié)合1的調(diào)用結(jié)果自動(dòng)調(diào)用3,獲得3的調(diào)用結(jié)果T按照此規(guī)則,最終獲得8的調(diào)用結(jié)果A作為云制造服務(wù)組合的執(zhí)行結(jié)果。
圖1 云制造服務(wù)組合
表1 服務(wù)屬性表
云制造模式下,制造企業(yè)通過虛擬化技術(shù)將制造資源封裝成服務(wù)并發(fā)布到云制造平臺(tái)中,用戶通過服務(wù)組合的方式滿足自身復(fù)雜的制造需求。由于用戶需求的多樣化,會(huì)產(chǎn)生大量的云制造服務(wù)組合,所有服務(wù)組合共享云平臺(tái)服務(wù)庫(kù)中的云制造服務(wù)。如圖2所示,由于云制造服務(wù)組合只包含了需要調(diào)用的服務(wù)及其調(diào)用順序,為了實(shí)現(xiàn)其執(zhí)行,需要設(shè)計(jì)一個(gè)執(zhí)行引擎進(jìn)行解讀,管理服務(wù)參數(shù),按照組合邏輯自動(dòng)調(diào)用云制造服務(wù)。
圖2 服務(wù)組合與服務(wù)組合執(zhí)行
服務(wù)組合是由多個(gè)服務(wù)及服務(wù)間復(fù)雜的調(diào)用邏輯和嚴(yán)格的調(diào)用時(shí)序所共同組成的整體。為了保證以服務(wù)組合的方式實(shí)現(xiàn)業(yè)務(wù)流程的正確運(yùn)行,本文將服務(wù)組合中的服務(wù)及其關(guān)系抽象為服務(wù)組合節(jié)點(diǎn)、服務(wù)組合依賴邊和節(jié)點(diǎn)參數(shù)關(guān)聯(lián),進(jìn)行結(jié)構(gòu)化描述,以Json格式進(jìn)行持久化,生成服務(wù)組合描述文件,保存在云平臺(tái)中。以圖1中的服務(wù)組合為例,其云制造服務(wù)組合描述文件如下所示:
{"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": "用于曳引機(jī)扭矩校核",
"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": "曳引機(jī)校核系統(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": "曳引機(jī)技術(shù)參數(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": "曳引機(jī)選型","y": 194.33333206176758,"x": 455.75},
…
}
}
服務(wù)組合描述文件中的Nodes和Links是對(duì)服務(wù)組合節(jié)點(diǎn)和服務(wù)組合依賴邊的文本描述。Nodes代表云制造服務(wù)組合中所有服務(wù)組合節(jié)點(diǎn)的集合,組合文件通過該集合描述執(zhí)行過程中需要調(diào)用的云制造服務(wù);Links代表云制造服務(wù)組合中所有服務(wù)組合依賴邊集合,組合文件通過該集合描述云制造服務(wù)之間的調(diào)用順序、參數(shù)匹配以及參數(shù)依賴。
服務(wù)組合節(jié)點(diǎn)是指云制造服務(wù)組合系統(tǒng)中的服務(wù)本身以及其所依賴的參數(shù)和依賴該節(jié)點(diǎn)輸出的參數(shù),用表示。
定義1. 服務(wù)組合節(jié)點(diǎn)可表示為一個(gè)四元組=(,,,),其中,為節(jié)點(diǎn)的標(biāo)識(shí);為節(jié)點(diǎn)所包含服務(wù)的名稱;為節(jié)點(diǎn)所依賴的輸入?yún)?shù),其個(gè)數(shù)稱為入度;為依賴節(jié)點(diǎn)輸出的參數(shù),其個(gè)數(shù)稱為出度。
服務(wù)組合依賴邊是指云制造服務(wù)組合系統(tǒng)中節(jié)點(diǎn)之間的參數(shù)依賴關(guān)系,用表示。
定義2. 服務(wù)組合依賴邊可表示為五元組=(,,,,),其中,為依賴邊的標(biāo)識(shí);o為依賴邊的起點(diǎn);o為依賴邊的終點(diǎn);為依賴邊的匹配條件;為依賴邊的依賴條件,不存在依賴條件時(shí)用表示。
服務(wù)組合節(jié)點(diǎn)參數(shù)關(guān)聯(lián)關(guān)系指的是作用于同一節(jié)點(diǎn)的輸入?yún)?shù)或者輸出參數(shù)之間的關(guān)系。每個(gè)云制造服務(wù)都包含輸入?yún)?shù)和輸出參數(shù),在服務(wù)組合過程中,復(fù)雜的組合邏輯使得輸入、輸出參數(shù)之間產(chǎn)生各種關(guān)聯(lián),通過服務(wù)組合節(jié)點(diǎn)參數(shù)關(guān)聯(lián)關(guān)系對(duì)其進(jìn)行闡述,作為服務(wù)組合在執(zhí)行過程中流程判斷的依據(jù)。服務(wù)組合節(jié)點(diǎn)參數(shù)關(guān)聯(lián)關(guān)系如圖3所示,包含以下4種類型:
(1) 輸入并行關(guān)系。云制造服務(wù)組合節(jié)點(diǎn)的入度為,以該節(jié)點(diǎn)為終點(diǎn)的依賴邊的個(gè)數(shù)為,若滿足=,則稱該節(jié)點(diǎn)為輸入并行關(guān)系。
(2) 輸入選擇關(guān)系。云制造服務(wù)組合節(jié)點(diǎn)的入度為,以該節(jié)點(diǎn)為終點(diǎn)的依賴邊的個(gè)數(shù)為,若滿足<,則稱該節(jié)點(diǎn)為輸入選擇關(guān)系。
(3) 輸出并行關(guān)系。云制造服務(wù)組合節(jié)點(diǎn)的出度為,以該節(jié)點(diǎn)為起點(diǎn)的依賴邊的個(gè)數(shù)為,若滿足=,則稱該節(jié)點(diǎn)為輸出并行關(guān)系。
(4) 輸出選擇關(guān)系。云制造服務(wù)組合節(jié)點(diǎn)的出度為,以該節(jié)點(diǎn)為起點(diǎn)的依賴邊的個(gè)數(shù)為,若滿足<,則稱該節(jié)點(diǎn)為輸出選擇關(guān)系。
圖3 云制造服務(wù)節(jié)點(diǎn)NO參數(shù)關(guān)聯(lián)關(guān)系
當(dāng)云制造服務(wù)組合執(zhí)行時(shí),執(zhí)行引擎會(huì)讀取其描述文件,在內(nèi)存中生成云制造服務(wù)組合執(zhí)行時(shí)對(duì)象(cloud manufacturing service composition execution object,CMSCEO),完成服務(wù)組合的一次實(shí)例化。每個(gè)CMSCEO包含區(qū)分執(zhí)行時(shí)對(duì)象的唯一標(biāo)志符,執(zhí)行狀態(tài)信息(包括等待、執(zhí)行、掛起和結(jié)束狀態(tài))以及記錄運(yùn)行過程的執(zhí)行上下文。服務(wù)組合每次執(zhí)行都會(huì)產(chǎn)生一個(gè)新的執(zhí)行時(shí)對(duì)象。
定義3.云制造服務(wù)組合執(zhí)行時(shí)對(duì)象可以表示為一個(gè)三元組=(V,l,V),其中:
(1)V={NO|NO是服務(wù)組合節(jié)點(diǎn),1≤≤},表示所有服務(wù)組合節(jié)點(diǎn)集合;
(2)l={LO|LO是服務(wù)組合依賴邊,1≤≤},表示所有服務(wù)組合依賴邊集合;
(3)V={NO|j是服務(wù)組合節(jié)點(diǎn),1≤≤},表示正在執(zhí)行的服務(wù)組合節(jié)點(diǎn)集合。
云制造服務(wù)組合執(zhí)行時(shí)對(duì)象初始化過程包括服務(wù)組合節(jié)點(diǎn)初始化和服務(wù)組合依賴邊初始化。
首先,讀取服務(wù)組合描述文件Nodes中的信息,獲取服務(wù)組合包含的云制造服務(wù)以及服務(wù)具體信息完成云制造服務(wù)組合節(jié)點(diǎn)初始化。其次,讀取服務(wù)組合描述文件Links中的信息,提取服務(wù)間的參數(shù)匹配關(guān)系和參數(shù)依賴關(guān)系完成云制造服務(wù)組合依賴邊初始化。然后,根據(jù)獲得的節(jié)點(diǎn)和依賴邊,計(jì)算每個(gè)服務(wù)組合節(jié)點(diǎn)的出度和入度,確定每個(gè)服務(wù)組合節(jié)點(diǎn)的參數(shù)關(guān)聯(lián)關(guān)系。最終,云制造服務(wù)組合節(jié)點(diǎn)和云制造服務(wù)組合依賴邊的集合共同構(gòu)成執(zhí)行時(shí)對(duì)象。
以圖1中的服務(wù)組合為例,執(zhí)行時(shí)對(duì)象的初始化過程為:
對(duì)于云制造服務(wù)1,該服務(wù)的輸入?yún)?shù)為I,輸出參數(shù)為、、、、,設(shè)1為包含1的云制造服務(wù)組合節(jié)點(diǎn),該節(jié)點(diǎn)的為1。因?yàn)?的輸入?yún)?shù)I依賴于Start節(jié)點(diǎn)的1個(gè)原始參數(shù)I,所以節(jié)點(diǎn)1的入度為1;1的輸出參數(shù)被2的輸入?yún)?shù)和6的輸入?yún)?shù)所依賴,輸出參數(shù)未被其他服務(wù)參數(shù)依賴,結(jié)合其他輸出參數(shù)、、的被依賴情況,可得到共有7個(gè)參數(shù)依賴于節(jié)點(diǎn)1的輸出,所以出度為7。最終得到節(jié)點(diǎn)1={1,1,1,7}。同理,可得節(jié)點(diǎn)1~8。
對(duì)于云制造服務(wù)組合節(jié)點(diǎn)1和2,由于1的輸出參數(shù)作為2的輸入?yún)?shù),即參數(shù)匹配關(guān)系:→,同時(shí)根據(jù)約束條件只有當(dāng)1的輸出參數(shù)大于2 000時(shí)才能作為2的輸入?yún)?shù)的輸入,即存在參數(shù)依賴關(guān)系:>2000,所以涉及的依賴邊表示為1={1,1,2,→,>2000}。同理??傻靡蕾囘?~24。
云制造服務(wù)組合節(jié)點(diǎn)和云制造服務(wù)組合依賴邊初始化完成后,對(duì)服務(wù)組合節(jié)點(diǎn)參數(shù)關(guān)聯(lián)關(guān)系進(jìn)行判斷。服務(wù)組合節(jié)點(diǎn)2={2,2,4,1},該節(jié)點(diǎn)的輸入?yún)?shù)依賴于1的、、、的4個(gè)輸出參數(shù),所以入度為4,以該節(jié)點(diǎn)為終點(diǎn)的依賴邊有1={1,1,2,→,>2000},2={1,1,2,→,},3={1,1,2,→,},4={1,1,2,→,},共4條,與入度數(shù)量相等,所以為輸入并行關(guān)系;共有1個(gè)參數(shù)(3輸入?yún)?shù)P)依賴于該節(jié)點(diǎn)的輸出參數(shù),所以出度為1,以該節(jié)點(diǎn)為起點(diǎn)的依賴邊有8={1,2,3,P→P,},共1個(gè),與出度數(shù)量相等,所以為輸出并行關(guān)系。同理,可得其他服務(wù)組合節(jié)點(diǎn)的參數(shù)關(guān)聯(lián)關(guān)系。
將依賴于Start節(jié)點(diǎn)的1和5歸入正在執(zhí)行的服務(wù)組合節(jié)點(diǎn)集合,最終得到執(zhí)行時(shí)對(duì)象如下:
V={NO|NO是云制造服服組合節(jié)點(diǎn),1≤≤8};
l= {LO|LO是云制造服務(wù)組合依賴邊,1≤≤24 };
V= {1,5}。
云制造服務(wù)組合執(zhí)行引擎的框架如圖4所示,包括業(yè)務(wù)層、調(diào)度層、執(zhí)行層、服務(wù)層和交互層。
(1) 業(yè)務(wù)層。執(zhí)行引擎在業(yè)務(wù)層中對(duì)云制造服務(wù)組合描述文件進(jìn)行相關(guān)操作,包括云制造服務(wù)組合描述文件的創(chuàng)建、查找、存儲(chǔ)、修改以及刪除,并對(duì)外提供操作接口。
圖4 云制造服務(wù)組合執(zhí)行引擎框架
(2) 調(diào)度層。執(zhí)行引擎在調(diào)度層中進(jìn)行云制造服務(wù)組合執(zhí)行任務(wù)的調(diào)度。調(diào)度層中包含任務(wù)請(qǐng)求隊(duì)列、任務(wù)線程池、任務(wù)管理器、負(fù)載監(jiān)測(cè)模塊,負(fù)責(zé)云制造服務(wù)組合從開始運(yùn)行到執(zhí)行完畢的整個(gè)生命周期管理。其中,任務(wù)請(qǐng)求隊(duì)列是一個(gè)隊(duì)列對(duì)象,用戶每次發(fā)起云制造服務(wù)組合執(zhí)行請(qǐng)求,執(zhí)行引擎將把請(qǐng)求加入該隊(duì)列中;任務(wù)線程池是執(zhí)行引擎管理工作線程的工具,可以根據(jù)硬件條件和用戶需求設(shè)置有效的工作線程數(shù)量;任務(wù)管理器是執(zhí)行引擎管理任務(wù)執(zhí)行請(qǐng)求的工具,負(fù)責(zé)從隊(duì)列中獲取任務(wù)執(zhí)行請(qǐng)求,以及為任務(wù)請(qǐng)求分配工作線程;負(fù)載監(jiān)測(cè)模塊用于根據(jù)當(dāng)前任務(wù)數(shù)量監(jiān)測(cè)引擎負(fù)載。
(3) 執(zhí)行層。執(zhí)行引擎在執(zhí)行層完成云制造服務(wù)組合的執(zhí)行流程解析和服務(wù)調(diào)用。執(zhí)行層包含預(yù)處理模塊、流程解析模塊、服務(wù)調(diào)用模塊、服務(wù)監(jiān)控模塊、異常處理模塊等。其中,預(yù)處理模塊負(fù)責(zé)讀取云制造服務(wù)組合文件,并將云制造服務(wù)組合文件轉(zhuǎn)化為執(zhí)行時(shí)對(duì)象;流程解析模塊負(fù)責(zé)執(zhí)行時(shí)對(duì)象執(zhí)行過程中節(jié)點(diǎn)的服務(wù)執(zhí)行條件判斷和執(zhí)行狀態(tài)轉(zhuǎn)移條件判斷;服務(wù)調(diào)用模塊負(fù)責(zé)接收用戶外部參數(shù)輸入,并通過服務(wù)操作接口實(shí)現(xiàn)云制造服務(wù)的調(diào)用;服務(wù)監(jiān)控模塊負(fù)責(zé)服務(wù)調(diào)用過程中的服務(wù)監(jiān)控,并將服務(wù)調(diào)用日志記錄在服務(wù)狀態(tài)文檔中;異常處理模塊負(fù)責(zé)云制造服務(wù)組合執(zhí)行過程中發(fā)生服務(wù)調(diào)用異常時(shí)的相關(guān)處理操作。
(4) 服務(wù)層。執(zhí)行引擎在服務(wù)層中對(duì)云制造服務(wù)進(jìn)行相關(guān)操作,包括云制造服務(wù)的查找、聚類、替換以及調(diào)用,并對(duì)外提供云制造服務(wù)操作接口。
(5) 交互層。交互層是由前端頁(yè)面組成,提供用戶對(duì)執(zhí)行引擎進(jìn)行各種操作的入口,包括業(yè)務(wù)層交互、調(diào)度層交互、執(zhí)行層交互和服務(wù)層交互。用戶通過業(yè)務(wù)層交互對(duì)執(zhí)行引擎發(fā)起云制造服務(wù)組合描述文件的相關(guān)操作請(qǐng)求;用戶通過調(diào)度層交互查看引擎當(dāng)前包含的執(zhí)行任務(wù),并可以使用任務(wù)管理器設(shè)置任務(wù)執(zhí)行的優(yōu)先級(jí);用戶通過執(zhí)行層交互輸入服務(wù)調(diào)用需要的外部輸入?yún)?shù),查看服務(wù)調(diào)用結(jié)果;用戶通過服務(wù)層交互對(duì)執(zhí)行引擎發(fā)起云制造服務(wù)的相關(guān)操作請(qǐng)求。
云制造服務(wù)組合的執(zhí)行需要引擎框架中的業(yè)務(wù)層、調(diào)度層、執(zhí)行層、服務(wù)層和交互層共同協(xié)作完成,執(zhí)行引擎的執(zhí)行流程如圖5所示。用戶通過交互層選擇需要運(yùn)行的云制造服務(wù)組合并通過服務(wù)層提供的云制造服務(wù)操作接口查看云制造服務(wù)組合中包含的云制造服務(wù)的具體信息,在業(yè)務(wù)層中調(diào)用云制造服務(wù)組合操作接口,根據(jù)讀取的服務(wù)組合文件生成運(yùn)行實(shí)例,在調(diào)度層中將運(yùn)行實(shí)例放入運(yùn)行實(shí)例隊(duì)列,執(zhí)行引擎不斷輪詢?nèi)蝿?wù)線程池中的空閑線程數(shù)量,當(dāng)查詢到有空閑的任務(wù)線程并且引擎負(fù)載在正常范圍內(nèi)時(shí),任務(wù)管理器將運(yùn)行實(shí)例從隊(duì)列中取出,占用該空閑任務(wù)線程。任務(wù)線程在執(zhí)行層中生成云制造服務(wù)組合執(zhí)行時(shí)對(duì)象,調(diào)用流程解析模塊解析執(zhí)行時(shí)對(duì)象的執(zhí)行流程順序,然后結(jié)合服務(wù)調(diào)用模塊實(shí)現(xiàn)服務(wù)的自動(dòng)調(diào)用,同時(shí)用戶通過交互層輸入服務(wù)調(diào)用需要的外部參數(shù),利用服務(wù)監(jiān)控模塊和異常處理模塊確保服務(wù)調(diào)用的正常執(zhí)行,得到服務(wù)調(diào)用的結(jié)果。
圖5 執(zhí)行引擎運(yùn)行流程
云制造服務(wù)組合的執(zhí)行過程可以抽象為云制造服務(wù)組合執(zhí)行時(shí)對(duì)象(V,l,V)的執(zhí)行狀態(tài)變更過程。每次組合節(jié)點(diǎn)中的云制造服務(wù)調(diào)用完成,則發(fā)生執(zhí)行狀態(tài)變更。串行業(yè)務(wù)流程所形成的云制造服務(wù)組合呈線性結(jié)構(gòu),引擎解析節(jié)點(diǎn)參數(shù)關(guān)聯(lián)關(guān)系依次調(diào)用云制造服務(wù),經(jīng)過一定次數(shù)的執(zhí)行狀態(tài)變更,得到最終結(jié)果;并行業(yè)務(wù)流程所形成的云制造服務(wù)組合呈分叉結(jié)構(gòu),引擎解析節(jié)點(diǎn)參數(shù)關(guān)聯(lián)關(guān)系,獲取并行服務(wù)的信息并發(fā)起調(diào)用,待多次執(zhí)行狀態(tài)變更操作完成,則并行業(yè)務(wù)流程結(jié)束。當(dāng)正在執(zhí)行的云制造服務(wù)組合節(jié)點(diǎn)集合V中節(jié)點(diǎn)數(shù)量為0時(shí),稱執(zhí)行狀態(tài)為穩(wěn)定狀態(tài),否則為不穩(wěn)定狀態(tài)。通過上述分析,將云制造服務(wù)組合執(zhí)行問題轉(zhuǎn)化為執(zhí)行狀態(tài)判斷流程。此時(shí)如若正在執(zhí)行的云制造服務(wù)組合發(fā)生變化(例如,服務(wù)失效),執(zhí)行引擎不會(huì)受其影響運(yùn)行出錯(cuò),而是根據(jù)服務(wù)組合的執(zhí)行狀態(tài)是否穩(wěn)定而繼續(xù)運(yùn)行,即將服務(wù)組合原本基于流程的靜態(tài)執(zhí)行轉(zhuǎn)化為動(dòng)態(tài)執(zhí)行。
如圖6所示,執(zhí)行狀態(tài)變更分為執(zhí)行狀態(tài)轉(zhuǎn)移和服務(wù)執(zhí)行兩個(gè)環(huán)節(jié),當(dāng)某個(gè)云制造服務(wù)組合節(jié)點(diǎn)執(zhí)行完畢后,獲取后續(xù)將要執(zhí)行的云制造服務(wù)組合節(jié)點(diǎn),對(duì)滿足執(zhí)行狀態(tài)轉(zhuǎn)移條件和服務(wù)執(zhí)行條件的節(jié)點(diǎn)完成執(zhí)行狀態(tài)變更操作。
圖6 執(zhí)行狀態(tài)變更示意圖
算法1. 服務(wù)組合動(dòng)態(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)變更的服務(wù)組合執(zhí)行算法見算法1,其中,為云制造服務(wù)組合節(jié)點(diǎn);l為云制造服務(wù)組合依賴邊;=為節(jié)點(diǎn)滿足服務(wù)執(zhí)行條件;=為依賴邊l的起點(diǎn)節(jié)點(diǎn)滿足到終點(diǎn)節(jié)點(diǎn)的執(zhí)行狀態(tài)轉(zhuǎn)移條件。其具體過程為:首先,獲取節(jié)點(diǎn)集合V進(jìn)行循環(huán)判斷,找出入度為0的節(jié)點(diǎn)放入正在執(zhí)行的節(jié)點(diǎn)集合V(第1~3行)。其次,對(duì)V中的節(jié)點(diǎn)循環(huán)判斷是否滿足服務(wù)執(zhí)行條件,如若節(jié)點(diǎn)滿足條件,則執(zhí)行節(jié)點(diǎn)包含的云制造服務(wù),將執(zhí)行結(jié)果保存在CMSCEO的上下文中(第4~7行)。然后將節(jié)點(diǎn)從V中去除,判斷與其后續(xù)節(jié)點(diǎn)是否滿足執(zhí)行狀態(tài)轉(zhuǎn)移條件,如果滿足,則將該后續(xù)節(jié)點(diǎn)放入V,繼續(xù)循環(huán)直到執(zhí)行狀態(tài)達(dá)到穩(wěn)定。最終,返回服務(wù)組合執(zhí)行結(jié)果(第8~17行)。
(1) 服務(wù)執(zhí)行條件的判斷規(guī)則為:當(dāng)判斷節(jié)點(diǎn)執(zhí)行條件時(shí),首先獲取以為終點(diǎn)并且滿足依賴條件的所有依賴邊,依次查詢依賴邊中包含的參數(shù)匹配條件,然后從的上下文中搜索依賴邊的起始節(jié)點(diǎn)的執(zhí)行結(jié)果,若所有匹配條件中涉及的參數(shù)都在上下文中找到對(duì)應(yīng)執(zhí)行結(jié)果,并且節(jié)點(diǎn)的輸入?yún)?shù)都有對(duì)應(yīng)的匹配參數(shù),則說明滿足節(jié)點(diǎn)執(zhí)行條件。
(2) 執(zhí)行狀態(tài)轉(zhuǎn)移條件的判斷規(guī)則為:設(shè)節(jié)點(diǎn)1服務(wù)執(zhí)行完畢,2為1的后續(xù)節(jié)點(diǎn),(,1,2,,)為連接1,2的依賴邊,開始進(jìn)行1到2的轉(zhuǎn)移條件判斷。①當(dāng)1為輸出并行關(guān)系,2為輸入并行關(guān)系時(shí):若滿足依賴條件,則說明滿足1到2執(zhí)行狀態(tài)轉(zhuǎn)移條件。②當(dāng)1為輸出并行關(guān)系,2為輸入選擇關(guān)系時(shí):若中是1的輸出參數(shù)與2的輸入?yún)?shù)的參數(shù)匹配關(guān)系,當(dāng)以2為終點(diǎn)并且匹配條件涉及該參數(shù)的依賴邊數(shù)目為1時(shí),若滿足的依賴條件,則說明滿足1到2執(zhí)行狀態(tài)轉(zhuǎn)移條件;當(dāng)以2為終點(diǎn)并且匹配條件涉及該參數(shù)的依賴邊數(shù)目>1時(shí),則說明參數(shù)是選擇邏輯,只有當(dāng)滿足依賴條件時(shí),說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉(zhuǎn)移條件,于此同時(shí)把其他依賴邊的置為。③當(dāng)1為輸出選擇關(guān)系,2為輸入并行關(guān)系時(shí),若中是1的輸出參數(shù)與2的輸入?yún)?shù)的參數(shù)匹配關(guān)系,當(dāng)以1為起點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目等于1,若滿足的依賴條件,則說明滿足1到2執(zhí)行狀態(tài)轉(zhuǎn)移條件;當(dāng)以1為起點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目>1,則說明參數(shù)是選擇邏輯,只有當(dāng)滿足依賴條件時(shí),說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉(zhuǎn)移條件,于此同時(shí)把其他依賴邊的置為。④當(dāng)1為輸出選擇關(guān)系,2為輸入選擇關(guān)系時(shí):若中是1的輸出參數(shù)與2的輸入?yún)?shù)的參數(shù)匹配關(guān)系。當(dāng)以1為起點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目等于1,以2為終點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目等于1,若滿足的依賴條件,則說明滿足1到2執(zhí)行狀態(tài)轉(zhuǎn)移條件;當(dāng)以1為起點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目等于1,以2為終點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目>1,只有當(dāng)滿足依賴條件時(shí),說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉(zhuǎn)移條件,于此同時(shí)把其他涉及參數(shù)的依賴邊的置為;當(dāng)以1為起點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目>1,以2為終點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目等于1,只有當(dāng)滿足依賴條件時(shí),說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉(zhuǎn)移條件,于此同時(shí)把其他涉及參數(shù)的依賴邊的置為;當(dāng)以1為起點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目>1,以2為終點(diǎn)并且涉及該參數(shù)的依賴邊數(shù)目>1,只有當(dāng)滿足依賴條件時(shí),說明有且僅有1能滿足到2的執(zhí)行狀態(tài)轉(zhuǎn)移條件,于此同時(shí)把其他涉及參數(shù)和的依賴邊的置為。
電梯作為一類重要的特種設(shè)備,對(duì)電梯企業(yè)的生產(chǎn)水平具有較高要求,然而由于大多數(shù)電梯企業(yè)屬于中小型企業(yè),制造資源短缺,不具備獨(dú)立自主研發(fā)的條件;另一方面,具有優(yōu)質(zhì)資源的大企業(yè),在生產(chǎn)過程中往往出現(xiàn)制造資源閑置現(xiàn)象。
本文依托面向電梯產(chǎn)業(yè)聯(lián)盟的云制造平臺(tái)[24],以Intel Xeon X3430 2.40 GH、8 G內(nèi)存、320 G硬盤的服務(wù)器和Windows10操作系統(tǒng)終端作為硬件開發(fā)環(huán)境,以Java和Javascript編程語言,Eclipse開發(fā)環(huán)境、Mysql數(shù)據(jù)庫(kù)、Tomcat7.0服務(wù)器、Windows10操作系統(tǒng)等為軟件開發(fā)環(huán)境,結(jié)合服務(wù)組合執(zhí)行引擎框架構(gòu)建了面向電梯產(chǎn)業(yè)聯(lián)盟的云制造服務(wù)組合執(zhí)行引擎,實(shí)現(xiàn)了云制造平臺(tái)對(duì)于大量個(gè)性化服務(wù)組合的執(zhí)行功能。
本節(jié)以電梯制造過程中的設(shè)計(jì)階段為例,驗(yàn)證執(zhí)行引擎的有效性。電梯的設(shè)計(jì)本質(zhì)上是根據(jù)領(lǐng)域知識(shí)對(duì)制造資源中計(jì)算資源的使用,通過面向電梯產(chǎn)業(yè)聯(lián)盟的云制造平臺(tái)對(duì)計(jì)算服務(wù)進(jìn)行組合,可以為不同聯(lián)盟企業(yè)用戶定制個(gè)性化的設(shè)計(jì)計(jì)算系統(tǒng)。圖7給出了電梯曳引機(jī)校驗(yàn)服務(wù)組合的執(zhí)行過程。
(1) 根據(jù)曳引機(jī)校驗(yàn)流程對(duì)云制造服務(wù)進(jìn)行服務(wù)組合。通過云制造服務(wù)信息區(qū)查看服務(wù)的具體信息,在云制造服務(wù)庫(kù)中選取需要的服務(wù),在服務(wù)組合操作區(qū)域定義服務(wù)調(diào)用流程,在服務(wù)匹配操作區(qū)域?yàn)榉?wù)節(jié)點(diǎn)之間添加參數(shù)匹配條件和參數(shù)依賴條件,最終生成云制造服務(wù)組合并產(chǎn)生相應(yīng)的云制造服務(wù)組合描述文件,曳引機(jī)校驗(yàn)流程服務(wù)組合和該組合涉及的具體服務(wù)如圖1和表1所示,相應(yīng)生成的服務(wù)組合描述文件及參數(shù)依賴關(guān)系在第2節(jié)已做詳細(xì)說明。
(2) 引擎讀取服務(wù)組合描述文件開始執(zhí)行。曳引機(jī)校核服務(wù)組合包含的云制造服務(wù)顯示在服務(wù)列表區(qū),運(yùn)行區(qū)中部顯示當(dāng)前正在執(zhí)行的云制造服務(wù)的輸入?yún)?shù)表單,底部顯示服務(wù)調(diào)用結(jié)果。所有執(zhí)行步驟完成后最終云制造服務(wù)組合得出執(zhí)行結(jié)果“max<1,滿足設(shè)計(jì)要求”,與實(shí)際設(shè)計(jì)結(jié)果相符。
按照上述流程,云制造平臺(tái)管理員對(duì)所有云制造服務(wù)組合進(jìn)行管理,根據(jù)電梯企業(yè)用戶各自提出的服務(wù)組合定制需求,為不同的企業(yè)組合出個(gè)性化的電梯設(shè)計(jì)計(jì)算服務(wù)組合。通過云制造平臺(tái),如圖8所示垂直梯設(shè)計(jì)計(jì)算和扶梯設(shè)計(jì)計(jì)算的流程,分別為西奧電梯公司設(shè)計(jì)了垂直梯設(shè)計(jì)設(shè)計(jì)算服務(wù)組合,為巨人電梯公司設(shè)計(jì)了扶梯設(shè)計(jì)計(jì)算服務(wù)組合,并同時(shí)在執(zhí)行引擎中進(jìn)行執(zhí)行,執(zhí)行效果如圖9所示。
圖8 電梯設(shè)計(jì)計(jì)算服務(wù)流程圖
圖9 電梯設(shè)計(jì)計(jì)算服務(wù)組合執(zhí)行引擎運(yùn)行效果圖
企業(yè)設(shè)計(jì)人員通過選擇垂直梯設(shè)計(jì)計(jì)算服務(wù)組合和扶梯設(shè)計(jì)計(jì)算服務(wù)組合進(jìn)行執(zhí)行,最后獲得垂直梯和扶梯的設(shè)計(jì)計(jì)算說明書。由實(shí)例運(yùn)行結(jié)果可知,該引擎框架能正確解析云制造服務(wù)組合的執(zhí)行流程,并實(shí)現(xiàn)云制造服務(wù)的自動(dòng)調(diào)用,進(jìn)一步推進(jìn)了云制造技術(shù)的發(fā)展,使云制造平臺(tái)在集成企業(yè)以服務(wù)方式發(fā)布的制造資源的同時(shí),支持用戶在產(chǎn)業(yè)聯(lián)盟電梯產(chǎn)品的設(shè)計(jì)、生產(chǎn)、裝配、測(cè)試、認(rèn)證等制造活動(dòng)過程中,自主、高效、靈活地組合所需要的設(shè)計(jì)服務(wù)、分析服務(wù)、裝配服務(wù)、測(cè)試服務(wù),并且將最終的組合方案以云制造服務(wù)組合的形式由引擎自動(dòng)執(zhí)行,實(shí)現(xiàn)企業(yè)間資源共享和按需調(diào)度。
云制造模式下,服務(wù)組合是實(shí)現(xiàn)制造資源增值的重要手段。本文提出了一種面向云制造的服務(wù)組合執(zhí)行引擎框架,對(duì)云制造服務(wù)組合的執(zhí)行方法、運(yùn)行機(jī)制、框架結(jié)構(gòu)進(jìn)行了詳細(xì)闡述。基于該執(zhí)行引擎,可以解析制造服務(wù)組合描述文件,構(gòu)造云制造服務(wù)節(jié)點(diǎn)和云制造服務(wù)依賴邊,實(shí)現(xiàn)了動(dòng)態(tài)環(huán)境下制造服務(wù)組合的自動(dòng)執(zhí)行。最后以面向產(chǎn)業(yè)聯(lián)盟的云制造服務(wù)平臺(tái)為例,驗(yàn)證了執(zhí)行引擎框架的可行性和有效性。下一步將針對(duì)云制造服務(wù)組合的高并發(fā)執(zhí)行情況下,確保執(zhí)行引擎執(zhí)行準(zhǔn)確率的同時(shí)提高執(zhí)行效率進(jìn)行研究。
[1] 李伯虎, 張霖, 王時(shí)龍, 等. 云制造——面向服務(wù)的網(wǎng)絡(luò)化制造新模式[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2010, 16(1): 1-7.
[2] 李伯虎, 張霖, 任磊, 等. 再論云制造[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2011, 17(3): 449-457.
[3] 張霖, 羅永亮, 陶飛, 等. 制造云構(gòu)建關(guān)鍵技術(shù)研究[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2010, 16(11): 2510-2520.
[4] 陶飛, 張霖, 郭華, 等. 云制造特征及云服務(wù)組合關(guān)鍵問題研究[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2011, 17(3): 477-486.
[5] 易樹平, 劉覓, 溫沛涵. 基于全生命周期的云制造服務(wù)研究綜述[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2016, 22(4): 871-883.
[6] 尹瀚坤, 尹超, 龔小容, 等. 汽摩零部件新產(chǎn)品開發(fā)云制造平臺(tái)總體框架及關(guān)鍵技術(shù)[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2013, 19(9): 2332-2339.
[7] 楊琛, 王中杰, 劉朝輝, 等. 面向起重機(jī)企業(yè)的云制造服務(wù)平臺(tái)的研究與應(yīng)用[J]. 系統(tǒng)仿真學(xué)報(bào), 2017, 29(6): 1351-1358.
[8] 楊晨, 李伯虎, 柴旭東, 等. 面向云制造的云仿真支撐框架及應(yīng)用過程模型[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2012, 18(7): 1444-1452.
[9] 趙秋云, 魏樂, 舒紅平. 基于業(yè)務(wù)流程的制造云服務(wù)組合模型[J]. 計(jì)算機(jī)應(yīng)用, 2014, 34(11): 3100-3103.
[10] 宋波, 李妙妍. 面向Web服務(wù)的BPEL的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2007, 28(9): 2212-2214.
[11] 王朔, 王忠杰, 于夢(mèng), 等. 層次化服務(wù)流程向可執(zhí)行BPEL轉(zhuǎn)換的方法[J]. 計(jì)算機(jī)科學(xué)與探索, 2015, 9(7): 781-792.
[12] 鐵威, 黃志球, 王進(jìn), 等. 基于BPEL的RESTful Web服務(wù)異步交互及組合研究[J]. 計(jì)算機(jī)工程與科學(xué), 2013, 35(4): 29-36.
[13] 班倩超, 劉旭東, 曾晉, 等. 基于BPMN的服務(wù)組合執(zhí)行引擎的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用研究, 2009, 26(7): 2554-2558.
[14] 孫強(qiáng), 馬炳先, 孫華強(qiáng). Web服務(wù)組合構(gòu)建與執(zhí)行的Petri網(wǎng)平臺(tái)研究[J]. 計(jì)算機(jī)科學(xué), 2016, 43(11): 117-120.
[15] 陳偉安, 高春鳴. 一種基于反饋控制的Web服務(wù)組合執(zhí)行引擎設(shè)計(jì)[J]. 計(jì)算機(jī)工程與應(yīng)用, 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] 章振杰, 張?jiān)Q, 徐雪松, 等. 基于動(dòng)態(tài)匹配網(wǎng)絡(luò)的制造服務(wù)組合自適應(yīng)方法[J/OL]. 軟件學(xué)報(bào), 2018, 29(11). [2018-02-05]. http://www.jos.org.cn/1000-9825/ 5475.html.
[19] 黃貽望, 徐松金, 馮在文, 等. 基于數(shù)據(jù)流約束的可配置業(yè)務(wù)流程分析與驗(yàn)證[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2017, 23(8): 1797-1808.
[20] 易良辰, 黃林鵬. 基于抽象狀態(tài)機(jī)的普適服務(wù)組合分析與驗(yàn)證[J]. 微電子學(xué)和計(jì)算機(jī), 2013, 30(3): 122-126.
[21] 敬石開, 姜浩, 許文婷, 等. 考慮執(zhí)行可靠性的云制造服務(wù)組合算法[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2014, 26(3): 392-400.
[22] 單保華, 韓燕波, 李厚福, 等. 一種驗(yàn)證業(yè)務(wù)級(jí)服務(wù)組合可執(zhí)行能力的方法[J]. 計(jì)算機(jī)科學(xué), 2006, 33 (3): 114-116.
[23] 劉之強(qiáng), 李紅燕, 王磊, 等. 面向業(yè)務(wù)流程的數(shù)據(jù)模型異常檢測(cè)方法[J]. 計(jì)算機(jī)學(xué)報(bào), 2010, 33(8): 1349-1358.
[24] 肖剛, 柯旭東, 張?jiān)Q, 等. 面向產(chǎn)業(yè)聯(lián)盟的云制造應(yīng)用模式及關(guān)鍵技術(shù)研究[J]. 浙江工業(yè)大學(xué)學(xué)報(bào), 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
浙江省重大科技專項(xiàng)(2014C01048,2018C01064);浙江省公益性技術(shù)項(xiàng)目(2017C31014)
肖 剛(1965-),男,浙江上虞人,教授,博士。主要研究方向?yàn)樵朴?jì)算、云制造、智能信息系統(tǒng)。E-mail:xg@zjut.edu.cn