如何理解SOA與Enterprise Web2.0 |
發(fā)布時(shí)間: 2012/8/20 9:32:30 |
SOA監(jiān)管(SOA Governance)是SOA實(shí)施中的一個(gè)重要話題,但是很多人都搞不清楚其含義。我采訪過很多人,也閱讀過一些資料,才基本弄明白?偟母杏X是,如果 直白地去講SOA監(jiān)管的問題,必然引進(jìn)大量的新術(shù)語,一般開發(fā)者實(shí)在不容易聽懂。如果能夠舉一個(gè)例子,那么大家就容易理解得多。恰好昨天在書上看到一個(gè)真 實(shí)的故事,很形象地說明了SOA監(jiān)管的意義。所以不妨跟大家分享一下。這個(gè)故事是關(guān)于Sun的,當(dāng)然這類事情實(shí)際上曾經(jīng)發(fā)生在很多大型公司里。
在90年代后期,Sun推出了一系列產(chǎn)品,包括Java、Solaris等,他們希望能夠盡可能地鼓勵(lì)用戶去使用這些產(chǎn)品,但是當(dāng)時(shí)網(wǎng)速太慢,通過 Internet下載幾百兆的軟件根本不現(xiàn)實(shí),于是Sun在網(wǎng)站上推出一個(gè)電子商務(wù)服務(wù),下面我們不妨稱之為服務(wù)A,你只要通過信用卡付10-20美刀快 遞費(fèi)用,就可以免費(fèi)獲贈(zèng)Sun的超值產(chǎn)品光盤。被叫去編寫這個(gè)電子商務(wù)服務(wù)的程序員當(dāng)時(shí)隸屬與內(nèi)部IT部門,他寫了一個(gè)在線服務(wù),用來完成信用卡付賬交 易。當(dāng)然,這是一個(gè)“子服務(wù)”,我們不妨稱其為服務(wù)Z,這個(gè)在線服務(wù)Z運(yùn)行在內(nèi)網(wǎng)上,采用了今天看來都不落后的體系結(jié)構(gòu)――直接通過HTTP傳輸加密的 XML消息。很快,服務(wù)A對用戶見面了,并且工作得很好。 不久之后,這個(gè)程序員被調(diào)到了Java開發(fā)組。當(dāng)時(shí)Sun的Java網(wǎng)站提供一個(gè)類似MSDN的Java產(chǎn)品光盤訂閱服務(wù),下面不妨稱之為服務(wù)B,這個(gè)服 務(wù)每季度向訂閱者寄送最新的Java產(chǎn)品光盤。當(dāng)然,訂閱者也要通過信用卡付訂閱費(fèi)。碰巧這項(xiàng)工作又交給了這位程序員來完成。他當(dāng)然不愿意重寫那個(gè)很麻煩 的信用卡結(jié)帳服務(wù)Z,既然原來的那個(gè)服務(wù)是通過HTTP暴露在內(nèi)網(wǎng)里的,何不復(fù)用之?他就簡單地復(fù)用了這個(gè)信用卡結(jié)帳服務(wù)Z,完成了任務(wù)。這樣,在90年 代后半期,這位程序員就率先實(shí)現(xiàn)了企業(yè)服務(wù)的復(fù)用。而十年后,服務(wù)的復(fù)用正是今天SOA追求的目標(biāo)之一。 這樣就形成了一個(gè)有趣的局面,即服務(wù)A中包含一個(gè)子服務(wù)Z,而服務(wù)B又依賴于服務(wù)Z,Z實(shí)際上成為了一個(gè)公共服務(wù),但是這個(gè)秘密只有那個(gè)程序員和少數(shù)幾個(gè)人知道,Sun的經(jīng)理們對此懵然不知。 幾年之后,這位程序員離開了Sun,隨著他的離去,這個(gè)秘密變得更加不為人知。 隨著互聯(lián)網(wǎng)的發(fā)展,人們已經(jīng)習(xí)慣于從網(wǎng)上直接下載軟件,服務(wù)A已經(jīng)變得越來越過時(shí)了。于是終于有一天,Sun的一個(gè)經(jīng)理決定,關(guān)閉服務(wù)A。結(jié)果意想不到的事情發(fā)生了,隨著A的關(guān)閉,服務(wù)Z也被關(guān)閉了,這就導(dǎo)致服務(wù)B全面崩潰,所有的訂閱者都無法付款了。 這就是一個(gè)缺乏監(jiān)管的情況下產(chǎn)生的典型事故。在傳統(tǒng)的企業(yè)IT架構(gòu)里,當(dāng)系統(tǒng)僅僅是部門級煙囪系統(tǒng)時(shí),軟件模塊之間的關(guān)系簡單,監(jiān)管不是一個(gè)很突出的問 題。而當(dāng)各部門系統(tǒng)進(jìn)行整合時(shí),如果采用EAI/ETL方案,則也不大有監(jiān)管的問題。只有在實(shí)施SOA的時(shí)候,把傳統(tǒng)的煙囪系統(tǒng)打散成為一個(gè)個(gè)可復(fù)用的服 務(wù)時(shí),監(jiān)管的問題就突出了。SOA監(jiān)管的意圖,就是要讓各種服務(wù)以清晰有條理的方式組合協(xié)作起來,并清晰地度量每一個(gè)服務(wù)的開銷,評估每一個(gè)服務(wù)的開發(fā)和 維護(hù)所需的技術(shù),確定當(dāng)服務(wù)失效時(shí)采取的必要措施。總之,就是要把服務(wù)管起來,讓它們有組織有紀(jì)律的共同工作。如果沒有一個(gè)監(jiān)管的制度和計(jì)劃,那么就會(huì)出 現(xiàn)這樣的局面:服務(wù)與服務(wù)之間有什么關(guān)系?不知道。服務(wù)之間彼此是否依賴?不知道。這兩個(gè)服務(wù)的功能是否重復(fù)?不知道。這個(gè)服務(wù)是否冗余?不知道。開發(fā)維 護(hù)這個(gè)服務(wù)需要什么技能?不知道。當(dāng)用戶量增加時(shí),維持這一服務(wù)的QoS所需的硬件消耗怎么變化?不知道。當(dāng)服務(wù)崩潰時(shí),誰來接替?往誰那里打電話?是否 有手工流程緊急應(yīng)對?不知道!一大堆無法無天的服務(wù)以誰也想不到的方式攢在一起,任何一個(gè)點(diǎn)風(fēng)吹草動(dòng)都有可能會(huì)天下大亂。這就是缺乏監(jiān)管的SOA將發(fā)生的 局面。這樣的SOA,與其說是一個(gè)系統(tǒng),不如說是一團(tuán)亂麻,一場災(zāi)難。 因此,SOA監(jiān)管對SOA來說,不是可選的,而是必須的,甚至是決定SOA實(shí)施成敗的關(guān)鍵。 本文出自:億恩科技【mszdt.com】 本文出自:億恩科技【www.enidc.com】 --> 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |