1 SOA
AOA是一個組件模型,將應用的不同功能單元通過服務之間定義良好的接口和契約聯系起來。服務接口獨立于實現服務的硬件平臺、操作系統和編程語言。系統包含的服務以一種通用和一致的方式進行交互,使系統集成不必關注底層的實現細節。SOA具有以下基本特點:
(1)面向服務。SOA以服務作為關注的重點,支持面向服務的開發方法。服務從更高的抽象層次上定義,與業務相對應,可通過面向過程、面向消息、面向對象等方法來實現。
(2)松耦合。SOA強調服務間是松耦合的,包括了三層含義:一是接口松耦合,即服務接口封裝了所有的實現細節,對服務請求者屏蔽實現細節;二是技術松耦合,指服務請求者和服務提供者的實現和運行不需要依賴特定的技術;三是流程松耦合,指服務不與特定的業務流程相關,能夠重用于不同的業務中。
(3)靈活性。在SOA的應用系統中服務是實現功能的基本單位。服務的可重用性和重組服務提高了業務的靈活性。
(4)標準化。SOA應用系統中的服務應盡量支持開放的標準,通過標準化提高互操作性。
2 云計算
目前關于云計算沒有統一的定義。IBM給出的定義是:云計算是一種通過虛擬化的方式共享資源的計算,計算資源可以動態部署、動態調度、動態回收。云計算被視為一種計算模式,通過基于互聯網連接的服務集合完成計算任務。云計算保證服務和數據在整個云中都可用,使得用戶能夠以較低的成本隨時接入訪問數據,提供了集成、共享的公共平臺。云計算可以劃分為3種服務模型:
(1)基礎架構即服務(IaaS)。指的是將服務器、存儲和網絡等底層設施作為服務提供給用戶。IaaS一般按照需求利用服務器、連接、存儲以及相關的必要工具構建應用環境。因此用戶可以通過動態申請資源構建云應用。IaaS相對于軟件的使用要更為困難,不過卻為應用提供了更好的靈活性。
(2)平臺即服務(PaaS)。指的是一種易于配置的軟件平臺。這種平臺一般包含數據庫、中間件及開發工具,均以服務形式通過互聯網提供給第三方開發人員。開發人員可以通過PaaS部署應用,不用在意系統的管理細節。PaaS的典型應用是Google App Engine2,包括了完整的Python應用環境。通常PaaS可以包含于IaaS中,與IaaS相比更為好用,但不夠靈活。
(3)軟件即服務(SaaS)。指的是通過網絡將應用程序以服務形式提供給用戶。其中應用程序可以是公有云提供商提供的商用SaaS應用,或企業專用云提供的商用或訂制的SaaS應用。SaaS的供應商基于多租戶的體系架構為客戶提供軟件服務。
3 SOA與云計算的集成
3.1 SOA與云計算的比較
SOA與云計算在很多方面都有重疊,其中最為重要的交叉點是面向服務的概念。云計算關注的焦點是將計算當成可以買賣的商品,比如大規模在線存儲、網絡應用平臺等。云計算提供的服務非常廣泛,包括了從硬件層次到應用層軟件。而SOA一般提供象Web Service應用這樣的服務。SOA與云計算都非常依賴網絡,這也是它們共同的缺陷。
雖然SOA與云計算有很多共同點,但是它們有不同的側重點。SOA實現是系統與系統之問進行集成的技術,允許通過不同的部署語言和平臺進行系統集成。基于SOA實現的系統接口一致性能夠降低集成的開銷,提高系統的敏捷性。云計算的重點是利用網絡購買需要的功能,允許市場以商品的形式提供各種功能,避免了用戶花費過多成本實現所需功能。在公共標準方面SOA和云計算發展的階段存在差異。SOA的軟件服務實現已有成熟的標準,比如WSDL、SOAP等。云計算還沒有形成成熟的標準,不同的服務供應商之間達成一致還比較困難。SOA與云計算的關系是一種互補的關系。云計算和SOA的供應商可以互相借鑒和學習。云計算中服務的設計和服務的擴展性都是值得SOA借鑒的。而SOA中的服務治理和架構驅動是云計算值得學習的地方。
3.2 SOA與云計算的集成方法
由于在SOA發展的早期一些企業沒有從SOA的投資中收益,很多企業對SOA產生了懷疑。經過一段時間的思考,人們對SOA的理解回歸理性,對SOA的應用場景有了更為準確的定位。云計算的出現為SOA提供了新的發展起點,將SOA與云計算結合在一起運用于企業的信息化是當前推進兩者發展實現雙贏的有效途徑。本文提出從以下幾個方面進行SOA與云計算的集成。
(1)建立配套的規范標準。目前SOA和云計算都不是十分成熟,二者在標準化方面也有顯著差異。S0A在標準化方面已經走到了前面,已經有了一系列的規范,而云計算還處于各方各自為戰的局面。由于SOA和云計算最大的共同點就是服務,在服務方面也應該建立統一的標準,使得SOA可以通過云計算對外提供服務。另外SOA還可以根據服務的粒度采用云計算的服務進行新的服務組合。
(2)提供高可用的服務。云計算中運維工作由云服務提供商和虛擬化等技術承擔,而可伸縮性也導致云計算的用戶在一定程度上失去了對資源的控制權。在云計算中服務出現故障或者供應商出現問題時,云計算的用戶就面臨應用無法使用的問題。使用SOA實現應用系統的組件化和服務化是解決這一問題的措施之一。在基于SOA構建應用系統時,將應用功能細分為細粒度、無狀態的組件,然后將其封裝為服務,將同一服務的不同實例分散到多個實例中運行,從而提高服務的可用性。在云計算環境中,使用中的云服務是不可控的。這就需要在架構設計時充分了解云服務的可用性。為了提供高可用的服務,在云計算標準化之后,還可以使用多個云服務提供商提供服務來實現高可用。
(3)改進服務發現。服務發現是SOA中必不可少的功能,它幫助將經過注冊的服務提供給用戶使用。在云計算中與SOA類似,也需要服務發現功能的支持。與SOA不同的是,云計算中采取的是付費訂購模式,需要用戶申購才能使用需要的服務。結合SOA的服務發現技術,云計算中可以改進服務發現機制,支持用戶從數量龐大的服務中進行選購。
(4)完善服務治理和管理功能。服務的治理或管理對SOA的成功實施非常重要。在SOA的發展中,治理技術已經積累了一定的基礎。而云計算中幾乎沒有任何治理的思想,也沒有云計算控制和執行策略,對云計算在企業中的應用起到了阻礙作用。云計算中對服務進行定價收費也是服務治理的一個重要應用場景。因此,利用SOA中的服務治理管理經驗來推動云計算的發展,完善服務治理是SOA與云計算的有效結合點。
4 結語
云計算越來越受到企業的關注,已經成為了最炙手可熱的瓶興技術。云計算的發展也為SOA帶來了新的活力,將二者結合運用成為了企業可選的新的發展路線。本文提出的SOA與云計算集成的方法為企業更好運用這兩種技術提供了參考。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.lukmueng.com/
本文標題:SOA與云計算的集成探究
本文網址:http://www.lukmueng.com/html/consultation/1083978968.html