通過對云計算的部署模式及邏輯結構的探討,分析其面臨的集成挑戰(zhàn);并將SOA這一基于服務的架構融入云計算,作為建立云計算集成架構的一個解決途徑;最后通過一個企業(yè)案例來具體分析和說明企業(yè)如何綜合運用這兩者來構建企業(yè)系統(tǒng)集成架構。
企業(yè)在經過了多年的信息化建設后,財務、ERP(企業(yè)資源計劃)、CRM(客戶關系管理)、HR(人力資源管理)等企業(yè)管理軟件已被廣泛的應用。但這些異構系統(tǒng)形成多個應用和數據的孤島,難于共享數據和資源;企業(yè)業(yè)務流程各異而且隨著市場發(fā)展這些流程不斷更新,標準的應用軟件很難適應業(yè)務流程更新與重組的速度與個性化需求,因而大大提高了企業(yè)營運成本,降低了企業(yè)的市場快速響應能力。較之不斷地加大系統(tǒng)投入來實現系統(tǒng)軟、硬件的可擴展性,集成無疑成為更為現實和合理的選擇。
通過云的方式享受軟硬件服務,目前對許多企業(yè)來說是應用先進信息技術的最好途徑,它不僅降低了企業(yè)的軟硬件服務擁有成本,縮短了信息化建設周期,還大大減少了企業(yè)的運維成本。所以,云計算的興起可能是未來幾年最為重要的IT產業(yè)趨勢,隨著云計算不斷發(fā)展,云應用會越來越普及,市場研究機構IDC對IT職業(yè)人士的一項調查顯示,目前已有4%的公司以一定的方式部署了云計算,盡管大多采用的是軟件即服務(SaaS)的形式,比如Salesforce公司的CRM(客戶關系管理)應用程序等。IDC高級副總裁佛蘭克-杰恩斯曾在云計算論壇上表示,預計到2012年,將有9%的公司部署這一服務。而據Gartner估計企業(yè)應用在SaaS模式上的投入將以每年19.4%的速度增長。
筆者認為,云計算作為一個融合了底層IaaS,中間層PaaS,到上層SaaS的一整套服務集,開始被引進了集成服務,并與系統(tǒng)集成——一個由物理層、數據層、應用層、流程層和表現層集成所代表的企業(yè)集成框架相對應,所有云計算能提供的服務需要在企業(yè)整體架構的背景下才能有效的發(fā)揮作用,也就是說企業(yè)自身需要一個清晰的基于服務的IT基礎設施架構,在這個架構之中去應用云計算。為解決云計算面臨的集成架構挑戰(zhàn),本文將SOA這一基于服務的架構融入云計算,作為建立云計算集成架構的一個解決途徑;并通過一個企業(yè)案例來具體說明企業(yè)如何綜合運用這兩者構建企業(yè)系統(tǒng)集成架構。
1.云計算及其面臨的集成挑戰(zhàn)
1.1 云計算組件的邏輯結構
云計算到目前為止還沒有一個準確的定義,但目前來說一個普遍的認為是云計算是分布式計算、并行處理和網格計算的發(fā)展,或者說是這些計算機科學概念的商業(yè)實現;也可以認為云計算是一種付費即使用的自助式應用模式,即將一組可配置的共享計算資源(網絡、存儲、應用等)通過無時無處不在的網絡提供給用戶使用,并且用戶幾乎不用與服務提供商進行任何交互,從而使得用戶可以以最小的管理開銷來配置和使用這些資源。
為了更好的解釋云計算所提供的服務,DavidLinthicum根據目前主流云計算服務商及其提供的服務,使用一種“堆棧”的圖示(圖1)來解釋各組件間的邏輯關系及他們的交互。
圖1 云計算組件的邏輯結構
事實上,云計算可以擁有足夠的硬件和運營服務資源,也即它本身就是一個大的系統(tǒng)集成環(huán)境,一個融合了底層IaaS,中間層PaaS到上層SaaS的一整套服務集,能為企業(yè)提供從底層基礎設施的集成到中間層應用平臺的集成再到應用層的應用集成全套的集成服務,但前提是這個集成需要在企業(yè)擁有清晰完善的基于服務架構的IT框架的背景下才能最高效的發(fā)揮作用。
1.2 云計算與集成
云計算的真正價值在于使企業(yè)擁有使用位于本企業(yè)之外其它的數據中心里的服務、數據和流程的能力。但如果企業(yè)不加計劃盲目地使用云計算,不僅不能利用云計算的優(yōu)勢,長遠來看也許會付出極大的代價。一方面,對于企業(yè)來說長期以來不斷出現的“煙囪”式的信息系統(tǒng)在解決了企業(yè)燃眉之急的需求的同時也給企業(yè)IT系統(tǒng)投資與維護帶來了巨大資金和技術的壓力,此時企業(yè)轉向利用云計算的優(yōu)勢減輕企業(yè)信息系統(tǒng)投資與維護的壓力,但是急于向云中搬遷企業(yè)的數據、應用但卻沒有任何架構方面的長遠考慮,也沒有考慮與此密切相關的云計算與本地系統(tǒng)的集成問題;在另一方面,眾多的云計算供應商不會考慮到與企業(yè)集成的問題。因為云服務提供商們一直認為企業(yè)既然使用他們提供的云計算服務,就沒有必要再將云端的數據同步回企業(yè)中,因為企業(yè)應用已在云中部署。然而事實并非如此。在許多情況下,雖然云計算是非常實用并能夠使企業(yè)受益的,但如果認為無需從云計算平臺向企業(yè)本地系統(tǒng)實施核心數據、應用或流程集成,另外的一些問題就會隨之而來,例如業(yè)務系統(tǒng)不能處于自己的掌控中那么意味著企業(yè)將無法應付云服務提供商終斷服務(如由于自然災害或是服務商轉型所帶來的服務終止)所帶來的危害。
從集成角度來看,應用云計算企業(yè)將面臨的問題會有:
(1)企業(yè)在一段較長的時間內不會也不可能將所有應用轉移到云端,即使全部轉移到云端也不大可能將所有的應用全部部署在同一個云服務提供商處,而一定會有一些部署在企業(yè)內部的系統(tǒng)或不同的云服務提供商,因此,云端的應用必須和企業(yè)內部系統(tǒng)的應用以及在其他云中的應用整合,使他們能夠相互聯(lián)通,才不至于形成新的“孤島”。
(2)大量的集成項目會使IT部門的開發(fā)和維護面臨巨大挑戰(zhàn)。企業(yè)需要的是集成系統(tǒng)要能夠在任何時間以任何形式部署在任何平臺上,而且這些集成系統(tǒng)又是錯綜復雜地連接在一起的。
首先,從數據方面看,一方面企業(yè)需要而且有必要在本地保留云端數據的備份,因為企業(yè)所使用的云端服務是由云服務提供商提供的,企業(yè)自身無法掌控這些服務。如果云計算服務中斷、云計算服務失控或與服務提供商無意繼續(xù)經營該業(yè)務,企業(yè)將面臨業(yè)務系統(tǒng)中斷的風險,事實上這類事件正在不斷地出現。所以企業(yè)都需要在企業(yè)本地系統(tǒng)中保留企業(yè)相關數據的最新備份。另一方面,企業(yè)極有可能同時使用位于企業(yè)內部的系統(tǒng)與位于不同云中的系統(tǒng),因此,集成勢在必行;谄髽I(yè)對于IT系統(tǒng)不在自己掌握所帶來的風險的考慮,一種平衡風險的有效辦法就是根據自己的需要將IT系統(tǒng)分散置于不同的數據中心(公共云)中,這樣既減少了自己維護的困難,也減少了所有應用放在同一片云中所帶來的全部IT系統(tǒng)宕機風險,同時企業(yè)也可以根據自己不同的需求選擇最合適的云服務提供商來降低投資。
其次,從應用和由各種應用組合而成的流程角度,企業(yè)要充分考慮哪些系統(tǒng)適合放在云端,哪些系統(tǒng)適合放在本地。例如CRM系統(tǒng)對于企業(yè)來說是沒有多大附加值的系統(tǒng),因此企業(yè)完全沒有必要自己去開發(fā)一套CRM系統(tǒng),況且現在很多云服務商已經能提供很好CRM軟件,那么企業(yè)就可以去租用云端的CRM系統(tǒng)。而對于企業(yè)的關鍵系統(tǒng)來說,就必須考慮到把其遷移到云端的風險。企業(yè)應采取怎樣的措施來應對風險成為擺在決策者面前一個不可回避的問題。
綜上,目前的企業(yè)部署云端系統(tǒng)需要和企業(yè)內的本地系統(tǒng)協(xié)同工作,集成就成了成功的關鍵。隨著云計算的發(fā)展,越來越多的企業(yè)應用將逐步轉換到云計算。如果事先不實施長期策略和目標,將會加大復雜性并降低投資回報率。因此,集成需要有架構遠見提前考慮。
2.云計算與SOA的融合——集成架構的建立
如前所述,如果企業(yè)不考慮集成的架構而盲目去追求云計算的話,隨著企業(yè)在云端的應用越來越多而這些應用仍然又回到了“信息孤島”——一個更大的信息孤島的狀態(tài),這時企業(yè)再去想把他們集成在一起會付出更大的代價。
SOA架構被認為是目前企業(yè)級信息系統(tǒng)可靠和高效的建模思想和軟件構建方法,通過模塊化、集成化、動態(tài)組裝,使得系統(tǒng)的重用性、可靠性、可擴展性和開發(fā)速度大大提高。因此,這種架構能夠讓組織快速地構件和部署新的應用程序和服務,以及根據組織的需要使用任意的內部和外部服務的組合。SOA基于服務的架構在過去的幾年中一直被認為是解決架構問題及企業(yè)集成最有效的方法。然而,在另一方面,大量的公司在實踐SOA之后發(fā)現,事情往往并不是想象中的那么簡單,他們在開展SOA項目后發(fā)現SOA需要一個規(guī)模宏大的計劃,而且要想看到部署SOA所帶來的效益要相當長的一段時間,一般的公司難以負擔SOA所帶來前期陣痛的。
從系統(tǒng)工程和企業(yè)應用的角度,“云計算和SOA可以獨立運用或同時運用。云計算并沒有取代SOA或分布式組件集成技術;相反,云計算的平臺與存儲服務為SOA的服務集成提供增值性(value-added)的支撐。”如DavidLinthicum所建議的,可以將SOA看作架構的一個解決途徑,一個利用云計算資源的更好的方式。其理念主要是從架構角度的中考慮云計算;而不是將云計算作為一次性的解決方案。
資源與功能服務化是云計算的一個核心思想。面向服務的架構為云中的資源與服務的組織方式提供了可行的方案,云計算依賴于面向服務的思想,通過標準化、流程化、和自動化的松耦合組建為用戶提供服務,不過云集算將不僅僅是一種設計架構的模式或方法,而且是一個完整的應用運行平臺,基于面向服務架構思想構建的解決方案將在云中運行,服務于云外用戶。因此,云計算與SOA的融合,能夠使企業(yè)中的SOA架構擴展到防火墻之外到云計算服務提供商那里,從而獲得云計算的種種優(yōu)勢,形成優(yōu)勢互補而又避免了他們的不足,真正做到以最低的投入獲得最高的回報。
3.企業(yè)案例:云計算環(huán)境下的系統(tǒng)集成架構及解決方案
3.1 案例背景
XX集團是一家全國性的民用液化氣氣體生產、銷售、儲運與服務全面運營的企業(yè),為中國內地最大的跨區(qū)域能源終端運營商之一,XX集團已先后在湖南、安徽、貴州、江蘇、云南、山東、浙江、湖北、廣東等省成功投資運營數十家氣體經營企業(yè)。
隨著XX集團的規(guī)模不斷擴大,該集團目前面臨著急迫的信息系統(tǒng)整合問題,由于XX集團的各分公司分布于全國各地,且各下屬公司信息系統(tǒng)總體上是各自為陣、分別實施,由于地域差異和管理理念不同,各家公司系統(tǒng)的業(yè)務功能模塊存在差異,不能彼此共享、互通,造成總部與下屬企業(yè)之間信息不暢;數據的分散存儲導致集團無法對各公司的客戶和業(yè)務數據進行深度挖掘和分析,無法實現集團化的業(yè)務推進和集團內部的資源調配,更無法構筑集團性的統(tǒng)一平臺。所以集團每年都要投入大量資金對各地的信息系統(tǒng)進行打補丁式的小修小改以適應當地規(guī)模的擴大。
近年來隨著SOA技術的成熟,以及云計算技術的日趨普及,集團決定集全集團各分公司之力建立一套全新的全集團通用的信息系統(tǒng),全面扭轉之前的在信息化建設上的被動局面。
3.2 XX集團私有云平臺模型
根據XX集團信息化建設要求,結合云計算、SOA等技術,提出了XX集團業(yè)務系統(tǒng)信息化平臺框架,稱為XXPlatform(如圖2)。它以基礎設施服務IaaS為基礎,SaaS平臺為核心,包括以下4個方面的內容:
圖2 XX 集團私有云架構圖
(1)面向XX集團各地各分支機構的云服務基礎架構IaaS,用于為連入平臺的各個分公司提供服務的基礎設施。
(2)SaaS平臺,為集團各分公司提供從資源采購到終端銷售的全套業(yè)務的在線解決方案。
(3)XX集團公共服務平臺,用于為各分公司提供除業(yè)務邏輯之外的其他公共性服務,如辦公系統(tǒng),郵件系統(tǒng),存儲系統(tǒng),數據挖掘等。
(4)可選的本地平臺,主要是為規(guī)模較大的區(qū)域性分公司提供個性化業(yè)務的開發(fā)環(huán)境。
3.2.1 基礎設施層
基礎設施服務(IaaS)提供服務器、存儲等硬件設施。XX集團計劃建立一個面向全集團的云計算中心,搭建自己的基礎設施平臺IaaS,為全國各地的分公司提供硬件基礎設施保障。
XX集團在各省或地區(qū)均有一個規(guī)模較大的分公司,每一家這種類型的分公司均有著較好的硬件資源,部分分公司在最近1-2年都投入了上百萬用于更新服務器等硬件設施,但是這些服務器并沒有完全發(fā)揮效率,有的數據備份服務器甚至一天只工作2-3小時用于備份數據,但是由于其負責在主服務器故障時接替其工作,往往這類服務器配置和主服務器一樣,因此造成了極大的資源浪費。因此,在此次信息化建設中XX集團計劃對全集團的IT資源進行梳理,將各地的部分優(yōu)質IT資源集中到集團的云計算中心,形成該信息化建設的基礎設施層,據測算,目前XX集團的所有優(yōu)質IT資源集中起來已可以滿足集團在未來3-5年的業(yè)務發(fā)展需要,而由于采用了云計算的技術架構,通過虛擬化技術等手段可在當需要擴展計算能力時彈性增加服務器數量或者直接租用第三方資源來獲得而不必去重新為新加入的服務器搭建平臺,大量減輕企業(yè)IT人員負擔,節(jié)約IT支出。
3.2.2 中間件層
該中間件層位于基礎服務層之上,起到承上啟下的作用,它在下面的基礎設施層所提供資源的基礎上提供了多種服務,比如緩存服務和REST服務等。
(1)REST:通過REST技術,能夠非常方便和優(yōu)雅地將中間件層所支撐的部分服務提供給調用者。
(2)多租戶:就是能讓一個單獨的應用實例可以為多個組織服務,而且保持良好的隔離性和安全性,并且通過這種技術,能有效地降低應用的購置和維護成本。
(3)并行處理:為了處理海量的數據,需要利用龐大的X86集群進行規(guī)模巨大的并行處理。
3.2.3 云管理層
云管理層負責提供多種管理和維護等方面的工作,主要有下面這六個方面[9]:
(1)帳號管理:通過良好的帳號管理技術,能夠在安全的條件下方便用戶地登錄,并方便管理員對帳號的管理。
(2)SLA監(jiān)控:對各個層次運行的虛擬機,服務和應用等進行性能方面的監(jiān)控,使它們都能在滿足預先設定的SLA(ServiceLevelAgreement)的情況下運行。
(3)安全管理:對數據,應用和帳號等IT資源采取全面保護,使其免受犯罪分子和惡意程序的侵害。
(4)負載均衡:通過將流量分發(fā)給一個應用或者服務的多個實例來應對突發(fā)情況。
(5)運維管理:主要是使運維操作盡可能地專業(yè)和自動化,從而降低云計算中心的運維成本。
3.2.4 SaaS服務集成平臺
該SaaS平臺是XX集團信息化建設的核心,其能夠實現公司運行所需的所有業(yè)務邏輯,該平臺提供一系列基于SOA標準的服務,包括貫穿公司業(yè)務流程的資源采購系統(tǒng)-->儲運調撥系-->零灌業(yè)務系-->零售業(yè)務系-->客服中心系統(tǒng)-->CRM系統(tǒng)-->財務管理服務-->商務智能等服務,該平臺目前計劃部署在集團的云計算中心中,全國各個分公司只需通過瀏覽器接入該SaaS平臺就可完成全部業(yè)務操作。同樣,由于該平臺采用的云計算架構,使得該平臺可以既可以在XX集團云服務中心部署,也可以根據業(yè)務需要在各省或區(qū)域中心分公司部署,形成該地區(qū)的云計算中心,提供了根據業(yè)務量的靈活部署方式,為將來的業(yè)務發(fā)展預留了極大的空間。
3.2.5 本地基礎系統(tǒng)平臺
本地基礎平臺為本地應用提供基礎平臺,這類本地應用包括各本地呼叫中心、分公司門戶系統(tǒng)、本地經營特色的數據分析系統(tǒng)以及本地第三方服務等。
其中在本地基礎平臺中較為重要的是數據同步服務和XX集團SaaS核心功能備份系統(tǒng),由于民用液化氣行業(yè)關系到居民的基本生活保障,因此對于公司的正常運營與否直接關系到居民的民生問題,公司最大的忌諱就是業(yè)務系統(tǒng)停止運行,因此該備份系統(tǒng)的目的是將云平臺中的SaaS中的核心銷售系統(tǒng)的備份放在本地中,定時和云計算中心同步核心銷售數據(經過精簡的銷售數據,這樣就不至于消耗過多的處理資源),這樣可以保證一旦云計算中心由于某種原因出現停止服務的情況可以馬上切入本地的運行平臺上工作,保證居民的燃氣供應。
綜上,該SaaS平臺較好的滿足了目前公司業(yè)務需求,包含了幾乎所有的業(yè)務功能,各分公司還可在該平臺上通過開放的接口開發(fā)和集成新的服務以更好的滿足公司的發(fā)展需求。
3.3 XX集團云計算平臺服務架構
3.3.1 SOA架構
XXSaaS系統(tǒng)云服務平臺的系統(tǒng)架構是以SOA為基礎,采用JAVA語言開發(fā),以OSGi標準對各個服務進行統(tǒng)一封裝,為服務提供者提供統(tǒng)一的服務發(fā)布功能,為服務消費者和提供者之間提供統(tǒng)一的通信方式。
具體來說該系統(tǒng)具有如下特征:松散耦合;明確定義接口;無狀態(tài)的服務;粗粒度的服務;位置透明性;協(xié)議無關性。
3.3.2 服務模型
1.系統(tǒng)架構設計
根據對XX集團業(yè)務需求特點的分析,定義該SaaS以SOA的思想為基礎的系統(tǒng)架構。該系統(tǒng)架構如圖3所示:
各層次功能分擔如下:
(1)業(yè)務運行基礎平臺OSGi該架構上的所有服務均遵循OSGi標準,并且均封裝為OSGi服務,以供其他組件調用。新開發(fā)的應用系統(tǒng)都基于統(tǒng)一開發(fā)平臺進行開發(fā),可以調用已有的服務。已有的應用系統(tǒng)通過統(tǒng)一的接口接入平臺。
(2)數據服務層
負責對應用數據的存儲,執(zhí)行數據處理,采用Oracle數據庫軟件進行管理,保證數據讀取和存儲的高效和穩(wěn)定。
(3)業(yè)務邏輯層
該層為企業(yè)應用邏輯的實現層,將各類業(yè)務邏輯以合適的粒度封裝和發(fā)布為服務的形式,供應用開發(fā)進行調用。
(4)服務接口層
服務接口層是整個架構的核心,負責前后端應用之間的交互,定義業(yè)務邏輯服務所提供的操作、服務相互之間交互的消息標準和方式。它包含服務總線,服務注冊庫和服務查找與調用三大元素,服務總線將SOA的所有參與者相互連接在一起,定義數據傳輸的標準格式,封裝各種類型的消息傳遞方式;服務注冊庫將所有業(yè)務邏輯服務定義在一起,通過它可以發(fā)現服務,獲得使用服務的所有信息;服務查詢和調用則對查找和調用業(yè)務邏輯服務的方法進行封裝。正是由于該層的存在才避免了傳統(tǒng)EAI方式的密如蛛網的接口開發(fā)。
(5)客戶層
客戶端通過瀏覽器方式調用相應服務。
2.應用架構
XX集團SaaS服務平臺由一系列服務功能組成,這些功能分為4個層次,如圖4所示。
·數據層:對數據的存儲與處理
·通用服務層:提供用戶注冊、賬戶管理、統(tǒng)一認證、服務注冊、支付管理、安全管理、日志、監(jiān)控等通用服務。
·應用層:提供企業(yè)業(yè)務邏輯的核心功能。
·門戶層:門戶系統(tǒng)應用。
上述各種服務通過組合,可構成不同的應用平臺或應用系統(tǒng)。應用服務的運行狀態(tài)監(jiān)控、服務切換、服務分配等都由云服務平臺中的核心服務實現,以此實現系統(tǒng)的自治。
3.4 整合機制
為了實現與各地分公司部分原有系統(tǒng)(這些系統(tǒng)往往是各地個性化的應用)的整合,XX集團云平臺需要建立統(tǒng)一的基礎信息,統(tǒng)一的開放API等。
(1)統(tǒng)一的基礎信息。整個XX集團云服務系統(tǒng)需要建立統(tǒng)一的基礎信息,如用戶信息、采購信息、銷售信息、庫存信息、財務信息等,這些信息為服務整合奠定了基礎。
(2)統(tǒng)一的API。OpenAPI是web2.0的一種服務模式,也是云計算的服務方式。利用這些API可以實現對分散數據和服務進行整合,能帶來具有新價值web服務。
XX云服務平臺提供的所有服務分為三個層次:系統(tǒng)內的私有服務、分公司個性化私有服務、平臺公有服務,分別為:(1)同一系統(tǒng)內的私有服務的注冊和管理由OSGi基礎框架完成。這些服務無需對系統(tǒng)外提供;(2)分公司個性化私有服務,可以被分公司本地平臺其他服務調用;(3)公有服務(即OpenAPI平臺所訪問)。后面這兩類服務都通過應用/服務注冊管理和同步機制來實現。分公司和第三方軟件開發(fā)商可以很方便地調用API,構建自己的應用系統(tǒng)和服務,實現對海量數據的集成,實現對已有服務的集成,設計更多的業(yè)務模式和功能,實現自有應用的快速接入。
4.結語
云計算是計算機領域的新浪潮,可以預計,在不遠的將來,云計算將成為企業(yè)IT的首選。但云計算實現其全部潛力將依賴于將云與內部部署應用程序和數據庫進行集成以及不同云之間應用的集成,這樣才能避免又一次“數據孤島”的形成。與此同時,基于服務的架構經過多年的發(fā)展已日趨成熟,越來越多的企業(yè)正在以服務的理念對企業(yè)的IT架構進行改革。云計算與SOA的融合能夠增強服務的部署,為企業(yè)帶來更為敏捷的IT。
轉載請注明出處:拓步ERP資訊網http://www.oesoe.com/