全國信息技術標準化技術委員會SOA標準工作組基于近百家成員單位的信息化和標準化工作經驗,在2011年組織工作組成員編撰了《中國SOA最佳應用及云計算融合實踐》一書,近日將正式出版。值得關注的是,此書對比分析了SOA與云計算各自的特點,針對業界對于SOA和云計算關系的不同觀點進行了分析,提出了工作組的觀點,并重點介紹了“智慧城市:佛山智能卡云服務平臺解決方案”、“電子政務:上海浦東軟件園‘浦軟匯智’IT服務云解決方案”兩個SOA和云計算融合的案例。
關于SOA和云計算的關系,自從云計算概念提出至今,始終是產業界、學術界和用戶界關注的一個焦點問題。業界觀點大致歸為三種:1.SOA和云計算融合發展、2.云計算將取代SOA、3.SOA“包含”云計算。
SOA工作組支持第一種觀點。工作組專家認為,SOA是云計算的關鍵支撐技術、云計算是SOA的重要應用場景。云計算的兩大支撐技術一是虛擬化、二是SOA。虛擬化是IaaS層應用的基石;SOA是云計算SaaS和PaaS層應用的主要開發方法。基于SOA的云計算更能發揮出其價值,未來SOA和云計算會進一步融合應用和發展。
2011年出版的《云計算與SOA》的美國作者David S. Linthicum認為,“云計算與SOA合作時會帶來巨大的價值,可以把云計算當作SOA向云平臺中的資源的擴展;云計算提供了SOA可以按需使用的IT資源;SOA可被用作利用云計算的關鍵技術實現手段。”
開源軟件SOA軟件廠商WSO2的首席執行官Sanjiva Weerawarana指出,云計算和SOA是互補的,云計算是在SOA環境中部署服務的一個好方法。他指出,SOA和云計算相互支持,但是,他們的思想基礎不一樣。云計算是一種部署體系結構,不是設計企業IT的體系結構方法,而SOA是這種方法。
IBM在2012年2月召開的“SOA新進化論”會議上,分析了SOA和云計算、物聯網、智慧城市的密切關系,強調SOA是當前新興技術和熱點應用中極為重要的支撐技術。
用友軟件的專家認為,SOA是一種根據業務流程(Business Process)來組織功能、并將功能封裝成為可互操作的服務的軟件架構。云計算是一個面向服務的基礎設施,它采用了SOA的架構原則并且把這個原則應用在基礎設施上。SOA是業務驅動的,而非僅僅技術驅動的。SOA的核心價值在于組織能力服務化,通過服務編排實現靈活的業務過程。SOA將為企業帶來巨大的進步:SOA實現企業和企業之間的連接、業務和業務之間的連接;企業應用系統從面向功能,轉變到面向流程;系統之間從緊密耦合,發展為松散耦合;從重新構造的IT系統,到IT可以根據變化來構造;從全面部署IT和業務系統模式,到靈活的增量部署模式;從企業應用孤島,到過程、人員和信息的實質集成、高度協調。SOA解決業務需求到技術實現的分離,而云更多解決技術實現到IT基礎設施單元的分離。SOA使業務系統靈活應對業務需求的變化,而云計算使軟硬件環境靈活響應業務系統。作為一套架構理念和方法論,SOA幫助企業實現了IT服務的高內聚和低耦合;進入云時代之后,云計算可以借助于SOA的方法, 將本地原生應用, 私有云和公有云中的應用"粘合"起來,形成靈活的混合云方案。理想情況下,資源還可以在這三者之間遷移,從而應對不同時期的負載,或者進行故障恢復。
東方通技術專家認為,云計算關注的是計算和服務模式,而SOA關注的是總體軟件架構,但二者并非互相割裂,它們都關注基于IT技術的服務能力和水平,二者的底層支撐技術是互相補充,需要彼此融合,才能促進彼此發展和能力完善。
金蝶中間件專家認為,云計算是SOA的進一步演化:SOA打破了軟件系統間固有的邊界,使得具備無邊界信息整合能力的IT架構成為可能;云計算進一步打破軟硬件間的邊界,實現IT資源的動態分配、彈性調整、智能監控等;未來的云計算將包含支持SOA的IT基礎設施,包括中間件等,實現云環境下的應用服務化、服務構件化、構件平臺化、平臺虛擬化、虛擬泛在化。
大唐軟件技術專家認為, SOA作為一種面向服務的架構,是一種軟件架構設計的模型和方法論。云計算涵蓋的范圍很廣泛,通常分為三個層次: IaaS、PaaS、SaaS。其中SaaS是按照使用者的需求提供軟件應用服務的業務模式,SOA可發揮其在系統界面和接口標準化等方面的優勢,為SaaS提供一個較好的技術平臺。SOA在應用層面進行資源整合,云計算補充了底層硬件層面資源虛擬化和整合,兩者的理念是相似的。已經有電信廠商提出了“SOA+云計算”模式,上層基于SOA進行應用和服務開發,底層基于云計算進行資源整合,包括數據庫,服務器,存儲,網絡等。
啟明軟件專家認為,SOA解決業務需求到技術實現的分離,使業務系統靈活應對業務需求的變化。而云計算更多解決技術實現到IT基礎設施單元的分離,使軟硬件環境靈活響應業務系統。SOA是構建企業IT應用的架構,而云計算是一種面向服務的基礎設置的部署架構,它采用了SOA的架構原則,云計算是在SOA環境中部署服務的一個好方法。SOA和云計算思想基礎不一樣,但可以相互支持。通過SOA的ESB總線可以實現云計算中IaaS,PaaS和SaaS層之間的總線式集成,其次,對于云計算的PaaS它既是一個在線開發環境,也是一個在線執行環境,而不管是對于開發和執行,在SOA中的數據服務,業務服務,流程服務,展現服務等都可以作為PaaS層在線開發時的能力單元。而這些能力單元在線進行服務編排和組裝時又可以借助SOA本身已有的流程引擎和規則引擎來完成。只是SOA中間件本身的很多能力都云化了,而不再是為單個應用提供服務。另一方面, 于SOA平臺也需要IT硬件基礎設施,這些基礎設施可以直接使用云計算平臺IaaS層的計算能力單元和存儲能力單元,這些單元也可以服務的方式接入到ESB總線上,包括我們說的云存儲,分布式計算等能力都可以集成到ESB總線。