隨著軟件組件化和云計算的應用,企業(yè)應用集成(EAI)這個專業(yè)的產(chǎn)品類別得到爆炸式的發(fā)展。與此同時,企業(yè)也在努力爭取更多的業(yè)務敏捷性,向著個性化工作人員的支持和集成業(yè)務流程發(fā)展。而一個應用集成項目必須平衡所有這些因素。
引人注目的是,企業(yè)應用集成涉及的產(chǎn)品在三個功能領(lǐng)域保持平衡。首先是工作流,第二部分是目錄管理,第三個是部署和操作??紤]的順序是由業(yè)務優(yōu)先級決定的。那些以業(yè)務敏捷性為主的企業(yè),首先應該把重點放在工作流工具上。其中,組件化和云計算是主要的驅(qū)動程序,軟件決策者應該先看看目錄,整合對象,以及云計算的驅(qū)動者,他們首先應該考慮部署和操作的工具。如今,這涵蓋了所有三個領(lǐng)域,并在業(yè)務優(yōu)先級的基礎(chǔ)上顯示最適合你的組織的產(chǎn)品。
中間件套件和應用集成
如今的應用程序通常是由一組通信,工作和組件管理工具建立的,統(tǒng)稱為“中間件”。許多企業(yè)都會有一個主要的IT和應用程序供應商,如果你的公司是其中之一,應該總是先查看一下供應商提供的綜合中間件套件。這些通常包括所有你需要的企業(yè)應用集成產(chǎn)品,他們提供一個單一來源的協(xié)調(diào)包,并具有用戶熟悉其產(chǎn)品的優(yōu)勢。即使沒有一個占主導地位的供應商,有些用戶可能想看看這些套件以減少相互指責的可能和安裝的復雜性,如果有多個組件供應商,那么這種事情有時會經(jīng)常發(fā)生。
各大IT軟件公司(如IBM,甲骨文,微軟,惠普和戴爾)已經(jīng)收集了專為協(xié)調(diào)部署和運行的中間件套件。如果你的公司依賴于這些硬件和軟件的主要供應商,你的第一個問題應該是考慮自己的中間件套件是否滿足你的企業(yè)應用集成的需求。以下幾點可以幫助你確定是否有合適的一個主要供應商的套件。
如果你的公司的工作流或驅(qū)動目錄是基于面向服務的體系結(jié)構(gòu)(SOA),那么應用考慮采用IBM的產(chǎn)品。IBM公司的WebSphere軟件主要是針對SOA,并提供了一個服務/集成總線,目錄管理和組件尋址服務。甚至還有云計算集成的混合云應用。IBM的做法缺點是,它主要是針對具有相當大的內(nèi)部軟件開發(fā)活動的大型企業(yè)。
對于依賴于SOA規(guī)模較小的企業(yè),可以考慮采用微軟公司的中間件工具。微軟有一套完整的SOA的Web服務,包括目錄服務和服務總線,而這些可以跨越數(shù)據(jù)中心和微軟Azure云服務之間的邊界。微軟公司的SOA技術(shù)工具尤其擅長針對規(guī)模不同的企業(yè)的整合其多個供應商應用程序和組件。
更多的企業(yè)網(wǎng)絡驅(qū)動的SOA中間件比可能會發(fā)現(xiàn)比其他的更適合。Oracle是一個網(wǎng)絡軟件工具的主要提供商,也是流行的java開發(fā)環(huán)境的所有者。java企業(yè)版J2EE,包括服務總線和目錄管理工具,這些可以從Oracle的來源或第三方添加到其他java版本。此外,Oracle有一個應用程序集成架構(gòu)產(chǎn)品家族,可以提供靈活的業(yè)務整合,跨界應用,甚至提高對移動應用程序支持。Oracle并不生產(chǎn)硬件,但是考慮你的公司采用Oracle軟件之前,請注意你的應用集成工具的工作也會一些涉及Oracle應用程序。
擁有大型服務器群的公司將在多個地點部署分布式服務器,或考慮大量購買服務器,可能會發(fā)現(xiàn)比戴爾公司和惠普公司等電腦廠商更好的競爭者,因為他們提供了一個統(tǒng)一的基礎(chǔ)設施。這些廠商是操作系統(tǒng)和中間件,以及應用程序的單一來源提供者,還可以提供集成服務。即使他們有自己的應用程序的關(guān)系,他們往往還會選擇其他應用。
應用集成的工作流產(chǎn)品:服務/消息總線
如果一個中間件套件不是可用的或都不是最好的,你必須選擇單獨的應用程序集成產(chǎn)品,這是工作流程整合的最佳場所。工作流產(chǎn)品將處理接口和消息流,通常也包括目錄管理工具。這里有兩個選項:服務/消息總線或離散接口。在應用程序是復雜和高度模塊化的,并在業(yè)務需求是高度動態(tài)的,則服務或消息總線通常是最好的方法。該產(chǎn)品甚至通過一個簡單的腳本語言提供業(yè)務控制的工作,并在數(shù)據(jù)格式和接口選擇有相當大的靈活性,以適應廣泛的應用和組件。
四家廠商在信息/服務總線領(lǐng)域占主導地位,除了中間件套件供應商。他們是Fuse,MuleSoft,Talend,以及TIBCO,雖然他們提供相同的功能,用戶可能會發(fā)現(xiàn)在其在細節(jié)上的顯著差異。
TIBCO已經(jīng)可以說是具有最廣泛集成能力的總線集成的產(chǎn)品,據(jù)說具有最高的性能和強大的能力來容納所有可能的應用和合作伙伴,他們的使用也往往是昂貴和復雜。Fuse,MuleSoft和Talend都是開源的,這意味著許可成本更低。然而,幾乎所有的用戶都會想要購買支持合同,所以這些產(chǎn)品不是真正的“自由”,經(jīng)過整合的努力很可能會使用這些產(chǎn)品,因為它們的相對狹窄范圍的功能更高。
Fuse具有較強的RedHatJBoss的根源,是企業(yè)提供給RedHatLinux或強大的開源意見的具體承諾。MuleSoft是基于產(chǎn)品的開源總線便于集成的產(chǎn)品,而Talend是面向數(shù)據(jù)的群組。
消息/服務總線經(jīng)常會使用得當,但有可能過度使用。不要以為你需要這個產(chǎn)品類別,假設你不這樣做,除非你有來自多個來源的許多復雜的應用程序。在大多數(shù)情況下,簡單的應用程序和在特定的網(wǎng)絡中心的應用程序是最好的處理使用離散的接口,是本地的所有操作系統(tǒng)和中間件。
目錄和接口集成和對象代理
服務/消息總線提供組件的聯(lián)動控制與流程。SOA和REST定義應用程序和組件接口模型。因為基本的工作流和目錄服務的所有應用程序是強制性的,標準的供應商的中間件將提供所有的企業(yè)應用集成的工具,你將為許多SOA應用程序提供幾乎所有的RESTful應用的需要。
標準的供應商中間件有可能面臨下降的情況,你必須混合多種來源的應用程序或處理以超出公司的合作伙伴的連接。對于這些情況,如果你的需求不匹配服務/消息總線的產(chǎn)品,你可能要考慮采用第三類的集成工具:對象代理。
對象代理支持長期建立的通用對象請求代理體系結(jié)構(gòu)(CORBA)。他們擴大了基本中間件工具軟件組件之間的接口,并通過調(diào)用不同的組件創(chuàng)造一個更為靈活的架構(gòu)的基礎(chǔ)中間件用于構(gòu)建應用程序。他們是明確的應用設計和組件的一部分,所以你需要購買基于CORBA的應用程序或建立自己的應用。行業(yè)的趨勢似乎正在遠離代理和CORBA對象,盡管速度緩慢,所以你在進行基于CORBA的一個新的開發(fā)項目之前,應該小心。因為擁有數(shù)以千計的現(xiàn)有的CORBA應用程序,它會在一段時間內(nèi)保持企業(yè)應用集成。
這里有兩種主要的CORBA產(chǎn)品,Orbix和VisiBroker,無論在用戶數(shù)量和行業(yè)的廣度上,VisiBroker是更廣義的Orbix的被廣泛應用于金融、電信和運輸應用。由于CORBA是整個企業(yè)邊界支持應用程序連接性和易用性的一部分,選擇在自己行業(yè)中最常用的產(chǎn)品是明智的。
CORBA很難在小企業(yè)自圓其說,所以如果你是一個小企業(yè),這將是界面和目錄集成標準的中間件提供的基本工具,唯一的例外是由于貿(mào)易合作伙伴關(guān)系,你已經(jīng)承諾采用CORBA的應用程序。
部署和運營的整合
虛擬化和云計算已經(jīng)為企業(yè)應用集成增加了一個維度,因為他們已經(jīng)推出了動態(tài)資源的概念,托管應用程序和組件。此外,對建筑高度組件化的應用趨勢進行了任務部署應用程序的復雜和容易出錯的一個。集成顯然需要找到組件,以便將它們連接起來,這樣的彈性分配的組件承載點影響整合使彈性分配。要進行部署和重新部署,降低風險的自動化,這就是為什么他們是重要的原因。
部署和運營一體化產(chǎn)品的任何討論已經(jīng)開始與兩個主要工具,Chef和Puppet。應用程序供應商,硬件供應商和操作系統(tǒng)供應商通常會提供一種或兩種這些產(chǎn)品給他們的用戶,不僅了解這些產(chǎn)品的主要差異,還要了解部署和運營的發(fā)展趨勢,這也是是非常重要的。
Chef是基于腳本的,這意味著你使用Chef編寫特定的指令部署。。對于用于部署腳本加載應用的公司,Chef通常是一個容易的過渡。Puppet就是所謂的模型驅(qū)動的方法來部署操作。這是模型的結(jié)果所需的描述性語言,并轉(zhuǎn)換成步驟的過程來實現(xiàn)這一目標。
基于腳本的或“程序化”的方法,如Chef的青睞,因為他們從目前的做法自然地進行演變,但基于模型的或“聲明”的操作工具似乎是行業(yè)的趨勢,得到了大多數(shù)用戶的青睞。這是因為一種基于模型的方法可以更容易地應用在云環(huán)境中部署條件會有所不同,這取決于你放在云中的東西。然而,你要仔細看Puppet工具,以確保你喜歡你的供應商支持的框架。Chef和Puppet是相關(guān)的應用程序單獨的套件的一部分,這二者的混合可能令人眼花繚亂。
在DevOps的工具領(lǐng)域的推廣總是有風險的。通常情況下,Chef是更靈活的,但是也比較難學。對于簡單的部署和運營任務,Puppet可能是一個更好的選擇。
在云計算中使用Chef和Puppet是可能的,但是云部署和操作有其自己的一套工具。如果你的應用程序劃分成云托管和數(shù)據(jù)中心的部分,它可能是基于云的部署最好的使用和操作的云計算工具。亞馬遜OpsWorks是最廣泛使用的云部署和操作工具。它的基礎(chǔ)上的廚師,這意味著它更容易與Chef進行集成管理和部署,其中涉及公共云和數(shù)據(jù)中心。
如果你想要更多的云計算為中心,一個新興的選擇是由結(jié)構(gòu)化信息標準促進組織(OASIS)稱為TOSCA標準(云應用的拓撲和編排規(guī)范)。TOSCA是一個組合的腳本和模型方法,為云計算和數(shù)據(jù)中心的部署和運營有著巨大的潛力。TOSCA主導產(chǎn)品是IBM的CloudOrchestrator。如果你是一個IBM公司的客戶,云控制器是一個非常強大的解決方案,但是一個非IBM公司采納它是困難的。
供應商至少認為,其未來的關(guān)鍵在于廣泛和動態(tài)的全面自動化工具包。自動提供了一個全面的業(yè)務集成和自動化產(chǎn)品。他們(包括大部分的數(shù)據(jù)中心和云資源的公司)很可能是使用或考慮使用所提供的工作負載、服務和發(fā)布自動化的各種平臺。而作為一個完整的企業(yè)應用集成解決方案,它們可能是無與倫比的,但它們也可能是最難以集成的應用程序、工具和實踐。
確保未來和當前的需求得到滿足
在應用開發(fā)的前沿,應用程序是通過自動部署工具和采用靈活的工作流程的特定組成。傳統(tǒng)的靜態(tài)應用程序的概念已經(jīng)過時了,所以你需要構(gòu)建應用程序,并將它們連接到業(yè)務流程中,并在一組工具上整合。還可以在數(shù)據(jù)中心和云計算部署另一組。
未來的企業(yè)應用集成的目標必須對你具有長遠的價值。IT的變化比以往任何時候都要快,所以重要的是要確保你的當前和未來的需要,并對你的供應商的未來方向進行評估,作為他們的當前產(chǎn)品。不管你的商業(yè)需求是什么,最好的選擇就是你可以采用最長的時間的產(chǎn)品。