信息管理云平臺無(wú)狀態(tài)服務(wù)應用研究論文
信息管理云平臺結構復雜度高,系統信息吞吐量大,為提高系統響應性能以及系統可擴展性,云平臺采用無(wú)狀態(tài)服務(wù)技術(shù),提高平臺系統的可伸縮性,系統可以通過(guò)負載均衡等手段,實(shí)現平臺系統的水平擴展,提高系統整體性能。
云計算平臺架構復雜,平臺邏輯業(yè)務(wù)數量多,系統前臺與后臺交互信息量大,平臺的服務(wù)設計成無(wú)狀態(tài)服務(wù)更適應云計算平臺應用場(chǎng)景,服務(wù)不保持狀態(tài)信息,也即是客戶(hù)端與服務(wù)端交互活動(dòng)的信息,當客戶(hù)端向服務(wù)器端發(fā)送服務(wù)請求時(shí),在服務(wù)請求中攜帶服務(wù)器端服務(wù)響應請求所需要的一切信息[1],或者,服務(wù)端可以從外部獲取到需要的信息,比如從數據庫或內存獲取。
對于無(wú)狀態(tài)服務(wù)端,如果服務(wù)端有多個(gè)服務(wù)器集群[2]而成,從客戶(hù)端角度來(lái)說(shuō),由于服務(wù)是無(wú)狀態(tài)的,客戶(hù)端的請求可以發(fā)到集群中的任意一臺服務(wù)器,獲得相同的響應結果,這樣,系統可以通過(guò)負載均衡[3]等手段,實(shí)現平臺系統的水平擴展,提高平臺系統的可伸縮性。平臺的水平可擴展性能對云計算平臺非常重要。
1 無(wú)狀態(tài)服務(wù)概念
兩個(gè)相互關(guān)聯(lián)的Web用戶(hù)進(jìn)行交互操作,需要保留操作相關(guān)的公共信息,這些公共信息即為Web應用服務(wù)的狀態(tài),比如用戶(hù)狀態(tài)信息或工作流狀態(tài)信息。狀態(tài)信息被指定不同的作用域 [4],狀態(tài)存儲的由客戶(hù)端或 服務(wù)器端負責。在Web應用中,服務(wù)狀態(tài)的存儲為系統開(kāi)發(fā)提供方便,但對于分布式系統而言,帶來(lái)其他方面的限制,比如容錯性和可靠性限制,倘若報文丟失、重復、傳送失序或者保有用戶(hù)信息的服務(wù)器崩潰宕機,狀態(tài)信息就會(huì )出錯。
如果服務(wù)器在響應服務(wù)器請求時(shí)使用了錯誤的狀態(tài)信息,則有可能做出錯誤的響應,而且用戶(hù)的最近所有交互操作不能透明地轉移到其他冗余服務(wù)器上。
此外還有服務(wù)的負載均衡限制。因為如果服務(wù)在有狀態(tài)模式,某個(gè)用戶(hù)的請求必須發(fā)送給已經(jīng)保存了它的狀態(tài)信息的服務(wù)器才能成功獲得服務(wù),如果提交到其他服務(wù)器,由于沒(méi)有其相關(guān)狀態(tài)系統,該請求無(wú)法解析,得不到服務(wù)。
因此在有狀態(tài)模式下,服務(wù)器端無(wú)法自由調度用戶(hù)請求。由于HTTP是一個(gè)無(wú)狀態(tài)的協(xié)議,系統必須采用額外方法和技術(shù)來(lái)保存、維護客戶(hù)端狀態(tài)。因而,為了克服這些不足,無(wú)狀態(tài)服務(wù)成為云計算這種分布式平臺的更好的技術(shù)選擇。
無(wú)狀態(tài)指的是任何Web服務(wù)器請求完全與其他請求相隔離,客戶(hù)端任何狀態(tài)信息不在服務(wù)端保存,對單次請求的處理,不依賴(lài)其他請求,也就是說(shuō),處理一次請求所需的全部信息,要么都包含在這個(gè)請求里,要么可以從外部獲取到。
從用戶(hù)角度來(lái)看,Web服務(wù)的有狀態(tài)表現為客戶(hù)端與服務(wù)器端強耦合,比如瀏覽器中的后退操作,如果某個(gè)業(yè)務(wù)流程為step1->step2->step3,當系統執行至step2用戶(hù)進(jìn)行后退操作,由于用戶(hù)的狀態(tài)可能被不可逆地修改,系統就不是按照用戶(hù)所期望的方式運行。
相反,如果Web服務(wù)是無(wú)狀態(tài)的,比如常用的搜索引擎服務(wù),任何用戶(hù)可以在瀏覽器地址欄中輸入“https://www.baidu.com/s?wd=iphone&pn=60”來(lái)獲得從第六十一條開(kāi)始的.關(guān)于iphone的搜索記錄,并且如果百度某個(gè)地區服務(wù)器癱瘓了,用戶(hù)相關(guān)請求透明地被轉移到至其他地區的服務(wù)器,在其它服務(wù)器上得到相同的服務(wù)響應。
2 云計算平臺無(wú)狀態(tài)服務(wù)實(shí)現
Web系統使用的HTTP協(xié)議是無(wú)狀態(tài),在應用層上,服務(wù)器沒(méi)有保存客戶(hù)端的狀態(tài)信息,客戶(hù)端每次請求服務(wù)時(shí),必須每次都帶上自己的狀態(tài)(比如通過(guò)cookie、session等)。
服務(wù)端在響應客戶(hù)端的請求的時(shí)候,會(huì )向客戶(hù)端推送一個(gè)cookie,這個(gè)cookie記錄狀態(tài)信息?蛻(hù)端在后續的請求中,攜帶這個(gè)cookie,服務(wù)端根據這個(gè)cookie判斷這個(gè)請求的上下文關(guān)系,因此cookie是無(wú)狀態(tài)化向狀態(tài)化過(guò)渡的一個(gè)手段。
在信息管理云計算平臺中,在客戶(hù)端采用cookie機制來(lái)保存狀態(tài)信息,在服務(wù)器端采用session會(huì )話(huà)來(lái)保存狀態(tài)。session 與cookie的區別如下。
(1)session數據放在服務(wù)器中,而cookie數據存放在客戶(hù)的瀏覽器中;
(2)服務(wù)器在一段時(shí)間內保存session數據。在訪(fǎng)問(wèn)大量增多時(shí),會(huì )占用較多服務(wù)器的資源,降低服務(wù)性能,如果考慮到服務(wù)器性能方面,采用其它技術(shù)手段降低對服務(wù)器響應性能的影響;
(3)由于其它程序可以分析存放在本地的cookie并進(jìn)行cookie欺騙,因此cookie不是很安全;
(4)單個(gè)cookie在客戶(hù)端的容量有限制,一個(gè)站點(diǎn)在客戶(hù)端存放在cookie中信息不能太多,此外,如果cookie信息過(guò)大,增加客戶(hù)端與服務(wù)器的通信量,降低系統通信性能,耗費通信帶寬;
(5)在云計算平臺系統中,session存儲登陸信息等重要信息,cookie中存儲其他信息。
3 基于無(wú)狀態(tài)服務(wù)的云計算平臺的優(yōu)點(diǎn)
3.1 將后臺與表示層徹底分離
云計算平臺采用MVC架構,實(shí)現系統解耦、松耦合的設計,服務(wù)器端將系統業(yè)務(wù)核心功能進(jìn)行封裝,并以服務(wù)的方式提供給客戶(hù)端。業(yè)務(wù)服務(wù)對客戶(hù)端透明,其具體實(shí)現客戶(hù)端不再關(guān)注,客戶(hù)端只用專(zhuān)注設計用戶(hù)體驗良好的UI和人機交互功能。
3.2 便于平臺開(kāi)發(fā)人員協(xié)同開(kāi)發(fā)
對于松耦合架構系統,開(kāi)發(fā)人員只需關(guān)注自己負責業(yè)務(wù)模塊具體實(shí)現,與系統其它模塊交互,通過(guò)統一接口方案進(jìn)行對接和調用,開(kāi)發(fā)人員間可以方便地進(jìn)行協(xié)同開(kāi)發(fā)工作。
3.3 通過(guò)負載均衡,平衡服務(wù)器壓力
客戶(hù)端用戶(hù)請求,通過(guò)負載均衡,按一定策略,將用戶(hù)請求分配到最合適的服務(wù)器進(jìn)行業(yè)務(wù)處理并返回處理結果,對于系統來(lái)說(shuō),實(shí)現資源的最大話(huà)利用,提高系統整體性能。
4 結語(yǔ)
信息管理云平臺結構復雜度高,系統信息吞吐量大,為提高系統響應性能以及系統可擴展性,服務(wù)采用無(wú)狀態(tài)設計,平臺系統可以很方便地實(shí)現水平伸縮,在云平臺這種并發(fā)環(huán)境下,避免服務(wù)器端多線(xiàn)程帶來(lái)的副作用。
【信息管理云平臺無(wú)狀態(tài)服務(wù)應用研究論文】相關(guān)文章:
中油四川石化項目業(yè)主PIP信息管理平臺的應用研究論文10-25
基于云計算的不動(dòng)產(chǎn)登記信息管理平臺建設研究的論文07-04
基于云服務(wù)的工業(yè)設計科技資源共享平臺論文11-05