權(quán)利和責任是一起來的。SOA的承諾為服務(wù)重復使用和實現(xiàn)一個完全集成的企業(yè)提供了巨大的機會。但是,人們沒有想到的是SOA實現(xiàn)的靈活性將導致企業(yè)IT部門出現(xiàn)混亂。要恰當?shù)乜刂芐OA的權(quán)利同時為企業(yè)提供價值,某些控制是非常重要的。在一個普遍存在的和透明的框架中采用服務(wù)發(fā)現(xiàn)、服務(wù)安全、服務(wù)管理和政策治理等方法對于任何企業(yè)成功地實施SOA都是非常重要的。
權(quán)利和責任是一起來的。SOA計算模式為集成企業(yè)和實現(xiàn)重復使用提供了巨大的承諾。但是,隨著這個權(quán)利出現(xiàn)了適當?shù)厥褂玫呢熑巍H绻粋機構(gòu)不能充分地控制SOA原則產(chǎn)生的靈活性,就會出現(xiàn)混亂。
有有效地實現(xiàn)面向服務(wù)的好處,必須要為了機構(gòu)的利益控制SOA固有的靈活性。有效的SOA以合適的比例應(yīng)用服務(wù)發(fā)現(xiàn)、服務(wù)治理、服務(wù)安全和服務(wù)管理。這些部分的每一個重要的部分都必須要單獨地理解,因為它們都是相互關(guān)聯(lián)的。當它們結(jié)合為一個無縫的架構(gòu)的時候,這個整體就超過了其組件的總和。
發(fā)布-發(fā)現(xiàn)-綁定概念
在SOA的核心是發(fā)布-發(fā)現(xiàn)-綁定(publish-find-bind)概念。圖1解釋了這種松耦合計算的范例。
在這種計算范例之下,一個服務(wù)提供商發(fā)布其服務(wù)(作為服務(wù)端點)并且等待啟動這些服務(wù)。(第一步--發(fā)布)要發(fā)現(xiàn)從使用其服務(wù)中受益最多的那些消費者。提供商通過發(fā)布其注冊處中的產(chǎn)品“宣傳”其服務(wù)。這個注冊處(通常是符合UDDI或者ebXML標準的)維護一個在企業(yè)中發(fā)布的全部服務(wù)的數(shù)據(jù)庫以及這些服務(wù)的細節(jié)以便幫助消費者的發(fā)現(xiàn)過程。在實踐中,這個信息通常包括一個WSDL文件(包含其調(diào)用簽名)以及服務(wù)所在的端點的URL地址。這個注冊處還包含一個全面的庫以保存每一個服務(wù)的功能和特點等情況的額外細節(jié)。
一旦一個服務(wù)在企業(yè)的注冊處發(fā)布,一個有興趣的消費者也許就會查詢這個注冊處尋找能夠滿足他的需求的服務(wù)。(第二步--發(fā)現(xiàn))接下來,開發(fā)人員使用他們在注冊處發(fā)現(xiàn)的服務(wù)建造自己的系統(tǒng)。松耦合協(xié)作中的最后一個步驟(第三步--綁定)在運行時間發(fā)生。在執(zhí)行時間,消費者使用在“發(fā)現(xiàn)”操作期間由注冊處提供的端點URL與提供商綁定在一起。
根據(jù)發(fā)布-發(fā)現(xiàn)-綁定松耦合的范例,提供商和消費者需要在使用這個服務(wù)之前相互熟悉。這個概念的力量引起了重要的混亂的機會。例如,如何保證只有獲得授權(quán)的消費者才能訪問一個指定的服務(wù)?如何保證所有的服務(wù)提供商都能適當?shù)乇WC自己的服務(wù)安全防止非授權(quán)的消費者使用?如何保證在整個企業(yè)的SOA實施過程中遵守機構(gòu)的標準?要管理在松耦合模式中的權(quán)利,必須采用額外的一些控制層面以保證在保持秩序的同時實現(xiàn)SOA的好處。
發(fā)布時間治理
沒有對企業(yè)SOA的控制,沒有限制數(shù)量的內(nèi)部服務(wù)提供商將暴露和發(fā)布允許任何用戶使用的所有形式的服務(wù)。必須要在發(fā)布時間在這個過程中引進一個治理層以保證僅僅發(fā)布高質(zhì)量的服務(wù),并且保證這些服務(wù)符合企業(yè)的標準。這種做法稱作變換時間治理。
采用變換時間治理,注冊處根據(jù)企業(yè)建立的一套規(guī)則驗證發(fā)布的服務(wù),并且拒絕任何企圖發(fā)布不符合所有已經(jīng)制定的政策的服務(wù)的那些服務(wù)提供商。企業(yè)級消費者不能使用任何遭到拒絕的服務(wù)。這些政策在把一項服務(wù)注冊成為一項企業(yè)服務(wù)之前將根據(jù)發(fā)布的服務(wù)進行任何數(shù)量和任何形式的檢查。
圖2顯示了變換時間治理功能在松耦合生命周期(步驟1a--驗證)中發(fā)生的地方。這個治理工具(有時候是注冊產(chǎn)品的一部分)管理所有的企業(yè)SOA政策。