Bilgin Ibryam是Red Hat公司首席架構(gòu)師、提交者和Apache軟件基金會(huì)成員的主要設(shè)計(jì)師。他對(duì)集成演進(jìn)環(huán)境中查看分布式分類賬技術(shù)(DLT)和區(qū)塊鏈的方法進(jìn)行了闡述。多年來,企業(yè)及其系統(tǒng)正在變得更加集成,形成了行業(yè)特定的無信任網(wǎng)絡(luò),區(qū)塊鏈技術(shù)則是這一演進(jìn)步驟的基礎(chǔ)。
企業(yè)集成
大型組織在獨(dú)立的孤島中運(yùn)行大量應(yīng)用程序,這些孤島需要共享數(shù)據(jù)和功能,以便以統(tǒng)一和一致的方式運(yùn)行。在單個(gè)組織中鏈接此類應(yīng)用程序以實(shí)現(xiàn)數(shù)據(jù)和業(yè)務(wù)流程共享的過程稱為企業(yè)應(yīng)用程序集成(EAI)。
同樣,組織也需要以一種可控的方式彼此共享數(shù)據(jù)和功能。他們需要集成和自動(dòng)化擴(kuò)展到組織外部的關(guān)鍵業(yè)務(wù)流程。后者是企業(yè)應(yīng)用程序集成(EAI)的擴(kuò)展,通過使用被稱為企業(yè)到企業(yè)(B2B)集成的約定消息標(biāo)準(zhǔn)交換結(jié)構(gòu)化消息來實(shí)現(xiàn)。
從根本上說,這兩個(gè)術(shù)語都指的是跨越多個(gè)系統(tǒng)(有時(shí)是多方)的數(shù)據(jù)和功能集成過程。這些組織中的系統(tǒng)和業(yè)務(wù)流程正在發(fā)展,而支持企業(yè)到企業(yè)(B2B)統(tǒng)一的技術(shù)也在不斷發(fā)展。
集成的演變
一些集成技術(shù)如今已成為主流,它們逐漸發(fā)展并建立在彼此之上。與其關(guān)注具體的集成技術(shù)和年份,不如觀察其幾十年來的進(jìn)展,以了解為什么區(qū)塊鏈?zhǔn)窍乱粋€(gè)技術(shù)迭代的原因。
接下來,將簡(jiǎn)要探討表中列出的每個(gè)進(jìn)化步驟的主要技術(shù)進(jìn)步。
(1)數(shù)據(jù)集成
這是跨不同系統(tǒng)訪問信息的最古老的機(jī)制之一,主要是下面兩個(gè)示例:
•公共數(shù)據(jù)庫方法用于組織內(nèi)的系統(tǒng)集成。
•文件共享方法用于組織內(nèi)和跨組織的數(shù)據(jù)交換。使用諸如FTP之類的通用協(xié)議,文件共享允許交換跨機(jī)器和操作系統(tǒng)運(yùn)行的應(yīng)用程序數(shù)據(jù)。
但這兩種方法都是非實(shí)時(shí)的、基于批處理的集成,在可擴(kuò)展性和可靠性方面存在一些局限性。
(2)功能集成
雖然數(shù)據(jù)集成提供了非實(shí)時(shí)數(shù)據(jù)交換,但此處描述的方法允許實(shí)時(shí)數(shù)據(jù)和重要的功能交換:
•遠(yuǎn)程過程調(diào)用通過隱藏網(wǎng)絡(luò)和數(shù)據(jù)封裝復(fù)雜性,對(duì)基于套接字的低級(jí)集成提供了重大改進(jìn)。但它是一種早期的、依賴于語言的、點(diǎn)對(duì)點(diǎn)的客戶機(jī)服務(wù)器架構(gòu)。
•對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(使用CORBA、DCOM、RMI實(shí)現(xiàn))引入了代理組件,該組件允許不同語言的多個(gè)應(yīng)用程序重用相同的基礎(chǔ)設(shè)施,并以對(duì)等方式相互通信。此外,CORBA模型還具有命名、安全性、并發(fā)性、事務(wù)性、注冊(cè)表和獨(dú)立于語言的接口定義等概念。
•消息傳遞引入了應(yīng)用程序之間的時(shí)間解耦,并確保了異步消息傳遞。
到目前為止,人們已經(jīng)看到許多技術(shù)改進(jìn),但它們主要集中在系統(tǒng)集成而不是應(yīng)用程序集成方面。從批處理到實(shí)時(shí)數(shù)據(jù)交換,從點(diǎn)對(duì)點(diǎn)到對(duì)等,從同步到異步,這些方法不關(guān)心或控制它們交換的數(shù)據(jù)類型,也不強(qiáng)制或驗(yàn)證它。盡管如此,這種早期的集成基礎(chǔ)設(shè)施通過交換電子數(shù)據(jù)交換,(EDI)格式的數(shù)據(jù)(例如,但在不了解數(shù)據(jù)和業(yè)務(wù)流程的情況下)實(shí)現(xiàn)了B2B集成,它是其中的一部分。
使用CORBA,人們可以盡早嘗試接口定義,以及對(duì)應(yīng)用程序集成有用的服務(wù)。
(3)面向服務(wù)的架構(gòu)
與人們目的相關(guān)的面向服務(wù)的架構(gòu)(SOA)的主要方面是Web服務(wù)標(biāo)準(zhǔn)。XML提供與語言無關(guān)的數(shù)據(jù)交換格式,簡(jiǎn)單對(duì)象訪問協(xié)議(SOAP)提供通用消息格式,網(wǎng)絡(luò)服務(wù)描述語言(WSDL)提供用于描述服務(wù)接口的獨(dú)立格式,構(gòu)成Web服務(wù)的基礎(chǔ)。這些標(biāo)準(zhǔn)與企業(yè)服務(wù)總線(ESB)和業(yè)務(wù)流程管理(BPM)實(shí)現(xiàn)相結(jié)合,使集成專注于業(yè)務(wù)集成語義,而現(xiàn)有技術(shù)主要是實(shí)現(xiàn)系統(tǒng)集成。
Web服務(wù)允許系統(tǒng)并不盲目地交換數(shù)據(jù),而是擁有機(jī)器可讀的合約和接口定義。此類合同將允許系統(tǒng)在與其他系統(tǒng)交互之前理解和驗(yàn)證數(shù)據(jù)(最多在一定程度)。
還在這里包含了微服務(wù)架構(gòu)風(fēng)格,就其核心而言,它構(gòu)建并改進(jìn)了面向服務(wù)的架構(gòu)(SOA)和企業(yè)服務(wù)總線(ESB)。此階段的主要演變是圍繞分布式系統(tǒng)分解以及從WS到基于REST的交互的過渡。
總之,這是一個(gè)階段,分布式系統(tǒng)在通用協(xié)議之上也獲得了通用標(biāo)準(zhǔn)和合約定義。
(4)基于區(qū)塊鏈的集成
雖然采用通用協(xié)議和標(biāo)準(zhǔn)交換數(shù)據(jù)有所幫助,但服務(wù)合約無法提供有關(guān)隱藏在合約背后并在遠(yuǎn)程系統(tǒng)上運(yùn)行的業(yè)務(wù)流程的信息。請(qǐng)求根據(jù)合約可能有效,但根據(jù)業(yè)務(wù)流程的當(dāng)前狀態(tài)無效。當(dāng)集成不是在兩方之間(如在客戶機(jī)-服務(wù)器模型中),而是在對(duì)等模型中的多個(gè)同等參與方之間時(shí),這就更成問題了。
有時(shí)多方是同一業(yè)務(wù)流程的一部分,由任何一方而非各方擁有。這種多方互動(dòng)正常運(yùn)作的先決條件是共同業(yè)務(wù)流程及其當(dāng)前狀態(tài)的透明度。所有這一切使得區(qū)塊鏈技術(shù)對(duì)于在多方之間實(shí)施分布式業(yè)務(wù)流程非常具有吸引力。
此模型擴(kuò)展了共享協(xié)議和服務(wù)合約與共享業(yè)務(wù)流程和包含狀態(tài)的使用。使用區(qū)塊鏈,所有參與實(shí)體以智能合約的形式共享相同的業(yè)務(wù)流程。但是為了驗(yàn)證請(qǐng)求、處理并得出相同的結(jié)論,業(yè)務(wù)流程也需要相同的狀態(tài),這是通過分布式總賬實(shí)現(xiàn)的。共享智能合約的所有過去狀態(tài)本身并不是目標(biāo),而是共享業(yè)務(wù)流程運(yùn)行時(shí)的先決條件。
從這個(gè)角度來看,區(qū)塊鏈可以看作是集成演進(jìn)的下一步。正如人們?cè)谙聢D所看到的,區(qū)塊鏈網(wǎng)絡(luò)充當(dāng)一種分布式企業(yè)服務(wù)總線(ESB)和業(yè)務(wù)流程管理(BPM)機(jī)制,它不包含在單個(gè)業(yè)務(wù)實(shí)體中,而是跨越多個(gè)組織。
集成技術(shù)進(jìn)入系統(tǒng)之間的空間
首先是協(xié)議(如FTP),然后是API合約(WSDL和SOAP),現(xiàn)在業(yè)務(wù)流程本身(智能合約)及其數(shù)據(jù)正在移出組織之外,進(jìn)入公共共享空間,并成為集成的一部分基礎(chǔ)設(shè)施。在某些方面,這一趨勢(shì)類似于微服務(wù)的跨領(lǐng)域責(zé)任是如何從服務(wù)內(nèi)部轉(zhuǎn)移到支持平臺(tái)的。
通過區(qū)塊鏈,通用數(shù)據(jù)模型和現(xiàn)在的業(yè)務(wù)流程正在從組織轉(zhuǎn)移到共享業(yè)務(wù)網(wǎng)絡(luò)中。需要注意的是,此舉并非普遍適用,并且不太可能成為主流整合機(jī)制。只有當(dāng)網(wǎng)絡(luò)中的所有參與者對(duì)數(shù)據(jù)模型和業(yè)務(wù)流程具有相同的理解時(shí),才有可能采取這種行動(dòng)。因此,它僅適用于流程可以標(biāo)準(zhǔn)化的某些行業(yè),如金融、供應(yīng)鏈、醫(yī)療保健等。
多代的集成
(1)第一代:系統(tǒng)集成協(xié)議
這是在CORBA和SOA之前生成集成技術(shù),主要是采用通用協(xié)議進(jìn)行數(shù)據(jù)交換,但不了解數(shù)據(jù)、合同和業(yè)務(wù)流程:
•集成模型:客戶端服務(wù)器,其中服務(wù)器組件僅由一方控制。例如數(shù)據(jù)庫、文件服務(wù)器、消息代理等。
•明確、共享基礎(chǔ)設(shè)施:低級(jí)系統(tǒng)協(xié)議和API,如FTP。
•隱含的、非共享的基礎(chǔ)設(shè)施:應(yīng)用程序合同、數(shù)據(jù)格式、業(yè)務(wù)流程,而不是通用集成基礎(chǔ)設(shè)施的一部分。
(2)第二代:應(yīng)用程序集成合同
這一代集成技術(shù)使用前幾年的系統(tǒng)協(xié)議,允許應(yīng)用程序以通用合同的形式共享其API。這是下一個(gè)集成級(jí)別,其中兩個(gè)應(yīng)用程序都了解數(shù)據(jù)、其結(jié)構(gòu)、可能的錯(cuò)誤條件,但不了解其他系統(tǒng)中的業(yè)務(wù)流程和當(dāng)前狀態(tài):
•集成模型:客戶端,其中包含由合約描述的API。
•明確、共享的基礎(chǔ)設(shè)施:協(xié)議、應(yīng)用程序合同和API定義。
•隱含的、非共享的基礎(chǔ)設(shè)施:業(yè)務(wù)流程和遠(yuǎn)程狀態(tài)仍然是私有的。
(3)第三代:分布式業(yè)務(wù)流程
基于區(qū)塊鏈的生成仍然需要證明自己是一個(gè)可行的企業(yè)架構(gòu),這一代更加進(jìn)步。它使用對(duì)等協(xié)議,并在多個(gè)系統(tǒng)之間共享業(yè)務(wù)流程,這些系統(tǒng)由不相互信任的各方控制。雖然之前的集成需要共享對(duì)協(xié)議或API的理解,但這依賴于對(duì)完整業(yè)務(wù)流程及其當(dāng)前狀態(tài)的共同理解。只有這樣,才能形成一個(gè)跨組織的分布式業(yè)務(wù)流程網(wǎng)絡(luò):
•集成模型:通過與分布式業(yè)務(wù)流程形成業(yè)務(wù)網(wǎng)絡(luò),實(shí)現(xiàn)多方對(duì)等集成。
•明確、共享的基礎(chǔ)設(shè)施:業(yè)務(wù)流程及其所需狀態(tài)。
•隱含的、非共享的基礎(chǔ)設(shè)施:其他與流程無關(guān)的狀態(tài)。
有許多基于區(qū)塊鏈的項(xiàng)目采用不同的方法來解決業(yè)務(wù)集成挑戰(zhàn)。具體來說,這里的訂單是針對(duì)B2B集成空間的一些最流行和最有趣的許可開源區(qū)塊鏈項(xiàng)目:
•Hyperledger Fabric是最受歡迎和最先進(jìn)的區(qū)塊鏈框架之一,最初由IBM公司開發(fā),現(xiàn)在是Linux基金會(huì)的一部分。
•Hyperledger Sawtooth是由英特爾公司最初開發(fā)的另一個(gè)Linux Foundation分布式項(xiàng)目。它以其模塊化和完整的組件可更換性而廣受歡迎。
•Quorum是一個(gè)以企業(yè)為中心的以太坊分銷公司。
•Corda是另一個(gè)基于現(xiàn)有基于JVM的中間件技術(shù)構(gòu)建的項(xiàng)目,使組織能夠與合同進(jìn)行交易并交換價(jià)值。
已經(jīng)有許多使用上述項(xiàng)目構(gòu)建的業(yè)務(wù)網(wǎng)絡(luò),使網(wǎng)絡(luò)成員組織能夠使用這種新的集成模型相互集成和交互。
除了提供網(wǎng)絡(luò)節(jié)點(diǎn)的這些全棧區(qū)塊鏈項(xiàng)目之外,還有混合方法。例如,Unibright是一個(gè)項(xiàng)目,旨在通過自動(dòng)生成智能合約,將熟悉的標(biāo)準(zhǔn)(如BPMN)中定義的內(nèi)部業(yè)務(wù)流程與現(xiàn)有的區(qū)塊鏈網(wǎng)絡(luò)連接起來。可以為公共或私有區(qū)塊鏈生成智能合約,這可以作為組織之間的另一個(gè)集成支柱。
最近,在許多生活領(lǐng)域中有許多區(qū)塊鏈實(shí)驗(yàn)。雖然公共區(qū)塊鏈通過承諾改變世界而引發(fā)了一些炒作,但私營和特許區(qū)塊鏈的前景并不樂觀,但正在穩(wěn)步推進(jìn)。
結(jié)論
企業(yè)集成有多個(gè)細(xì)微差別。組織內(nèi)的集成挑戰(zhàn)主要由現(xiàn)代ESB、BPM和微服務(wù)體系結(jié)構(gòu)解決,其中所有系統(tǒng)都由一個(gè)實(shí)體控制,參與者之間具有一定程度的信任。但當(dāng)涉及到多方B2B集成時(shí),還有其他挑戰(zhàn)。這些系統(tǒng)由多個(gè)組織控制,對(duì)業(yè)務(wù)流程沒有可見性,并且彼此不信任。在這些場(chǎng)景中,將看到組織正在嘗試一種新的基于區(qū)塊鏈的技術(shù),這種技術(shù)不僅依賴于協(xié)議和合同的共享,還依賴于端到端業(yè)務(wù)流程和狀態(tài)的共享。
這種趨勢(shì)與多年來不斷發(fā)展的總體方向一致:從共享最低限度的協(xié)議,到以合同、API和現(xiàn)在業(yè)務(wù)流程的形式共享和展示越來越多。
這種共享的集成基礎(chǔ)設(shè)施支持新的透明的集成模型,以前的私有業(yè)務(wù)流程現(xiàn)在使用開源協(xié)作模型被共同擁有、同意、構(gòu)建、維護(hù)和標(biāo)準(zhǔn)化。這可以激勵(lì)組織共享業(yè)務(wù)流程并形成網(wǎng)絡(luò),從而從總體上的聯(lián)合創(chuàng)新、標(biāo)準(zhǔn)化和更深層次的集成中進(jìn)一步獲益。