SOA成爲江湖利器的幾個關鍵問題
IBM等巨人一直聲嘶力竭、竭盡全力的宣傳,數載下來,SOA便開始在江湖盛傳,成爲傳說中的無所不能的利器。可是否實施SOA,決定權掌握在高層的老總手中,而IBM的銷售表明們,則將天花亂墜的解決方案,很容易的輸入到老總的大腦;而老總對於實施SOA來改變當前混亂的局面,亦寄予了厚望。 SOA的全稱是"Service Oriented Architecture"(面向服務的架構),但我仍是以爲做爲通常人來說,不太好理解這是什麼意思。 其實SOA是老東西了。早在1996年就有這個概念,當年,Gartner提出了SOA,當時給出的定義以下:「A service-oriented architecture is a style of multitier computing that helps organizations share logic and data among multiple applications and usage modes.」。因爲當時的技術水平和市場環境尚不具有真正實施SOA的條件,所以那時候,SOA並未引發普遍關注,在很長一段時間內歸於沉寂。 隨着愈來愈多的企業將業務轉移到互聯網領域,帶動了電子商務的蓬勃發展。爲將公司的業務打包成獨立的、具備很強伸縮性的基於互聯網的服務,人們提出了Web服務的概念,這能夠說是SOA的發端。直到6年之後,也就是2002年底,Gartner提出SOA是「現代應用開發領域最重要的課題」,通過了三年的時光,2005年一些IT組織成功創建並實施SOA應用軟件,IBM等廠商看到其價值,也紛紛推出本身的SOA解決方案。Gartner預測SOA將成爲佔有絕對優點的軟件工程實踐方法,SOA將結束傳統軟件體系架構長達40年的統治地位,將有60%的商業公司在進行商業IT建設時會轉向SOA。至此,SOA成了江湖上最火的詞彙。 那麼,SOA落地中國有哪些問題須要去解決呢?我認爲,首先要搞清楚SOA能幹什麼,不能幹什麼,究竟是怎麼回事,只有瞭解了這些,其餘的事情就好說了。 首先,SOA並非純技術,而是一種架構,一套最佳實踐,不是僅僅用錢就能買來的。沒有任何兩個SOA應用是相同的。剛纔說了,SOA是一套最佳實踐,不一樣的企業會根據各自特定的需求而選擇不一樣的實施方案,因此SOA最佳的方案不會是一成不變的,它是處於常常變化的。 實施SOA有什麼好處呢?它能夠很好地減小整體成本、增長資產再利用、提供更清晰的商業透明度,更重要的是,它在複雜多元的環境中增長了商業靈活性。但若是你遇到的問題不在此之列,SOA則可能不是正確的選擇。 實施SOA最大的問題是什麼呢?答案就是:組織、文化和政治。由於,在國內,不多有人願意接受改變、共享資源併爲別人的項目作貢獻。比較起這些挑戰,SOA的技術反而是簡單的。SOA最大的技術挑戰是服務抽象的建立和維護。商業服務隱藏了存在於背後的IT商業和用戶的複雜性,然而複雜性是真真切切存在的,SOA實際上增長了背後的複雜性。 控制、質量和管理是SOA的核心架構問題。沒有控制,SOA註定失敗。SOA先後聯繫質量成爲正在探索的、整個生命週期的攻堅戰。管理是鬆耦合問題的關鍵,而鬆耦合是服務抽象的核心架構原則。 你要知道,單純的買賣並不須要SOA。企業須要的是,商業問題的解決方案,而最成功的SOA最初不叫SOA,卻解決了他們迫切想解決的問題。因此SOA更多的是IT帶來的祕密武器,幫助企業解決商業問題。 目前的問題是,SOA還沒有成熟。最佳實踐正在摸索,標準正在制訂,還有許多其餘不成熟的地方。大部分的SOA項目仍處於早期階段,但這並不意味着你沒法從SOA中獲得較高價值。只是你要既要知道它的優勢,也要知道它的缺點。 結合到中國的具體環境,企業在實施SOA過程當中遇到一些難題,這很正常,由於SOA是一種新生的事物,它暴露了過去IT系統一直存在的諸多問題:建設模式、原有系統、組織架構、治理模式等等。對大多數企業來講,SOA的遠景目標架構是比較類似,所以,SOA的設計哲學、治理原則、基於服務的軟件工程學、SOA卓越中心等通用的策略與方法是能夠借鑑的。不一樣之處主要有兩個方面,其一是IT現狀和業務發展策略的不一樣致使了每一個企業演進路徑的路線圖不一樣,其二是管理模式和文化習慣的不一樣,又致使了實施策略的不一樣。從這幾個角度分析,SOA要落地中國,就要特別注意中國特有的經濟特性、管理模式和IT現狀帶來的一些特殊要求。 在實際的IT環境中,並不是全部的項目都適合SOA,這涉及到原有系統的切割或者重建,如何才能尋求到這二者的平衡呢? 若是把企業的IT系統當作一棵大樹,那麼,像銀行核心交易、電信計費、交通調度等那樣的應用能夠視爲大樹的根莖,它是不少企業的基礎業務。而SOA 架構則至關於這棵大樹的樹冠,多適用於面向各類外部與內部信息服務有關的業務。部署SOA的過程就是一個邊「破」邊「立」的過程,不是一次性就把全部的原有系統所有服務化,而是逐步根據新項目的業務目標來改造原有系統。 從中國經濟特性來考慮問題,中國企業搭建IT環境時最關心的問題無非有以下幾個方面:如何快速部署?架構是否能夠靈活改變?可否下降維護的成本? SOA的實施過程有一個特色,它在開始實施的初始階段一般須要比普通的項目花費更多的精力,由於須要考慮從此的治理原則、服務的將來複用等問題,所以 SOA的實施是一個N+1的項目,在N個業務應用以外,有一個持續存在的SOA(1項目)一直須要考慮,只有這樣,SOA的企業級有時纔會發揮愈來愈大做用。所以SOA永遠不是一個速戰速決的事情,它須要經過眼前更多的耐心和努力換取之後IT系統的長治久安。 SOA是解決整合問題的一個發展方向。SOA是基於服務的計算和麪向服務的體系架構,是一種應用程序體系結構。在這種體系結構中,首先要建成一個服務平臺,在這個平臺上,各式各樣的服務做爲應用的插件,和平臺實施對接,實現從數據到功能的共享和整合。面向服務的架構使全部應用可以交換數據和處理過程,而無需考慮應用軟件是用什麼編程語言開發的或在什麼操做系統下運行。因爲模塊可以被從新配置或以新方式優化以知足新的需求,所以能夠實現軟件重用。 像筆者所在的公司爲中國石化那樣的單位,由於大量的服務型系統還沒開始大規模構造,該如何走本身的SOA之路呢?筆者認爲: 1.首先須要統一標準(SCA/SDO)。 2.用符合SOA標準的方法——面向構件——構造粒度更小、組合更容易、架構更靈活的「服務」。 3.SOA的流程管理。 4.SOA的軟件治理。 5.多「服務」用ESB實現集成。 讓咱們拭目以待,SOA在中國遍地開花。