關鍵字:SOA
在鋪天蓋地的SOA宣傳文章中,最佳實踐是出現頻率最高的詞匯之一。相比起來,最差實踐就沒那么風光了。但是,俗話說得好“吃一塹,長一智”,看看別人犯過的錯,未嘗對自己沒有幫助。最近,Information Builders的市場副總裁Jake Freivald就撰文介紹了SOA實現中常見的4種最差實踐,并針對每個實踐給出了解決方案:
過分強調低級別的代碼
上榜理由:重用性差,難以根據業務的變化迅速地做出反應。
解決辦法:關注業務級別的服務。將整個系統切分成邏輯的構建單元——即所謂的服務——將創建出一個隨業務需求一道成長的可持續解決方案。Jake Freivald將服務分為3層:細粒度服務、粗粒度服務和全局服務。并寫道:
當組織過于強調細粒度的服務時,其結果就是有太多無法聚合成業務層服務的服務。照這種方式編碼,將創建出難以維護或復用、低效且復雜的流程
集中設計和部署
上榜理由:其一,知識依賴個人,當這些人離開時,知識也隨之一起離開;其二,個人不可能熟悉所有系統,當需要設計和構建服務的系統超出其知識范圍時,難以設計出好的服務。
解決辦法:分散服務創建。服務的分散化和本地維護,這使得粗粒度和全局服務的開發者不必時刻關心底層信息資產,而且底層服務開發者的變更不會影響到整個系統
撕碎并替換遺留軟件
上榜理由:只看到了數據的重要性,卻沒有意識到遺留應用同樣也是信息資產之一。并且由于對數據遷移的困難估計不足,造成項目延誤,更有甚者直接有損于日常業務。
解決辦法:重用為王。只要遺留系統還能工作,就不要管它。為技術而升級技術永遠不是一個好的業務選擇。
購買沒有支持的軟件
上榜理由:缺乏對操作SOA軟件的足夠認識,很可能會構建出過于復雜的系統,以及沒有為任務選擇合適的工具。
解決辦法:要成功,就要有支持。就算企業有SOA架構師來幫助組織來建立SOA的原則,但要想成功,依舊需要把工作落到實處。
組織設計的成果是消息轉換還是消息分拆,到底有多大影響?最好預先花時間把這搞明白,免得再在架構上線運行之后去去和
效率問題相糾纏。通過足夠支持的保駕護航,組織可以避免開發出過于復雜的系統,并知道哪個工具是針對哪項工作的合適工具。