天天看點

SOA最差實踐:過多的Web服務=麻煩

在SOA方面,你們看到了什麼?

  Dan Foody:如今,人人都在談論SOA,企業裡人人都知道SOA并想參與其中。但是,其自身正遭遇着挑戰,因為并不是每個人都能正确了解在面向服務架構裡應該做些什麼。

  這種對于SOA的無知會帶來什麼挑戰呢?

  Foody: 我們發現當人們宣稱他們在做面向服務架構時,他們所做的事卻并不是SOA所預期的,甚至有些吓人。

  有例為證嗎?

  Foody:給你們舉一個我最喜歡的例子。有一家公司在做一個大會主題演講中提到他們在面向服務架構方面有多麼的成功:他們已經具有300項服務,并且在一年之内能達到1000項。聽起來很不錯不是嗎?唯一的問題在于這種類型在發展中卻很糟糕。

  為什麼SOA理念會脫軌呢?

  Foody:我們做面向服務架構,目的是避免複雜性,而不是讓多達30種web服務去做同一件事情。你的目的是要去再利用。如果有上千個Web服務,實作再利用的可能性事實上為零。是以,他們也許擁有許多Web服務,但卻無法實作面向服務架構。是以,在業務上也表現不出任何好處。這就是一個SOA脫軌的例子,人們錯誤的認為“越多越好”。

  這是因為人們在定義面向服務架構時的問題嗎?

  Foody:這個問題有兩個方面引起。一方面,一些人根本就不了解SOA的含義。建立Web服務,并不代表你建立了面向服務架構,這與Web服務的數量無關。SOA關系到你對已有的Web服務利用途徑的數量。這才是在各方面定義面向服務架構的一個标準。許多人都在這一點上誤解了。真正有價值的是對于Web服務的再利用而不是Web服務本身。跨組織的共享資源才是面向服務架構的價值所在。

  還有一部分人,即使他們了解了這一點,也不一定知道如何去建立成功的面向服務架構。有的人認為建立所有權标準可以建立有效的面向服務架構。于是我們看到一些組織将Web服務與SOAP作為基礎,将之拆散,讓其不能與外界任何程式互相作用,然後将自己的特性加入準則當中。然後,他們需要将所有的東西編碼然後聯結,在此過程中将丢失掉許多協調性的益處而緻使在開始的時候建立面向服務架構變得很困難。雖然在這些例子中,嘗試SOA的人們了解了他們将要達成的目标,但他們并不知道途徑為何。

标準能夠幫助我們看清道路嗎?

  Foody:多數人會說:SOA并不存在技術問題,最大的挑戰在于結構性問題。是以對于技術架構的重視隻能解決20%的問題,但80%關于人員的問題仍有待解決。

  我認為,犯了最差實踐這些錯誤的人們不會在一開始就按照規則來辦事。他們相信自己知道自己在做什麼,這也是問題之一。那個在大會上發言的先生,講述建立上千Web服務,他就相信自己比任何人都了解如何來做SOA,并且不會聽取他人的建議。

  是以,我并不認為标準結構能夠解決這個問題。一個企業能從SOA得到的最重要的益處并不是用純技術的形式能夠呈現的,而是使資訊技術将對商務有意義的資源組織起來。将資訊技術與商務結合起來并使其随着時代的發展而持續進步。是以,當一個商人談到盤點時,IT人士就能知道這意味着什麼,他們會将相關的資源和技術組織到一起運作。這才是SOA的真正益處所在,這是你在任何一張架構圖表上找不到的。

  當人們有需要的時候,也會有技術幫助加入其中。他們想要,就能找得到。而恰恰是那些自以為是并沒有好好利用技術幫助的人在技術層面上出現問題。

  那麼,這是不是說無知和缺乏了解是非常危險的?

  Foody: 對,自信和缺乏知識是非常壞的結合。

  那麼,在企業認識到他們應該采取别的途徑之前,我們是不是會看到許多SOA失敗的最差實踐案例呢?

  Foody: 我們必然會看到許多項目的失敗例子。一切引起企業變革的因素都會有附加效果。不是所有企業都能夠完成變革的,也不是所有企業都知道如何進行變革的。是以,我認為在進行此類變革的同時,我們将不可避免的看到許多附帶作用的産生和項目的失敗。關鍵在于企業要認識到從失敗中吸取教訓而不要半途而廢。

  是以,我們要關注所有關于SOA失敗案例的報道,避免同樣的錯誤。如果一個人要引領SOA的啟動,他不能在遇到失敗時覺得羞恥,而是應該接受這些失敗并将之當成又一個他能從中學到經驗的案例。

繼續閱讀