山東商業職業技術學院 盧 旎
基于Flex虛擬化服務器管理系統的研究
山東商業職業技術學院 盧 旎
隨著虛擬化技術的迅速發展,尤其是當今世界倡導低碳節能、環保綠色的節約型社會環境中,作為其重要應用領域的服務器虛擬化技術已經受到了越來越多的企業和媒體的關注。本文則以此為出發點,對虛擬化服務器管理系統的開發框架作了深入的研究。系統開發框架采用Flex技術完成界面顯示,BlazeDS框架完成Flex與Java之間的數據通信,集成Spring與Hibernate技術的業務功能實現。
虛擬化技術是近年來發展較快的技術之一,已經受到了越來越多的企業和媒體的關注。虛擬化是一個廣義的術語,是指計算元件在虛擬的基礎上而不是真實的基礎上運行,是一種為了簡化管理、優化資源的解決方案。這種把有限的、固定的資源根據不同需求進行重新規劃,以達到最大利用率的思路,在IT領域中被稱為虛擬化技術。
虛擬化技術可以擴大硬件的容量、簡化軟件的重新配置過程。虛擬化技術允許一個平臺同時運行多個操作系統,并且應用程序都可在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。虛擬化技術與多任務以及超線程技術是完全不同的。多任務是指在一個操作系統中多個程序同時并行運作,而在虛擬化技術中,則可以同時運行多個互不干擾的操作系統,而且每一個操作系統中都有多個程序運行,每一個操作系統都運行在一個虛擬的CPU或虛擬主機上。
從實現層次來分,虛擬化技術可以劃分為:硬件虛擬化、操作系統虛擬化、應用程序虛擬化等。從應用領域上,虛擬化技術還可以包括:服務器虛擬化、存儲虛擬化、網絡虛擬化、桌面虛擬化、CPU虛擬化、文件虛擬化等。
1)服務器虛擬化
服務器虛擬化應用了硬件虛擬化和操作系統虛擬化技術,在一臺服務器安裝多個操作系統,并且可以同時運行,就相當于多臺服務器同時運行了,利用率大大提高。
2)存儲虛擬化
存儲虛擬化是將一堆獨立的硬盤虛擬的整合在一起,讓人看起來是一塊硬盤。比如網絡上分布了10臺服務器,每臺服務器的硬盤是500G,那存儲虛擬化就可以讓這10塊硬盤虛擬為一塊5T的硬盤,其目的是方便管理和有效利用存儲空間。
3)網絡虛擬化
網絡虛擬化一般是指VPN,它將兩個異地的局域網,虛擬成一個局域網,這樣一些企業的OA、B/S軟件,就可以像真實局域網一樣進行電腦互訪了。
4)桌面虛擬化
桌面虛擬化的實現是在服務器上部署好桌面環境,傳輸到客戶端電腦上,而客戶端只采用瘦客戶機的應用模式,即只安裝操作系統,接受服務器傳輸來的虛擬桌面,用戶看到的就像本地真實環境一樣,所有的使用其實是對服務器上的桌面進行操作。當然,程序運行也實際在服務器上。IT成本是大大的降低。這樣電腦的軟環境非常的輕薄,硬件要求也非常低,而且容易標準化。
服務器虛擬化的特點明顯突出。它能減少服務器的數量,提供一種服務器整合的方法,減少初期硬件采購成本;簡化服務器的部署、管理和維護工作,降低管理費用;提高服務器資源的利用率,提高服務器計算能力;通過降低空間、散熱以及電力消耗等途徑壓縮數據中心成本,通過動態資源配置提高業務的靈活適應能力;提高可用性,具有透明負載均衡、動態遷移、故障自動隔離、系統自動重構的高可靠服務器應用環境;支持異構操作系統的整合,支持舊應用的持續運行;在不中斷用戶工作的情況下進行系統更新;快速轉移和復制虛擬服務器,提供一種簡單便捷的災難恢復解決方案。
服務器虛擬化可以給企業節約IT投資成本,簡化服務器部署、管理和維護工作。然而需要將其高效實施,服務器虛擬化的整合需要按照步驟進行。首先要確定服務器進行合并的時機是否成熟,其次是需要解決管理問題以及選擇所需要的軟硬件環境,再開始將系統遷移到虛擬化平臺上,在運行中不斷監控、評估、調整及改進完善。
然而解決管理問題是整合中的一個重要環節,因為像服務器合并或者部署大型系統等任何重大、復雜的項目都可能會影響公司內部流程。本文設計并實現的虛擬化服務器管理系統則是為公司節省的資金、減少的總財務開支、能夠使管理人員方便高效的管理系統服務器。
圖4.1 Cairngorm框架與Java通信結構圖
圖4.2 系統整體架構示意圖
近年來,Web技術有了突飛猛進的發展,然而,由之前的C/S(客戶端/服務器)向B/S(瀏覽器/服務器)的邁進,只是一個“去其糟粕”的過程,并沒有“取其精華”。RIA的誕生,則是推動了技術的革新。RIA不但繼承了C/S時代的精華,而且為用戶提供了更強大的交互能力和更豐富的用戶體驗。
Flex是Adobe發布的開源RIA開發框架。Flex使傳統的Flash變成了開發者手中的利器,通過服務器端技術,開發者能夠賦予Flash與后端服務器(Java平臺或.Net平臺)交互的能力。同時,開發者可以使用開源免費的Flex SDK構建Flex應用程序,并通過使用Adobe Flex Builder 3集成開發環境提高開發效率。
MXML和ActionScript3.0是編寫Flex應用的程序語言。MXML是符合XML語法規范的聲明性標記語言,用來描述Flex應用界面的組件布局、屬性和交互行為等。也可以使用MXML來描述非可視化組件,例如HTTP連接、數據綁定等。ActionScript是基于ECMAScript規范的語言,而ActionScript 3.0是ActionScript編程語言的最新版本,它是一種完全面向對象的語言,既能編寫Flash又能編寫Flex。
Cairngorm是由Adobe公司支持并推薦的基于MVC模式的開源框架。該框架提供了一套Flex應用程序開發骨架而并非服務來提高Flex程序的擴展性和可維護性。圖4.1所示為Cairngorm的框架與Java通信的結構圖。
從圖4.1可以看出,Cairngorm的工作流程清晰可見。客戶端界面是由View(視圖)組成,View使用Flex的binding(綁定)來顯示ModelLocator中包含的數據。View根據諸如鼠標點擊、按鈕按下以及拖拽之類的用戶動作產生Event,Dispatch Event被FrontController“廣播”并“監聽”,FrontController會將Event Mapping到Command。而Command包括業務邏輯,創建所需Delegate,Call Delegate的相應函數,以及更新存儲在ModelLocator中的數據。由于View是綁定到ModelLocator中的數據上的,所以當ModelLocator中的數據改變的時候,View也會自動更新。Delegate調用Service并且將結果提交給Command,這一步是可選的,但是推薦這么做。Service調用遠程數據(Java服務端)然后將結果提交給Delegate。
在B/S軟件結構流行的今天,RIA(Rich Internet Application,富因特網)作為一門新興的技術正高速發展并被廣泛應用。本系統是將桌面應用程序交互的用戶體驗與傳統的Web應用的部署靈活性和成本分析結合起來的網絡應用程序。該系統整體架構示意圖如圖4.2所示。
如圖4.2所示,用戶通過瀏覽器登錄系統,采用BlazeDS框架完成Flex與Java之間的數據通信。系統應用BlazeDS的RemotingObject技術,直接遠程調用Java后臺提供的接口,大大提升了通信效率。Java端集成Spring與Hibernate技術,實現對數據庫的高效操作。Flex端創建的任務會在數據庫的一個表中添加一條記錄,Python端在系統運行時會開啟Daemon,輪詢該數據表,根據創建任務的類型直接完成,或者發送數據到Linux,由內核完成,將任務的執行情況反饋到數據庫中。最后由Flex端定時獲取數據庫信息,以便將系統最新數據展示給用戶。本文則完成了該系統中Flex到數據庫之間的設計與實現。
在信息爆炸的二十一世紀,無論是工作還是生活,人們對計算機似乎更加情有獨鐘。計算機技術的高速發展給人們帶來了更多財富,但也同時導致了計算機資源的大量浪費。然而虛擬機技術的飛速進步正試圖攻破這一難關。虛擬機技術能夠最大限度使用系統資源的目標,幫助計算機硬件資源提高利用率,為企業節約資本。