引自:《制造執(zhí)行系統(tǒng)技術(shù)及應(yīng)用》(作者:饒運清)
所謂MES系統(tǒng)架構(gòu),是指MES系統(tǒng)的基礎(chǔ)組織,包含各個構(gòu)件、構(gòu)件互相之間與環(huán)境的關(guān)系,以及指導(dǎo)其設(shè)計和演化的原則。MES系統(tǒng)架構(gòu)主要指MES的軟件架構(gòu)或IT架構(gòu)。MES作為大型軟件系統(tǒng),其系統(tǒng)架構(gòu)對于MES系統(tǒng)的設(shè)計開發(fā)、應(yīng)用部署以及升級維護等均具有十分重要的影響。基于先進架構(gòu)的MES系統(tǒng)具有開放式、客戶化、可配置、可伸縮、易集成等特性,可支持針對企業(yè)業(yè)務(wù)流程的變更或重組進行系統(tǒng)重構(gòu)和快速配置,以適應(yīng)現(xiàn)代制造環(huán)境的變化。
「1.基于改進C/S結(jié)構(gòu)與組件技術(shù)的三層系統(tǒng)架構(gòu)」
MES軟件系統(tǒng)一般由三大部分組成,即用戶界面部分、業(yè)務(wù)邏輯部分和數(shù)據(jù)儲存部分。對于早期的專用MES系統(tǒng)而言,上述三大部分是緊密結(jié)合、密不可分的;對于集成化MES系統(tǒng),為了保障系統(tǒng)各功能之間的數(shù)據(jù)集成性,將數(shù)據(jù)集中到服務(wù)器上,實現(xiàn)數(shù)據(jù)共享,形成了具有兩層結(jié)構(gòu)的C/S架構(gòu);發(fā)展到可集成MES階段,為了實現(xiàn)系統(tǒng)的可集成性與可重構(gòu)性,將三部分獨立開來,并進一步與組件技術(shù)相結(jié)合,形成了如圖1所示的基于改進C/S結(jié)構(gòu)與組件技術(shù)的MES三層系統(tǒng)架構(gòu)。其中,表示層用于界面引導(dǎo),接受用戶輸入,并向應(yīng)用服務(wù)器發(fā)送服務(wù)請求,顯示處理結(jié)果;業(yè)務(wù)邏輯層用于執(zhí)行業(yè)務(wù)邏輯,向數(shù)據(jù)庫發(fā)送請求;數(shù)據(jù)存儲層用于執(zhí)行數(shù)據(jù)邏輯,運行SQL或存儲過程。
圖1 基于改進C/S結(jié)構(gòu)與組件技術(shù)的MES三層體系統(tǒng)架構(gòu)
上述基于改進C/S結(jié)構(gòu)與組件技術(shù)的MES三層系統(tǒng)架構(gòu)的最顯著優(yōu)點是實現(xiàn)了MES業(yè)務(wù)邏輯與表示層的分離,并可實現(xiàn)功能組件的重用,從而大大提高了MES系統(tǒng)的開發(fā)效率。基于組件技術(shù)開發(fā)的MES具有良好的可配置性、可重用性、可擴展性和可集成性,可以較好滿足現(xiàn)代制造企業(yè)對MES的需求。但上述C/S架構(gòu)也有其明顯的局限性。首先,該系統(tǒng)架構(gòu)下的MES組件是面向功能的,粒度較小,不能實現(xiàn)系統(tǒng)與制造業(yè)務(wù)的良好對應(yīng)。其次,MES系統(tǒng)客戶端與服務(wù)器端的實現(xiàn)必須采用相同的構(gòu)件體系,且組件須是同構(gòu)技術(shù),從而制約了系統(tǒng)自由擴充的實現(xiàn)。第三,基于該系統(tǒng)架構(gòu)的MES系統(tǒng)往往只能部署在局域網(wǎng)中,無法跨網(wǎng)運行,限制了異地制造協(xié)同的實現(xiàn)。最后,基于該架構(gòu)的MES系統(tǒng)雖然更新業(yè)務(wù)邏輯或數(shù)據(jù)變得容易,不需要在客戶端機器上重新安裝新版本的用戶界面,但是客戶端跟業(yè)務(wù)邏輯的關(guān)系仍較緊密,如果表示層軟件發(fā)生變動,仍需要重新安裝客戶端。基于上述不足,出現(xiàn)了基于B/S結(jié)構(gòu)的MES分布式系統(tǒng)架構(gòu)。
「2.基于B/S結(jié)構(gòu)的MES分布式系統(tǒng)架構(gòu)」
B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。在某些制造業(yè)的生產(chǎn)車間,生產(chǎn)現(xiàn)場條件相對比較惡劣,如果采用C/S結(jié)構(gòu)的MES系統(tǒng),對系統(tǒng)硬件的配置要求較高,成本會大幅度增加。因為相比C/S結(jié)構(gòu)而言,采用B/S架構(gòu)MES不用像C/S結(jié)構(gòu)的MES那樣在安裝和升級時,需要到每一臺客戶端進行客戶端的配置,只需在服務(wù)器上進行一次安裝升級即可。在客戶端只需瀏覽器,無需額外的配置,對客戶端計算機配置要求低,客戶無需再投入資金購買配置高的計算機。這樣使得軟件的維護和升級較為方便,可實現(xiàn)系統(tǒng)的無縫升級,大大降低了系統(tǒng)的維護成本。此外,由于B/S架構(gòu)操作性強,用戶可以在任何一臺裝有瀏覽器的主機上使用系統(tǒng),而不需要專門的客戶端軟件,克服了傳統(tǒng)C/S結(jié)構(gòu)安裝和維護困難的不足。而且,B/S實現(xiàn)了C/S結(jié)構(gòu)不能實現(xiàn)的很多功能,如遠程操作和分布式操作等。如此,用戶可在外網(wǎng)訪問到MES系統(tǒng)而不局限于只能在內(nèi)網(wǎng),從而大大提高辦公效率。
基于B/S結(jié)構(gòu)的MES分布式系統(tǒng)架構(gòu)如圖2所示。該架構(gòu)亦由三層組成:第一層是表示層,由基于Web瀏覽器的標準客戶端和基于專用軟件的專業(yè)客戶端組成,用于實現(xiàn)用戶請求與人機對話;第二層是應(yīng)用邏輯層,是由Web服務(wù)器采用HTTP協(xié)議來處理表示層發(fā)送過來的用戶請求,由相應(yīng)的功能組件來實現(xiàn)客戶的具體應(yīng)用要求。在應(yīng)用邏輯層,MES的功能組件以軟構(gòu)件的形式集成在系統(tǒng)框架(軟總線)中,并通過應(yīng)用服務(wù)器對外提供MES應(yīng)用服務(wù);第三層是數(shù)據(jù)庫層,包括存儲歷史數(shù)據(jù)的關(guān)系數(shù)據(jù)庫和存儲實時數(shù)據(jù)的實時數(shù)據(jù)庫。該層也可以是一個抽象的數(shù)據(jù)層,包括各種數(shù)據(jù)資源、數(shù)據(jù)庫文件、XML文件,以及圖標程序文件等。應(yīng)用邏輯層在執(zhí)行業(yè)務(wù)邏輯的過程中,向數(shù)據(jù)庫層發(fā)送數(shù)據(jù)請求,由數(shù)據(jù)庫層執(zhí)行數(shù)據(jù)邏輯,運行SQL或存儲過程。
圖2 基于B/S結(jié)構(gòu)的MES分布式系統(tǒng)架構(gòu)
上述基于B/S結(jié)構(gòu)的MES系統(tǒng)架構(gòu)具有如下特點:(1)基于Web技術(shù),采用HTTP與HTML,使得表示層得以集中控制,并使用客戶端來顯示數(shù)據(jù)、與用戶互動,軟件變更時只需在服務(wù)器上進行一次升級安裝即可,而不需要重新安裝整個客戶端應(yīng)用軟件。(2)允許更靈活地部署表示層、業(yè)務(wù)邏輯層與數(shù)據(jù)存取層。允許將業(yè)務(wù)邏輯跨不同服務(wù)器分布,將表示層與業(yè)務(wù)邏輯層混合在一起,或?qū)I(yè)務(wù)邏輯層與數(shù)據(jù)層相結(jié)合。(3)系統(tǒng)可擴展性好。(4)系統(tǒng)硬件成本低。(5)支持外網(wǎng)訪問、遠程操作、分布式操作。
但B/S架構(gòu)存在通信開銷較大、安全性差和響應(yīng)速度慢等不足。隨著互聯(lián)網(wǎng)的高速發(fā)展和服務(wù)器性能的顯著提高,B/S結(jié)構(gòu)的性能速度有了很大改善,從而使得這種MES架構(gòu)的應(yīng)用也越來越廣泛。
「3.基于SOA面向服務(wù)的MES系統(tǒng)架構(gòu)」
SOA(service oriented architecture,面向服務(wù)的系統(tǒng)架構(gòu))是一種企業(yè)應(yīng)用體系架構(gòu),該架構(gòu)提供了一種編程模型,使得分布部署在網(wǎng)絡(luò)上的服務(wù)組件能夠被其他應(yīng)用程序或服務(wù)發(fā)現(xiàn)和調(diào)用。如圖3所示,SOA中的服務(wù)需求者是一個應(yīng)用程序、一個軟件模塊或需要服務(wù)的另一個服務(wù)。它發(fā)起對注冊中心中服務(wù)的查詢,通過傳輸綁定服務(wù),并且執(zhí)行服務(wù)功能。服務(wù)使用者根據(jù)接口契約來執(zhí)行服務(wù)。服務(wù)提供者是一個可通過網(wǎng)絡(luò)尋址的實體,它接受和執(zhí)行來自使用者的請求,它將自己的服務(wù)和接口契約發(fā)布到服務(wù)注冊中心,以便服務(wù)使用者可以發(fā)現(xiàn)和訪問該服務(wù)。服務(wù)注冊中心則是是服務(wù)發(fā)現(xiàn)的支持者,它包括一個可用服務(wù)的存儲庫,并允許感興趣的服務(wù)使用者可以發(fā)現(xiàn)和訪問該服務(wù)。
圖3 面向服務(wù)的系統(tǒng)架構(gòu)
“服務(wù)”是SOA中的關(guān)鍵概念,成功實現(xiàn)SOA的關(guān)鍵是為可重用庫中的每個服務(wù)確定正確的設(shè)計與功能,且確保可重用的軟件服務(wù)與業(yè)務(wù)流程完全一致。SOA是基于面向?qū)ο蠹夹g(shù)和組件技術(shù)之上更高級別的抽象。基于SOA的系統(tǒng)將系統(tǒng)功能打包成一個可互操作的服務(wù)套件,這種服務(wù)套件可用于多個不同的系統(tǒng)或多個業(yè)務(wù)領(lǐng)域。服務(wù)之間具有松耦合、粗粒度、位置和傳輸協(xié)議透明的特性。
SOA的實現(xiàn)可以基于CORBA、Web Services等技術(shù),目前Web Services是實現(xiàn)SOA的重要手段,其信息可以被不同形式的客戶端所使用。Web Services是基于網(wǎng)絡(luò)的、分布式的模塊化組件,它執(zhí)行特定的任務(wù),遵守具體的技術(shù)規(guī)范,這些規(guī)范使得Web Services能與其他兼容的組件進行交互操作。Web Services建立在開放標準和獨立于平臺的協(xié)議之上,通過HTTP(超文本傳輸協(xié)議)使用SOAP(簡單對象使用協(xié)議),以便在服務(wù)提供者和消費者之間進行通信。服務(wù)通過WSDL(Web服務(wù)描述語言)定義的接口來公開,WSDL的語義用XML來定義。UDDI(一種用于描述、發(fā)現(xiàn)、集成Web Service的技術(shù))是一種與語言無關(guān)的協(xié)議,用于和注冊中心進行交互和查找服務(wù),通過Web服務(wù)的組合和編排可以實現(xiàn)企業(yè)的業(yè)務(wù)流程。
圖4所示為基于 SOA 面向服務(wù)的MES系統(tǒng)架構(gòu)。基于SOA的架構(gòu)設(shè)計以服務(wù)為關(guān)注點,在傳統(tǒng)的MES三級分層架構(gòu)模型的基礎(chǔ)上主要增加了服務(wù)層,通過服務(wù)化的封裝把MES系統(tǒng)內(nèi)部具體的業(yè)務(wù)邏輯進行屏蔽,僅以服務(wù)的形式暴露出用戶可用的業(yè)務(wù)活動的集合,從而提高服務(wù)及服務(wù)內(nèi)部業(yè)務(wù)邏輯的重用,可以通過對粗粒度松散耦合的服務(wù)進行組合和部署就能構(gòu)造出復(fù)雜的系統(tǒng)邏輯。結(jié)合MES系統(tǒng)功能模塊的定義,將MES各功能模塊封裝成系統(tǒng)服務(wù)放置于系統(tǒng)應(yīng)用層,每個服務(wù)均由服務(wù)層、邏輯層和數(shù)據(jù)訪問層組成。
圖4 基于SOA面向服務(wù)的MES系統(tǒng)架構(gòu)
綜上所述,基于SOA面向服務(wù)的MES系統(tǒng)架構(gòu)具有如下特點:
(1)服務(wù)化。在SOA架構(gòu)下,服務(wù)是構(gòu)建MES的基本單元,服務(wù)的請求、發(fā)布、查找、組合運作是MES系統(tǒng)的基本運作模式。車間所有制造資源、軟硬件條件、制造知識都被封裝成服務(wù)。車間生產(chǎn)運作或MES運行過程具體體現(xiàn)為制造服務(wù)的匹配、選擇、組合、執(zhí)行、監(jiān)控和重構(gòu)。
(2)集成化。基于語義Web服務(wù),采用基于語義網(wǎng)關(guān)的系統(tǒng)集成框架,消除系統(tǒng)之間集成對象在語法結(jié)構(gòu)和語義層面的異構(gòu)性,實現(xiàn)系統(tǒng)的無縫集成。
(3)功能擴展。MES系統(tǒng)的應(yīng)用范圍從單一車間擴展為網(wǎng)絡(luò)環(huán)境下多車間制造過程的協(xié)同運作管理。(支持網(wǎng)絡(luò)化協(xié)同制造)
(4)開放性。MES系統(tǒng)的構(gòu)建基于面向服務(wù)技術(shù),服務(wù)之間的松散耦合性使系統(tǒng)具有良好的可擴展性,各類制造服務(wù)和功能能夠方便地按需加入到MES系統(tǒng)。
基于SOA面向服務(wù)的MES系統(tǒng)的物理架構(gòu)及系統(tǒng)部署方案如圖5所示,它描述了系統(tǒng)中軟件和硬件的物理架構(gòu)。
圖5 基于SOA面向服務(wù)的MES系統(tǒng)的物理架構(gòu)
(1)客戶計算機:部署客戶端應(yīng)用程序,提供用戶訪問系統(tǒng)服務(wù)的界面接口,用戶通過預(yù)裝瀏覽器訪問遠程服務(wù)器上的Web應(yīng)用,或者使用智能客戶端應(yīng)用程序與遠程應(yīng)用服務(wù)器進行交互。
(2)Web 服務(wù)器:該服務(wù)器用于部署Web應(yīng)用或Web Services。Web服務(wù)器是可以向發(fā)出服務(wù)請求的瀏覽器提供文檔的程序。當Web瀏覽器(客戶端)連到服務(wù)器上并請求文件時,服務(wù)器將處理該請求并將文件反饋到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。服務(wù)器使用HTTP(超文本傳輸協(xié)議)與客戶機瀏覽器進行信息交流。
(3)應(yīng)用服務(wù)器:系統(tǒng)的服務(wù)層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層都部署在該節(jié)點服務(wù)器之上,用于處理核心業(yè)務(wù)邏輯。
(4)數(shù)據(jù)庫服務(wù)器:使用獨立的數(shù)據(jù)服務(wù)器部署數(shù)據(jù)庫應(yīng)用,為系統(tǒng)提供數(shù)據(jù)的存儲功能,保存系統(tǒng)中產(chǎn)生的數(shù)據(jù)信息。
「4.MES微服務(wù)架構(gòu)」
傳統(tǒng)的服務(wù)應(yīng)用的開發(fā)方式是將整個服務(wù)應(yīng)用的數(shù)據(jù)庫、接口、頁面等進行分層設(shè)計、統(tǒng)一開發(fā),然后逐層實現(xiàn)。在這些模塊或接口中,只要有一個沒有完成開發(fā),那么整個應(yīng)用系統(tǒng)將無法正常運行。SOA提出在對軟件進行架構(gòu)設(shè)計時,把整個應(yīng)用服務(wù)根據(jù)業(yè)務(wù)細化成多個獨立的小的服務(wù),即低耦合及面向服務(wù)流程的思想。但是在SOA的架構(gòu)中,企業(yè)服務(wù)總線(EBS)仍處于非常重要的位置,致使整個系統(tǒng)的SOA架構(gòu)仍很難實現(xiàn)完全的面向服務(wù)以及完全的組件化,SOA的應(yīng)用存在一定的局限性。
微服務(wù)架構(gòu)(micro service architecture,MSA)是在2012年被提出的,其思想本質(zhì)上和SOA一脈相承,是SOA的變體,它把SOA的理念進行了進一步的升華。MSA的核心思想是在系統(tǒng)設(shè)計開發(fā)階段,將單個應(yīng)用劃分為一系列微小服務(wù)來實現(xiàn)系統(tǒng)的所有功能。MSA是一種云原生架構(gòu)方法,其中單個應(yīng)用程序由許多松散耦合且可獨立部署的較小組件或服務(wù)組成。這些服務(wù)通常有自己的堆棧,包括數(shù)據(jù)庫和數(shù)據(jù)模型;通過REST API,事件流和消息代理的組合相互通信;它們是按業(yè)務(wù)能力組織的,分隔服務(wù)的線通常稱為邊界上下文。相比于SOA,MSA有如下特點:
(1)MSA強調(diào)去ESB、去中心化、分布式,所以MSA能帶來更大的靈活性,為開發(fā)系統(tǒng)提供更加輕量級、效率更高的設(shè)計模式。而SOA還是以ESB服務(wù)總線為核心,MSA則使用輕量級協(xié)議,如HTTP、REST等。數(shù)據(jù)存儲層面,SOA是共享數(shù)據(jù)存儲,MSA則是每個微服務(wù)有獨立的數(shù)據(jù)存儲。
(2)從劃分服務(wù)粒度而言,MSA側(cè)重于服務(wù)劃分的細粒度、可重用性,每個方法都可以成為一個獨立的微服務(wù),每個微服務(wù)負責明確的任務(wù),并且將處理任務(wù)的結(jié)果以輕量級API的形式返回給外部;相比之下,SOA對服務(wù)的劃分沒有這么細致,主要是根據(jù)MES的業(yè)務(wù)功能來劃分服務(wù),以減少服務(wù)數(shù)量,簡化服務(wù)調(diào)用以及服務(wù)管理。
(3)在軟件開發(fā)模式上,SOA注重共同治理和標準,MSA則更注重團隊協(xié)作和自由選擇,團隊可以為不同的組件使用不同的堆棧,可以更輕松地更新代碼。SOA的目標最大化應(yīng)用程序服務(wù)的可重用性,重點關(guān)注業(yè)務(wù)功能重用,當系統(tǒng)改變時需要修改程序;MSA則專注于解耦,更關(guān)注邊界上下文,系統(tǒng)的改變是創(chuàng)建一個新的服務(wù)。MSA的組件可以彼此獨立地進行縮放,從而減少了因必須縮放整個應(yīng)用程序而產(chǎn)生的浪費和成本。
(4)從部署方式上,MSA應(yīng)用Docker技術(shù)不依賴于任何服務(wù)器和數(shù)據(jù)模型,是一個可自動化部署的全棧應(yīng)用,每個微服務(wù)都運行在自己的進程里。而SOA則通過不同層進行打包,比如展現(xiàn)層打包war包,業(yè)務(wù)層打包為jar包等。
MES微服務(wù)架構(gòu)如圖6所示。該架構(gòu)主要由表示層、微服務(wù)管理層、微服務(wù)層和數(shù)據(jù)庫層組成。
圖6 MES微服務(wù)架構(gòu)
(1)微服務(wù)層:主要提供MES業(yè)務(wù)功能所需要的所有獨立的微服務(wù),包括制造過程管理微服務(wù)、文檔管理微服務(wù)、日志管理微服務(wù)等。每個微服務(wù)可能有自己的數(shù)據(jù)庫或者多個微服務(wù)公用一個數(shù)據(jù)庫。每個微服務(wù)需要對外提供輕量級API接口。
(2)微服務(wù)管理層:通過微服務(wù)管理層來完成對微服務(wù)的管理以及處理邏輯,包括微服務(wù)網(wǎng)關(guān)、微服務(wù)注冊與發(fā)現(xiàn)、微服務(wù)接口與微服務(wù)代理等。當微服務(wù)啟動時,會自動將其信息注冊到服務(wù)注冊表中,比如每個服務(wù)的IP和端口。當微服務(wù)客戶端表示層發(fā)出請求時,將請求發(fā)送到微服務(wù)網(wǎng)關(guān)中,微服務(wù)網(wǎng)關(guān)讀取請求數(shù)據(jù),并從服務(wù)注冊表中獲取對應(yīng)服務(wù)的信息(IP與端口)。最后微服務(wù)網(wǎng)關(guān)主動去調(diào)用下面對應(yīng)的微服務(wù)。
(3)微服務(wù)客戶端表示層:主要是通過微服務(wù)管理層中相應(yīng)MES業(yè)務(wù)模塊的服務(wù)代理向微服務(wù)服務(wù)端發(fā)送請求,經(jīng)過微服務(wù)管理層內(nèi)部處理后再將請求傳遞給相應(yīng)模塊服務(wù)的服務(wù)接口進行MES服務(wù)端處理,完成后將相應(yīng)信息按照相反順序依次傳遞給MES客戶端,這種傳遞一般都是通過調(diào)用API來實現(xiàn)的。
相比于傳統(tǒng)的單體架構(gòu),基于微服務(wù)架構(gòu)的MES實現(xiàn)功能服務(wù)化,在系統(tǒng)設(shè)計開發(fā)、應(yīng)用與維護等方面具有明顯優(yōu)勢,其設(shè)計開發(fā)模式是對現(xiàn)有復(fù)雜大型單體應(yīng)用架構(gòu)以業(yè)務(wù)為單元進行拆分,每個拆分的微服務(wù)應(yīng)用都可以單獨部署和測試,可以采用單獨的技術(shù)架構(gòu)、獨立的數(shù)據(jù)存儲、獨立的開發(fā)運營團隊支撐,快速以微服務(wù)應(yīng)用為單位進行彈性擴展,通過降低各個業(yè)務(wù)單元之間的耦合關(guān)系以簡化開發(fā)過程,降低開發(fā)成本。此外,MES微服務(wù)架構(gòu)支持工業(yè)云商業(yè)新模式,并提供廣泛的移動化支持。
-
MES系統(tǒng)
+關(guān)注
關(guān)注
0文章
178瀏覽量
14297 -
軟件架構(gòu)
+關(guān)注
關(guān)注
0文章
64瀏覽量
10274 -
基礎(chǔ)
+關(guān)注
關(guān)注
0文章
36瀏覽量
18276
發(fā)布評論請先 登錄
相關(guān)推薦
評論