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