[摘 要] 集群服務器作為一種服務器應用的新模式正在受到越來越多的重視。本文根據企業業務的需求,提出面向服務的企業信息系統集群部署方案,該方案具備更好的穩定性、可擴展性。
[關鍵詞]集群部署;面向服務架構;EJB
doi:10.3969/j.issn.1673-0194.2009.14.028
[中圖分類號]F270.7;TP399[文獻標識碼]A[文章編號]1673-0194(2009)14-0081-02
隨著企業信息化進程的推進,電子商務、MIS等大型高并發業務系統迅速普及,人們對計算性能的要求日益增長。企業信息系統面臨著系統安全性、擴展性、穩定性等各方面的新要求,建立可伸縮的網絡服務以滿足不斷增長的負載需求成為企業信息化迫在眉睫的問題。傳統企業信息系統的開發采用某一動態語言等單一技術,所有生成的動態或靜態頁面、數據庫的操作、業務邏輯的處理等均嵌入同一層中,造成數據和業務邏輯緊耦合。若業務變化帶來新的系統功能需求,必將更改大量同一層相牽連的代碼,系統結構安全穩定埋下隱患。因此傳統的系統模型很難適應現代企業大量業務擴展變化的要求。
1 面向服務的集群部署體系
集群技術的出現和應用,是解決上述問題的有效方法。集群是指一組相互獨立的服務器,在網絡中表現為單一的系統,并以單一系統的模式加以管理。此單一系統為客戶端工作站提供高可靠性的服務。一個集群系統是一群松散結合的服務器組,以統一的功能形成一個虛擬的服務器[1] ,集群內各節點服務器通過內部局域網相互通訊。大多數模式下,集群中所有的計算機擁有一個共同的名稱,對于一個Client(客戶端)來說,通常在訪問集群系統時不會意識到它的服務是由具體的哪一臺服務器提供。任何一臺服務器運行一個應用時,應用數據被存儲在共享的數據空間內。
每臺服務器的操作系統和應用程序文件存儲在其各自的本地儲存空間內。當一臺節點服務器發生故障時,這臺服務器上所運行的應用程序將在另一節點服務器上被自動接管。當一個應用服務發生故障時,應用服務將被重新啟動或被另一臺服務器接管[2] 。當以上的任一故障發生時,客戶都將能很快連接到新的應用服務上。集群服務器一起工作,提供比單臺服務器功能更強大、可靠性更高的應用程序平臺。
與傳統的系統模型相比,通過面向服務的思想開發支持集群部署的企業信息系統,有效減少了服務與服務之間的耦合。面向服務架構(Service-Oriented Architecture,SOA)是一種業務驅動的架構方式,支持對業務進行整合,使之成為一種相互聯系、可重用的業務任務或者服務。在基于SOA架構的系統中,具體應用程序的功能是由一些松散耦合且具有統一接口定義方式的組件組合構建起來的,并提供一個抽象的服務層,對服務使用者隱藏了服務的實現細節。因此構建在各種系統中的服務可以用統一和通用的方式進行交互,系統具有可復用、靈活和可擴展等諸多優勢[3] 。譬如對于某種商品進貨的業務流程,面向服務把其劃分為獲取商品信息、審核訂單信息、進貨等幾個服務。當其中某一個服務有所更改時,只要接口沒有改變,則可以直接替換該服務。J2EE技術中的EJB在此提供了有效支持,每一個服務都封裝在一個EJB中,使得所有的服務都能以“熱插拔”的形式提供。一旦需要更改某個服務,只需要將其“拔”下來,把新的服務“插”回去即可。該過程對用戶是完全透明的,服務與服務之間為松耦合。并且由于服務被EJB技術封裝,使得集群部署的時候,系統服務也處于應用級別集群,提供了更好的穩定性。企業信息系統可以有效地長期運行,新的服務可以便捷地添加進原來的系統中。
2 方案實施
在企業信息系統的集群解決方案(見圖1)中,筆者使用BEA公司的WebLogic服務器。BEA WebLogic是用于開發、集成、部署和管理大型分布式Web應用、網絡應用和數據庫應用的JAVA應用服務器。將JAVA的動態功能和JAVA Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中,對企業級標準全面支持,包括EJB、JMS、JDBC、XML等。BEA WebLogic Server擁有處理關鍵Web應用系統問題所需的性能、可擴展性和高可用性,它是專門為企業級電子商務應用系統開發的。企業電子商務應用系統需要快速開發,并要求服務器端組件具有良好的靈活性和安全性。WebLogic還擁有出色的集群技術,既實現了網頁集群,也實現了EJB組件的集群,這并不需要任何專門的硬件或者操作系統支持。網頁集群可以實現透明的復制、負載均衡以及表示內容容錯,組件集群則處理復雜的復制、負載均衡和EJB組建容錯,以及狀態對象的恢復。無論是網頁集群還是組件集群,對于企業信息系統解決方案所要求的可擴展性和可用性都是至關重要的。

對于集群部署的企業信息系統,由于Web頁面訪問量不一定很大,而且前端也不一定是Web頁面,可能是Web服務,所以可以使用代理服務器重定向作為Web頁面的負載均衡方法。為了保證受管理的服務器即使崩潰后,也能夠通過主服務器對其重新啟動或者設置,所以代理服務器同時也是主服務器,管理其他的服務器實例。這樣可以保證受管理服務器的靈活和穩定。其中WebLogic實例1、實例2和實例3都是受管理的服務器,配置成集群。系統模型使用EJB技術,采用相同設置,分別部署在3個WebLogic實例服務器上,使用WebLogic本身提供的應用級別集群技術。這樣做可以提供業務組件有效的容錯能力,保證了系統的穩定性,并且使得系統具備一定的伸縮性。所有對于業務組件的客戶,可能是前端用戶從Web頁面提交的請求,也可能是Web Services接收的請求,都會通過遠程調用來調用業務組件,通過WebLogic內部的算法實現,達到了對業務組件訪問的均衡負載[4] 。集群后的業務組件共享并訪問同一個數據庫。
3 結束語
與單一服務器相比,松散耦合結構的服務器集群系統有以下主要優點:
(1)高性能。網絡服務的工作負載通常是大量相互獨立的任務,通過一組服務器分而治之,可以獲得很高的整體性能。
(2)可伸縮性強。根據需要,可以動態地將新的服務器添加到集群系統中,提高數據處理能力。其伸縮性遠超過單臺超級計算機。
(3)高可用性。集群利用多臺服務器的冗余,通過檢測軟硬件的故障,將故障屏蔽,由存活節點提供服務,實現高可用性。從發生故障的服務器自動切換到正在運行的服務器的能力,可以保證對客戶端具有應用程序的無縫可用性,而無需客戶端知道出現了問題。
集群技術給企業用戶提供了一個靈活方便的信息系統管理環境,其靈活的架構、易于擴展和部署的服務,為解決大型應用信息系統功能結構的拆分、突破性能瓶頸的限制提供了高效的技術手段。
主要參考文獻
[1] 俞楓.大型券商集中交易系統實現架構的研究[J] .計算機工程,2006,32(9):247-249.
[2] 李媛媛.Linux Web集群在電子商務中的應用[J] .商場現代化,2007(3):141.
[3] 李永喜.一種基于內容的Web服務器集群調度算法[J] .計算機應用與軟件,2008,25(3):215-216.
[4] 吳少剛.J2EE應用服務器集群性能研究[J] .計算機工程與設計,2007,28(18):4410-4412.