国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向微服務(wù)的制造執(zhí)行系統(tǒng)關(guān)鍵技術(shù)研究*

2023-09-18 08:42李亞杰李昭楠
制造技術(shù)與機床 2023年9期
關(guān)鍵詞:用例數(shù)據(jù)表關(guān)聯(lián)度

李亞杰 李昭楠

(河南科技大學(xué)機電工程學(xué)院,河南 洛陽 471003)

隨著智能制造研究與應(yīng)用的不斷深入,制造執(zhí)行系統(tǒng)作為連接企業(yè)計劃層與控制層的紐帶,在企業(yè)智能制造體系架構(gòu)中的作用也顯得更加重要。為了得到最好的應(yīng)用效果,制造執(zhí)行系統(tǒng)需要根據(jù)企業(yè)制造車間的個性化需求進行定制。隨著客戶個性化定制需求的不斷增加,企業(yè)的生產(chǎn)組織模式、管理流程與生產(chǎn)過程也呈現(xiàn)出多樣化、動態(tài)多變的特點,因此要求制造執(zhí)行系統(tǒng)具有更加敏捷、靈活的動態(tài)配置與重構(gòu)能力。

傳統(tǒng)的MES 系統(tǒng)大多采用單體架構(gòu),系統(tǒng)功能之間耦合程度高,隨著企業(yè)需求的不斷變化,系統(tǒng)規(guī)模與復(fù)雜度不斷增加,造成系統(tǒng)可擴展性差、變更周期長、成本高,在企業(yè)需求變更出現(xiàn)后難以快速對系統(tǒng)進行重構(gòu),造成企業(yè)現(xiàn)狀與系統(tǒng)功能之間的脫節(jié),影響系統(tǒng)的應(yīng)用效果,甚至造成系統(tǒng)實施的失敗。為了改善制造執(zhí)行系統(tǒng)的可重構(gòu)性,文獻[1]提出了面向生產(chǎn)過程云服務(wù)的制造執(zhí)行系統(tǒng),采用面向服務(wù)的技術(shù)架構(gòu)(service oriented architecture,SOA),將復(fù)雜的車間管理業(yè)務(wù)定義為松散耦合的服務(wù)組件,便于車間業(yè)務(wù)流程進行靈活、動態(tài)的配置與重構(gòu)。文獻[2]基于可重構(gòu)流程模型和組件技術(shù)建立了可重構(gòu)MES 流程模型,以提高MES 系統(tǒng)流程的可重構(gòu)能力。文獻[3]提出了一種面向MES 生命周期的模型驅(qū)動定制化方法來進行MES 系統(tǒng)的自動生成和持續(xù)改進,降低MES 實施和重構(gòu)的復(fù)雜性。文獻[4]針對具有高度自動化水平的制造系統(tǒng)提出了一種MES 定制化方法,將可變性指數(shù)作為評價生產(chǎn)系統(tǒng)有效性的參數(shù)來驅(qū)動MES 模型進行調(diào)整。文獻[5]從底層的體系結(jié)構(gòu)入手,建立了支持網(wǎng)絡(luò)化制造的數(shù)控車間可插拔制造執(zhí)行系統(tǒng)。文獻[6]提出一種制造執(zhí)行系統(tǒng)集成可重構(gòu)的框架,并分別從業(yè)務(wù)實體、業(yè)務(wù)邏輯和系統(tǒng)間集成層研究了集成可重構(gòu)實現(xiàn)方法。文獻[7]針對制造執(zhí)行系統(tǒng)擴展性問題,建立了基于工廠方法模式的可擴展MES 系統(tǒng)體系結(jié)構(gòu)。以上研究為提高MES 的可重構(gòu)性和可擴展性提供了解決思路,但仍無法從根本上避免采用單體架構(gòu)造成的系統(tǒng)復(fù)雜度高、維護成本高、交付周期長等問題[8]。

微服務(wù)架構(gòu)將大型軟件系統(tǒng)拆分為多個可獨立運行的服務(wù),拆分后的微服務(wù)可以獨立進行開發(fā)、測試、部署、重構(gòu),很大程度地降低了系統(tǒng)的耦合性[9],基于微服務(wù)架構(gòu)的系統(tǒng)具有開發(fā)周期短、擴展性與復(fù)用性更好的優(yōu)點[10],微服務(wù)架構(gòu)的這種特性使其在系統(tǒng)開發(fā)中被廣泛接受和應(yīng)用[11-13]。因此,本文開展了面向微服務(wù)的制造執(zhí)行系統(tǒng)研究,建立了面向微服務(wù)的制造執(zhí)行系統(tǒng)架構(gòu),并提出了基于用例-數(shù)據(jù)訪問關(guān)系模型的制造執(zhí)行系統(tǒng)微服務(wù)劃分方法,將用例和數(shù)據(jù)之間的訪問關(guān)系作為微服務(wù)劃分的依據(jù),將制造執(zhí)行系統(tǒng)劃分為多個相互獨立的微服務(wù),便于在不影響系統(tǒng)運行的條件下進行系統(tǒng)功能的重構(gòu),以提高系統(tǒng)持續(xù)滿足車間業(yè)務(wù)需求變化的能力,進而提升系統(tǒng)的應(yīng)用效果和車間管理效率。

1 基于微服務(wù)的制造執(zhí)行系統(tǒng)架構(gòu)

基于微服務(wù)的制造執(zhí)行系統(tǒng)架構(gòu)如圖1 所示。主要包括平臺層、數(shù)據(jù)層、服務(wù)層、接口層、應(yīng)用層和展示層。

圖1 基于微服務(wù)的MES 系統(tǒng)架構(gòu)

(1)展示層:展示層是MES 與用戶進行交互的前端,主要負責(zé)接收用戶的輸入和操作指令,并將系統(tǒng)的運行結(jié)果展示給用戶。

(2)應(yīng)用層:應(yīng)用層是系統(tǒng)提供給用戶的功能,在應(yīng)用層按照用戶的業(yè)務(wù)流程將微服務(wù)封裝為MES 的各個功能,在展示層接收到用戶的輸入和操作指令后通過調(diào)用應(yīng)用層的功能實現(xiàn)對于不同業(yè)務(wù)的處理。

(3)接口層:接口層負責(zé)連接應(yīng)用層和服務(wù)層,根據(jù)應(yīng)用層中用戶選擇的不同操作通過接口調(diào)用對應(yīng)的微服務(wù)進行處理,并將處理結(jié)果返回給應(yīng)用層。

(4)服務(wù)層:服務(wù)層中封裝了系統(tǒng)中包含的微服務(wù),用戶的業(yè)務(wù)邏輯主要反映在服務(wù)層中,負責(zé)按照用戶指令進行數(shù)據(jù)查詢與邏輯運算,并反饋處理結(jié)果,是系統(tǒng)的核心層。

(5)數(shù)據(jù)層:數(shù)據(jù)層中包含系統(tǒng)運行所需的數(shù)據(jù)庫,為系統(tǒng)運行提供數(shù)據(jù)存儲服務(wù)。

(6)平臺層:平臺層中包含系統(tǒng)運行所需的服務(wù)器、操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等軟硬件條件。

在MES 的多層架構(gòu)中,應(yīng)用層實現(xiàn)對用戶業(yè)務(wù)流程的封裝和處理,服務(wù)層負責(zé)對數(shù)據(jù)的邏輯運算,接口層負責(zé)應(yīng)用層和服務(wù)層之間的數(shù)據(jù)通信,通過這種分層劃分解除業(yè)務(wù)流程和數(shù)據(jù)處理邏輯之間的耦合關(guān)系,當(dāng)業(yè)務(wù)流程或業(yè)務(wù)邏輯發(fā)生變化時,只需要對應(yīng)的重構(gòu)業(yè)務(wù)層或服務(wù)層中受到影響的部分,不會對其他部分產(chǎn)生影響,降低系統(tǒng)重構(gòu)的技術(shù)復(fù)雜度,便于對系統(tǒng)進行維護。

系統(tǒng)數(shù)據(jù)庫分為業(yè)務(wù)系統(tǒng)構(gòu)建數(shù)據(jù)庫(圖2)和業(yè)務(wù)數(shù)據(jù)庫(圖3)兩部分。應(yīng)用層的業(yè)務(wù)應(yīng)用系統(tǒng)由各個微服務(wù)組合而成,它們之間的組成關(guān)系存儲在業(yè)務(wù)系統(tǒng)構(gòu)建數(shù)據(jù)庫中,包括業(yè)務(wù)系統(tǒng)屬性表和微服務(wù)表。業(yè)務(wù)系統(tǒng)屬性表中存儲各業(yè)務(wù)系統(tǒng)的信息,包括業(yè)務(wù)系統(tǒng)編號、業(yè)務(wù)系統(tǒng)名稱和業(yè)務(wù)系統(tǒng)描述等。微服務(wù)表中存儲系統(tǒng)各個微服務(wù)的信息,包括微服務(wù)編號、微服務(wù)名稱、端口號和微服務(wù)描述等,微服務(wù)和業(yè)務(wù)系統(tǒng)之間的組成關(guān)系體現(xiàn)在這兩張表的主外鍵關(guān)系上。

圖2 業(yè)務(wù)系統(tǒng)構(gòu)建數(shù)據(jù)庫

圖3 業(yè)務(wù)數(shù)據(jù)庫

業(yè)務(wù)數(shù)據(jù)庫中存儲業(yè)務(wù)執(zhí)行過程中產(chǎn)生的數(shù)據(jù)。為了保證系統(tǒng)微服務(wù)的獨立性,每個微服務(wù)在業(yè)務(wù)數(shù)據(jù)庫中都對應(yīng)于一個單獨的數(shù)據(jù)庫。例如在圖3 中,將業(yè)務(wù)數(shù)據(jù)拆分為設(shè)備與派工、計劃管理、現(xiàn)場管理等數(shù)據(jù)庫供對應(yīng)的微服務(wù)調(diào)用。

2 領(lǐng)域場景驅(qū)動的制造執(zhí)行系統(tǒng)微服務(wù)劃分技術(shù)

對于采用微服務(wù)架構(gòu)的系統(tǒng)來說,微服務(wù)的粒度劃分是否合適是最關(guān)鍵的因素之一[9],微服務(wù)粒度決定了系統(tǒng)微服務(wù)之間相互調(diào)用和通信的復(fù)雜度。目前大多數(shù)系統(tǒng)在進行微服務(wù)劃分時依賴架構(gòu)設(shè)計者的個人經(jīng)驗[14],受主觀因素影響較大,并且面對大型系統(tǒng)時,微服務(wù)拆分效果較低且粒度劃分合理性無法保證。

領(lǐng)域驅(qū)動設(shè)計倡導(dǎo)按照業(yè)務(wù)領(lǐng)域進行系統(tǒng)微服務(wù)劃分,不同的業(yè)務(wù)領(lǐng)域之間使用獨立的數(shù)據(jù)模型。制造執(zhí)行系統(tǒng)作為一種數(shù)據(jù)庫系統(tǒng),其系統(tǒng)業(yè)務(wù)的實現(xiàn)最終都是圍繞數(shù)據(jù)庫實現(xiàn)的。在制造執(zhí)行系統(tǒng)的系統(tǒng)設(shè)計階段,用例圖反映用戶能夠在系統(tǒng)中完成的操作,數(shù)據(jù)庫結(jié)構(gòu)模型反映用戶執(zhí)行業(yè)務(wù)過程中涉及的各類數(shù)據(jù),通過對用例圖和數(shù)據(jù)庫表結(jié)構(gòu)進行分析,能夠得到系統(tǒng)的業(yè)務(wù)邏輯以及相互之間的數(shù)據(jù)調(diào)用關(guān)系。用例與數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系對應(yīng)于系統(tǒng)中的業(yè)務(wù)邏輯、功能與微服務(wù)之間的關(guān)系,對其進行分析之后能夠得到系統(tǒng)的微服務(wù)劃分結(jié)果。因此,本文建立了基于用例圖和數(shù)據(jù)庫表結(jié)構(gòu)的MES 系統(tǒng)微服務(wù)劃分方法,劃分流程如圖4 所示。

圖4 微服務(wù)劃分流程

步驟1:對用戶進行調(diào)研,建立系統(tǒng)用例圖和數(shù)據(jù)庫表結(jié)構(gòu)。

步驟2:分析用例和數(shù)據(jù)表之間的數(shù)據(jù)調(diào)用關(guān)系,建立用例數(shù)據(jù)訪問模型。在系統(tǒng)中,當(dāng)不同的用例操作同一個數(shù)據(jù)表時,雖然操作的類型與數(shù)據(jù)屬性不同,但在最終實現(xiàn)時僅體現(xiàn)在前后端的接口程序中,對系統(tǒng)微服務(wù)的劃分沒有影響,因此本文在建立用例-數(shù)據(jù)訪問模型時僅考慮用例對數(shù)據(jù)表的調(diào)用,不考慮數(shù)據(jù)表具體屬性的調(diào)用。

步驟3:根據(jù)用例對數(shù)據(jù)表的數(shù)據(jù)調(diào)用類型,計算用例和數(shù)據(jù)表之間、數(shù)據(jù)表和數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系。

步驟4:利用GN 算法生成微服務(wù)方案。

步驟5:評估微服務(wù)劃分方案對應(yīng)的MES 系統(tǒng)模塊度,輸出劃分方案。

2.1 建立用例-數(shù)據(jù)訪問模型

解析用例與數(shù)據(jù)表之間的訪問關(guān)系,建立三元組W=(U,E,R),其中U 表示與數(shù)據(jù)表有關(guān)聯(lián)關(guān)系的用例集合,E為數(shù)據(jù)表集合,R為用例-數(shù)據(jù)關(guān)系集合,例如Rm=(Ui,Ej,create)表示用例Ui和數(shù)據(jù)Ej存在名為create的調(diào)用關(guān)系。用例-數(shù)據(jù)訪問模型如圖5 所示,例如,對于用例U1和數(shù)據(jù)表E1之間通過一條邊相連,這條邊記為E1=(U1,E1,Delete)。

圖5 用例-數(shù)據(jù)訪問模型

建模過程如下:

步驟1:分析用例-數(shù)據(jù)關(guān)系圖中的特征,建立數(shù)據(jù)表集合E 與用例集合U,每個用例與數(shù)據(jù)表都是模型中的節(jié)點。

步驟2:分析用例與數(shù)據(jù)表之間的調(diào)用關(guān)系與類型,對于每個用例,確定進行業(yè)務(wù)操作時與之關(guān)聯(lián)的所有數(shù)據(jù)表,生成用例及與之關(guān)聯(lián)數(shù)據(jù)表的邊。

步驟3:依據(jù)節(jié)點與邊的關(guān)聯(lián)建立映射。對于圖5 中任一邊,由該邊連接的兩個節(jié)點作為此邊的關(guān)聯(lián)映射。

2.2 計算數(shù)據(jù)關(guān)聯(lián)度

在用例-數(shù)據(jù)表關(guān)系圖模型中數(shù)據(jù)表之間沒有直接相連的邊,但數(shù)據(jù)表能夠被不同用例通過訪問調(diào)用進行關(guān)聯(lián),數(shù)據(jù)關(guān)聯(lián)度體現(xiàn)在用例與數(shù)據(jù)表的調(diào)用關(guān)系上。當(dāng)數(shù)據(jù)表被一個用例同時調(diào)用時,表示這些數(shù)據(jù)表之間的關(guān)聯(lián)度較高,會同時被操作,因此,在進行微服務(wù)劃分時,關(guān)聯(lián)度高的數(shù)據(jù)表更應(yīng)該被劃分到同一個微服務(wù)中以提高微服務(wù)之間的獨立性,降低微服務(wù)之間的調(diào)用頻率,降低系統(tǒng)的數(shù)據(jù)耦合程度和復(fù)雜度。

設(shè)用例-數(shù)據(jù)訪問模型中共包含n個用例,m個數(shù)據(jù)表,Counti代表操作數(shù)據(jù)表Ei的用例數(shù)量,Countij代表同時操作數(shù)據(jù)表Ei和Ej的用例數(shù)量,則數(shù)據(jù)表Ei和Ej的關(guān)聯(lián)度Sij等于Countij除以分別操作Ei和Ej的用例數(shù)量之和,即:

按照上述公式計算可得E中m個數(shù)據(jù)表兩兩之間的關(guān)聯(lián)度,表現(xiàn)為一個m×m的關(guān)聯(lián)度矩陣S,矩陣中第i行第j列的元素表示數(shù)據(jù)表Ei和Ej之間的關(guān)聯(lián)度Sij,由上述公式可知Sij=Sji,矩陣對角線上的元素取值為0,表示當(dāng)i=j,即Ei和Ej為同一個數(shù)據(jù)表時關(guān)聯(lián)度為0。

2.3 微服務(wù)劃分

矩陣S反映了用例-數(shù)據(jù)表關(guān)系圖中的數(shù)據(jù)表之間的關(guān)聯(lián)度,用例-數(shù)據(jù)訪問模型中的R反映了用例與數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系權(quán)重,本文采用Girvan-Newman(G-N)算法對用例和數(shù)據(jù)表進行聚類,通過聚類運算后,具有更高關(guān)聯(lián)度的用例和數(shù)據(jù)表會被聚到一個微服務(wù)中。G-N 算法的流程如下。

步驟1:根據(jù)用例-數(shù)據(jù)訪問模型和關(guān)聯(lián)矩陣S構(gòu)建無向圖T,T 的頂點為集合U 中的用例和集合E 中的數(shù)據(jù)表,當(dāng)Tij=0 時表示頂點i和j之間沒有邊相連,當(dāng)Tij=a時表示頂點i和j之間有一條權(quán)重為a的邊相連。對于連接用例和數(shù)據(jù)表的邊,其權(quán)重根據(jù)用例與數(shù)據(jù)表的訪問關(guān)系類型確定,用例對于數(shù)據(jù)的操作包括創(chuàng)建(Create)、修改(Update)、查詢(Query)、刪除(Delete)4 種,對應(yīng)業(yè)務(wù)執(zhí)行過程中對于數(shù)據(jù)庫操作的4 種形式,創(chuàng)建代表該用例執(zhí)行過程中會生成一條或多條數(shù)據(jù),修改表明用例執(zhí)行過程中會對數(shù)據(jù)表的某些屬性進行修改,查詢表明用例執(zhí)行過程中需要查詢數(shù)據(jù)表的某些屬性,刪除表明用例執(zhí)行過程中會刪除一條或多條數(shù)據(jù)。為了區(qū)分這4 種關(guān)系所反映的用例與數(shù)據(jù)表之間的關(guān)聯(lián)程度,按照這4 種關(guān)系對數(shù)據(jù)的影響,為其賦予不同的權(quán)重值,分別為創(chuàng)建1、修改0.75、刪除0.5、查詢0.25。對于連接數(shù)據(jù)表的邊,其權(quán)重為關(guān)聯(lián)矩陣中對應(yīng)數(shù)據(jù)表之間的關(guān)聯(lián)度值。

步驟2:計算所有邊的邊介數(shù),用邊介數(shù)除以對應(yīng)邊的權(quán)重得到邊權(quán)比,找到邊權(quán)比最大的邊將其移除。

式中:Cij表示頂點i和j之間的邊介數(shù),αij表示連接頂點i和j的邊的權(quán)重。

步驟3:保存劃分結(jié)果,并計算模塊度Q,模塊度的計算方法見式(4)。

式中:eii表示社區(qū)i中所有邊的權(quán)重與整個圖中所有邊權(quán)重的比值,ai表示與社區(qū)i頂點相連的所有邊的權(quán)重與整個圖中連接所有頂點的邊的權(quán)重之間的比值。

步驟4:重復(fù)步驟2、3 直至所有的邊都被移除,輸出模塊度最高的劃分方案。

算法的核心代碼如下:

3 應(yīng)用實例

某軸承制造企業(yè)采用面向訂單制造的管理模式,目前的生產(chǎn)管理采用人工和紙質(zhì)文件管理的方式進行,生產(chǎn)計劃采用紙質(zhì)計劃文件下達,每天由統(tǒng)計員統(tǒng)計現(xiàn)場完工情況,并逐級向上反饋,計劃的變更由計劃員口頭通知,生產(chǎn)管理的規(guī)范性較差,生產(chǎn)計劃的科學(xué)性不強,現(xiàn)場生產(chǎn)狀態(tài)反饋不及時,難以實時、準確地獲取訂單的生產(chǎn)情況,延遲交付時有發(fā)生。在此情況下,企業(yè)開展了制造執(zhí)行系統(tǒng)建設(shè),通過調(diào)研分析,建立了圖6 所示的用例-數(shù)據(jù)訪問關(guān)系圖(計劃和現(xiàn)場管理部分)。

圖6 用例-數(shù)據(jù)訪問關(guān)系圖

根據(jù)用例與數(shù)據(jù)表之間的關(guān)系,計算數(shù)據(jù)表之間的關(guān)聯(lián)度,建立關(guān)聯(lián)度矩陣:

算法的模塊度迭代過程如圖7 所示,算法輸出結(jié)果見表1。

表1 微服務(wù)劃分結(jié)果

圖7 模塊度迭代曲線

根據(jù)算法計算結(jié)果,可將圖6 劃分為3 個微服務(wù)。至此,基于系統(tǒng)設(shè)計階段建立的用例圖和數(shù)據(jù)表結(jié)構(gòu),通過用例-數(shù)據(jù)訪問關(guān)系驅(qū)動的劃分方法獲得了模塊度最高的MES 系統(tǒng)微服務(wù)劃分結(jié)果,可以為開發(fā)人員進行微服務(wù)劃分提供參考。

4 結(jié)語

通過建立基于微服務(wù)的多層制造執(zhí)行系統(tǒng)架構(gòu),降低制造執(zhí)行系統(tǒng)的耦合性和復(fù)雜度,便于對系統(tǒng)進行維護。通過領(lǐng)域場景驅(qū)動的微服務(wù)劃分技術(shù),利用用例-數(shù)據(jù)表訪問關(guān)系圖進行分析,得到系統(tǒng)數(shù)據(jù)表之間的關(guān)聯(lián)度,利用G-N 算法進行微服務(wù)劃分,得到模塊度最高的系統(tǒng)微服務(wù)劃分方案,解決傳統(tǒng)單體架構(gòu)帶來的重構(gòu)和擴展困難的問題,提高制造執(zhí)行系統(tǒng)的可重構(gòu)性和可維護性,為制造執(zhí)行系統(tǒng)快速響應(yīng)業(yè)務(wù)重構(gòu)需求變化提供支撐。

猜你喜歡
用例數(shù)據(jù)表關(guān)聯(lián)度
UML用例間包含關(guān)系與泛化關(guān)系的比較與分析
UML用例模型中依賴關(guān)系的比較與分析
湖北省新冠肺炎疫情數(shù)據(jù)表
聯(lián)鎖軟件詳細設(shè)計的測試需求分析和用例編寫
基于列控工程數(shù)據(jù)表建立線路拓撲關(guān)系的研究
從出土文獻用例看王氏父子校讀古書的得失
基于灰色關(guān)聯(lián)度的水質(zhì)評價分析
基于灰關(guān)聯(lián)度的鋰電池組SOH評價方法研究
圖表
基于VSL的動態(tài)數(shù)據(jù)表應(yīng)用研究