蔡金瑩,向 峰,周 平,周 順
(1冶金裝備及其控制教育部重點實驗室(武漢科技大學(xué)),武漢 430081;2機械傳動與制造工程湖北省重點實驗室(武漢科技大學(xué)),武漢 430081;3武漢科技大學(xué)精密制造研究院,武漢 430081)
工業(yè)互聯(lián)網(wǎng)作為國家推進“中國制造2025”的主要方向,是成為制造強國和信息強國的重要支撐,是實體經(jīng)濟全要素的樞紐、資源配置的中心和智能制造的核心。當(dāng)前,生產(chǎn)型制造向服務(wù)型制造轉(zhuǎn)型已成為制造業(yè)發(fā)展的重要趨勢。因此,如何可靠穩(wěn)定的支持企業(yè)實現(xiàn)跨地域、跨組織的完成制造協(xié)同協(xié)作工作,成為支撐制造服務(wù)協(xié)作平臺(Manufacturing Service Collaboration Platform,MSCP)運行的重要基礎(chǔ)。
在信息技術(shù)還未與制造業(yè)深度融合的初期,制造網(wǎng)格(Manufacturing Grid,MGrid)和應(yīng)用服務(wù)提供商(Application Service Provider,ASP)作為制造服務(wù)協(xié)作平臺的早期的代表,以實現(xiàn)異構(gòu)、分布制造資源的共享和協(xié)同工作為目標,達到快速滿足市場需求、降低企業(yè)制造成本。隨著互聯(lián)網(wǎng)的不斷發(fā)展和企業(yè)應(yīng)用的范圍不斷擴大,制造模式逐漸從單主體單階段制造模式和多主體單階段協(xié)同制造模式轉(zhuǎn)向多主體跨階段協(xié)同制造模式和多主體按需獲得制造能力模式,工業(yè)互聯(lián)網(wǎng)下的制造服務(wù)協(xié)作平臺結(jié)構(gòu)也變得越來越復(fù)雜。當(dāng)制造資源達到一定數(shù)量時,整個系統(tǒng)將面臨靈活度差、延伸性差、耦合嚴重、服務(wù)監(jiān)控和性能評估難以進行等問題。并且,當(dāng)某一個制造服務(wù)出現(xiàn)故障,整個協(xié)作過程就會出現(xiàn)部署頻繁,維護困難等問題,導(dǎo)致整個制造任務(wù)無法持續(xù)開展,進而無法達到用戶的制造需求。
隨著工業(yè)互聯(lián)網(wǎng)和制造業(yè)的進一步融合,以協(xié)同制造和服務(wù)按需使用為核心的云制造(Cloud Manufacturing,CMfg)發(fā)展迅速。CMfg是面向服務(wù)的架構(gòu)(Service-Oriented Architecture,SOA)傾向于將制造資源成為基于標準協(xié)議的、能夠重復(fù)使用的、可被擴展的、具有靈活性的制造服務(wù)。用戶可以向制造服務(wù)協(xié)作平臺提出設(shè)計、制造、計算等服務(wù)需求,制造服務(wù)協(xié)作平臺依據(jù)用戶的需求,為其提供服務(wù)篩選、服務(wù)匹配和服務(wù)組合。但制造服務(wù)協(xié)作流程中仍存在制造資源動態(tài)變化快、制造任務(wù)交付速度慢、平臺維護困難等問題,這促使制造服務(wù)協(xié)作平臺探索更加優(yōu)質(zhì)的平臺架構(gòu)以實現(xiàn)制造服務(wù)協(xié)作的智能化與信息化。
微服務(wù)架構(gòu)(Microservice Architecture)作為一種新型的系統(tǒng)架構(gòu)設(shè)計風(fēng)格,是解決當(dāng)前制造服務(wù)協(xié)作平臺存在問題的方案之一。微服務(wù)架構(gòu)提倡去中心化思想,追求服務(wù)化,滿足制造服務(wù)協(xié)作平臺的主要流程訴求,目前眾多學(xué)者對微服務(wù)展開了研究,Camilli等人提出了一種基于工作流的微服務(wù)組合建模形式化方法,并指定了一種基于Petri網(wǎng)的微服務(wù)形式化語義,以工作流組合的形式來驗證微服務(wù)組合的可行性。李蘇璇基于微服務(wù)架構(gòu)在SaaS應(yīng)用構(gòu)建過程中的應(yīng)用,提出一種微服務(wù)的高可用管理方案。郭棟等人基于輕量級容器技術(shù)和微服務(wù)架構(gòu),提出了一種具有較好擴展性、規(guī)?;渴?、容災(zāi)和靈活配置等特性的云件PaaS平臺。在智能制造應(yīng)用方面眾多學(xué)者對其展開了研究,D Salikhov等人提出一種基于微服務(wù)的IoT平臺,提高了平臺的可擴展性、可靠性和易用性,并充分展示了其提供外部服務(wù)的優(yōu)勢。相錚基于Docker容器虛擬化技術(shù),結(jié)合制造執(zhí)行系統(tǒng)云平臺化的發(fā)展趨勢,設(shè)計微服務(wù)制造執(zhí)行系統(tǒng)部署架構(gòu)。黃啟啟等人提出一種基于微服務(wù)的倉儲管控系統(tǒng)架構(gòu),實現(xiàn)倉儲業(yè)務(wù)的分布式集成。周文坤等人分析了微服務(wù)架構(gòu)的ERP應(yīng)用系統(tǒng)的優(yōu)勢及挑戰(zhàn)。以上文獻研究了微服務(wù)架構(gòu)在不同的復(fù)雜系統(tǒng)中的應(yīng)用,為微服務(wù)架構(gòu)面向制造服務(wù)協(xié)作平臺的可行性打下了基礎(chǔ)。
基于微服務(wù)架構(gòu)的制造服務(wù)協(xié)作平臺意味著一切功能都是微服務(wù),在實現(xiàn)多種微服務(wù)的分布式集成、通信、持續(xù)監(jiān)控具有良好的優(yōu)勢。當(dāng)前,制造服務(wù)協(xié)作平臺中存在大量異構(gòu)的制造資源,實現(xiàn)這些制造資源的實時、靈活監(jiān)控是保障整個平臺中制造任務(wù)正常完成的重要前提。
本文為解決制造服務(wù)協(xié)作流程中存在制造資源缺乏實時監(jiān)督、數(shù)據(jù)訪問擁堵、制造服務(wù)協(xié)作平臺維護困難等問題,提出了一種基于微服務(wù)架構(gòu)的工業(yè)互聯(lián)網(wǎng)服務(wù)制造服務(wù)協(xié)作平臺,構(gòu)建了制造服務(wù)協(xié)作平臺的架構(gòu)。在此基礎(chǔ)上分析關(guān)鍵方法,并研究了微服務(wù)架構(gòu)下制造服務(wù)協(xié)作平臺的運行流程,有效地解決了目前制造服務(wù)協(xié)作系統(tǒng)所面臨的問題,實現(xiàn)制造服務(wù)的輕量化。
微服務(wù)架構(gòu)是從單體架構(gòu)演化而來的一種架構(gòu)模式。在基于微服務(wù)架構(gòu)的工業(yè)互聯(lián)網(wǎng)制造服務(wù)協(xié)作平臺中,將機器、物料、產(chǎn)品、人力、和軟件制造資源和制造能力,進行統(tǒng)一封裝,形成制造微服務(wù)(Manufacturing Microservices,MMS),MMS之間采用輕量級協(xié)議進行溝通,呈現(xiàn)出單元小型化和微型化的特征。制造協(xié)作平臺基于制造任務(wù)的需求,將整個復(fù)雜的制造任務(wù)拆分成多個制造子任務(wù)。制造子任務(wù)由一個或多個可以被獨立管理、部署和擴展的MMS組織的服務(wù)集合協(xié)作完成。并且,每個MMS擁有獨立的數(shù)據(jù)庫,每個微服務(wù)只需以可靠的服務(wù)質(zhì)量完成自身的制造服務(wù)。MMS可以在短時間內(nèi)被重新部署和改變,服務(wù)的失信和失效不會對整個復(fù)雜制造任務(wù)造成很大的影響。而在單體架構(gòu)中,各制造服務(wù)被部署在一個整體的架構(gòu)中,無法獨立運行,所有的制造服務(wù)基于數(shù)據(jù)庫提供的信息一致性標準,共用同一個數(shù)據(jù)庫,所有的業(yè)務(wù)數(shù)據(jù)、業(yè)務(wù)邏輯和流程被集合在一起,只有在制造規(guī)模小的情況下,才可以很好的而滿足制造任務(wù)的需求。單體框架和微服務(wù)框架圖對比如圖1所示。
圖1 單體架構(gòu)與微服務(wù)架構(gòu)對比圖Fig.1 Comparison between monolithic architecture and microservice architecture
相比于單體架構(gòu),微服務(wù)架構(gòu)在工業(yè)互聯(lián)網(wǎng)制造服務(wù)協(xié)作平臺應(yīng)用具有以下優(yōu)勢:
(1)易管理:單個MMS專注于單一的制造任務(wù),當(dāng)平臺中的MMS出現(xiàn)變更時,僅需對這特定的服務(wù)進行重新管理,無需調(diào)整整個制造任務(wù)。較單體架構(gòu)更加可控。
(2)可獨立部署:每個MMS都是一個獨立的制造過程,服務(wù)粒度劃分小,具有獨立的數(shù)據(jù)庫和制造環(huán)境,這一自治性使得服務(wù)可以獨立的部署。
(3)穩(wěn)定可靠:微服務(wù)架構(gòu)重視服務(wù)的可用性、流量的負載均衡,失效和失信的MMS會被隔離在內(nèi)部,加上配套監(jiān)控機制使得平臺的運行更加可靠。
(4)靈活度高:MMS的細粒度特征在提高制造效率、縮短制造需求響應(yīng)時間有明顯的效果,可以通過平臺實現(xiàn)制造服務(wù)的自動組合和篩選。
綜上分析,微服務(wù)架構(gòu)在很大程度上簡化了制造服務(wù)的創(chuàng)建、集成、部署及運行流程。由此可見,微服務(wù)架構(gòu)更加符合當(dāng)前工業(yè)互聯(lián)網(wǎng)制造服務(wù)協(xié)作的發(fā)展新趨勢。
工業(yè)互聯(lián)網(wǎng)服務(wù)協(xié)作平臺以各類制造資源和制造能力為構(gòu)成要素,以為全生命周期制造活動提供按需使用、穩(wěn)定可靠、獲取方便的制造服務(wù)為目標,以傳感器采集的多源異構(gòu)類數(shù)據(jù)為信息來源,并融合互聯(lián)網(wǎng)、云計算、虛擬化等先進的制造技術(shù),有效建立穩(wěn)定可靠的制造服務(wù)協(xié)作平臺,實現(xiàn)制造服務(wù)協(xié)作的制造資源接入和發(fā)布、產(chǎn)品制造、制造任務(wù)交付等全流程功能操作。
基于微服務(wù)架構(gòu)的工業(yè)互聯(lián)網(wǎng)制造服務(wù)協(xié)作平臺物理架構(gòu)從底層到頂層分別由基礎(chǔ)層、共享層、制造應(yīng)用層、微服務(wù)層組成,如圖2所示。
圖2 基于微服務(wù)架構(gòu)的工業(yè)互聯(lián)網(wǎng)制造服務(wù)協(xié)作平臺物理架構(gòu)圖Fig.2 Physical architecture diagram of industrial internet manufacturing service collaboration platform based on microservice architecture
(1)基礎(chǔ)層?;A(chǔ)層是保障所有MMS可靠運行的關(guān)鍵。工業(yè)互聯(lián)網(wǎng)制造服務(wù)協(xié)作平臺的基礎(chǔ)層主要包含防火墻、網(wǎng)關(guān)、服務(wù)器、數(shù)據(jù)庫、操作系統(tǒng)等要素。管理服務(wù)器對制造服務(wù)起到保障安全、預(yù)警及監(jiān)控的作用。當(dāng)平臺中出現(xiàn)制造資源訪問失敗、制造任務(wù)發(fā)布錯誤、制造資源配置不合理等故障時,可以通過服務(wù)監(jiān)控、服務(wù)授權(quán)、日志分析、服務(wù)降級等功能,實現(xiàn)對微服務(wù)的高效管理。
(2)共享層。共享層實現(xiàn)了制造服務(wù)協(xié)作平臺中信息流的交互與共享。制造平臺中MMS的制造任務(wù)命令傳達需要在多層中進行,共享層包含DNS、RPC、服務(wù)注冊和發(fā)現(xiàn)中心Eureka組件等要素。服務(wù)注冊和發(fā)現(xiàn)中心是共享層的核心要素之一,制造服務(wù)協(xié)作平臺將制造資源以服務(wù)的形式封裝注冊到服務(wù)中心,注冊服務(wù)中心記錄了所有MMS的物理地址和制造服務(wù)參數(shù)等信息。
(3)制造應(yīng)用層。應(yīng)用平臺層為服務(wù)監(jiān)控、斷路器和容錯處理Hystrrix、制造服務(wù)流程管理、服務(wù)發(fā)布、服務(wù)查詢、服務(wù)篩選、服務(wù)組合等功能的實現(xiàn)提供支撐,為用戶提供“按需服務(wù)”。
(4)微服務(wù)層。微服務(wù)層由基礎(chǔ)微服務(wù)和應(yīng)用微服務(wù)兩個部分組成。是MMS以及MMS所有相關(guān)的事物所在的層,與下方的基礎(chǔ)層、共享層和制造應(yīng)用層相互獨立。
基于物聯(lián)網(wǎng)和虛擬化技術(shù)的制造服務(wù)協(xié)作平臺,將制造資源和制造能力封裝成制造微服務(wù)形式,具體流程如圖3所示。采用可拓展標記語言(Extendable Markup Language,XML)進行標準的服務(wù)化描述,實體資源經(jīng)過標準化分類后異構(gòu)為多種不同的資源池,賦予其制造屬性和行為,并向上提供統(tǒng)一的數(shù)據(jù)接口,為各類制造任務(wù)所靈活調(diào)用,為制造服務(wù)的查詢、管理、篩選、組合等提供支持,實現(xiàn)制造資源高效集成和高效利用的基礎(chǔ)。其中,每個制造微服務(wù)的服務(wù)化描述如下所示:
圖3 制造資源封裝流程圖Fig.3 Manufacturing resource encapsulation flow chart
其中:MMSID表示服務(wù)標識;MMSAddress表示其物理地址;MSSfunction表示該微服務(wù)的執(zhí)行主要功能;MMSType表示服務(wù)類型;MMSProvider表示制造服務(wù)商;MMSState表示當(dāng)前狀態(tài);MMSParameter參數(shù)信息;MMSOthers為其他信息。
制造服務(wù)協(xié)作追求靈活管理服務(wù)。如圖4所示,Eureka中心為制造資源提供商提供服務(wù)注冊、服務(wù)發(fā)布及服務(wù)發(fā)布的功能,為制造任務(wù)需求方提供用戶用戶注冊和制造服務(wù)訂閱的功能。制造任務(wù)需求方能夠從Eureka中心獲取查詢獲取制造資源提供商的注冊信息。如當(dāng)用戶向MMS(如仿真計算服務(wù))發(fā)送發(fā)起制造協(xié)作時,通過查詢服務(wù)注冊中心,找到MMS的位置,從而獲取該服務(wù)實例。Eureka框架組成服務(wù)注冊中心集群,各注冊中心之間相互注冊當(dāng)前注冊中心已有的MMS,當(dāng)一個注冊中心出現(xiàn)故障,并不會影響注冊和查詢服務(wù),從而實現(xiàn)注冊中心的高可用。
圖4 服務(wù)注冊與發(fā)現(xiàn)架構(gòu)Fig.4 Service registration and discovery architecture
良好的溝通過程能夠提高制造流程的可靠性。在制造服務(wù)協(xié)作系統(tǒng)中,各制造微服務(wù)之間基于制造任務(wù)形成制造微服務(wù)集,采用輕量級通信協(xié)議進行P2P節(jié)點通信,占用極少的平臺資源,且互不影響,呈現(xiàn)松耦合狀態(tài)。在微服務(wù)架構(gòu)中,制造任務(wù)提供商可以直接與任一制造資源協(xié)作方進行通信,而不需要再找制造服務(wù)協(xié)作平臺的運營商。以實現(xiàn)制造資源提供商做出更快地響應(yīng),縮短制造周期的目的。在執(zhí)行制造任務(wù)MT的通信總時長ST計算公式如下:
其中,TW為微服務(wù)請求等待時間;TD為微服務(wù)的請求延長時間;為該項制造任務(wù)中的MMS數(shù)量。
每個制造微服務(wù)都有Eureka client,在server中注冊后需要和服務(wù)中心保持“心跳”。此外,采用“心跳機制”定時同步與感知微服務(wù)的當(dāng)前服務(wù)狀態(tài),即在規(guī)定時間內(nèi)持續(xù)與平臺確認該服務(wù)正常運行的狀態(tài),在不影響監(jiān)測實時性的基礎(chǔ)上,通過定期端推送監(jiān)控信息,從而實現(xiàn)遠程虛擬化監(jiān)控功能。若某個微服務(wù)出現(xiàn)服務(wù)不可用和請求超時或超時次數(shù)超出一定范圍等問題,則平臺將會對這些微服務(wù)進行服務(wù)降級或者移除,緩解請求阻塞,縮小對制造服務(wù)協(xié)作平臺的影響,提高資源的高可用性。
API網(wǎng)關(guān)為MMS提供規(guī)范及標準化的接口,Ribbon負載均衡組件負責(zé)協(xié)作平臺流量的分發(fā),Hystrix服務(wù)熔斷機制通過記錄和監(jiān)測協(xié)作平臺的實時運行狀態(tài)及制造任務(wù)協(xié)作情況。API網(wǎng)關(guān)、Ribbon負載均衡組件和Hystrix服務(wù)熔斷機制從不同維度保障了微服務(wù)的健康狀況,有效提高了制造服務(wù)協(xié)作平臺的容錯性和健壯性。負載均衡模塊依據(jù)各制造服務(wù)的健康狀況與負荷,決定下一項制造任務(wù)的完成者,保證制造任務(wù)可靠的運行。負載均衡評價因素集合為:
其中,response time為響應(yīng)時間;request times為請求次數(shù);waiting time為等待時間;failure times為失敗請求次數(shù);delaylatency為延遲時間。
制造服務(wù)篩選和制造服務(wù)組合是工業(yè)互聯(lián)網(wǎng)平臺實現(xiàn)“按需制造的”核心環(huán)節(jié),基于微服務(wù)架構(gòu)的制造服務(wù)協(xié)作流程如圖5所示,具體步驟如下:
圖5 基于微服務(wù)架構(gòu)的制造服務(wù)協(xié)作流程Fig.5 Flow chart of manufacturing service collaboration based on microservice architecture
各制造資源服務(wù)提供商將制造資源分類之后,通過虛擬化技術(shù),將制造資源進行標準化描述,生成部署制造服務(wù)包,每個MMS都開放服務(wù)接口。
每個微服務(wù)都是一個獨立的服務(wù)實例,制造資源提供商在服務(wù)注冊中心注冊其所提供的制造資源,上傳制造資源屬性、服務(wù)價格、服務(wù)違約率、物理地址、接口版本等信息。
用戶向平臺提交制造任務(wù),制造任務(wù)被分解成多個制造任務(wù)集MTS。用戶依據(jù)制造任務(wù)集需求向注冊中心訂閱所需要的服務(wù)實例,經(jīng)過服務(wù)檢索和匹配,平臺的注冊中心向用戶提供匹配的MMS的地址列表。
在分布式制造環(huán)境中,采用RPC篩選合適的制造服務(wù),展開一對一或一對多的制造服務(wù)協(xié)作,從而形成制造服務(wù)候選集MRS。
各MMS之間結(jié)合制造服務(wù)任務(wù)和制造服務(wù)需求,綜合權(quán)衡多種因素,進行服務(wù)協(xié)商,其中協(xié)議內(nèi)容包各自的QoS參數(shù)及協(xié)作的懲罰和獎勵機制。若協(xié)商成功,則簽訂制造服務(wù)等級協(xié)議(Service Level Agreement),且SLA保存在各MMS的數(shù)據(jù)庫中。
創(chuàng)建分布式MTS協(xié)作方案,開始制造任務(wù),調(diào)用匹配的MMS,進行服務(wù)組合。若出現(xiàn)調(diào)用連接超時、請求失敗,則采取重試策略;若出現(xiàn)流量突增和負載過高等問題,將Ribbon配置好的算法負載均衡組件分散到各服務(wù)提供商上,接收到請求的服務(wù)提供商將響應(yīng)請求,從而實現(xiàn)負載均衡。
監(jiān)控中心定期向每個服務(wù)實例發(fā)送心跳監(jiān)控請求,若某個服務(wù)實例隔斷時間不連續(xù),則監(jiān)控中心將移除該服務(wù)實例并重新篩選新的服務(wù)實例,并啟用日志功能。
對最終的制造任務(wù)的QoS進行評估,如果MMS在協(xié)作過程中出現(xiàn)服務(wù)失信或服務(wù)失效狀況,則制造服務(wù)協(xié)作平臺依據(jù)事先簽訂的SLA對其進行違約金賠償并將違約信息記錄在該服務(wù)的注冊信息中。
當(dāng)一項制造任務(wù)完成后,則該制造服務(wù)集迅速解散。
上述協(xié)作流程從多個角度保證了工業(yè)互聯(lián)網(wǎng)平臺中制造服務(wù)協(xié)作的可靠性和穩(wěn)定性。
(1)通過注冊中心和服務(wù)發(fā)現(xiàn)機制的應(yīng)用,對制造協(xié)作任務(wù)進行快速創(chuàng)建、部署,極大地提高制造任務(wù)的交付速度。
(2)基于微服務(wù)架構(gòu)的組件,斷路器和熔斷處理Hystrix使得各MMS更可靠的進行制造消息共享,監(jiān)控技術(shù)持續(xù)的分析各制造服務(wù)的實時行為,保障了制造任務(wù)的穩(wěn)定執(zhí)行。
(3)協(xié)作流程中引入服務(wù)等級協(xié)議,能在很大程度上降低人為干擾,增加服務(wù)提供商的制造積極性,從而保證了工業(yè)互聯(lián)網(wǎng)制造服務(wù)協(xié)作平臺的可信性。
基于工業(yè)互聯(lián)網(wǎng)平臺的制造服務(wù)協(xié)作是制造業(yè)發(fā)展的方向。本文針對制造服務(wù)協(xié)作平臺中存在的制造資源集成困難、缺乏服務(wù)監(jiān)控、平臺維護困難等問題,提出了一種基于微服務(wù)架構(gòu)的制造協(xié)作平臺,通過分析平臺的架構(gòu)和關(guān)鍵技術(shù),設(shè)計了基于微服務(wù)架構(gòu)的制造服務(wù)協(xié)作流程。較好的解決了制造服務(wù)協(xié)作平臺的穩(wěn)定性及制造任務(wù)的服務(wù)質(zhì)量,滿足了智能制造對制造平臺的新要求,同時也為后續(xù)基于工業(yè)互聯(lián)網(wǎng)的制造服務(wù)協(xié)作的研究工作奠定了堅實的理論基礎(chǔ)。