軟件質量保證SOA是企業生存的“靈丹妙藥”嗎? SOA構架
關鍵字:SOA
從SOA的概念中,不難發現三點:第一,SOA不是一個可以拿來就使用的技術,而是一種架構和組織IT基礎結構及業務功能的方法;第二,基于SOA架構的軟件系統相對于傳統架構更加柔性,更加能夠適合企業依據業務情況對軟件系統進行快速調整和重新部署;第三,SOA的出現可以使得企業在解決多系統集成方面獲得新的思路和方案。
SOA在過去2008年里可以說是大行其道,無數軟件廠商、咨詢公司和企業的熱捧,使其近乎成為了軟件業2008年最火的關鍵詞,在盤點2008年的熱門關鍵詞之時,我們不妨來回顧下SOA,SOA的英文全稱為service oriented archITecture,面向服務的體系架構是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行交互。
另外,從這個定義中還可以發現一點就是,對于企業級的應用來說,SOA可以為企業對于業務應用和管理帶來一個新的理念:“服務組件化管理”。這與軟件組件化概念一致。一個“相對獨立,完整的”服務可以方便的被以各種方式組合成為一個大型的服務。
這一點聽起來確實很美,但確是如此嗎?企業級的IT應用現階段分為兩大類,一類是技術系統應用,一類是業務管理系統應用。其中對企業來說應用最為復雜也最具價值的則非業務管理系統莫屬了。然而就以ERP在企業中應用現狀看,SOA,距離我們到底有多遠?
首先,ERP在目前企業中應用可以說并不成熟,多數企業還處于信息孤島狀態,沒有掌握ERP的核心理念。特別是當企業處于成長期時,企業組織架構、業務流程與職責權限于是,經常會發生由于企業組織架構的調整導致信息系統無法為企業提供足夠的支撐,而大多數企業在這個時候,都會期望能夠找到一個快捷的方法解決這樣的問題。事實上,很多企業在企業發生變革之后,對于信息系統的調整都處于隨心而動的狀態,也就是說不假思索的要求信息系統在很短的時間內完成調整和重新部署。我們知道當企業變革時,最先反映的是組織架構的調整。其實,組織架構的調整,對企業的影響通常只存在一個方面,那就是部門職責的變動,而部門職責的變動更多的是表現在權限的變動,權限的調整相信對任何軟件系統都是一個非常簡單的事情。另外,權限變動還會帶來報表的問題,目前中國企業特別是國有企業的報表有一個非常顯著的特點就是無定性,報表格式無定性,報表數據無定性,可以說是“年年變,月月變,日日變”,與其花更多的錢去選一個所謂的先進架構的軟件,還不如去買一個靈活一點的報表工具更實際。
如果說,企業變革導致業務流程發生變化,那么相信即使你應用了SOA架構也不能很方便快捷的對系統進行調整。業務流程變化可以簡單的歸為兩類,一類是流程增加,也就是流程變長,這種情況下,可能會導致軟件功能的增加,也可能會涉及客戶化開發,系統的調整就會變得復雜。而另外一種情況,流程縮短。流程的縮短通常會表現為流程環節的減少,對于這種情況,只要是基于組件技術的系統都能夠簡單應對,那么SOA架構的軟件屬于奢侈品。
其次,我們有必要來一起分析一下,企業IT應用服務都包括哪些方面。一般情況下,企業IT應用服務會更多的表現在兩個方面,一是IT系統本身的應用,包括IT系統選型,IT系統實施以及IT系統的維護,另一方面企業內部的IT管理,例如IT治理方面。很顯然SOA在IT管理方面起到的作用微乎其微,更多的是為企業IT管理提供一個新的思路。
另一方面,SOA又確實能夠發揮作用。例如,很多企業都提出了設計軟件與ERP系統進行集成。但是又沒有多少企業能夠真正實現這樣的集成,但是在應用SOA架構之后,在一定程度上就會顯得更好解決一點。因為基于SOA架構的系統就如同大家都處于一個平臺,執行同樣的開發標準,兩個系統之間的接口相對標準化。說的簡單點,SOA就好象一個擁有標準接口的電腦主板,企業的各個應用系統就如同內存、CPU等等,集成的過程,就如同往這個主板上插上各種插件,以此實現了數據全面集成,當然這里還要考慮的是集成的成本與集成后的效率。
第三,SOA并不是新生事物,事實上大型IT組織成功構建和部署SOA應用已有多年的歷史,而這個歷史要比現有的XML和Web服務要長很多,IBM CICS和BEA TUXEDO就是過去被用于構建SOA應用的兩種技術范例。同時,SOA也并不是一種現成的技術,而是一種架構和組織IT基礎結構及業務功能的方法。無論是IBM還是BEA,特別是BEA是以中間件見長,而通過中間件將各系統進行集成無疑是一個相對有效的方法。所以,SOA更多的將會被中間件廠商所采用,而對于大型管理信息系統公司來講,更多的是應用SOA理念和原則,設計更為開放和標準的接口,以使得自己的信息系統更好適應未來集成的需要。
第四,SOA應用實際上還要求企業自身具備良好的流程管理體系。要進行流程管理,首先必須要求企業的業務流程是成體系的;第二,要求企業的流程是清晰可快速識別的;第三,企業流程必須要完整的資料記錄,包括流程描述,流程圖以及流程變更記錄。同時,要想在流程變更時能夠快速對系統進行修改,還要求企業的業務流程能夠同系統流程相互關聯,能夠實現良好的互動。
因此,SOA對于企業的應用絕不是探囊取物般簡單,而是需要企業內外部的各方面資源以及與軟件廠商、甚至是咨詢公司充分配合才能發揮其作用,這樣的成本能否被企業所接受,將是企業所必須考慮的問題,否則一次失敗的SOA應用后果將遠遠大于一個局部信息系統應用失敗所帶來的后果。