縱覽企業(yè)信息化建設(shè)的歷史,我們可以發(fā)現(xiàn):企業(yè)應(yīng)用集成技術(shù)是伴隨著企業(yè)信息系統(tǒng)的發(fā)展而產(chǎn)生和演變的。企業(yè)的價(jià)值取向是推動(dòng)應(yīng)用集成技術(shù)發(fā)展的原動(dòng)力,而通過(guò)應(yīng)用集成技術(shù)所實(shí)現(xiàn)的價(jià)值反過(guò)來(lái)也驅(qū)動(dòng)著公司的競(jìng)爭(zhēng)優(yōu)勢(shì)的提升。隨著新技術(shù)的發(fā)展和企業(yè)業(yè)務(wù)需求的變化,數(shù)據(jù)集成架構(gòu)也跟著發(fā)生著變遷。數(shù)據(jù)集成架構(gòu)的發(fā)展可以分為四個(gè)階段:點(diǎn)對(duì)點(diǎn)集成,EDI星型集成,SOA集成,互聯(lián)網(wǎng)集成,如下圖所示:
點(diǎn)對(duì)點(diǎn)集成架構(gòu)
點(diǎn)對(duì)點(diǎn)集成是最早出現(xiàn)的應(yīng)用集成模式,采用點(diǎn)對(duì)點(diǎn)的方式開(kāi)發(fā)接口程序,把需要進(jìn)行信息交換的系統(tǒng)一對(duì)一地集成起來(lái),從而實(shí)現(xiàn)整合應(yīng)用的目標(biāo)。點(diǎn)對(duì)點(diǎn)的連接方式在連接對(duì)象比較少的時(shí)候,確實(shí)是一種簡(jiǎn)單和高效的連接方式,具有開(kāi)發(fā)周期短、技術(shù)難度低的優(yōu)勢(shì)。但其最大的問(wèn)題是,當(dāng)連接對(duì)象多的時(shí)候,連接路徑會(huì)以指數(shù)方式劇增。
連接路徑數(shù)與連接對(duì)象數(shù)之間的關(guān)系是:連接路徑數(shù)=(連接對(duì)象數(shù) ×(連接對(duì)象數(shù)-1))÷ 2
點(diǎn)對(duì)點(diǎn)的集成有著明顯的缺陷:
當(dāng)需要連接的應(yīng)用系統(tǒng)越來(lái)越多時(shí),點(diǎn)對(duì)點(diǎn)集成方式將把整個(gè)企業(yè)信息系統(tǒng)接口變成無(wú)法管理的“混亂的線團(tuán)”。
點(diǎn)對(duì)點(diǎn)的集成架構(gòu)不能集中管理和監(jiān)控接口服務(wù),僅支持一對(duì)一的數(shù)據(jù)交換,如果交換協(xié)議不一致,開(kāi)發(fā)則非常困難。即,如果溝通的語(yǔ)言、文字、格式、方法等有差異,則每一個(gè)連接方都要同時(shí)支持和維護(hù)多種連接方式。
點(diǎn)對(duì)點(diǎn)的集成是緊耦合的,當(dāng)一個(gè)連接變化時(shí),所有與其相關(guān)的接口程序都需要重新開(kāi)發(fā)或調(diào)試。
基于以上幾點(diǎn),在多點(diǎn)互連的情況下,點(diǎn)對(duì)點(diǎn)連接方式成本高,可用性和可維護(hù)性低,顯然不是一個(gè)好的連接方式。
總線集成架構(gòu)
隨著應(yīng)用集成技術(shù)的發(fā)展,基于EDI(電子數(shù)據(jù)交換系統(tǒng))的中間件方式逐漸取代了點(diǎn)對(duì)點(diǎn)的集成模式?;贓DI中間件的集成規(guī)則在中間件上進(jìn)行定義和執(zhí)行,其拓?fù)浣Y(jié)構(gòu)不再是點(diǎn)對(duì)點(diǎn)集成形成的無(wú)規(guī)則網(wǎng)狀,而主要是中心輻射型的(Hub型)星型結(jié)構(gòu)或總線結(jié)構(gòu)。由于信息系統(tǒng)的標(biāo)準(zhǔn)不一致,星型架構(gòu)采用適配器的方式與應(yīng)用系統(tǒng)進(jìn)行對(duì)接,每個(gè)適配器適用于一種類型的數(shù)據(jù)源。
總線結(jié)構(gòu)通過(guò)與點(diǎn)對(duì)點(diǎn)集成架構(gòu)相比,采用總線架構(gòu)可以顯著減少編寫的專用集成代碼量,提升了集成接口的可管理性。不同連接對(duì)象如果連接方式有差異,可以通過(guò)總線完全屏蔽掉,做到對(duì)連接對(duì)象透明,無(wú)需各個(gè)連接對(duì)象關(guān)心。
總線的連接方式最早在許多硬件設(shè)計(jì)上得到廣泛的使用。如處理芯片的數(shù)據(jù)總線,網(wǎng)絡(luò)節(jié)點(diǎn)的交換機(jī),大型計(jì)算機(jī)系統(tǒng)處理器與外圍存儲(chǔ)設(shè)備連接的集線器等。通過(guò)總線結(jié)構(gòu),把原來(lái)復(fù)雜的網(wǎng)狀結(jié)構(gòu)變成簡(jiǎn)單的星形結(jié)構(gòu),極大提高了硬件的可靠性和可用性。
但由于標(biāo)準(zhǔn)的匱乏,總線集成架構(gòu)的缺陷逐漸暴露出來(lái)。各廠商的中間件多采用其專有協(xié)議或接口規(guī)范,開(kāi)放程度非常低,一經(jīng)采用,信息系統(tǒng)升級(jí)、完善的成本很高,周期很長(zhǎng),直接導(dǎo)致了企業(yè)管理流程受到系統(tǒng)固化,出現(xiàn)企業(yè)管理隨著信息化應(yīng)用的深化反而管理流程被動(dòng)僵化。
這是由于多個(gè)異構(gòu)系統(tǒng)通過(guò)EDI相互關(guān)聯(lián),單個(gè)系統(tǒng)的完善或升級(jí)受到關(guān)聯(lián)系統(tǒng)的牽制,結(jié)果是信息集成度越高,系統(tǒng)升級(jí)和數(shù)據(jù)維護(hù)越困難,從而直接導(dǎo)致管理改進(jìn)的困難、運(yùn)營(yíng)效率降低和成本的上升,企業(yè)信息化的自由度就大大受限,同時(shí)也會(huì)付出更高的技術(shù)成本;由于受中間件具體產(chǎn)品功能的限制,在開(kāi)展業(yè)務(wù)流程集成時(shí),由于集成邏輯需要在中間件上通過(guò)變成完成定義與執(zhí)行,具有較高的技術(shù)難度和復(fù)雜度,很難實(shí)現(xiàn)較復(fù)雜的流程集成,因而也就不能迅速滿足業(yè)務(wù)變化提出的信息系統(tǒng)調(diào)整的需求。
SOA型集成架構(gòu)
隨著Web服務(wù)規(guī)范的日漸成熟,Web技術(shù)被應(yīng)用于企業(yè)內(nèi)部的應(yīng)用集成,一種面向服務(wù)的集成架構(gòu)(Service Oriented Architecture,簡(jiǎn)稱:SOA)成為了企業(yè)應(yīng)用集成的主流。SOA架構(gòu)的其主要特征是基于一系列Web標(biāo)準(zhǔn)或規(guī)范來(lái)開(kāi)發(fā)接口程序,包括UDDI、SOAP、WSDL、XML,并采用支持這些規(guī)范的中間件產(chǎn)品作為集成平臺(tái),從而實(shí)現(xiàn)了一種開(kāi)放而富有彈性的應(yīng)用集成方式。SOA是一種開(kāi)發(fā)思想,是一種松耦合的框架,其主要特點(diǎn)是:
SOA是實(shí)現(xiàn)IT和業(yè)務(wù)同步的先進(jìn)可行技術(shù),它將企業(yè)應(yīng)用中離散的業(yè)務(wù)功能提取出來(lái),并將其組織成可互動(dòng)的,基于標(biāo)準(zhǔn)的服務(wù)。
SOA以提供服務(wù)的方式向企業(yè)提供了靈活、快捷的系統(tǒng)整合選擇,它將模塊化和便攜化的服務(wù)在復(fù)合應(yīng)用中組合和重用,以更為快速的滿足業(yè)務(wù)需求。
SOA本身配備的完整、成熟的安全管理保障體系滿足了客戶進(jìn)行松耦合集成實(shí)施時(shí)所提出的安全需求。
在面向服務(wù)的集成架構(gòu)中,ESB(企業(yè)服務(wù)總線)扮演著重要的角色,甚至有人認(rèn)為ESB是SOA架構(gòu)落地的基礎(chǔ)。ESB是一個(gè)具有標(biāo)準(zhǔn)接口、實(shí)現(xiàn)了互連、通信、服務(wù)路由。它提供消息驅(qū)動(dòng)、事件驅(qū)動(dòng)和文本導(dǎo)向的處理模式,支持基于內(nèi)容的服務(wù)路由。SOA架構(gòu)將各應(yīng)用系統(tǒng)上的各種服務(wù)連接到服務(wù)總線上,支持分布式的存儲(chǔ)及分布式的處理、異步處理。為信息系統(tǒng)的真正松耦合提供了架構(gòu)保障。簡(jiǎn)化了企業(yè)整個(gè)信息系統(tǒng)的復(fù)雜性,提高了信息系統(tǒng)架構(gòu)的靈活性,降低企業(yè)內(nèi)部信息共享的成本。
第一,ESB是一個(gè)服務(wù)管理中心,服務(wù)的消費(fèi)方無(wú)需關(guān)系服務(wù)實(shí)際的生產(chǎn)方,包括生產(chǎn)方的服務(wù)名稱、物理位置、傳輸協(xié)議和接口定義等,這些都是由ESB平臺(tái)進(jìn)行包裝和中央的發(fā)布式定義。
第二,ESB是服務(wù)的中介平臺(tái),提供服務(wù)的可靠性保證,負(fù)載均衡,流量控制,緩存,事務(wù)控制,加密傳輸,支持服務(wù)的監(jiān)控、異常處理、服務(wù)調(diào)用及消息數(shù)據(jù)記錄,系統(tǒng)及服務(wù)的狀態(tài)監(jiān)控等。
第三,ESB是一個(gè)轉(zhuǎn)換和解耦的平臺(tái),支持協(xié)議轉(zhuǎn)換,如WebService,Http,JMS等;支持消息轉(zhuǎn)換,如消息的轉(zhuǎn)換 、過(guò)濾、填充等;支持消息路由,如同步/異步、發(fā)布/訂閱、基于內(nèi)容路由、分支與聚合等。
最后,ESB是一個(gè)服務(wù)編排和重組的平臺(tái),支持按業(yè)務(wù)的要求將多個(gè)服務(wù)編排為一個(gè)新的服務(wù),正是ESB的這種靈活的服務(wù)編排功能,使得ESB具備了隨需應(yīng)變的能力。
ESB將多個(gè)業(yè)務(wù)子系統(tǒng)的公共調(diào)用部分抽離整合為一個(gè)共用系統(tǒng),減少了調(diào)用鏈路的復(fù)雜性,其服務(wù)編排能力增加業(yè)務(wù)的隨需應(yīng)變的靈活性。但是ESB本質(zhì)上是一個(gè)總線型或星型的結(jié)構(gòu),所有服務(wù)的對(duì)接需要依賴于這個(gè)“中心化”的總線。一旦ESB在數(shù)據(jù)量過(guò)大時(shí)候會(huì)成為性能瓶頸,或者ESB宕機(jī)會(huì)導(dǎo)致多個(gè)系統(tǒng)無(wú)法正常提供服務(wù)。
當(dāng)然,SOA時(shí)代的典型組件除了ESB,還有Portal、BPM、ETL、MDM、DW等,我們后邊慢慢分解!
微服務(wù)集成架構(gòu)
互聯(lián)網(wǎng)是IT業(yè)的重大革命性創(chuàng)新,隨著移動(dòng)互聯(lián)、互聯(lián)網(wǎng)的發(fā)展,為加快web和移動(dòng)應(yīng)用的開(kāi)發(fā)進(jìn)程,出現(xiàn)了一種“去中心化的”新型的架構(gòu)——微服務(wù)架構(gòu)。微服務(wù)架構(gòu)強(qiáng)調(diào)“業(yè)務(wù)需求徹底的組件化及服務(wù)化”,這將成為企業(yè)IT架構(gòu)的發(fā)展方向。原單個(gè)業(yè)務(wù)系統(tǒng)會(huì)被拆分為多個(gè)可以獨(dú)立開(kāi)發(fā)、設(shè)計(jì)、部署運(yùn)行的小應(yīng)用,這些小應(yīng)用間通過(guò)服務(wù)化完成交互和集成。
微服務(wù)出現(xiàn)后人們總會(huì)拿它與SOA比較,甚至有的人認(rèn)為微服務(wù)架構(gòu)將取代SOA,這樣的觀點(diǎn)似乎有些偏激。微服務(wù)與SOA中的服務(wù)最大的區(qū)別是它可以獨(dú)立部署、獨(dú)立運(yùn)行,不依賴與其他服務(wù),并且是一個(gè)分布式架構(gòu)。每個(gè)微服務(wù)各自為政,做好自己的事情,即使自己出問(wèn)題也只會(huì)影響有直接調(diào)用的服務(wù),靈活彈性擴(kuò)縮容。微服務(wù)架構(gòu)與SOA相比具備更好的可靠性,出現(xiàn)單點(diǎn)故障不會(huì)對(duì)其他微服務(wù)造成影響。嚴(yán)格意義上說(shuō),SOA是面向集成的架構(gòu)是面向系統(tǒng)級(jí)、面向集成的,而微服務(wù)是面向服務(wù),通過(guò)一系列松散耦合的服務(wù)去實(shí)現(xiàn)滿足業(yè)務(wù)需求的應(yīng)用,目的是縮短復(fù)雜應(yīng)用從開(kāi)發(fā)到部署的時(shí)間。
SOA注重服務(wù)的重用,但微服務(wù)本質(zhì)是對(duì)服務(wù)的重寫,盡管微服務(wù)也需要集成。微服務(wù)通常由重寫一個(gè)模塊開(kāi)始,企業(yè)向微服務(wù)遷移的時(shí)候通常從耦合度最低的模塊或?qū)U(kuò)展性要求最高的模塊開(kāi)始,把它們一個(gè)一個(gè)剝離出來(lái)用敏捷方法、微服務(wù)技術(shù)進(jìn)行重寫,然后單獨(dú)布署。
微服務(wù)集成架構(gòu)提升了全局穩(wěn)定性。由于每個(gè)服務(wù)負(fù)責(zé)的功能單一,各服務(wù)的資源需求也相對(duì)更低。從而可以選擇將服務(wù)分散的部署到多臺(tái)中低配的服務(wù)器上,而不是一臺(tái)高配的機(jī)器上。如果某個(gè)機(jī)器上的服務(wù)故障,譬如說(shuō)內(nèi)存泄漏,故障只會(huì)影響該機(jī)器上的某一個(gè)或幾個(gè)服務(wù),對(duì)全局影響不大。
微服務(wù)的集成主要涉及以下四個(gè)層面的集成:
· 接口集成
接口集成是服務(wù)之間集成的最常見(jiàn)手段,通?;跇I(yè)務(wù)邏輯的需要進(jìn)行集成。RPC、REST、消息傳遞和服務(wù)總線都可以歸為這種集成方式。微服務(wù)使用REST API和輕量級(jí)消息系統(tǒng)實(shí)現(xiàn)系統(tǒng)集成。其中,消息系統(tǒng)僅提供可靠的異步消息傳輸通道,而不參與消息路由、編排、轉(zhuǎn)換等環(huán)節(jié),也不在消息系統(tǒng)中包含業(yè)務(wù)邏輯。
· 數(shù)據(jù)集成
數(shù)據(jù)集成同樣可以用于微服務(wù)之間的交互,聯(lián)邦數(shù)據(jù)庫(kù)是一個(gè)選擇,但也可以通過(guò)數(shù)據(jù)復(fù)制的方式實(shí)現(xiàn)數(shù)據(jù)集成。
· 界面集成
由于微服務(wù)是一個(gè)能夠獨(dú)立運(yùn)行的整體,有些微服務(wù)會(huì)包含一些UI界面,這也意味著微服務(wù)之間也可以通過(guò)UI界面進(jìn)行集成。
· 外部集成
這里把外部集成單獨(dú)剝離出來(lái)的原因在于現(xiàn)實(shí)中很多服務(wù)之間的集成需求來(lái)自于與外部服務(wù)的依賴和整合,而在集成方式上也可以綜合采用接口集成、數(shù)據(jù)集成和UI集成。
寫在最后的話
在數(shù)字化、智能化時(shí)代,數(shù)據(jù)成為企業(yè)的重要基礎(chǔ)設(shè)施,無(wú)論是技術(shù)還是應(yīng)用都將圍繞數(shù)據(jù)進(jìn)行。合理地利用數(shù)據(jù)將為企業(yè)創(chuàng)造極大的價(jià)值,而在這一過(guò)程中,數(shù)據(jù)集成技術(shù)將為更好地利用數(shù)據(jù)提供支撐。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。