本講介紹系統集成中最重要的技術(shù)—系統集成軟件技術(shù)。信息化集成系統的層級被集成為有機整體,主要是通過(guò)系統集成軟件實(shí)現的。信息化集成系統不同層級通過(guò)分層分布式軟件架構集成起來(lái)實(shí)現信息化集成系統整體目標。信息化集成系統軟件將硬件平臺、網(wǎng)絡(luò )平臺、數據庫平臺、工具平臺,各種子系統應用軟件平臺以及系統整體的各種資源有機、高效地集成到一起,形成了一個(gè)完整的信息共享環(huán)境。系統集成軟件平臺決定系統集成的成敗、對智能生產(chǎn)、智能制造的開(kāi)發(fā)、維護有重要的影響。系統集成軟件成為構建信息化集成系統的關(guān)鍵。
工業(yè)4.0時(shí)代,互聯(lián)網(wǎng)滲透到企業(yè)間和企業(yè)內的信息化集成系統?;ヂ?lián)網(wǎng)已成為新的計算基礎設施,它的出現和普及使計算機軟件開(kāi)發(fā)、部署、運行和維護的環(huán)境開(kāi)始從封閉、靜態(tài)逐步走向開(kāi)放、動(dòng)態(tài)。越來(lái)越多的企業(yè)提供基于互聯(lián)網(wǎng)的服務(wù),新的業(yè)務(wù)模式得到了發(fā)展,企業(yè)業(yè)務(wù)系統之間的交互逐漸增強,系統之間的通信和集成問(wèn)題凸現出來(lái);在企業(yè)內部也存在異構系統之間的整合問(wèn)題;因此,發(fā)展出了各種分布式系統集成技術(shù)。首先是分布式企業(yè)應用集成技術(shù)和分布式實(shí)時(shí)應用集成技術(shù);進(jìn)而言之,是系統集成軟件的核心——系統應用集成架構。
1.1 企業(yè)分布式應用集成技術(shù)
1.1.1 分布計算、分布式系統和分布式組件技術(shù)
在企業(yè)應用中分布計算是指各種不同的工作站通過(guò)網(wǎng)絡(luò )互相連接,由分布式系統提供跨越網(wǎng)絡(luò )透明地訪(fǎng)問(wèn)各種異構設備所需要的支持,使得用戶(hù)可以充分利用網(wǎng)絡(luò )上的各種計算資源來(lái)完成自己的任務(wù)。與網(wǎng)絡(luò )技術(shù)的發(fā)展和日益增長(cháng)的應用需求相適應,分布式計算已經(jīng)成為新一代計算和應用的主流。
分布式計算中所涉及的分布式系統是指組件分布在網(wǎng)絡(luò )計算機上且通過(guò)消息傳遞進(jìn)行通信和動(dòng)作協(xié)調的系統。分布式系統具有以下特征:組件的并發(fā)性和組件故障的獨立性。構造分布式系統的挑戰主要是其組件的異構性、開(kāi)放性(允許增加或替換組件)、安全性、可伸縮性(用戶(hù)數量增加時(shí)能正常運行的能力)、故障處理以及組件的并發(fā)性和透明性。構造和使用分布式系統的主要動(dòng)力來(lái)源是資源共享,分布式系統之間的通信和集成技術(shù)是重點(diǎn)。
分布式系統中,中間件能夠很好的完成異構分布系統的集成,互操作,并且能夠很好地保證這些系統的可移植特性,因而極大地降低了開(kāi)發(fā)分布式應用的周期,能夠提高系統的可靠性,是當前分布式應用開(kāi)發(fā)和分布式系統集成的主要手段。中間件技術(shù)是軟件技術(shù)發(fā)展史上一大進(jìn)步。中間件是基礎軟件的一大類(lèi),是一種介于應用軟件和操作系統之間的獨立的系統軟件或服務(wù)程序。它能屏蔽操作系統和網(wǎng)絡(luò )協(xié)議的差異,幫助管理各種復雜的異構的分系統,并為處于上層的應用程序提供一個(gè)標準的開(kāi)發(fā)與運行環(huán)境,使得分布式應用軟件能夠獨立于特定的硬件和操作系統平臺,幫助用戶(hù)靈活、高效地開(kāi)發(fā)和集成復雜的應用軟件。中間件可滿(mǎn)足大量應用的需要,運行于多種硬件和OS平臺,支持分布計算,提供跨網(wǎng)絡(luò )、硬件和OS平臺的應用或服務(wù)的交互;支持標準的協(xié)議,支持標準的接口。
隨著(zhù)軟件的市場(chǎng)規模和軟件的系統規??焖贁U大,特別是網(wǎng)絡(luò )普及后,軟件的運行已經(jīng)網(wǎng)絡(luò )化。軟件開(kāi)發(fā)必須考慮網(wǎng)絡(luò )功能,即分布式特點(diǎn),于是中間件技術(shù)又向前邁出一大步即分布式組件技術(shù)。21世紀的軟件工業(yè)面臨著(zhù)如何將高效的應用程序開(kāi)發(fā)和分發(fā)、較低的費用、良好的可管理性和足夠的安全性統一在一起。簡(jiǎn)化軟件開(kāi)發(fā)流程、降低開(kāi)發(fā)成本、提高效益并開(kāi)發(fā)出可用性、伸縮性、開(kāi)放性好的軟件成為關(guān)鍵。分布式組件技術(shù)是解決這些問(wèn)題的有效途徑,正在全面取代傳統的軟件設計方法。分布式組件技術(shù)具有面向對象的特點(diǎn),能夠良好地模擬真實(shí)世界的各種情況,且能直接對應到軟件模塊中;對于系統級開(kāi)發(fā)人員,通過(guò)分布式組件方式開(kāi)發(fā)的組件可提供給各類(lèi)應用軟件使用,并且可以重復多次使用,不用考慮升級問(wèn)題。對于獨立軟件供應商,則可專(zhuān)心開(kāi)發(fā)領(lǐng)域內應用組件,不用考慮跨平臺兼容性的問(wèn)題。對于軟件使用人員,使用一致的應用組件節省了大量的學(xué)習時(shí)間。分布式組件技術(shù)使用經(jīng)過(guò)封裝的可重用的軟件組件來(lái)構造應用程序,為多層結構系統開(kāi)發(fā)注入了新的活力,使分布式應用軟件變得易開(kāi)發(fā)、易修改和易升級。
1.1.2 分布式應用集成技術(shù)
企業(yè)自上世紀七十年代開(kāi)始使用IT支持系統至今,一些大型企業(yè)中各種IT支持系統平均達數十種之多。它們大部分是一個(gè)個(gè)的信息孤島,管理著(zhù)企業(yè)特定的各個(gè)職能部門(mén)的工作,相互之間缺乏有效的通信。隨著(zhù)信息技術(shù)的不斷發(fā)展,今天的企業(yè)需要一個(gè)集成的、開(kāi)放的、面向用戶(hù)且隨需而變的IT支持系統,因此面臨著(zhù)應用系統的整合問(wèn)題。不同的應用(尤其是不同企業(yè)的)的開(kāi)發(fā)語(yǔ)言不同,部署平臺不同,通信協(xié)議不同,對外交換的數據格式也存在著(zhù)差異,如何去解決解決語(yǔ)言差異、平臺差異、協(xié)議差異、數據差異所帶來(lái)的高代價(jià)的系統集成是這個(gè)問(wèn)題的關(guān)鍵。
企業(yè)應用集成(Enterprise Application Integration,EAI)將企業(yè)中的業(yè)務(wù)流程、應用系統、硬件和各種標準聯(lián)合起來(lái),在兩個(gè)或更多的企業(yè)應用系統之間實(shí)現無(wú)縫集成,是它們像一個(gè)整體一樣進(jìn)行業(yè)務(wù)處理和信息共享。企業(yè)應用集成不僅包括企業(yè)內部的應用系統集成,還包括企業(yè)與企業(yè)之間的集成,以實(shí)現企業(yè)與企業(yè)之間的信息交換、商務(wù)協(xié)同、過(guò)程集成和組建虛擬企業(yè)和動(dòng)態(tài)聯(lián)盟等。目前,常用的企業(yè)應用集成技術(shù)有遠程過(guò)程調用技術(shù)、分布式對象技術(shù)、面向消息的中間件技術(shù)和Web服務(wù)技術(shù)。
(1)遠程過(guò)程調用技術(shù)
RPC(Remote Procedure Call Protocol)——遠程過(guò)程調用協(xié)議,在分布式環(huán)境下,遠程過(guò)程調用允許本地計算機上的程序調用遠程計算機上的進(jìn)程。遠程過(guò)程調用采用客戶(hù)機/服務(wù)器模式。允許發(fā)送一個(gè)請求(客戶(hù)進(jìn)程)到服務(wù)器進(jìn)程,服務(wù)器進(jìn)程執行這個(gè)過(guò)程并發(fā)回一個(gè)結果(響應)消息。該方法最主要的特點(diǎn)是程序不需要知道調用的過(guò)程是本地還是遠地。遠程過(guò)程調用和傳統的過(guò)程調用不同就在于調用者(Caller或Client)和被調用的進(jìn)程(Server)是在不同的機器上的不同的進(jìn)程。遠程過(guò)程調用的靈活性體現在它的跨平臺性上,它不僅遠端的子程序,而且這種調用是可以跨越不同操作系統平臺的。遠程過(guò)程調用適合于小型的簡(jiǎn)單應用,當需要支持多種通信模式時(shí),遠程過(guò)程調用并不適合。
(2)分布式對象技術(shù)
分布式對象技術(shù)支持多種通信模式,提供了一種通訊機制,透明地在異構的分布式計算環(huán)境中傳遞對象請求,而這些對象可以位于本地或遠程機器。主流的分布式對象技術(shù)有以下三種:(1)對象管理組織(Object Management Group,OMG)制定的CORBA(Common Object Request Broker Architecture,通用對象請求代理架構)技術(shù)。(2)Microsoft公司提出的DCOM(Distributed Component Object Mode,分布式組件對象模型)技術(shù)。(3)Sun公司提出的RMI(Remote Method Invocation,遠程方法調用)技術(shù)。
CORBA是OMG專(zhuān)門(mén)為異構平臺上不同語(yǔ)言開(kāi)發(fā)的分布式對象進(jìn)行互操作而制定的規范。是為應用開(kāi)發(fā)提供一個(gè)公共框架,使得基于對象的軟件在分布異構環(huán)境下具有良好的可重用性、可移植性和互操作性,從而能夠在由多種操作系統構成的異構分布環(huán)境中,方便的建立異構分布式應用系統,或實(shí)現企業(yè)信息資源的集成。CORBA自發(fā)布以來(lái),已經(jīng)有很多實(shí)現。目前市場(chǎng)上流行的產(chǎn)品有:IONA公司的Orbix,Inprise/Borland公司的VisiBroker等。
DCOM是由Microsoft于1996年提出的分布式對象構件標準,旨在提高應用軟件的互操作能力。COM(Component Object Model,組件對象模型)技術(shù)使得程序的各個(gè)組件之間可以用一種統一的方式進(jìn)行交互,而DCOM實(shí)際上是COM技術(shù)在分布式環(huán)境中的擴展, DCOM屏蔽了COM對象的位置差異,使用戶(hù)不需知道COM對象的實(shí)際位置,就可以使用該COM對象。
RMI是Sun公司于1997年所提出的分布式計算模型,用以解決訪(fǎng)問(wèn)Java分布式對象的通信問(wèn)題。Java是一個(gè)提供了可移植的面向對象編程語(yǔ)言和高性能的Java虛擬機組成的應用系統運行和開(kāi)發(fā)平臺。RMI能夠支持一臺Java虛擬機(JVM)上的對象與另一臺Java虛擬機(JVM)上的對象進(jìn)行通信。
(3)面向消息的中間件技術(shù)
面向消息的中間件(Message-Oriented Middleware,MOM),提供了以松散耦合的靈活方式集成應用程序的一種機制。它們提供了基于存儲和轉發(fā)的應用程序之間的異步數據發(fā)送,即應用程序彼此不直接通信,而是與作為中介的MOM通信。MOM提供了有保證的消息發(fā)送,應用程序開(kāi)發(fā)人員無(wú)需了解遠程過(guò)程調用(RPC)和網(wǎng)絡(luò )/通信協(xié)議的細節。
傳統的面向消息中間件通常采用點(diǎn)對點(diǎn)的消息傳輸結構,但在實(shí)踐中存在較多問(wèn)題,此后消息中間件開(kāi)始向發(fā)布/訂閱架構轉變,并成為企業(yè)應用集成中間件的一種核心機制,而基于發(fā)布/訂閱架構的消息中間件通常稱(chēng)為發(fā)布/訂閱消息中間件(Publish/Subscribe Middleware,簡(jiǎn)稱(chēng)P/S MOM)或消息代理(Message Broker)。
在基于消息代理的分布式應用系統中,消息的發(fā)送方稱(chēng)為發(fā)布者,消息的接收方稱(chēng)為訂閱者,發(fā)布/訂閱模型用稱(chēng)為主題的內容分層結構代替了點(diǎn)對點(diǎn)模型中的惟一目的地,不同的消息通過(guò)不同的主題進(jìn)行區分。發(fā)布者向消息代理發(fā)布其它應用系統感興趣的消息,而訂閱者從消息代理接收自己感興趣的消息,發(fā)布者和訂閱者之間通過(guò)消息代理進(jìn)行關(guān)聯(lián)。消息代理適合于具有實(shí)時(shí)性、異步性、異構性、動(dòng)態(tài)性和松耦合的應用需求。
(4) Web服務(wù)技術(shù)
Web服務(wù)提供了一種在廣域網(wǎng)絡(luò )上共享數據和功能的方法,是分布對象技術(shù)的重要補充。Web服務(wù)能夠通過(guò)XML消息及Internet協(xié)議完成與其他軟件應用的直接交互,它是傳統組件技術(shù)在互聯(lián)網(wǎng)應用環(huán)境下的延伸,其目的和作用是提供一種統一的規范和技術(shù),為連接異構的企業(yè)應用系統提供基礎,為互聯(lián)網(wǎng)軟件應用提供統一的功能描述和共享機制,提供一種在不同平臺/系統之間進(jìn)行應用層功能自動(dòng)整合、自動(dòng)化處理所需要的技術(shù)架構。
Web服務(wù)采用一套完全開(kāi)放且獨立于實(shí)現平臺及程序設計語(yǔ)言的交互機制,形成了較為全面的協(xié)議族,其中SOAP、WSDL、UDDI以及上層面向服務(wù)組合的WS-BPEL等構成了Web服務(wù)協(xié)議族的核心。
XML語(yǔ)言的提出為Web服務(wù)相關(guān)標準的制訂做出了里程碑式的貢獻,目前幾乎所有的Web服務(wù)標準都建立在XML語(yǔ)言的基礎上。Web服務(wù)協(xié)議族最重要的是簡(jiǎn)單對象訪(fǎng)問(wèn)協(xié)議SOAP(Simple Object Access Propotol),它是Web服務(wù)通信的事實(shí)標準。SOAP支持應用程序與應用程序之間的通信,主要應用于商務(wù)對商務(wù)的通信以及企業(yè)應用集成。SOAP定義了如何通過(guò)軟件以獨立于各種編程語(yǔ)言或平臺的方式來(lái)構造消息、處理消息,從而使那些用不同編程語(yǔ)言編寫(xiě)的程序之間具有互操作性,并能夠在不同的操作系統上運行;Web服務(wù)描述語(yǔ)言WSDL(Web ServicesDescription Language)用于描述Web服務(wù)的功能調用語(yǔ)法。它將Web Services描述定義為一組服務(wù)訪(fǎng)問(wèn)端點(diǎn),客戶(hù)端可以通過(guò)這些服務(wù)訪(fǎng)問(wèn)端點(diǎn)對包含面向文檔信息或面向過(guò)程調用的服務(wù)進(jìn)行訪(fǎng)問(wèn)(類(lèi)似遠程過(guò)程調);還有跨網(wǎng)絡(luò )尋找網(wǎng)絡(luò )服務(wù)的技術(shù)——UDDI ,它提供了一組基于標準的規范用于描述和發(fā)現服務(wù),還提供了一組基于因特網(wǎng)的實(shí)現。服務(wù)注冊中心存儲了描述商業(yè)或其他實(shí)體的信息及其提供的服務(wù)的相關(guān)技術(shù)調用界面(或API)。至此,以上協(xié)議的引入和發(fā)布奠定了Web服務(wù)的基礎。
由于Web服務(wù)采用基于XML的開(kāi)放的Web規范技術(shù),具有更好的封裝性、高度的可集成性以及更好的開(kāi)放性與互操作性。相對于COM/DCOM,RMI和CORBA等分布式組件模型,Web服務(wù)具有松散耦合性、簡(jiǎn)單性、高度可集成性和開(kāi)放標準等特點(diǎn)。通過(guò)Web服務(wù)能夠屏蔽分布式系統間的差異,為跨平臺、松耦合、語(yǔ)言無(wú)關(guān)的網(wǎng)絡(luò )環(huán)境下的資源共享和集成提供了解決方案。
Web服務(wù)運行平臺為Web服務(wù)提供了運行和管理環(huán)境,實(shí)現了服務(wù)部署、執行、管理、監控等功能,使得服務(wù)能夠遵照標準的服務(wù)契約向服務(wù)消費者提供業(yè)務(wù)功能。目前,主流的開(kāi)源Web服務(wù)運行平臺包括:Apache的Axis、Axis2和Apache CXF。商業(yè)Web服務(wù)平臺包括IBM 的WebSphere、Microsoft的Windows通信框架(WCF:Windows Communication Framework)、SUN的Sun GlassFish Enterprise Server等。
作者簡(jiǎn)介:
魏曉東,1967年畢業(yè)于天津大學(xué)精儀系。1984~1991年任安徽工業(yè)大學(xué)自動(dòng)化系副教授。1991年出版《分散型控制系統》( 上??萍嘉墨I出版社) 。2000~2012年任北京和利時(shí)系統工程公司副總工、事業(yè)部總設計師,北京地鐵13號線(xiàn)、深圳地鐵一期工程、廣州地鐵3號線(xiàn)綜合監控系統工程技術(shù)總負責人。2006、2010年出版《城市軌道交通自動(dòng)化系統與技術(shù)》初版與第二版(電自工業(yè)出版社);2010年主編國家標準《城市軌道交通綜合監控系統工程設計規范》(GB50636-2010)《城市軌道交通綜合監控系統施工與質(zhì)量驗收規范》(GB/T50732-2011);2010年主編關(guān)于兩化融合的國家標準《工業(yè)企業(yè)信息化集成系統規范》(GB/T26335-2010)。2013年至今任清華同方數字城市工程中心技術(shù)專(zhuān)家,住建部城市軌道交通標注技術(shù)網(wǎng)Eu委員會(huì )委員,全國自動(dòng)化系統與集成標準技術(shù)委員會(huì )委員。
摘自《自動(dòng)化博覽》2017年5月刊