當前位置:文書都 >

實用範文 >論文 >

信息管理雲平台無狀態服務應用研究論文

信息管理雲平台無狀態服務應用研究論文

信息管理雲平台結構複雜度高,系統信息吞吐量大,為提高系統響應性能以及系統可擴展性,雲平台採用無狀態服務技術,提高平台系統的可伸縮性,系統可以通過負載均衡等手段,實現平台系統的水平擴展,提高系統整體性能。

信息管理雲平台無狀態服務應用研究論文

雲計算平台架構複雜,平台邏輯業務數量多,系統前台與後台交互信息量大,平台的服務設計成無狀態服務更適應雲計算平台應用場景,服務不保持狀態信息,也即是客户端與服務端交互活動的信息,當客户端向服務器端發送服務請求時,在服務請求中攜帶服務器端服務響應請求所需要的一切信息[1],或者,服務端可以從外部獲取到需要的信息,比如從數據庫或內存獲取。

對於無狀態服務端,如果服務端有多個服務器集羣[2]而成,從客户端角度來説,由於服務是無狀態的,客户端的請求可以發到集羣中的任意一台服務器,獲得相同的響應結果,這樣,系統可以通過負載均衡[3]等手段,實現平台系統的水平擴展,提高平台系統的可伸縮性。平台的水平可擴展性能對雲計算平台非常重要。

1 無狀態服務概念

兩個相互關聯的Web用户進行交互操作,需要保留操作相關的公共信息,這些公共信息即為Web應用服務的狀態,比如用户狀態信息或工作流狀態信息。狀態信息被指定不同的作用域 [4],狀態存儲的由客户端或 服務器端負責。在Web應用中,服務狀態的存儲為系統開發提供方便,但對於分佈式系統而言,帶來其他方面的限制,比如容錯性和可靠性限制,倘若報文丟失、重複、傳送失序或者保有用户信息的'服務器崩潰宕機,狀態信息就會出錯。

如果服務器在響應服務器請求時使用了錯誤的狀態信息,則有可能做出錯誤的響應,而且用户的最近所有交互操作不能透明地轉移到其他宂餘服務器上。

此外還有服務的負載均衡限制。因為如果服務在有狀態模式,某個用户的請求必須發送給已經保存了它的狀態信息的服務器才能成功獲得服務,如果提交到其他服務器,由於沒有其相關狀態系統,該請求無法解析,得不到服務。

因此在有狀態模式下,服務器端無法自由調度用户請求。由於HTTP是一個無狀態的協議,系統必須採用額外方法和技術來保存、維護客户端狀態。因而,為了克服這些不足,無狀態服務成為雲計算這種分佈式平台的更好的技術選擇。

無狀態指的是任何Web服務器請求完全與其他請求相隔離,客户端任何狀態信息不在服務端保存,對單次請求的處理,不依賴其他請求,也就是説,處理一次請求所需的全部信息,要麼都包含在這個請求裏,要麼可以從外部獲取到。

從用户角度來看,Web服務的有狀態表現為客户端與服務器端強耦合,比如瀏覽器中的後退操作,如果某個業務流程為step1->step2->step3,當系統執行至step2用户進行後退操作,由於用户的狀態可能被不可逆地修改,系統就不是按照用户所期望的方式運行。

相反,如果Web服務是無狀態的,比如常用的搜索引擎服務,任何用户可以在瀏覽器地址欄中輸入“https://”來獲得從第六十一條開始的關於iphone的搜索記錄,並且如果百度某個地區服務器癱瘓了,用户相關請求透明地被轉移到至其他地區的服務器,在其它服務器上得到相同的服務響應。

2 雲計算平台無狀態服務實現

Web系統使用的HTTP協議是無狀態,在應用層上,服務器沒有保存客户端的狀態信息,客户端每次請求服務時,必須每次都帶上自己的狀態(比如通過cookie、session等)。

服務端在響應客户端的請求的時候,會向客户端推送一個cookie,這個cookie記錄狀態信息。客户端在後續的請求中,攜帶這個cookie,服務端根據這個cookie判斷這個請求的上下文關係,因此cookie是無狀態化向狀態化過渡的一個手段。

在信息管理雲計算平台中,在客户端採用cookie機制來保存狀態信息,在服務器端採用session會話來保存狀態。session 與cookie的區別如下。

(1)session數據放在服務器中,而cookie數據存放在客户的瀏覽器中;

(2)服務器在一段時間內保存session數據。在訪問大量增多時,會佔用較多服務器的資源,降低服務性能,如果考慮到服務器性能方面,採用其它技術手段降低對服務器響應性能的影響;

(3)由於其它程序可以分析存放在本地的cookie並進行cookie欺騙,因此cookie不是很安全;

(4)單個cookie在客户端的容量有限制,一個站點在客户端存放在cookie中信息不能太多,此外,如果cookie信息過大,增加客户端與服務器的通信量,降低系統通信性能,耗費通信帶寬;

(5)在雲計算平台系統中,session存儲登陸信息等重要信息,cookie中存儲其他信息。

3 基於無狀態服務的雲計算平台的優點

3.1 將後台與表示層徹底分離

雲計算平台採用MVC架構,實現系統解耦、鬆耦合的設計,服務器端將系統業務核心功能進行封裝,並以服務的方式提供給客户端。業務服務對客户端透明,其具體實現客户端不再關注,客户端只用專注設計用户體驗良好的UI和人機交互功能。

3.2 便於平台開發人員協同開發

對於鬆耦合架構系統,開發人員只需關注自己負責業務模塊具體實現,與系統其它模塊交互,通過統一接口方案進行對接和調用,開發人員間可以方便地進行協同開發工作。

3.3 通過負載均衡,平衡服務器壓力

客户端用户請求,通過負載均衡,按一定策略,將用户請求分配到最合適的服務器進行業務處理並返回處理結果,對於系統來説,實現資源的最大話利用,提高系統整體性能。

4 結語

信息管理雲平台結構複雜度高,系統信息吞吐量大,為提高系統響應性能以及系統可擴展性,服務採用無狀態設計,平台系統可以很方便地實現水平伸縮,在雲平台這種併發環境下,避免服務器端多線程帶來的副作用。

  • 文章版權屬於文章作者所有,轉載請註明 https://wenshudu.com/shiyongfanwen/lunwen/x9g4nk.html
專題