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