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