国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      分布式session服務(wù)系統(tǒng)及方法

      文檔序號(hào):7641326閱讀:161來(lái)源:國(guó)知局
      專利名稱:分布式session服務(wù)系統(tǒng)及方法
      技術(shù)領(lǐng)域
      本申請(qǐng)涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種針對(duì)多應(yīng)用下session解決方案的分布式服務(wù)系統(tǒng)及方法。
      背景技術(shù)
      “session”在計(jì)算機(jī)領(lǐng)域,尤其是在web(網(wǎng)絡(luò))應(yīng)用中,通常稱為“會(huì)話”。具體到web中的session是指用戶在瀏覽某個(gè)網(wǎng)站時(shí)從進(jìn)入網(wǎng)站到瀏覽器關(guān)閉所經(jīng)過(guò)的這段時(shí)間,也就是用戶瀏覽這個(gè)網(wǎng)站所花費(fèi)的時(shí)間。從上述含義可以看出,session實(shí)際上可以理解成一個(gè)特定的時(shí)間概念。就功能方面來(lái)看,session在web應(yīng)用中主要是被用戶用來(lái)保持會(huì)話期間的一些有用信息;例如登錄session用來(lái)存放用戶的登錄狀態(tài),而登錄失敗次數(shù)則對(duì)應(yīng)放在存儲(chǔ)登錄失敗次數(shù)的session中等等。
      目前針對(duì)session的解決方案一般包括客戶端存儲(chǔ)和服務(wù)器存儲(chǔ)兩種。對(duì)于前者,客戶端一般是將session放在cookie中,然而由于cookie本身的特點(diǎn)這種方式也會(huì)存在相應(yīng)的問(wèn)題首先,目前cookie每條記錄的大小有所限制(不能超過(guò)4k),并且一個(gè)域名下最多只能存放20條(IE6) cookie記錄,因而存放的session對(duì)象也有數(shù)量和大小的限制;其次,如果session存儲(chǔ)在cookie中,那么用戶每次使用瀏覽器訪問(wèn)網(wǎng)站時(shí),便要將所有的cookie記錄提交至服務(wù)器,但這些cookie對(duì)于服務(wù)器來(lái)說(shuō)并不是全部都有用,所以這種提交cookie記錄的行為會(huì)對(duì)用戶訪問(wèn)網(wǎng)頁(yè)的速度造成不必要的影響;cookie記錄中存放登錄密碼等敏感信息時(shí)需要加密(例如MD5加密),而session對(duì)象中又有大量這種類似的敏感信息,如此一來(lái)需要進(jìn)行的客戶端加密和服務(wù)器解密操作不僅會(huì)影響機(jī)器性能(主要針對(duì)要承受大量訪問(wèn)的服務(wù)器來(lái)說(shuō))也會(huì)影響訪問(wèn)效率。對(duì)于客戶端存儲(chǔ),業(yè)內(nèi)還出現(xiàn)了 Flash存儲(chǔ)和HTML5本地存儲(chǔ)的解決方案,但兩者對(duì)于瀏覽器都有特殊的要求,因此都不能實(shí)現(xiàn)通用化的應(yīng)用。至于session的服務(wù)器存儲(chǔ)解決方案,目前對(duì)于少應(yīng)用、小訪問(wèn)量的情況,一般采取的做法是將session直接放在服務(wù)器內(nèi)存中進(jìn)行存儲(chǔ),但是如果訪問(wèn)量聚增的話,內(nèi)存可能就不夠用。另一方面,對(duì)于多應(yīng)用、大訪問(wèn)量的情況,可以采用由N個(gè)服務(wù)器節(jié)點(diǎn)同時(shí)對(duì)客戶端提供session服務(wù)的分布式解決方案,此時(shí)必須要考慮的是各節(jié)點(diǎn)之間的session共享問(wèn)題,目前通常是采用session的同步復(fù)制來(lái)實(shí)現(xiàn)共享,即每個(gè)節(jié)點(diǎn)都需要保持一份session并且要隨時(shí)將本節(jié)點(diǎn)的session變化同步到其他所有節(jié)點(diǎn)上,如此一來(lái)隨著節(jié)點(diǎn)的增加勢(shì)必造成服務(wù)器性能的顯著消耗,而且容易引起廣播風(fēng)暴。

      發(fā)明內(nèi)容
      本申請(qǐng)的實(shí)施例旨在提供一種分布式session服務(wù)系統(tǒng)及方法,以解決現(xiàn)有技術(shù)中session服務(wù)方案存在的上述問(wèn)題。為實(shí)現(xiàn)上述目的,本申請(qǐng)的實(shí)施例提供了一種分布式session服務(wù)系統(tǒng),用在基于用戶終端的訪問(wèn)而提供網(wǎng)絡(luò)頁(yè)面服務(wù)的若干個(gè)web應(yīng)用服務(wù)器一側(cè);該系統(tǒng)包括session客戶端及session服務(wù)器,其中,所述session客戶端設(shè)置在各個(gè)所述web應(yīng)用服務(wù)器中,用于在所述用戶終端發(fā)起訪問(wèn)請(qǐng)求時(shí)受所述web應(yīng)用服務(wù)器的調(diào)用,在所述session服務(wù)器和/或所述用戶終端中進(jìn)行session記錄的讀寫操作;所述session服務(wù)器包括配置推送裝置,用于在所述web應(yīng)用服務(wù)器啟動(dòng)服務(wù)時(shí),將預(yù)設(shè)的session讀寫策略發(fā)送給所述session客戶端;數(shù)據(jù)層裝置,用于存儲(chǔ)由所述session客戶端進(jìn)行讀寫操作的session記錄;以及權(quán)限控制裝置,用于在所述web應(yīng)用服務(wù)器調(diào)用所述session客戶端根據(jù)所述 session讀寫策略對(duì)所述數(shù)據(jù)層裝置存儲(chǔ)的session記錄進(jìn)行讀寫操作時(shí),控制與各個(gè)所述web應(yīng)用服務(wù)器對(duì)應(yīng)的session客戶端對(duì)特定類型的session記錄的讀寫權(quán)限。本申請(qǐng)的實(shí)施例還提供一種分布式session服務(wù)方法,應(yīng)用在基于用戶終端的訪問(wèn)而提供網(wǎng)絡(luò)頁(yè)面服務(wù)的若干個(gè)web應(yīng)用服務(wù)器一側(cè),且對(duì)應(yīng)于所述web應(yīng)用服務(wù)器設(shè)置有session客戶端,以及對(duì)應(yīng)于所述session客戶端設(shè)置有session服務(wù)器;該方法包括以下步驟在所述web應(yīng)用服務(wù)器啟動(dòng)服務(wù)時(shí),由所述session服務(wù)器將預(yù)設(shè)的session讀寫策略發(fā)送給所述session客戶端;在所述用戶終端發(fā)起訪問(wèn)請(qǐng)求時(shí),由所述web應(yīng)用服務(wù)器調(diào)用所述session客戶端根據(jù)所述session讀寫策略,在所述session服務(wù)器中進(jìn)行session記錄的讀寫操作,并且由所述session服務(wù)器控制與各個(gè)所述web應(yīng)用服務(wù)器對(duì)應(yīng)的session客戶端對(duì)特定類型的session記錄的讀寫權(quán)限;以及由所述session服務(wù)器存儲(chǔ)所述session客戶端進(jìn)行讀寫操作的session記錄。由上述技術(shù)方案可知,本申請(qǐng)實(shí)施例提供的分布式session服務(wù)系統(tǒng)及方法,可以在實(shí)現(xiàn)將session記錄集中存儲(chǔ)到服務(wù)器側(cè)的同時(shí),通過(guò)讀寫權(quán)限控制實(shí)現(xiàn)session記錄在不同類型web應(yīng)用之間的共享;另外,可以實(shí)現(xiàn)session讀寫策略從服務(wù)器到客戶端的推送,使得客戶端的web應(yīng)用無(wú)需再關(guān)心session記錄的存儲(chǔ)配置。


      圖I為本申請(qǐng)分布式session服務(wù)系統(tǒng)的實(shí)施例結(jié)構(gòu)框圖;圖2為本申請(qǐng)分布式session服務(wù)方法的實(shí)施例流程圖。
      具體實(shí)施例方式下面將詳細(xì)描述本申請(qǐng)的具體實(shí)施例。應(yīng)當(dāng)注意,這里描述的實(shí)施例只用于舉例說(shuō)明,并不用于限制本申請(qǐng)。圖I為本申請(qǐng)分布式session服務(wù)系統(tǒng)的實(shí)施例結(jié)構(gòu)框圖,如圖所示,本實(shí)施例的分布式session服務(wù)系統(tǒng)包括session服務(wù)器11及session客戶端12,且該系統(tǒng)布置在基于用戶終端的訪問(wèn)而提供網(wǎng)絡(luò)頁(yè)面服務(wù)的若干個(gè)web應(yīng)用服務(wù)器101 104(其上分別啟用了三種web應(yīng)用A C) 一側(cè)。結(jié)合圖I所示可知,在一個(gè)實(shí)施例中,web應(yīng)用服務(wù)器可以是針對(duì)某個(gè)類型的web應(yīng)用而分布式設(shè)置的服務(wù)器(例如,針對(duì)大業(yè)務(wù)量的web應(yīng)用A提供的服務(wù)器101和102),也可以是分別針對(duì)某個(gè)類型的web應(yīng)用而設(shè)置的服務(wù)器(例如,分別針對(duì)中小業(yè)務(wù)量的web應(yīng)用B、C提供的服務(wù)器103、104),用戶可以通過(guò)訪問(wèn)web應(yīng)用服務(wù)器101 104來(lái)瀏覽網(wǎng)頁(yè)。進(jìn)一步如圖I所示,session客戶端12--對(duì)應(yīng)地設(shè)置在各個(gè)web應(yīng)用服務(wù)器
      101 104中,用于在用戶終端發(fā)起訪問(wèn)web應(yīng)用服務(wù)器的請(qǐng)求時(shí)受對(duì)應(yīng)web應(yīng)用服務(wù)器的調(diào)用,在session服務(wù)器11和/或用戶終端中進(jìn)行session記錄的讀寫操作,此處提及的讀寫操作在本說(shuō)明書中如無(wú)特別說(shuō)明均是指讀取和/或?qū)懭氩僮鳌T谝粋€(gè)實(shí)施例中,對(duì)于session客戶端12在用戶終端中進(jìn)行session記錄的讀寫操作,可以是在用戶終端瀏覽器的cookie中進(jìn)行,此時(shí)與背景技術(shù)部分所提及利用cookie存儲(chǔ)session的解決方案類似,本技術(shù)方案的重點(diǎn)不在于此,因此不再贅述。結(jié)合后文的描述可知,在一個(gè)實(shí)施例中,session客戶端12的工作具體包括但不限于以下幾項(xiàng)第一,按一定頻率從session服務(wù) 器11處接收session讀寫策略的前期推送及后續(xù)更新;第二,在根據(jù)session讀寫策略確定將session記錄寫入session服務(wù)器11時(shí),將所在web應(yīng)用服務(wù)器根據(jù)用戶終端的訪問(wèn)而生成的session信息經(jīng)過(guò)序列化、壓縮等處理后,發(fā)送到session服務(wù)器11進(jìn)行存儲(chǔ),同時(shí)也根據(jù)其所在web應(yīng)用服務(wù)器的調(diào)用對(duì)session服務(wù)器11所存儲(chǔ)的session記錄進(jìn)行讀?。灰约暗谌?,在根據(jù)session讀寫策略確定將session記錄作為cookie寫入用戶終端時(shí),按常規(guī)方法進(jìn)行處理,例如,還包括根據(jù)session讀寫策略進(jìn)行cookie中session記錄的加密。接續(xù),在一個(gè)實(shí)施例中,上述分布式session服務(wù)系統(tǒng)的session服務(wù)器11進(jìn)一步包括配置推送裝置111、數(shù)據(jù)層裝置112、權(quán)限控制裝置113、數(shù)據(jù)轉(zhuǎn)換裝置114、對(duì)象控制裝置115及服務(wù)器監(jiān)控裝置116,下面將對(duì)以上各裝置分別進(jìn)行說(shuō)明。在一個(gè)實(shí)施例中,配置推送裝置111用于在web應(yīng)用服務(wù)器101 104啟動(dòng)各自的web應(yīng)用A C時(shí),將針對(duì)各web應(yīng)用A C所預(yù)設(shè)的session讀寫策略發(fā)送給對(duì)應(yīng)的session客戶端12。具體來(lái)說(shuō),在一個(gè)實(shí)施例中,web應(yīng)用服務(wù)器101 104在啟動(dòng)各自的web應(yīng)用A C時(shí),session客戶端12可以被配置為自動(dòng)來(lái)讀取配置推送裝置111所要發(fā)送的session讀寫策略,并且配置推送裝置111與session客戶端12之間還可以約定是由前者按需向后者發(fā)送session讀寫策略的更新,或者是由后者按一定時(shí)間間隔去讀取前者所存儲(chǔ)的session讀寫策略。在一個(gè)實(shí)施例中,上述的session讀寫策略主要用于配置哪些類型的session記錄應(yīng)該寫到session服務(wù)器、哪些類型的session記錄應(yīng)該寫到用戶終端的cookie中、以及session記錄寫到cookie時(shí)要使用的加密算法等等。進(jìn)一步,數(shù)據(jù)層裝置112用于存儲(chǔ)由session客戶端進(jìn)行讀寫操作的session記錄。在一個(gè)實(shí)施例中,數(shù)據(jù)層裝置112具體是存儲(chǔ)session客戶端12寫入的根據(jù)用戶終端對(duì)web應(yīng)用服務(wù)器的訪問(wèn)而生成的session記錄,以供web應(yīng)用服務(wù)器101 104在用戶終端的后續(xù)訪問(wèn)中調(diào)用session客戶端12進(jìn)行讀取和/或?qū)懭?改寫)操作。在一個(gè)實(shí)施例中,數(shù)據(jù)層裝置112具體包括存儲(chǔ)單元1121及數(shù)據(jù)讀寫單元1122,其中,存儲(chǔ)單元1121單純用于具體session記錄數(shù)據(jù)的存儲(chǔ),在一個(gè)實(shí)施例中,其可以采用雙機(jī)復(fù)制備份的方式并以一定的數(shù)據(jù)庫(kù)格式對(duì)session客戶端12寫入的session記錄進(jìn)行存儲(chǔ);而數(shù)據(jù)讀寫單元1122則在存儲(chǔ)單元1121的上層,其提供與存儲(chǔ)單元1121的數(shù)據(jù)庫(kù)格式對(duì)應(yīng)的各種數(shù)據(jù)適配器,并配合session客戶端12對(duì)存儲(chǔ)單元1121存儲(chǔ)的session記錄進(jìn)行讀寫操作。如此一來(lái),本實(shí)施例的session服務(wù)系統(tǒng)在session服務(wù)器11中便實(shí)現(xiàn)了數(shù)據(jù)底層(即存儲(chǔ)單元1121)與session應(yīng)用的隔離,使得數(shù)據(jù)底層更易維護(hù)并且可以任意替換,數(shù)據(jù)底層可以有多種實(shí)現(xiàn)方式,例如數(shù)據(jù)庫(kù)、BerkeleyDB、KV(Key-Value)存儲(chǔ)等等。在一個(gè)實(shí)施例中,從性能角度考慮可以選擇KV存儲(chǔ)來(lái)提高存儲(chǔ)單元1121的性能,因?yàn)镵V存儲(chǔ)的模式非常簡(jiǎn)單,只有key和value兩個(gè)值,于是便能夠通過(guò)一些較優(yōu)的數(shù)據(jù)結(jié)構(gòu)(例如B+Tree)來(lái)提高檢索速度,并且由于KV存儲(chǔ)所占用的空間非常小,從而可以通過(guò)一定的策略先將其放在內(nèi)存中,所有這些都使得KV存儲(chǔ)可以幫助存儲(chǔ)單元1121獲得很高的存儲(chǔ)效率。對(duì)應(yīng)于不同類型的數(shù)據(jù)底層實(shí)現(xiàn)方式,在一個(gè)實(shí)施例中,數(shù)據(jù)讀寫單元1122相應(yīng)地也可以設(shè)置多種適配器來(lái)適應(yīng)不同類型的數(shù)據(jù)層。接續(xù),在上述session服務(wù)器11中,權(quán)限控制裝置113是在web應(yīng)用服務(wù)器101 104調(diào)用session客戶端12根據(jù)session讀寫策略來(lái)訪問(wèn)數(shù)據(jù)層裝置112存儲(chǔ)的session記錄時(shí),用于控制與各個(gè)web應(yīng)用服務(wù)器101 104對(duì)應(yīng)的session客戶端12對(duì)特定類型session記錄的讀寫權(quán)限。在將session記錄集中存儲(chǔ)于session服務(wù)器11時(shí),針對(duì)基于同一個(gè)用戶終端對(duì)集群設(shè)置的多個(gè)web應(yīng)用服務(wù)器101 104的訪問(wèn)而產(chǎn)生的session記錄,勢(shì)必要產(chǎn)生在web應(yīng)用服務(wù)器101 104之間進(jìn)行共享的需求。本實(shí)施例的分布式 session服務(wù)系統(tǒng)中,session共享的解決方案即由權(quán)限控制裝置113控制不同web應(yīng)用服務(wù)器101 104 (也即不同類型的web應(yīng)用A C)對(duì)特定類型session記錄的讀寫權(quán)限這一過(guò)程來(lái)實(shí)現(xiàn),從而使得不同類型的web應(yīng)用可以很好地維護(hù)session記錄。例如,權(quán)限控制裝置113可以控制登錄應(yīng)用(以圖I中所示的web應(yīng)用A為例)對(duì)記錄登錄狀態(tài)信息的session記錄具有讀寫權(quán)限,同時(shí)控制其他類型的應(yīng)用對(duì)該session記錄只能進(jìn)行讀取操作,這樣,其他應(yīng)用可以通過(guò)讀取該session記錄判斷出用戶的登錄狀態(tài),但卻不能改寫該session記錄而改變用戶的登錄狀態(tài)。在一個(gè)實(shí)施例中,上述由權(quán)限控制裝置113控制的不同web應(yīng)用服務(wù)器對(duì)特定類型session記錄的讀寫權(quán)限配置,也可以以配置文件的形式與前述session讀寫策略一起由配置推送裝置111發(fā)送給web應(yīng)用服務(wù)器101 104對(duì)應(yīng)的session客戶端12,由此與各web應(yīng)用服務(wù)器對(duì)應(yīng)的session客戶端12在后續(xù)便可以根據(jù)該讀寫權(quán)限配置文件對(duì)特定類型的sessi0n記錄進(jìn)行讀取/寫入操作,從而與此處所述的權(quán)限控制裝置113 —起配合完成后者所要實(shí)現(xiàn)的session共享方案。數(shù)據(jù)轉(zhuǎn)換裝置114用于對(duì)session客戶端12經(jīng)過(guò)格式轉(zhuǎn)換處理后發(fā)送的session記錄進(jìn)行對(duì)應(yīng)的格式反轉(zhuǎn)處理,以便于進(jìn)行session記錄的存儲(chǔ)。在一個(gè)實(shí)施例中,為了減少session客戶端12與session服務(wù)器11之間的通信傳輸成本,session客戶端12在寫A session記錄之前可以進(jìn)行序列化、壓縮等格式轉(zhuǎn)換處理,相應(yīng)地,session服務(wù)器11在收到session客戶端12發(fā)來(lái)的數(shù)據(jù)后,便可以通過(guò)數(shù)據(jù)轉(zhuǎn)換裝置114對(duì)收到的數(shù)據(jù)進(jìn)行反序列化、解壓縮等格式反轉(zhuǎn)處理,以便將session記錄存儲(chǔ)在數(shù)據(jù)層裝置112中。在一個(gè)實(shí)施例中,對(duì)于session客戶端12從session服務(wù)器11讀取session記錄的過(guò)程,可以不必像寫入時(shí)那樣反向地依次進(jìn)行格式轉(zhuǎn)換和反轉(zhuǎn)換的處理,但如果session記錄的數(shù)據(jù)非常大,也可以進(jìn)行雙向的序列化、壓縮處理。另外,上述分布式session服務(wù)系統(tǒng)實(shí)施中的以下裝置也分別在承擔(dān)著各自的功能。其中,對(duì)象控制裝置115用于控制數(shù)據(jù)層裝置112中所存儲(chǔ)session對(duì)象的大小及讀寫頻率,以最大限度保證session服務(wù)器11中session記錄的存儲(chǔ)安全;舉例來(lái)說(shuō),如果web應(yīng)用服務(wù)器101 104通過(guò)session客戶端12寫入了太大的session記錄,則對(duì)象控制裝置115可以有權(quán)刪除該對(duì)象;又例如,如果針對(duì)某個(gè)用戶的session記錄寫入操作非常頻繁,則對(duì)象控制裝置115可以懷疑是機(jī)器操作,從而作出拒絕寫入的處理。再者,服務(wù)器監(jiān)控裝置116用于監(jiān)測(cè)session服務(wù)器11中各裝置的運(yùn)行是否正常,并在捕獲到異常時(shí)向系統(tǒng)維護(hù)人員發(fā)出警告,從而為上層應(yīng)用的穩(wěn)定性提供了保證,加強(qiáng)了 session服務(wù)的健壯性。本申請(qǐng)的技術(shù)方案還提出一種分布式session服務(wù)方法,應(yīng)用在基于用戶終端的訪問(wèn)而提供網(wǎng)絡(luò)頁(yè)面服務(wù)的若干個(gè)web應(yīng)用服務(wù)器一側(cè),且一一對(duì)應(yīng)于web應(yīng)用服務(wù)器設(shè)置有session客戶端,以及對(duì)應(yīng)于所有session客戶端設(shè)置有session服務(wù)器,圖2為該方法的實(shí)施例流程圖,如圖所示,本實(shí)施例的分布式session服務(wù)方法,包括以下步驟S201 S205 S201、在web應(yīng)用服務(wù)器啟動(dòng)服務(wù)時(shí),由session服務(wù)器將預(yù)設(shè)的session讀寫策略發(fā)送給session客戶端;
      S202、在用戶終端發(fā)起訪問(wèn)請(qǐng)求時(shí),由web應(yīng)用服務(wù)器調(diào)用session客戶端進(jìn)行session記錄的讀寫操作;并且,session客戶端根據(jù)session服務(wù)器推送的session讀寫策略來(lái)確定是在用戶終端還是在session服務(wù)器中進(jìn)行session記錄的讀寫操作,相應(yīng)地跳轉(zhuǎn)步驟S203和/或S204。S203、在用戶終端中進(jìn)行session記錄的讀寫操作;如以上分布式session服務(wù)系統(tǒng)實(shí)施例中所述的,session客戶端在用戶終端中讀寫session記錄的操作具體可以是在cookie中進(jìn)行,其方案在背景技術(shù)部分已有提及,此處不再贅述。S204、在session服務(wù)器中進(jìn)行session記錄的讀寫操作;在一個(gè)實(shí)施例中,session服務(wù)器可以控制與各個(gè)web應(yīng)用服務(wù)器對(duì)應(yīng)的session客戶端對(duì)特定類型的session記錄的讀寫權(quán)限,以此來(lái)實(shí)現(xiàn)在多個(gè)web應(yīng)用A C之間共享session記錄的目的。具體而言,上述的讀寫權(quán)限是用于限定web應(yīng)用服務(wù)器對(duì)特定類型的session能夠進(jìn)行讀取和寫入操作,或只能進(jìn)行讀取操作。另外,上述步驟S202中提及可以跳轉(zhuǎn)到步驟S203和/或S204,也即session客戶端可以在用戶終端和session服務(wù)器中選擇其一來(lái)寫入session記錄,也可以同時(shí)在用戶終端和session服務(wù)器中寫入session記錄。在一個(gè)實(shí)施例中,對(duì)于例如網(wǎng)絡(luò)支付密碼等非常重要的信息,可以考慮加密且僅存儲(chǔ)在用戶終端的cookie中。在另一個(gè)實(shí)施例中,對(duì)于web應(yīng)用服務(wù)在服務(wù)器之間進(jìn)行遷移的過(guò)程,可以設(shè)置一個(gè)兼容狀態(tài),在此期間session記錄可以既寫到用戶終端又寫到session服務(wù)器中;而在遷移完畢后,就可以去掉寫入到用戶終端的選擇而僅寫入到session服務(wù)器中??梢岳斫獾氖?,以上所有這些操作,都可以通過(guò)由session服務(wù)器向session客戶端下發(fā)、更新session讀寫策略來(lái)靈活便利地實(shí)現(xiàn)。S205、由session服務(wù)器存儲(chǔ)session客戶端進(jìn)行讀寫操作的session記錄;在一個(gè)實(shí)施例中,在步驟S204中session客戶端于session服務(wù)器中進(jìn)行session記錄的寫入操作之前,可以包括由session客戶端對(duì)session記錄進(jìn)行序列化、壓縮等格式轉(zhuǎn)換處理的步驟;對(duì)應(yīng)的,此處在步驟S205中session服務(wù)器存儲(chǔ)session客戶端所寫入session記錄的步驟之前,便可以對(duì)session客戶端發(fā)來(lái)的數(shù)據(jù)進(jìn)行反序列化、解壓縮等格式反轉(zhuǎn)處理的步驟,以便進(jìn)行session記錄的存儲(chǔ)。在一個(gè)實(shí)施例中,該步驟S205中還包括由session服務(wù)器控制所存儲(chǔ)session記錄的大小及讀寫頻率的步驟,以及監(jiān)測(cè)session服務(wù)器中各裝置是否運(yùn)行正常并在捕獲到異常時(shí)向維護(hù)人員發(fā)出警告的步驟。以下將結(jié)合前述分布式session服務(wù)系統(tǒng)的實(shí)施例對(duì)本申請(qǐng)分布式session服務(wù)方法加以進(jìn)一步描述。在一個(gè)實(shí)施例中,基于分布式session服務(wù)系統(tǒng)的session服務(wù)方法流程如下(I).首先,web應(yīng)用服務(wù)器101 104啟動(dòng)各自的web應(yīng)用服務(wù)A C時(shí),通過(guò)session客戶端12讀取session服務(wù)器11中配置的session讀寫策略,具體可以由配置推送裝置111將預(yù)設(shè)的session讀寫策略反饋給web應(yīng)用服務(wù)器101 104對(duì)應(yīng)的session客戶端12 ;如之前系統(tǒng)實(shí)施例所述,在一個(gè)實(shí)施例中,配置推送裝置111同時(shí)還可以將預(yù)設(shè)的不同web應(yīng)用服務(wù)器(也即各不同類型的web應(yīng)用A C)對(duì)特定類型session的讀寫權(quán)限配置隨session讀寫策略一起發(fā)送至session客戶端12。結(jié)合參考圖I所示,此處可以設(shè)置web應(yīng)用A (對(duì)應(yīng)web應(yīng)用服務(wù)器101 102)對(duì)當(dāng)前session記錄有讀取和寫入的權(quán)限,而web應(yīng)用B、C (分別對(duì)應(yīng)web應(yīng)用服務(wù)器103、104)對(duì)當(dāng)前session記錄僅有讀取權(quán)限。(2).接續(xù),在用戶終端通過(guò)訪問(wèn)web應(yīng)用服務(wù)器101(即web應(yīng)用服務(wù)A)來(lái)瀏覽網(wǎng)頁(yè)的過(guò)程中產(chǎn)生某個(gè)類型的session記錄時(shí),先由session客戶端12根據(jù)接收到的session讀寫策略來(lái)確定該session記錄是寫入用戶終端的cookie中還是寫入session服務(wù)器11中;i).如果是寫入用戶終端的cookie, session客戶端12便可以繼續(xù)根據(jù)session讀寫策略中的加密方式將session記錄加密后寫入用戶終端瀏覽器的cookie中,其方式已 在背景技術(shù)部分有所提及,此處不再贅述;ii).如果是寫入session服務(wù)器11中,則session客戶端12開始向session服務(wù)器11發(fā)起寫入session記錄的操作請(qǐng)求。(3).之后,session服務(wù)器11在收到session客戶端12的session寫入請(qǐng)求時(shí),先由權(quán)限控制裝置113判斷該web應(yīng)用服務(wù)A是否有對(duì)該session記錄進(jìn)行寫入操作的權(quán)限,再由對(duì)象控制裝置115判斷要寫入的session記錄大小是否符合預(yù)設(shè)的限制(同時(shí)也可以判斷寫入的頻率是否符合預(yù)設(shè)的限制),如果前述兩個(gè)判斷都能順利通過(guò),則可以在數(shù)據(jù)轉(zhuǎn)換裝置114對(duì)session客戶端12傳送過(guò)來(lái)的所需要寫入的數(shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換之后,由數(shù)據(jù)讀寫單元1122寫入到存儲(chǔ)單元1121中。(4).最后,可以理解,在session服務(wù)器11的數(shù)據(jù)層裝置112中寫入session記錄后,web應(yīng)用服務(wù)器101可以類似按照前述流程對(duì)相應(yīng)session記錄進(jìn)行后續(xù)改寫,而所有web應(yīng)用服務(wù)器101 104都可以依照類似流程按需對(duì)該session記錄進(jìn)行讀取。綜上所述,本申請(qǐng)的分布式session服務(wù)系統(tǒng)及方法實(shí)施例具有以下特點(diǎn)(I) session讀寫策略的自動(dòng)推送由session客戶端和session服務(wù)器的配置推送裝置協(xié)作完成session讀寫策略的自動(dòng)推送,web應(yīng)用服務(wù)器不需要對(duì)session方案進(jìn)行具體配置,而是由session服務(wù)器統(tǒng)一進(jìn)行session記錄的配置管理;對(duì)于web應(yīng)用服務(wù)器101 104所啟用的web應(yīng)用A C來(lái)說(shuō),不需要關(guān)心session記錄具體存放的位置,相應(yīng)地,各web應(yīng)用A C的業(yè)務(wù)代碼編寫者也不需要得知session記錄的存放位置,只需要按照固定格式的語(yǔ)句對(duì)session記錄進(jìn)行讀寫操作,例如,session記錄的寫入語(yǔ)句可以是session. setAttribute ( “key”,”value”),session 記錄的讀取語(yǔ)句可以是 session.getAttribute ( “key”);并且,session讀寫策略在session服務(wù)器中配置好后,可以由配置推送裝置統(tǒng)一推送到session客戶端所在的所有web應(yīng)用服務(wù)器中去,不需要針對(duì)每一個(gè)web應(yīng)用服務(wù)器進(jìn)行session配置的替換操作,從而節(jié)省了人力,降低了系統(tǒng)風(fēng)險(xiǎn)。(2). session的集中存儲(chǔ)session可以統(tǒng)一存放到session服務(wù)器,使得session更加安全;并且由于設(shè)置了專用的數(shù)據(jù)層裝置,因此可以存儲(chǔ)更大、內(nèi)容更多的session ;另外,由于session不是全部存放在用戶終端的cookie中,如此一來(lái),用戶通過(guò)客戶端訪問(wèn)服務(wù)器時(shí),不必帶上所有cookie提交到服務(wù)器,因此能夠減小網(wǎng)絡(luò)流量消耗,提升用戶訪問(wèn)頁(yè)面的速度。(3). session的多應(yīng)用共享通過(guò)權(quán)限控制裝置控制不同類型的web應(yīng)用對(duì)特定 類型session的讀寫權(quán)限,使得多個(gè)web應(yīng)用之間可以很好地共享session。(4).數(shù)據(jù)底層讀寫與應(yīng)用隔離數(shù)據(jù)層裝置由單純存儲(chǔ)數(shù)據(jù)的存儲(chǔ)單元及負(fù)責(zé)數(shù)據(jù)讀寫操作的數(shù)據(jù)讀寫單元分開配合實(shí)現(xiàn),使得數(shù)據(jù)底層更易維護(hù),實(shí)現(xiàn)方式也可以更加靈活。(5). session服務(wù)層的健壯性保護(hù)通過(guò)對(duì)象控制裝置及服務(wù)器監(jiān)控裝置的設(shè)置,能夠?qū)Υ嬖陲L(fēng)險(xiǎn)的session讀寫操作進(jìn)行預(yù)防,同時(shí)也能隨時(shí)捕捉系統(tǒng)的任何異常,從而也為上層web應(yīng)用的穩(wěn)定性提供了保證。雖然已參照幾個(gè)典型實(shí)施例描述了本申請(qǐng),但應(yīng)當(dāng)理解,所用的術(shù)語(yǔ)是說(shuō)明和示例性、而非限制性的術(shù)語(yǔ)。由于本申請(qǐng)能夠以多種形式具體實(shí)施而不脫離發(fā)明的精神或?qū)嵸|(zhì),所以應(yīng)當(dāng)理解,上述實(shí)施例不限于任何前述的細(xì)節(jié),而應(yīng)在隨附權(quán)利要求所限定的精神和范圍內(nèi)廣泛地解釋,因此落入權(quán)利要求或其等效范圍內(nèi)的全部變化和改型都應(yīng)為隨附權(quán)利要求所涵蓋。
      權(quán)利要求
      1.一種分布式session服務(wù)系統(tǒng),用在基于用戶終端的訪問(wèn)而提供網(wǎng)絡(luò)頁(yè)面服務(wù)的若干個(gè)web應(yīng)用服務(wù)器一側(cè);該系統(tǒng)包括session客戶端及session服務(wù)器,其中, 所述session客戶端設(shè)置在各個(gè)所述web應(yīng)用服務(wù)器中,用于在所述用戶終端發(fā)起訪問(wèn)請(qǐng)求時(shí)受所述web應(yīng)用服務(wù)器的調(diào)用,在所述session服務(wù)器和/或所述用戶終端中進(jìn)行session記錄的讀寫操作; 所述session服務(wù)器包括 配置推送裝置,用于在所述web應(yīng)用服務(wù)器啟動(dòng)服務(wù)時(shí),將預(yù)設(shè)的session讀寫策略發(fā)送給所述session客戶端; 數(shù)據(jù)層裝置,用于存儲(chǔ)由所述session客戶端進(jìn)行讀寫操作的session記錄;以及 權(quán)限控制裝置,用于在所述web應(yīng)用服務(wù)器調(diào)用所述session客戶端對(duì)所述數(shù)據(jù)層裝置存儲(chǔ)的session記錄進(jìn)行讀寫操作時(shí),控制與各個(gè)所述web應(yīng)用服務(wù)器對(duì)應(yīng)的session客戶端對(duì)特定類型的session記錄的讀寫權(quán)限。
      2.如權(quán)利要求I所述的分布式session服務(wù)系統(tǒng),其中所述session服務(wù)器還包括數(shù)據(jù)轉(zhuǎn)換裝置,用于對(duì)所述session客戶端經(jīng)過(guò)格式轉(zhuǎn)換處理后發(fā)送的session記錄進(jìn)行對(duì)應(yīng)的格式反轉(zhuǎn)處理,以便于進(jìn)行所述session記錄的存儲(chǔ)。
      3.如權(quán)利要求I所述的分布式session服務(wù)系統(tǒng),其中所述session服務(wù)器還包括對(duì)象控制裝置,用于控制所述數(shù)據(jù)層裝置中所存儲(chǔ)session記錄的大小及讀寫頻率。
      4.如權(quán)利要求I所述的分布式session服務(wù)系統(tǒng),其中所述session服務(wù)器還包括服務(wù)器監(jiān)控裝置,用于監(jiān)測(cè)所述session服務(wù)器中各裝置的運(yùn)行是否正常,并在捕獲到異常時(shí)發(fā)出警告。
      5.如權(quán)利要求I所述的分布式session服務(wù)系統(tǒng),其中所述數(shù)據(jù)層裝置包括存儲(chǔ)單元及數(shù)據(jù)讀寫單元; 所述存儲(chǔ)單元采用雙機(jī)復(fù)制備份的方式以一種或多種數(shù)據(jù)庫(kù)格式對(duì)所述session記錄進(jìn)行存儲(chǔ); 所述數(shù)據(jù)讀寫單元提供與所述存儲(chǔ)單元的數(shù)據(jù)庫(kù)格式對(duì)應(yīng)的數(shù)據(jù)適配器,并配合所述session客戶端對(duì)所述存儲(chǔ)單元存儲(chǔ)的session記錄進(jìn)行讀寫操作。
      6.如權(quán)利要求1-5任一項(xiàng)所述的分布式session服務(wù)系統(tǒng),其中, 所述session讀寫策略用于向所述session客戶端通知以下信息要存儲(chǔ)在所述session服務(wù)器的session類型,以及要存儲(chǔ)在所述用戶終端的session類型及其加密算法; 所述讀寫權(quán)限用于限定所述web應(yīng)用服務(wù)器對(duì)特定類型的session記錄能夠進(jìn)行讀取和寫入操作,或只能進(jìn)行讀取操作。
      7.一種分布式session服務(wù)方法,應(yīng)用在基于用戶終端的訪問(wèn)而提供網(wǎng)絡(luò)頁(yè)面服務(wù)的若干個(gè)web應(yīng)用服務(wù)器一側(cè),且對(duì)應(yīng)于所述web應(yīng)用服務(wù)器設(shè)置有session客戶端,以及對(duì)應(yīng)于所述session客戶端設(shè)置有session服務(wù)器;該方法包括以下步驟 在所述web應(yīng)用服務(wù)器啟動(dòng)服務(wù)時(shí),由所述session服務(wù)器將預(yù)設(shè)的session讀寫策略發(fā)送給所述session客戶端; 在所述用戶終端發(fā)起訪問(wèn)請(qǐng)求時(shí),由所述web應(yīng)用服務(wù)器調(diào)用所述session客戶端根據(jù)所述session讀寫策略,在所述session服務(wù)器中進(jìn)行session記錄的讀寫操作,并且由所述session服務(wù)器控制與各個(gè)所述web應(yīng)用服務(wù)器對(duì)應(yīng)的session客戶端對(duì)特定類型的session記錄的讀寫權(quán)限;以及 由所述session服務(wù)器存儲(chǔ)所述session客戶端進(jìn)行讀寫操作的session記錄。
      8.如權(quán)利要求7所述的分布式session服務(wù)方法,在所述session客戶端于所述session服務(wù)器中進(jìn)行session記錄的寫入操作的步驟之前,還包括由所述session客戶端對(duì)所述session記錄進(jìn)行格式轉(zhuǎn)換處理的步驟;對(duì)應(yīng)的,在所述session服務(wù)器存儲(chǔ)所述session客戶端寫入的session記錄的步驟之前,還包括由所述session服務(wù)器對(duì)經(jīng)過(guò)所述session客戶端格式轉(zhuǎn)換處理后發(fā)送的session記錄進(jìn)行格式反轉(zhuǎn)處理的步驟。
      9.如權(quán)利要求7所述的分布式session服務(wù)方法,在所述session服務(wù)器存儲(chǔ)所述session客戶端寫入的session記錄的步驟中,還包括由所述session服務(wù)器控制所存儲(chǔ)session記錄的大小及讀寫頻率的步驟。
      10.如權(quán)利要求7-9任一項(xiàng)所述的分布式session服務(wù)方法,其中, 所述session讀寫策略用于向所述session客戶端通知以下信息要存儲(chǔ)在所述session服務(wù)器的session類型,以及要存儲(chǔ)在所述用戶終端的session類型及其加密算法; 所述讀寫權(quán)限用于限定所述web應(yīng)用服務(wù)器對(duì)特定類型的session記錄能夠進(jìn)行讀取和寫入操作,或只能進(jìn)行讀取操作。
      全文摘要
      本申請(qǐng)公開了一種分布式session服務(wù)方法,應(yīng)用在基于用戶終端的訪問(wèn)而提供網(wǎng)絡(luò)頁(yè)面服務(wù)的若干個(gè)web應(yīng)用服務(wù)器一側(cè),且對(duì)應(yīng)于web應(yīng)用服務(wù)器設(shè)有session客戶端,以及對(duì)應(yīng)于session客戶端設(shè)有session服務(wù)器;該方法包括以下步驟在web應(yīng)用服務(wù)器啟動(dòng)服務(wù)時(shí),由session服務(wù)器將預(yù)設(shè)的session讀寫策略發(fā)送給session客戶端;在用戶終端發(fā)起訪問(wèn)請(qǐng)求時(shí),由web應(yīng)用服務(wù)器調(diào)用session客戶端根據(jù)session讀寫策略確定在用戶終端和/或session服務(wù)器中進(jìn)行session記錄的讀寫操作;以及由session服務(wù)器存儲(chǔ)session客戶端進(jìn)行讀寫操作的session記錄。本申請(qǐng)相應(yīng)還公開了一種分布式session服務(wù)系統(tǒng)。本申請(qǐng)實(shí)施例提供的分布式session服務(wù)系統(tǒng)及方法,可以在實(shí)現(xiàn)將session集中存儲(chǔ)到服務(wù)器的同時(shí),通過(guò)session的讀寫權(quán)限控制實(shí)現(xiàn)在不同類型web應(yīng)用之間的session共享。
      文檔編號(hào)H04L29/08GK102752323SQ20111009624
      公開日2012年10月24日 申請(qǐng)日期2011年4月18日 優(yōu)先權(quán)日2011年4月18日
      發(fā)明者錢超 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1