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