天天看點

服務仲裁 - SOA中企業服務總線的角色

  原文:http://www.tibco.com/resources/solutions/soa/esb_for_soa.pdf

概要 業務靈活——能夠快速适應需求變化的能力——正逐漸成為激烈競争的全球市場中業務運作的關鍵目标。業務管理人員需要迅速重新調配資源和流程來應對這些變化。為了更迅速的應對這些變化,IT管理人員正在抛開那些孤立的流程和整體化的企業應用軟體,他們正在嘗試将應用系統進行松耦合內建的方式,并在企業中提供可以作為可重用服務的業務功能。 面向服務架構(SOA)是一種通過松耦合的“服務”元件建立企業IT基礎架構的方式,這些元件就是一些離散的功能。合成的應用系統是SOA環境的關鍵元素。這些應用系統通過調用和編排若幹的服務、事件和模型來建立,通過這種方式将他們封裝成為更高層次的業務功能。這些功能使IT部門能夠重用那些已經被測試過的過程和具有擴充性和服務品質的元件,增加了業務的靈活性。這些重用可以幫助減少市場響應時間并降低IT開發成本。 企業服務總線(ESB)是分布式的、基于消息的內建解決方案,遵循開放的标準。ESB的角色是在各種IT資源——比如企業中分布于不同的系統上的應用系統、平台和服務之間——更容易的建立可靠的通訊。當IT部門越來越關注建構SOA來降低開發成本并提升業務靈活時,ESB就成為了建立企業SOA關鍵的第一步。ESB作為SOA的基礎,可以通過附加的生産能力比如服務編排和注冊,進行補足。本文将要讨論能解決企業SOA需要的ESB的需求。 Web Service 和 ESB 之路 SOAP,Web服務表述語言(WSDL)和HTTP解決了一個棘手的問題,以前試圖建立分布式系統的标準是一件很苦惱的事情,比如 公共對象請求代理架構(CORBA)或者分布式計算環境(DCE)——即目前廣泛被接受的兩個最大的應用技術陣營(.NET和J2EE)與衆多的應用系統提供商。 雖然這絕非易事,但可以通過将标準極度的簡單化為一套一緻同意的核心技術條款來擷取認同。這個設計原則既是Web服務标準的最大優點也是最大的局限。 簡單的講,沒有企業級的應用可以單獨運作SOAP,WSDL和HTTP。盡管Web Service和SOA在IT社群中快速的獲得認可,他們也面臨着與之前的分布式系統同樣的挑戰,這在很大程度上取決于他們的分解原則。在這些挑戰中,最重要的是如何解決點對點連接配接,也就是常說的M*N連接配接的問題。 下面的圖1說明了點對點的內建方式所産生的連接配接爆炸問題。每一個應用系統增加,都會使連接配接的數量呈指數級增長,因為每一個應用系統都要連接配接到其它的每一個應用系統。TIBCO創造了資訊總線範例,右面的圖是該範例的說明。在這個模型中,每一個應用隻與公共骨架——總線——連接配接。這樣使連接配接的數量最小化并且提供了為連接配接、內建系統和架構的管理提供了集中的位置。  

服務仲裁 - SOA中企業服務總線的角色

圖1 :通過ESB 降低連接配接複雜性 為了管理服務用戶端與服務提供者的連接配接與通訊的複雜性,SOA需要一個骨架,它能夠超出傳統分布式消息,在異構的IT環境中提供複雜的轉換、路由和松耦合連接配接,并且與平台無關。這個可靠的骨架提供企業級服務總線就是ESB。 ESB 的企業級需求 我們來看一下服務總線的企業級功能。下面的每一項功能都是SOA中進行成功的內建的要點。将他們融合在一起就可以解決SOA環境中服務提供者和服務用戶端所面臨的問題。 分布式消息:ESB的基礎核心是面向消息的中間件,比如TIBCO企業消息服務軟體。這個基礎提供可靠的、分布式的傳輸方式,通過存儲/轉發方式保證消息即使在網絡失敗的時候仍能夠釋出。 位置透明:通過服務仲裁,服務客戶段調用服務提供者隻需要知道這個服務存在,而不需要知道服務運作在何處。當服務被調用的時候,ESB來尋找這個服務,提供一層虛拟服務并且位置透明,這樣即使伺服器停機或者服務提供者被轉移,獨立的服務用戶端都不需要被通知到這種變化。這樣能夠極大地降低IT管理的成本并使風險最小化。 傳輸透明:傳統的點對點內建方式,元件和對象都緊密耦合。在SOA中,因為位置透明,服務被IT環境尋找并且降低耦合。當依靠位置透明來連接配接服務用戶端和服務提供者的時候,ESB還提供了實體的傳輸協定,使那些使用不同的傳輸的服務之間能夠進行通訊。 多協定支援:因為HTTP傳輸模型本身的可靠性問題并且隻能運作同步消息交換模式(MEP),它無法滿足每一個應用系統和服務的需求。例如,JAVA消息服務(JMS)有異步特性,并且相比HTTP,JMS有更高的可靠性。為了支援異構的應用,有些系統使用基于JMS的SOAP來達到預期的效果。其他的傳輸模型也同樣正在被使用,包括那些由主要的資源計劃和系統企業提供的私有的傳輸系統。是以,ESB需要能夠支援衆多不同類型的傳輸系統,以便在傳輸層能有效的內建異構系統和管理複雜的通訊。 服務品質:對企業應用來說,服務品質(QOS)主要與服務可靠性相關。消息釋出和可靠的服務調用是任何一個系統的關鍵功能。然而,Web服務本身不能提供釋出的保證。從另一方面講,ESB可以通過確定端到端的消息釋出提供服務的高可靠性,這是在可靠的傳輸比如JMS之上提供的。此外,達到高的服務品質還必須要遵循标準,比如要支援WS-可靠消息規範。 消息交換模式:當今大多數ESB使用基于HTTP的SOAP通過請求/響應方式操作,這意味着服務用戶端釋出一個請求消息給使用者并等待響應。也就是常說的同步資訊交換方式。 然而,在釋出/訂閱消息交換模式中,服務用戶端發送一個消息并且訂閱響應而不是等待它。釋出/訂閱消息交換模式在企業中可以更有效的對事件進行響應,尤其是服務活動的生命周期将要耗費很長時間的時候。ESB需要能夠支援每一種範例。 基于内容的路由:ESB中有兩種路由方式。第一種是服務路由,當服務調用進入ESB并且ESB将請求路由給适當的服務提供者,服務用戶端并不需要知道服務提供者的位置。這就是如何實作我們上面讨論的位置透明。 另一種是基于内容的路由,在路由平台定義一套由消息内容提供的規則或者業務邏輯,ESB根據消息的内容将其路由給指定的服務提供者。比如,特定使用者的優先級順序或者指定交易的标志。這對業務服務很有價值,因為他可以幫助降低資訊管理的成本,保證與服務層的關連并且使企業能更加關注與客戶的滿意度。 轉換:ESB的任務是将消息從一個服務路由到另外一個,當資料格式不比對的時候會有一些工作要做。是以ESB需要能夠進行消息轉換。 附加的評估标準 當決定選擇最佳的SOA內建工具的時候,出來要評估之前所講的特征,以下的标準也要特别注意。 開放的标準:開放的标準,比如SOAP,WSDL和Java業務內建(JBI),是企業SOA的整體需求。是以,這些開放的标準需要被ESB解決方案的所有元件(運作時容器,消息架構,內建服務和設計時标準)支援并且內建資源機制要被指定(附加,請求和響應)在總線之上。 擴充性和高可用性:ESB必須能夠處理企業所需要的大量的消息。另外,高可用性是重要因素來保證不間斷的業務操作。如果ESB中的一個元件失效,他不應該停止通訊中的服務。 這些标準幫助IT部門確定ESB能夠快速、準确的處理需要的事物,并且為将來的增長打下基礎,這也是業務靈活的要素。  

繼續閱讀