(中國航空制造技術研究院,北京 100024)
隨著工業(yè)互聯(lián)網(wǎng)時代的到來和云計算技術的日趨成熟,一種面向服務的網(wǎng)絡化制造技術——云制造成為研究熱點[1]。云制造以云計算為理論基礎,將“基礎設施即服務(IaaS)”、“平臺即服務(PaaS)”、“軟件即服務(SaaS)”理論衍生到“制造即服務”[2]。而設備接入云平臺,并能夠與云應用安全高效地通信是云制造的基礎,在國家工業(yè)信息安全發(fā)展研究中心研究員李君等[3]提出的工業(yè)互聯(lián)網(wǎng)參考架構中,設備入云被認為是PaaS的基礎資源。然而工業(yè)設備入云普遍面臨3個問題[4]:(1)異構設備通訊協(xié)議標準繁多;(2)數(shù)據(jù)安全保障復雜;(3)上云數(shù)據(jù)的接口標準不統(tǒng)一。
為了解決上述問題,學者們進行了大量相關研究與實踐。付翔[2]提出了CARA(Cloud Access Resource Adapter)數(shù)控設備入云方法,如圖1所示,CARA 接入系統(tǒng)分為采集端和服務端,其中采集端為軟硬一體設備,可采集RS–232接口、LCD接口、USB接口、GPS 模塊、數(shù)據(jù)存儲模塊等多種協(xié)議數(shù)據(jù),并通過Socket 通信輸出數(shù)據(jù);服務端為軟件系統(tǒng),具備接收采集端數(shù)據(jù)、存儲數(shù)據(jù)和提供WEB服務3種功能。 萬海峰等[5]研究了利用Modbus TCP協(xié)議實現(xiàn)單機功率設備能耗“上云”技術,實現(xiàn)了云端管理異構設備能耗的功能,并保證了數(shù)據(jù)完整性。陳國金等[6]提出了分布式數(shù)控(DNC)數(shù)據(jù)采集系統(tǒng)通信結構,使分散的數(shù)控設備能夠聯(lián)入企業(yè)以太網(wǎng)。
Lee 等[7]設計了一套數(shù)據(jù)實時采集系統(tǒng),實現(xiàn)了遠程設備參數(shù)采集。Lojka 等[8]研究通過SCADA/HMI(監(jiān)控與數(shù)據(jù)采集/人機界面)、SOA(面向服務的體系結構)實現(xiàn)設備入云,該方法著重研究了SCADA采集設備數(shù)據(jù)與設備入云物理拓撲。Li 等[9]研究了利用RFID(Radio Frequency Identifcation)技術遠程采集數(shù)據(jù)的方法,實現(xiàn)對非設備本身數(shù)據(jù)(如物流信息、物料信息等)的遠程采集與入云。
上述方法均不同程度地實現(xiàn)了異構設備入云,但未對入云數(shù)據(jù)的安全與接口標準作出說明。本文設計了以工業(yè)消息中間件(Industrial Message Queue,IMQ)為樞紐的工業(yè)設備接入云的連接模型,一方面,模型中定義了IMQ、IMQ適配器的能力,從而保證了異構設備入云的可行性;另一方面,模型中定義了IMQ的適配協(xié)議與數(shù)據(jù)發(fā)布協(xié)議,從而保證了入云數(shù)據(jù)的安全和接口標準統(tǒng)一。
基于IMQ的工業(yè)設備入云的連接模型如圖2所示,包括工業(yè)設備、IMQ適配協(xié)議、IMQ數(shù)據(jù)發(fā)布協(xié)議、IMQ、云應用5個部分,其中工業(yè)設備端的適配器、適配協(xié)議、數(shù)據(jù)發(fā)布協(xié)議和IMQ是模型的核心構件。
工業(yè)設備依靠IMQ適配器接入工業(yè)中間件。IMQ適配器是采集設備數(shù)據(jù)和給設備發(fā)送指令的軟件模塊。適配器支持用一種或多種協(xié)議(如OPC、Modbus TCP等)采集設備數(shù)據(jù)和發(fā)送指令。
IMQ適配協(xié)議是適配器與中間件建立連接、身份認證與雙向通信的通信協(xié)議。
圖1 CARA接入云平臺的模型Fig.1 CARA connection model to cloud platform
IMQ數(shù)據(jù)發(fā)布協(xié)議是云應用與中間件建立連接、身份認證與雙向通信的通信協(xié)議。
IMQ是為工業(yè)設備與云提供安全可靠的即時通訊的軟件。它允許設備通過授權的適配器接入,接收適配器采集的收據(jù),給適配器下發(fā)指令,并對接入的設備進行管理。對于接收到的數(shù)據(jù),中間件用適配協(xié)議解析數(shù)據(jù)結構、認證數(shù)據(jù)安全。解析后的數(shù)據(jù)可以根據(jù)設定規(guī)則進行過濾和存儲,并按照數(shù)據(jù)發(fā)布協(xié)議進行格式化。中間件為設備提供Socket、Web Socket和Web Service這3種接入云的途徑,其中Socket、Web Socket 兩種途徑提供消息隊列和發(fā)布訂閱服務,將格式化數(shù)據(jù)推送上云;Web Service 途徑提供RESTful API 與SOAP[10](Simple Object Access Protocol)API服務,將格式化數(shù)據(jù)封裝,供云端調用。設備通過適配器接入中間件,或者云應用訪問IMQ服務,均需要經(jīng)過授權認證。此外,為了便于維護數(shù)據(jù),IMQ 應具有完備的日志記錄能力。
云應用是部署在云平臺中的應用程序。云應用依據(jù)數(shù)據(jù)發(fā)布協(xié)議與中間件雙向通信。
圖3給出了模型中設備入云的步驟:首先,設備與云應用向IMQ請求建立連接;然后,待連接建立,設備與云應用向IMQ 請求身份認證;最后,待身份認證通過,云應用與設備利用IMQ進行雙向通信。
圖2 基于IMQ的工業(yè)設備入云的連接模型Fig.2 Connection model of industrial device to cloud platform based on IMQ
IMQ與普通消息中間件的區(qū)別有兩點,即生產(chǎn)者不同和通信方式不同,如圖4所示。
(1)生產(chǎn)者不同。
普通消息中間件的生產(chǎn)者一般為數(shù)據(jù)提供者,中間件為每一個生產(chǎn)者提供獨立的數(shù)據(jù)傳輸隊列,中間件只負責將生產(chǎn)者生產(chǎn)的數(shù)據(jù)路由到消費者,不優(yōu)化更改數(shù)據(jù)內(nèi)容;IMQ的生產(chǎn)者不是數(shù)據(jù)提供者,IMQ首先接收適配器的數(shù)據(jù),并將數(shù)據(jù)放入緩存池,然后對數(shù)據(jù)過濾和分類,最后由IMQ 將過濾和分類后的數(shù)據(jù)發(fā)布成服務。IMQ的消息生產(chǎn)模式,使得同一個數(shù)據(jù)隊列中可以包含任意多個設備的數(shù)據(jù),從而打破了設備之間的數(shù)據(jù)壁壘。
(2)通信方式不同。
如果普通消息中間件的消費者向生產(chǎn)者發(fā)送指令,則需要將消費者也變成一個指令的生產(chǎn)者,并將生產(chǎn)者變成指令的消費者,方能實現(xiàn)全雙工通信。IMQ是針對工業(yè)設備進行數(shù)據(jù)采集與指令發(fā)送的專業(yè)工具,它利用數(shù)據(jù)隊列實現(xiàn)設備數(shù)據(jù)的實時采集,利用RESTful 與SOAP協(xié)議的API 實現(xiàn)設備指令的下發(fā)。
工業(yè)消息中間件是為工業(yè)設備與云提供安全可靠的即時通訊的軟件。它需要具備訪問授權、數(shù)據(jù)和指令接發(fā)、數(shù)據(jù)認證、數(shù)據(jù)過濾、數(shù)據(jù)格式化、數(shù)據(jù)存儲、數(shù)據(jù)路由、數(shù)據(jù)服務發(fā)布、接入設備管理和日志記錄等能力。
訪問授權指中間件可以給設備和云應用進行授權。只有經(jīng)過授權的設備才能通過適配器接入中間件;只有經(jīng)過授權的云應用才能訪問中間件發(fā)布的隊列、發(fā)布/訂閱和Web Service 等服務。其中授權方式采用SSH(Secure Shell)協(xié)議[11]。
圖3 模型中設備入云步驟Fig.3 Steps of device connection to cloud platform
數(shù)據(jù)和指令接發(fā)如圖5所示,指中間件可以實時接收適配器采集的設備參數(shù)和下發(fā)云應用的指令。設備參數(shù)經(jīng)過過濾和格式化后,被路由到中間件發(fā)布的服務,供云應用調用;中間件接收云應用的指令,并將指令下發(fā)給適配器,最后由適配器下發(fā)給設備執(zhí)行。
數(shù)據(jù)認證指中間件能夠按照適配協(xié)議解析適配器采集的設備參數(shù),按照數(shù)據(jù)發(fā)布協(xié)議解析云應用下發(fā)的指令,并驗證解析后數(shù)據(jù)的完整性。
數(shù)據(jù)過濾指中間件能夠對適配器采集的設備參數(shù)進行過濾分類。適配器采集的設備參數(shù)往往種類繁多,價值各異,因此需要對參數(shù)進行過濾分類。以數(shù)控設備為例,可將其參數(shù)分為基礎數(shù)據(jù)、工藝設定數(shù)據(jù)、實際加工數(shù)據(jù)和異常數(shù)據(jù)4類,如表1所示;參數(shù)價值分為高、低兩個級別。其中基礎數(shù)據(jù)是數(shù)控設備的通用參數(shù),包括開關待(開機、關機、待機)狀態(tài)、能耗等參數(shù),這類參數(shù)一般不影響設備健康與產(chǎn)品質量,因此價值較低;工藝設定參數(shù)和實際加工參數(shù)分別包括了加工設備的主軸轉速、溫度、壓力等的工藝設定值和實際加工值,這類參數(shù)與產(chǎn)品質量息息相關,具備高價值;異常數(shù)據(jù)包括設備在生產(chǎn)過程發(fā)生的異常和報警信息,這類信息對于設備本身的維護和產(chǎn)品的質量控制均有高價值。
數(shù)據(jù)格式化指中間件能夠對接收到的設備參數(shù)和指令進行格式化編碼。一方面便于數(shù)據(jù)的存儲,另一方面便于按照適配協(xié)議與數(shù)據(jù)發(fā)布協(xié)議進行輸出。
圖4 普通消息中間件與IMQ的通信模型對比Fig.4 Comparison of communication models between general message queue and IMQ
圖5 數(shù)據(jù)和指令接發(fā)Fig.5 Receiving and sending data and instructions
數(shù)據(jù)存儲指中間件能夠對接收到的設備參數(shù)和指令進行緩存和持久化存儲。其中緩存指中間件可以將設備參數(shù)和指令存儲在內(nèi)存或磁盤,待訂閱設備參數(shù)的云應用和接收指令的適配器與中間件建立通信后,再將設備參數(shù)與指令分別發(fā)送給云應用與適配器,保證了數(shù)據(jù)通信的可靠性;持久化存儲指中間件可以將格式化后的設備參數(shù)與指令存儲到文件或數(shù)據(jù)庫,以供歷史查詢,保障了數(shù)據(jù)的完整性與安全性。
數(shù)據(jù)路由指中間件能夠根據(jù)設定,將設備參數(shù)和指令分別準確地發(fā)送到對應的云應用與設備。如圖6所示,中間件中創(chuàng)建了兩個隊列服務和一個WS(Web Service)服務,其中隊列服務1發(fā)布設備開關機狀態(tài)參數(shù),隊列服務2發(fā)布設備主軸轉速參數(shù),WS服務可下發(fā)指令。從圖4可知,適配器a、b的開關機狀態(tài)參數(shù)路由到隊列服務1,主軸轉速路由到隊列服務2,然后分別被隊列服務1、2 準確發(fā)送到不同的云應用。同時,云應用的指令也路由到指定的適配器,從而準確地發(fā)送給設備執(zhí)行。
數(shù)據(jù)服務發(fā)布,如表2所示,指中間件可以將設備參數(shù)以消息隊列、發(fā)布/訂閱、RESTful API和SOAP API 這4種服務模式發(fā)布。其中消息隊列與發(fā)布/訂閱支持Socket和Web Socket 兩種協(xié)議;RESTful API和SOAP API 支持下發(fā)云應用指令。
接入設備管理指中間件具有給設備授權,控制設備接入狀態(tài),監(jiān)控設備采集參數(shù)等能力。中間件與設備是一對多的關系,必然需要管理大量接入的設備。
表1 數(shù)控設備參數(shù)分類Table1 Classification of NC equipment parameters
日志記錄指中間件能夠記錄創(chuàng)建服務、管理設備等重要操作和異常信息。這便于中間件的升級與維護。
為了保證適配器與中間件的數(shù)據(jù)安全、通信安全和通信效率,本文定義了IMQ適配協(xié)議,如表3所示。該協(xié)議包含握手方式、授權認證、數(shù)據(jù)編碼、數(shù)據(jù)加密和心跳檢查5部分。其中建立連接采用TCP/IP協(xié)議實現(xiàn);授權認證采用SSH協(xié)議,授權通過后適配器方可與中間件通信;數(shù)據(jù)編碼需要設計字節(jié)編碼格式,準則是最大限度去除編碼中的冗余信息,盡可能提高通信效率;數(shù)據(jù)加密需要設計或選擇加密算法,如RSA、AES(Advanced Encryption Standard)算法等,對編碼數(shù)據(jù)進行加密和解密;心跳檢測需定義檢測機制,保證適配器與中間件的網(wǎng)絡通暢。設計字節(jié)編碼格式與檢測機制屬于IMQ的具體實現(xiàn),而本文旨在討論IMQ模型,因此不在本文論述范圍內(nèi)。
圖6 數(shù)據(jù)路由Fig.6 Data routing
表2 數(shù)據(jù)服務發(fā)布能力Table2 Ability of data service publishing
表3 IMQ適配協(xié)議定義Table3 Definition of IMQ adaptation protocol
為了保證中間件與云應用的數(shù)據(jù)安全通信安全和通信效率,本文定義了IMQ數(shù)據(jù)發(fā)布協(xié)議。該協(xié)議針對消息隊列、訂閱/發(fā)布服務與RESTful、SOAP服務各不相同。
消息隊列、訂閱/發(fā)布服務的通信方式類似于適配器與中間件的通信方式,因此適配協(xié)議可用做其數(shù)據(jù)發(fā)布協(xié)議。
RESTful 與SOAP服務數(shù)據(jù)發(fā)布協(xié)議定義如表4所示。RESTful 與SOAP 基于HTTP協(xié)議建立連接,授權認證采用口令認證,認證通過后獲得Token 令牌,用于授權調用。數(shù)據(jù)編碼采用JSON 編碼(HTTP協(xié)議不適用于實時監(jiān)聽,接收實時數(shù)據(jù)效率不高,因此不需要特殊編碼,且JSON可讀性高,綜合考慮采用JSON 編碼),數(shù)據(jù)加密可采用RSA、AES 等算法。
IMQ適配器是設備按照適配協(xié)議的定義與中間件建立連接和通信的軟件模塊。它需要具備數(shù)據(jù)采集、授權請求、指令解析和數(shù)據(jù)格式化等能力。
數(shù)據(jù)采集指適配器應該具備以一種或多種協(xié)議(如OPC、Modbus TCP 等)連接設備、采集數(shù)據(jù)和發(fā)送指令的能力。
授權請求指適配器能夠依據(jù)適配協(xié)議向中間件請求接入授權。
指令解析指適配器能夠依據(jù)適配協(xié)議解密、解碼中間件下發(fā)的指令。
數(shù)據(jù)格式化指適配器能夠依據(jù)適配器協(xié)議編碼、加密設備參數(shù),并發(fā)送該數(shù)據(jù)到中間件。
由于異構設備的信息化水平、數(shù)據(jù)開放程度與通信協(xié)議各不相同,因此針對不同的設備需要提供不同的適配器,只要適配器滿足上述4種能力,便可接入IMQ,實現(xiàn)設備入云。
表 4 RESTful與SOAP服務數(shù)據(jù)發(fā)布協(xié)議定義Table4 Definition of RESTful and SOAP service data publishing protocol
本文設計的連接模型主要應用于車間級設備接入公有云、私有云、公有傳統(tǒng)服務器、私有傳統(tǒng)服務器的應用場景。適用于車間級設備入云的原因至少包含以下3點:
(1)生產(chǎn)車間一般包含多臺設備,且設備型號、功能與信息化水平各異;
(2)生產(chǎn)車間的設備參數(shù)包含了工藝過程參數(shù)及執(zhí)行數(shù)據(jù),信息價值高,需要保證數(shù)據(jù)存儲與傳輸?shù)陌踩裕?/p>
(3)生產(chǎn)車間作為生產(chǎn)組織的基礎單元,具備相對獨立的生產(chǎn)資源,此時IMQ 提供入云設備管理以車間為單位,系統(tǒng)復雜程度適中,方便管理。
基于該模型開發(fā)的實時監(jiān)控系統(tǒng),已經(jīng)成功在某金屬熱成型車間實施,通過OPC協(xié)議連接設備的適配器,將超塑成型、熱校型、磨削等類型在內(nèi)的15 臺異構生產(chǎn)設備連入了私有傳統(tǒng)服務器,并提供了安全可靠的數(shù)據(jù)通信,實現(xiàn)了對設備參數(shù)的實時采集。
實時監(jiān)控系統(tǒng)中IMQ適配協(xié)議得以實現(xiàn),其中,連接的建立利用TCP/IP協(xié)議實現(xiàn);授權認證通過密鑰認證實現(xiàn);數(shù)據(jù)編碼的設計如圖7所示,包括數(shù)據(jù)頭JSON編碼與數(shù)據(jù)值字節(jié)編碼兩部分;數(shù)據(jù)加密采用異或算法實現(xiàn);心跳檢測利用中間件每30s 發(fā)送心跳幀輪詢適配器的方法實現(xiàn)。
實時監(jiān)控系統(tǒng)中消息隊列的數(shù)據(jù)發(fā)布協(xié)議與IMQ適配協(xié)議相同。RESTful、SOAP協(xié)議中連接的建立采用HTTP協(xié)議實現(xiàn);授權認證采用秘鑰認證實現(xiàn);授權調用采用JWT(JSON Web Token)技術實現(xiàn);數(shù)據(jù)編碼采用JSON 編碼,如圖8所示;數(shù)據(jù)未加密。
實時監(jiān)控系統(tǒng)中IMQ 配置socket 隊列服務的界面如圖9所示。IMQ 接收設備1與設備2的數(shù)據(jù),并將數(shù)據(jù)存放在數(shù)據(jù)緩存池中,然后從數(shù)據(jù)池中選中設備1與設備2的I 基礎數(shù)據(jù)(表1),構建“設備I 級參數(shù)”服務。
圖8 RESTful、SOAP數(shù)據(jù)發(fā)布協(xié)議編碼Fig.8 Data coding of RESTful and SOAP service data publishing protocol
圖9 實時監(jiān)控系統(tǒng)中IMQ配置socket隊列服務Fig.9 Configuring socket queue by IMQ in real-time monitoring system
在云制造環(huán)境下,為了實現(xiàn)異構設備接入云平臺,并保障入云的數(shù)據(jù)安全與數(shù)據(jù)接口統(tǒng)一,本文設計了以IMQ為樞紐的設備入云的連接模型。該模型涉及工業(yè)設備、適配協(xié)議、數(shù)據(jù)發(fā)布協(xié)議、IMQ和云應用5部分內(nèi)容,其中工業(yè)設備端的適配器、適配協(xié)議、數(shù)據(jù)發(fā)布協(xié)議和IMQ是模型的核心構件。工業(yè)設備可通過適配器接入IMQ,然后上傳設備參數(shù),中間件再過濾、路由數(shù)據(jù),最終發(fā)送到云應用。同時,云應用可以下發(fā)指令到中間件,中間件再將指令路由到設備的適配器,最終下發(fā)給設備執(zhí)行,從而實現(xiàn)云端指令下派。模型中的數(shù)據(jù)均按照適配協(xié)議與數(shù)據(jù)協(xié)議傳輸,以此保證設備參數(shù)上云的安全性。該模型為工業(yè)設備接入云平臺提供了新思路,具備借鑒意義。