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