SOA使用中的五大隱患

現在是SOA領域動盪變化的時期,其發展變幻莫測,而這僅僅只是開始。由於服務設計、服務總線、服務治理甚至服務本身都處於不斷變化中,而且各大公司仍在重審這一舞臺,因此,人們的立場通常很複雜。對於IT產業中SOA的成熟度和整體狀態,許多人還非常迷惑,但是,可以確定的是,SOA在結合商業和技術方面的潛力的確非凡。

  今年,發佈了許多SOA的新方案,每一個方案都有其特定的一套目標和期望。很可惜,其中一些方案與成功相距甚遠,一些方案距成功僅僅是一步之遙。但是,對於大多數方案而言,它們都實現了最初的目標,其成功的決定因素是——借鑑那些經歷過失敗項目的人們的寶貴經驗。這些前輩講述他們的經驗教訓,告訴人們在通往SOA道路上所要警惕的重重障礙。

  在我們的日常工作中,我們被捲入進度不同、狀態不同的多個項目中。而現在,我們已經看到,很好的SOA變得越來越差,甚至更糟。雖然,問題能夠被解決,錯誤能夠被避免,但是,總是有一種強大的力量把事情拖回到原來的軌道上。很明顯,最佳做法就是:第一時間避免問題和錯誤。

  在SOA的使用中存在着隱患,很多人已經被這些錯誤的概念或者做法誤導,那麼,理解這些隱患,能夠幫助你達到深謀遠慮的程度,從而使你在SOA的道路上更加安全的前行。爲了使你有一個好的開端,我們已經收集了五種最爲常見的、SOA使用中的隱患

  ☆5沒有理解SOA的性能需求

  鬆散耦合是需要代價的。當使用Web服務實現鬆散耦合時,SOA引入了數據處理層,同時也帶來了由這些層所影響到的上層的相關性能。當SOA項目剛開始時,規模較小,因此,構建符合功能和響應要求的、面向服務的解決方案並不複雜。但是,隨着規模的增加,需要添加更多的功能,由此可以預見到,基於信息的通訊量將會大幅度增長。如果事先沒有考慮這一情況,沒有準備好構建環境的話,那麼,就需要對前一階段所做的小規模系統進行必要的遺留處理。

  要構建一個成功的面向服務的解決方案,其關鍵是:儘快理解你的解決方案的性能需求、以及基礎架構的性能瓶頸。這意味着測試(如果需要的話,增強)你的構建環境的消息處理能力,並且密切關注服務設計,從而達到傳輸率、傳輸規模以及與其他服務特性之間的一個可接受的平衡點——這一平衡點會影響解決方案的性能。

  ☆4沒有從XML基礎架構開始

  在今天的SOA世界中,每件事情都開始於Web服務。這似乎已經成爲公司內部的既成標準,但是它並不完全正確。事實上,在今天的SOA世界中,所有的事情都開始於XML。這纔是真正的標準,依據這一標準,許多補充的標準都已經逐漸發展起來,並且形成了實際的數據表示架構。這一標準的核心,奠定了許多Web服務規則的形成基礎,並且促進着SOA的發展。

  因此,人們更多地關注於數據在服務之間是如何傳輸的,而經常忽略在服務背後,數據構造和驗證的方式。這一疏忽可能導致無法合理實現SOA的持久化XML數據表示層。對於SOA而言,這一層是基礎,如果它存在着弱點,那麼,所有基於這一層的解決方案都會受到不利影響。

  ☆3沒有創建一個過渡計劃

  如果沒有使用一個詳盡的過渡計劃,那麼,成功遷移的機會將會降低很多。因爲,在一個企業內部,服務終端所處位置的範圍將導致環境基礎架構的重新確定,一次差強人意的遷移有可能帶來重大影響。使用過渡計劃,你就能夠控制面向服務和SOA特性,並且進行相應的協調,如此一來,遷移就能夠在技術、架構以及組織層面上,按照計劃進行。

  對於一個SOA過渡計劃而言,其典型的組件包括:一個具有重大影響的分析結果(預測SOA的改變程度將如何影響已有資源處理、用戶標準和技術)、過渡架構(目標是SOA,勾畫出一系列通向這一目標的中間過渡狀態)以及推測分析(考慮Web服務和支持技術的未來發展)。

  ☆2沒有標準化SOA

  與其他的架構相同,SOA也需要創建並且執行內部設計標準,以便能夠使人們真正地認識到它的優勢。舉例說明,如果一個項目採用構建面向服務的解決方案,與其他項目不同,那麼,該項目的解決方案的關鍵點將不再是與相關的應用程序保持一致,它可能是需要互操作或者分享某些不可預知的服務。

  這可能引發很多問題,包括不匹配的數據表示、含有不規則接口特性和語義的服務契約,以及使用非互補的Web服務擴展(或者是用不同方式實現的擴展)。

  SOA的出現,促進了分離後端處理這一開發環境的發展,因此,在每個應用程序內部,SOA都能夠獨立執行。然而,標準化仍然要求——服務需要封裝這一後端邏輯,並且在設計和交互上確保一致性。

  ☆1將SOA構建成傳統分佈式架構

  在實現SOA的過程中,企業一直面對的誘惑是:自稱SOA已經實現了,但是在構建面向服務的解決方案時,採用與構建傳統分佈式解決方案相同的構建方式。

  SOA既不是CORBA XML,也不是ASP.NET WSE。同樣,面向服務既不是面向對象,也不是“足夠接近”面向對象。雖然,通常情況下,構建面向對象組建邏輯總是“非常適合”於面向服務解決方案的環境。但是,SOA是基於面向服務的、與衆不同的架構模型,以及截然不同的設計模式。對於構建自動化邏輯——純粹的面向服務,與SOA產業向全球規模發展保持一致——理解上述這些不同之處,是非常關鍵的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章