當考慮了策略業務目標和活動時,理論上的 SOA 概念非常具有吸引力,更加容易得到支持。不過,不可輕易決定要實現 SOA。這與改變生活方式有些類似,因為開發和操作團隊遵循的 IT 控制模式將完全不同。我提倡進行業務驅動開發。此過程涉及到將業務需求細化為 IT 要求,然后將 IT 要求細化為 IT 功能,以確定滿足這些需求所需的技術。根據我過去四年開發基于 Web 服務的解決方案和更為成熟的基于 SOA 的解決方案的經驗,以下這些相關因素通常會讓我建議采用面向服務的體系結構:
何時采用 SOA
集成成本持續增長,而并未因為可提供真正投資回報 (ROI) 的新業務機會而得到緩解。
兼并和收購是您公司擴大市場份額和獲得新發展機會的業務模式的核心。
解決方案要求對來自異構系統和編程模型的業務功能進行集成。
業務的生存依賴于根據市場變化快速調整或即時響應競爭威脅的能力。
全球經濟的影響要求您的公司事半功倍地開展業務,而且有必要依賴業務合作伙伴提供非核心業務功能。
就提高收益而言,與業務合作伙伴協作的效率對您的公司十分關鍵。
您公司業務資產的價值在減少,因為不能對其進行評估,以在最初用途之外的其他地方使用。
您公司員工的效率出現了問題,因為他們的大部分時間并沒有花在提供公司業務模型的核心功能和服務上。
您公司的業務充滿了機會型的業務工作。
您公司從頭開始開發新應用程序。(我認為 SOA 應當作為定位將來的新應用程序的缺省體系結構樣式,業務條件有其他限制時除外。)
在理想情況下,您和您的業務合作伙伴間沒有預算限制、計劃期限、技能差距和優先級差異,我想,此時完全可以說每個人都會采用 SOA,或者至少會考慮采用 SOA。不過,我們的選擇實際上經常受到過去的決策的影響和限制(例如,技術投資、編程模型采用、服務的合同協定等)。因此,我們并不能總是自由地采用看起來能滿足某個業務需求或技術要求的最佳選項。以下的注意事項會讓我不建議采用面向服務的體系結構或說明現在實現 SOA 的邊際收益:
何時不采用 SOA
您公司只將小部分 IT 預算用于集成活動。
您公司的大部分流程都是手動的或以文檔為中心的,自動化的機會幾乎為零。
您公司的大部分應用程序開發都使用相同的編程模型。
您公司的操作由一個或兩個客戶關系管理 (CRM) 和企業資源規劃 (ERP) 應用程序管理,幾乎沒有集成要求。
您公司的現有技能庫與實現支持 SOA 的基礎結構所需的技能庫之間存在重大差異。
未發現可從 SOA 提供的功能受益的業務需求或機會。
新業務服務的可用性將對現有的收益流帶來負面影響。
您公司依賴的業務合作伙伴對公司間流程的自動化采用了不同的優先級。
您公司的主要業務的開展涉及到海量且同步性和實時性要求非常高的事務。
前面的列表只是一個示例,用以說明 SOA是否是您公司最佳選擇的原因。當然,每個合同或項目都具有唯一的要求,因此關于何時采用 SOA 的決策取決于您公司的業務狀況。SOA 的價值主張十分誘人,但選擇何時讓您的公司采用SOA必須考慮業務環境的實際情況。采用 SOA不一定要跨一大步,而通常是采用循序漸進的方式進行的。首先找到可以利用 SOA 概念和原則的項目,然后使用主要性能指標測定其價值,這是一種讓大家受益的好方法。
文章來源于領測軟件測試網 http://www.kjueaiud.com/