隨著計算機三維動畫圖形技術的不斷發展,三維網絡技術受到越來越多的重視。現實世界是三維的,采用三維技術表達信息更加直接,尤其適合那些尚未實現或準備實施的立體創意,借助三維網絡技術可使用戶提前領略到最終的實施效果。正因為三維動畫比平面圖更直觀,并能給觀賞者身臨其境的感覺,從而創造全新的人機交互體驗。三維技術已經應用于軍事、航天、醫療和娛樂領域,并在遠程教育、工程設計與制造、網絡仿真和電子商務等方面顯示出了良好的應用前景。
當前,大部分三維網絡應用都采用客戶端—服務器(C/S)(或瀏覽器-服務器(B/S)模式)。客戶機/服務器系統是兩層架構,但隨著三維服務器軟件系統規模越來越大,功能越來越多,應用業務邏輯復雜并且易變,這樣做會有很多缺點,例如冗余代碼,不利于重用,不利于分工等。為解決這些問題,通過區分表示層、應用邏輯層和數據訪問層,服務器模型進一步演化為多層服務器架構,這樣能簡化三維軟件的開發,但集中式的服務器的訪問仍然是系統的性能瓶頸,常常無法滿足大規模三維網絡應用中用戶對響應延遲、下載延遲等要求。
針對該問題,本文提出了一種面向三維數據密集應用的可伸縮服務器架構,它通過區分連接和應用的各個功能,并采用核心通信服務器統一管理服務器系統,從而以一種對用戶透明的方式,改善三維應用的整體性能。該系統服務架構由多個部分組成,除了核心通信服務器,其他服務功能在安裝的同時,向核心通信服務器進行自動注冊,從而根據服務類型對帶寬和存儲的需求差異,服務提供商具有可以自由地、透明地擴展系統的能力。基于所提出的服務框架,用戶只需知道用戶連接服務器的地址,就可以透明地訪問系統的所有服務,從而在提高服務器性能的同時,實現對用戶的透明性。
1 網絡服務模型演化
回顧IT產業的發展歷程,計算服務經歷了從大型機架構,到客戶端-服務器架構(C/S),最后到多層服務架構的演化歷程,如圖1所示。20世紀80年代以后,傳統的集中式處理和主機/終端模式越來越不能適應人們的需要,特別是隨著微軟微機操作系統的出現,PC進入千家萬戶,網絡互聯逐漸成為主流。20世紀90年代后,Internet高速發展,大部分網絡服務(如WWW、FTP等)采用客戶端—服務器(C/S)或瀏覽器-服務器(B/S)模式,并進一步演化為多層服務器架構。
圖1 網絡服務模型演化
客戶/服務器架構(C/S)實質就是將數據存取和應用程序分離開來[3],用數據服務器執行數據操作,客戶機來執行應用程序,用戶在客戶端通過網絡同服務器打交道。客戶端又包括用戶界面和企業邏輯,網絡上傳輸的數據主要是客戶端向服務器發出的請求以及服務器發給客戶端的響應結果或出錯信息。
當前,客戶服務器模式仍然是市場的主流軟件模式,但傳統的客戶服務器模式優點和缺點并存。
(1)提高了可伸縮性。通過客戶端分擔服務器端功能,降低服務器端計算開銷和通信開銷,提高了服務器端支持的客戶端數目,因而可伸縮性得到提高。
(2)不利于軟件維護。需要在客戶端和服務器端同時安裝并維護軟件功能,如果軟件需要更新,常常需要客戶端和服務器端分別更新軟件,由于通常有大量的客戶端,安裝麻煩,且易出錯,一致性不易保證。
(3)不利于代碼重用。隨著軟件系統規模越來越大,功能越來越多,應用業務邏輯復雜并且易變時,簡單的服務器設計,導致冗余代碼,不利于重用,不利于分工。
(4)存在性能瓶頸。大量的客戶端依賴單一的服務器功能,服務器端常常是性能瓶頸。如果服務器失效,則整個系統軟件失敗,由于傳統的TCP/IP通信機制是一種盡力傳輸的機制,不能保證QoS可靠性,因而也導致穩定性難以保障。
針對客戶端/服務器端架構存在的缺點,人們提出了許多改進方法,其中一種思路是,針對簡單的服務器端設計不利于重用和不利于分工的缺點,提出了多層服務器架構。隨著面向對象的編程思想流行,人們采用類似細分的方法將傳統的客戶機/服務器兩層架構擴展到3層,甚至更多層。3層架構包括表現層、中間層和數據源層。表現層實現用戶界面,中間層實現業務邏輯,在數據源層存取數據。這種方式可以將復雜的領域邏輯從界面中抽離出來,用對象加以建模和組織。由于三維網絡應用的特殊性,它通常涉及大量的數據交互,導致服務器的訪問仍然是系統的性能瓶頸。
2 可伸縮云服務器系統框架
在典型的三維應用實踐中,模型下載常常占用大量帶寬,當用戶增多時,常常導致服務器反應延遲顯著增加,用戶體驗較差。簡單地增加服務器,能夠改進延遲性能,但導致每個客戶端都需要分別為多個服務器進行特殊配置,安裝和維護費用激增。調查用戶需求表明,用戶希望服務器端的變更對客戶端是透明的,簡化客戶端的安裝和維護難度。通過分析用戶訪問服務器的過程發現,用戶客戶端訪問三維服務時,通常要經歷登錄、模型定位和模型下載等過程,當用戶規模大時,用戶的模型下載過程常常導致其他用戶無法正常登錄。為了改善用戶訪問性能,特別是訪問延遲,并保持用戶訪問的透明性,本文提出了一種具有云計算特點的可伸縮的服務器架構,通過將連接資源虛擬化,區分連接和其他功能需求,以支持三維計算的透明訪問需求。
多層可伸縮的服務器框架結構圖如圖2所示,服務器端包括用戶連接服務器(UCS)、核心通信服務器(KCS)、認證計費服務器(CAS)、認證計費服務器(CAS)、內容服務器(CS)、消息服務器(MS)、應用服務器(AS)和中繼服務器(PS)。
圖2 多層可伸縮的服務圖器框架結構
2.1 用戶連接服務器(UCS)
用戶連接服務器的主要功能是接收客戶端首次連接,并提供客戶端對其他服務器的地址查詢。為了使客戶端總知道如何訪問服務器,UCS采用公開地址。當有多種類型的用戶終端接入時,如3G或Wi-Fi,則通常可以部署兩個服務器,分別具有相應的物理通信接口。
2.2 核心通信服務器(KCS)
整個系統里只允許有一個核心通信服務器,它是系統的根服務器,其主要功能是負責其他所有服務器之間的協調。其他服務器都需要向KCS進行注冊,離開或失效時,則由KCS進行注銷。KCS維護服務器系統目錄,并按照預定策略將客戶端請求重定向到特定服務器。為了安全目的,也可以為系統增加備份的KCS服務器,這是可選的。
2.3 認證計費服務器(CAS)
CAS的主要功能是管理用戶權限,支持VIP認證。如果用戶訪問的是收費服務,則對用戶的訪問和流量進行計費,并支持對其他服務器的用戶認證查詢功能。
2.4 內容服務器(CS)
CS的主要功能是負責內容管理,所有與服務內容相關的數據信息都存儲在CS上,并允許客戶端進行下載或對內容信息進行更新。客戶端對CS的任何訪問都必須得到CAS的認證,以決定是否提供相應服務。
2.5 消息服務器(MS)
MS的主要功能是處理各種系統消息,包括:場景同步消息、內容更新消息、認證通知消息、服務器自動切換和故障通知等。用戶登錄時,如需要提升權限(如VIP認證),也需要通過MS進行消息管理。
2.6 應用服務器(AS)
AS的主要功能是提供與應用相關的服務,如系統需求配置、公告發布和新功能部署等。
2.7 中繼服務器(PS)
為了支持服務器間的負載均衡,管理用戶在不同服務器間切換,中繼服務器負責重定向連接請求和資源定位。
3 服務器工作流程
從功能上看,所有服務器功能可以安裝在同一臺服務器設備上,但為了獲得最佳性能,每個服務器可以安裝在不同設備上,通過KCS管理,確保對客戶端的透明性。每個服務器安裝后自動向KCS注冊,不需要單獨配置。可以看出,借助本項目的多層易擴展服務架構,極大地減少了服務器集群的配置工作,并能根據系統負荷容易的增加服務器設備,擴充系統容量。
同樣,借助多層易擴展服務架構,客戶端訪問服務器端的流程也非常直接。客戶端的登錄流程如下:
(1)用戶通過UCS向KCS查詢得到一個CS和一個MS的地址;
(2)用戶向MS登錄(發送VIP認證信息),MS向CAS注冊用戶成功,為用戶分配通行證ID,并將ID返回給用戶;
(3)用戶使用ID向CS請求訪問資源,CS向CAS認證用戶ID,并報告資源使用狀況,CAS對用戶進行計費,若無需計費,則進行日志記錄(Log)。
可以看出,整個系統的部署非常簡單,考慮了未來業務發展和容量擴展需求,且便于負載均衡,功能非常靈活。多個客戶端之間可以通過MS進行交互。用戶也可以通過AS方便地發布新的應用。
4 系統性能測試
本文提出的多層可伸縮的服務器架構尤其適合數據密集型應用。為驗證本文所提服務框架的可行性及性能,在一個三維虛擬現實原型系統里對所提方法進行驗證。
初步演示效果如圖3所示,所需管理的服務內容以三維內容為主,特別是模型數據和紋理材質數據,占用存儲和帶寬最大(包括人物及場景,約4 MB),因而在小規模測試階段,系統配置了數臺內容服務器CS,其他所有服務內容運行于同一臺服務器上。
圖3 三維虛擬現實場景初步演示截圖
為測試系統的可擴展性能,本文保持系統其他條件不變,改變CS的個數。系統日志(Log)記錄每個客戶端對服務器的各種訪問操作(連接請求、下載完成等)及其時間戳。
用到的性能指標有登錄延遲(Login Latency)、定位延遲(Shapebox Latency)及下載延遲(Download Latency)3個。登錄延遲指從初次連接請求發起時刻到成功登錄之間的時間長度。由于三維虛擬現實應用中通常都采用模型的外包(即Shapebox)確定模型的位置,因此在下載模型前,必須知道模型的外包,以判斷模型是否在視野內,是否需要下載。有了外包信息,客戶端顯示過程中不需要下載所有三維模型數據,而只需要下載當前視野附近的模型即可。模型外包相關的信息成為定位信息,下載定位信息所需的時間長度稱為定位延遲。下載延遲則指需要下載的模型從下載請求發出時刻到下載完成之間的時間長度。
圖4和圖5顯示了各個參數指標與CS個數之間的關系,圖中顯示10次客戶端訪問的平均值,置信度為90%。結果表明,隨著CS個數增加,登錄延遲幾乎沒有變化,這是由于登錄過程與CS無關。定位延遲及下載延遲都逐漸減少,這是由于增加的CS分擔了已有CS的下載壓力,因而總體延遲下降。此外,測試過程還表明,CS的增加過程或減少過程無需重啟服務端,而且不會中斷客戶端的下載,驗證了所提服務框架的靈活性和高效性。
圖4 登錄延遲和定位延遲
圖5 三維模型信息下載延遲
本文針對數據密集型應用的服務需求,提出了一種具有云計算特點的服務架構,能夠以對客戶端透明的方式支持各種服務類型對帶寬和存儲要求的巨大差異。系統服務架構由多個部分組成,除了核心通信服務器,其他服務功能在安裝的同時,向核心通信服務器進行自動注冊,從而根據服務類型對帶寬和存儲的需求差異,服務提供商具有可以自由、透明地擴展系統的能力。
基于所提出的服務框架,用戶只需知道核心連接服務器的地址,就可以透明地訪問系統的所有服務,從而實現了云計算的最重要特點——透明性。未來進一步的工作是研究服務資源的自動負載均衡機制,以更智能的方式支持更廣泛的服務類型需求。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:面向數據密集應用的云計算服務架構
本文網址:http://www.guhuozai8.cn/html/consultation/1083979475.html