王美林,彭希靈
(廣東工業大學,廣東 廣州 510006)
制造企業的制造模式經歷了從傳統手工業作坊到大規模機器生產,再到個性化小批量生產的變遷[1]。作為制造業主力軍的中小型制造企業,隨著新一輪工業革命的到來,其制造模式正朝著多品種、小批量,按單生產的方向發展。這樣的模式讓中小企業的生產制造產生與以往不同的特點:
(1)生產業務模式多樣化。在制造執行過程中,企業有著不同的生產模式,甚至對于同一產品,各企業的生產模式也不相同。
(2)業務流程多變。在企業生產過程中,常常會出現各種不可控因素,導致業務流程發生變化,這些因素可以分為2個方面:企業內部因素,企業在發展過程中生產規模的變化導致企業業務結構轉型升級;企業外部因素,客戶訂單需求變化等。
由于中小企業制造過程的模式多樣性和流程多變性,造成普通一體化MES的重構與實施遇到成本和技術上的障礙。因此,本文設計了一種面向中小企業實施的基于微服務的業務可編排重構MES系統。該系統將企業的制造資源進行虛擬化和服務化封裝,形成細粒度的原子服務,再根據企業具體的生產模式和業務流程對原子服務和業務微服務進行編排及管理,實現制造業務的重構。每一個服務部署在獨立的、隔離的微服務運行環境,可以方便地替換和擴展[2-5]。該系統能夠靈活響應不同企業的生產模式差異以及業務流程的變化。
根據中小企業的制造特性,構建了一個基于微服務的業務可編排重構MES系統,系統主要包括智能對象層、原子服務層、業務微服務層和微服務協同云平臺等,如圖1所示。
智能對象是制造環境中參與制造生產的制造資源的統稱,包括帶有RIFD或者條形碼信息的車間生產硬資源(如車間員工、生產設備、物料資源等)和生產訂單、車間工藝等車間生產軟資源。車間智能對象類型多樣,因此需要將各智能對象轉化為具有統一描述的虛擬資源以便管理。該層根據企業車間制造資源的實時數據進行信息管理與虛擬化建模,將車間智能對象抽象為虛擬資源,以支持原子服務層的運行。
(2)原子服務層
原子服務層實現對智能對象可執行操作的服務化封裝,完成虛擬資源與相應資源服務化能力的映射,以支撐業務微服務層的運行。原子服務層是系統業務邏輯的基礎服務,例如訂單創建服務、訂單下達服務、工藝創建服務、工藝制作服務等。它們為業務微服務層提供了不可分割的、單一業務功能的服務,每一個服務都部署在獨立的、隔離的微服務運行環境,可以方便地替換和擴展。
(3)業務微服務層
業務微服務層是本框架的核心層,主要包括微服務可視化編排器、編排執行引擎和微服務調用器。業務微服務層根據用戶實際的生產業務模式和業務流程,制定每個系統模塊的硬件/軟件資源的組合流程,并通過事件隊列的方式調用原子服務或業務微服務。業務微服務層實現了系統業務的快速重組及體系結構中不同層次的集成,并可根據企業需求的變化和業務流程重組,實現原子服務的動態組合,快速形成新的業務系統。
(4)微服務協同平臺
該層主要負責原子服務層與業務微服務層的服務管理、服務發現及協同調用,為系統的運行提供支撐組件。本文使用的是Pivotal 公司的Spring Cloud框架[6]。
Development of real-time test system for rotating vibration of EFEAD system
智能對象是制造環境中參與制造生產的制造資源與制造單據的統稱,包括車間員工、生產設備、工件以及其他帶有RIFD或條形碼信息的車間生產資源和訂單、工藝等。智能對象作為車間最基本的制造單元存在于制造環境中,其攜帶了一些關鍵信息,將在不同的階段或位置進行更新,通過更新的信息,各車間智能對象能夠感知、交互和報告周圍環境,以便自適應響應變化。智能對象類型多樣,因此需要將各智能對象轉化為具有統一描述的虛擬對象以便管理。根據OWL-S規范[7],智能對象可通過虛擬化表示如下:
MS={MSBasic, MSFeature, MSQoS, MSState, MSFunction}(1)
(1)基本屬性(MSBasic):包括描述智能對象的基礎信息,如ID、名稱、地址、提供商等,每個智能對象的ID唯一;
(2)特征屬性(MSFeature):包括描述智能對象的功能特征信息,如結構特征、幾何尺寸、質量等級等;
(3)評價屬性(MSQoS):包括描述智能對象的綜合評估指標信息,如可靠性、成本、安全級別、用戶滿意度等;
(4)狀態屬性(MSState):包括描述智能對象的狀態信息,如當前狀態、任務隊列、已完成任務;
(5)方法集合(MSFunction):包括智能對象被允許的操作,以及操作的輸入集合和輸出集合、狀態改變、任務量等。
以三類典型的智能對象為例,根據虛擬化表示模型進行虛擬化,這三種智能對象為:
(1)制造設備資源:進行制造任務的車間物理設備;
(2)物料資源:制造任務中制造某種產品所需要的毛胚和半成品等;
(3)訂單資源:生產訂單。
智能對象描述模型實例如圖2所示。

圖2 智能對象描述模型實例
根據圖2所示的智能對象描述模型,利用該層的虛擬化工具對智能對象進行標準化建模,即完成這三種典型智能對象的虛擬化操作。智能對象虛擬化層形成了制造資源的規范表達,基于此對虛擬化智能對象模型進行虛擬化封裝:生成XML數據描述文檔,解析成每個智能對象描述類的對象,并把該數據載入數據庫,供原子服務使用。以某設備資源封裝為例,該設備資源的XML描述文檔如圖3所示。

圖3 某設備資源XML描述文檔
將上述描述文檔通過解析后載入數據庫,結果如圖4所示。

圖4 制造設備資源虛擬化實例
智能對象包含的各種屬性通過建立MS模型映射到數據庫。智能對象服務化即將對象的方法集合(MSFunction),封裝成原子服務。原子服務采用微服務開發方式構建,使用RESTful架構向外提供訪問接口,最后將其發布至云制造平臺上形成相應的可編排原子服務資源。原子服務構建結構如圖5所示。每個原子服務可以通過啟動事件調用,啟動事件即原子服務的調用參數信息;當調用事件到達原子服務后,原子服務執行其實體操作;在操作完成后形成結束事件并將事件返回至客戶端,結束事件即原子服務調用結束的返回參數信息。每個原子服務僅負責執行自身模型中定義的任務,以及向消息代理發送消息和接收消息,消息代理在運行時管理原子服務之間的通信。

圖5 原子服務構建及調用方式
以訂單智能對象服務化封裝為例,訂單智能對象包含生產訂單創建、訂單狀態查詢、生產訂單審核等,封裝結果見表1所列。

表1 訂單智能對象包含原子服務示例
為了將單個的原子服務組合成具有適當復雜度的、可靠的、基于業務流程的業務微服務,文章使用一種基于事件的BPMN(Business Process Model and Notation, BPMN)編排方法對原子服務或業務微服務進行編排。基于事件的BPMN編排方法使用BPMN 2.0規范對微服務之間的組合方式進行可視化建模[8-9],Activiti工作流引擎解釋執行。基于事件的BPMN編排的微服務組合流程如圖6所示。

圖6 基于事件的BPMN編排的微服務組合流程
文章以生產計劃模塊作為驗證案例來驗證該框架的可行性。生產計劃模塊主要包括生產訂單管理、生產訂單排產以及生產進度管理等功能模塊。圖7展示了生產計劃模塊的功能模塊圖,表2展示了各功能模塊下的原子服務列表。生產訂單新增服務使用為:點擊生產訂單頁面“新增”按鈕后,進入訂單編輯頁面,點擊“保存”跳轉回生產訂單頁面并更新訂單列表,顯示新增的生產訂單記錄。生產訂單展示界面如圖8所示。訂單分批服務使用為:點擊訂單工件頁面的“分批下達”,進入分批下達作業頁面,點擊“提交”后跳轉回訂單工件頁面并更新訂單工件列表,顯示新增的訂單工件分批記錄。訂單分批展示界面如圖9所示。在制品工件詳情服務使用為:查看在制品工件列表,點擊查看在制品工件詳情,進入在制品工件詳情頁面。詳情頁展示界面如圖10所示。

圖7 生產計劃模塊功能模塊圖

圖8 生產訂單展示界面

圖9 訂單分批展示界面

圖10 在制品工件詳情展示界面

表2 原子服務列表
文章設計并驗證了基于微服務的業務可編排重構MES系統。在這個系統中,企業可根據自身的生產模式和業務流程對原子服務及業務微服務進行編排管理,通過對原子服務和業務微服務模塊的靈活組裝,針對不同企業的需求進行制造業務的個性化定制。