欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

自適應(yīng)會話壓縮管理方法、壓縮管理器及會話管理系統(tǒng)的制作方法

文檔序號:7620914閱讀:216來源:國知局
專利名稱:自適應(yīng)會話壓縮管理方法、壓縮管理器及會話管理系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及應(yīng)用服務(wù)器中的會話管理,具體地,涉及應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮技術(shù)。
背景技術(shù)
隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,各種應(yīng)用服務(wù)器應(yīng)運(yùn)而生。從歷史角度來看,Web應(yīng)用服務(wù)器是從各種中間件產(chǎn)品和技術(shù)中脫化而來的。Web應(yīng)用服務(wù)器(或簡稱為應(yīng)用服務(wù)器)是分布式中間件軟件實(shí)施產(chǎn)品,其作用相當(dāng)于一個(gè)接口,一端連接的是的各種類型的客戶機(jī),而另一端連接的是各類后臺系統(tǒng)資源。它負(fù)責(zé)管理客戶請求,為業(yè)務(wù)邏輯提供宿主環(huán)境,連接數(shù)據(jù)、事務(wù)處理、目錄等后端計(jì)算資源。通常,在客戶機(jī)與應(yīng)用服務(wù)器之間是通過HTTP協(xié)議來傳輸數(shù)據(jù)的,而HTTP協(xié)議是一種無狀態(tài)協(xié)議,也就是說,應(yīng)用服務(wù)器將對于每一頁的每一次訪問都當(dāng)作相互無關(guān)的訪問來處理,而不保留前一次訪問的任何信息,即使訪問就發(fā)生在當(dāng)前訪問的幾秒鐘之前,因此,應(yīng)用服務(wù)器并不了解有關(guān)同一客戶機(jī)以前請求的任何信息。
于是,為了彌補(bǔ)HTTP協(xié)議的這一不足,通常在應(yīng)用服務(wù)器中使用會話管理器來管理所有會話狀態(tài)信息。會話管理器的作用象一個(gè)散列表,對于每個(gè)新的會話都產(chǎn)生一個(gè)唯一的標(biāo)識符,稱為會話ID,以該會話ID作為關(guān)鍵值保存所有會話狀態(tài)信息。在客戶機(jī)對應(yīng)用服務(wù)器進(jìn)行訪問期間,會話管理器會對這些會話狀態(tài)信息進(jìn)行維護(hù)。同時(shí),會話ID還以Cookie的形式保存在客戶端的瀏覽器中。
會話狀態(tài)信息通??梢员4嬖趹?yīng)用服務(wù)器的內(nèi)存、文件或數(shù)據(jù)庫中,這樣就有三種會話管理機(jī)制基于內(nèi)存的會話管理、基于文件的會話管理和基于數(shù)據(jù)庫的會話管理。
基于內(nèi)存的會話管理是運(yùn)行速度最快的一種機(jī)制,它一般在應(yīng)用服務(wù)器的內(nèi)存中專門開辟一塊共享內(nèi)存區(qū)域,在這片內(nèi)存區(qū)域中可直接快速地存取會話狀態(tài)信息。這種機(jī)制對應(yīng)用服務(wù)器的系統(tǒng)配置要求較高,需要系統(tǒng)資源能夠承載較高的訪問量,否則不僅不能提高訪問速度,相反地還會因系統(tǒng)資源不足造成服務(wù)器負(fù)載過重。
基于文件的會話管理是使用最廣泛的一種機(jī)制,會話狀態(tài)信息一般以文本文件的形式存放在應(yīng)用服務(wù)器的硬盤中。這種機(jī)制易于實(shí)現(xiàn),對服務(wù)器的系統(tǒng)配置要求不高,但是存放會話狀態(tài)信息的文件之間缺乏邏輯聯(lián)系,當(dāng)并發(fā)的訪問量很大時(shí)會話管理的文件數(shù)目將增長很快,這不僅大大增加設(shè)計(jì)會話管理機(jī)制的難度,也會相應(yīng)地影響存取會話信息的速度。
基于數(shù)據(jù)庫的會話管理是最容易擴(kuò)展的一種機(jī)制,它需要應(yīng)用服務(wù)器有一個(gè)網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)支撐,會話狀態(tài)信息全部存放在網(wǎng)絡(luò)數(shù)據(jù)庫中,在數(shù)據(jù)庫系統(tǒng)的支持下會話管理可以充分利用數(shù)據(jù)庫具有的事務(wù)處理、安全存取和數(shù)據(jù)完整性檢驗(yàn)等機(jī)制,有效地管理所有的會話狀態(tài)信息。
會話管理技術(shù)的采用,不僅解決了會話狀態(tài)信息的存取問題,而且大大方便了應(yīng)用服務(wù)器應(yīng)用程序的開發(fā)。
但是,無論采用哪一種會話管理機(jī)制,當(dāng)用戶經(jīng)常需要建立較多或較大的會話對象時(shí),將會占用應(yīng)用服務(wù)器的大量存儲空間。尤其是在會話關(guān)系密切和持續(xù)環(huán)境下或在系統(tǒng)負(fù)載繁重環(huán)境下,應(yīng)用服務(wù)器的性能和能力將會極大地降低。大對象的序列化/反序列化及I/O將成為應(yīng)用服務(wù)器的瓶頸。
因此,需要有一種技術(shù)能夠有效地減輕用戶會話狀態(tài)信息為系統(tǒng)帶來的負(fù)擔(dān)。

發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明提出一種應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法和壓縮管理器,通過根據(jù)需要保存的會話狀態(tài)信息的大小和系統(tǒng)資源狀況(如CPU、內(nèi)存)自動選擇最優(yōu)的壓縮器和壓縮方式,對用戶的會話狀態(tài)信息進(jìn)行自適應(yīng)壓縮,從而提升了應(yīng)用服務(wù)器的性能。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理器,包括壓縮判斷部件,用于根據(jù)會話狀態(tài)信息以及與系統(tǒng)資源狀況有關(guān)的配置信息,判斷是否需要對所述會話狀態(tài)信息進(jìn)行壓縮;壓縮方式?jīng)Q策部件,用于在需要對所述會話狀態(tài)信息進(jìn)行壓縮的情況下,根據(jù)應(yīng)用服務(wù)器的系統(tǒng)資源狀況,確定最優(yōu)的壓縮器和壓縮方式,并通知相應(yīng)的壓縮器;以及壓縮器,用于根據(jù)來自壓縮方式?jīng)Q策部件的命令,對會話狀態(tài)信息進(jìn)行壓縮。
根據(jù)本發(fā)明的另一方面,提供了一種應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法,包括獲取來自應(yīng)用服務(wù)器中的會話管理器的被指示為需要保存的會話狀態(tài)信息;根據(jù)該會話狀態(tài)信息以及與系統(tǒng)資源狀況有關(guān)的配置信息確定是否對該會話狀態(tài)信息進(jìn)行壓縮;在需要對該會話狀態(tài)信息進(jìn)行壓縮時(shí),根據(jù)該應(yīng)用服務(wù)器的系統(tǒng)資源狀況確定最優(yōu)的壓縮器和最優(yōu)的壓縮方式,對該會話狀態(tài)信息進(jìn)行壓縮;以及將所述會話狀態(tài)信息存儲在會話管理器的指定位置,在該會話狀態(tài)信息經(jīng)過壓縮的情況下,將對其進(jìn)行壓縮的壓縮器的類型信息隨同該會話狀態(tài)信息一起存儲。
根據(jù)本發(fā)明的另一方面,提供了一種自適應(yīng)會話管理系統(tǒng),包括會話管理器,用于對用戶與應(yīng)用的會話狀態(tài)信息進(jìn)行管理和維護(hù);會話狀態(tài)信息呈遞部件,用于在上述會話管理器與應(yīng)用之間傳遞用戶的會話狀態(tài)信息;接口單元,用戶或該應(yīng)用服務(wù)器的系統(tǒng)管理員通過該接口在配置文件中設(shè)置配置信息;以及上述的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理器。
本發(fā)明的優(yōu)點(diǎn)在于1.根據(jù)本發(fā)明的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮,可以在會話信息中有大對象時(shí)提高系統(tǒng)性能。由于Java程序在大對象序列化和反序列化時(shí)需要花費(fèi)大量的時(shí)間,而將大的對象壓縮后可以大大減少這個(gè)時(shí)間,從而能夠提升系統(tǒng)性能。
2.根據(jù)本發(fā)明的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮,可以增加應(yīng)用服務(wù)器中能夠承載的用戶數(shù)量。通過對系統(tǒng)資源更有效的使用,可以使得CPU和內(nèi)存等資源都得到比較平均的負(fù)載,從而增加系統(tǒng)容量。
3.根據(jù)本發(fā)明的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮,通過對會話信息的壓縮和管理,能夠提高系統(tǒng)容錯(cuò)性。


相信通過以下結(jié)合附圖對本發(fā)明具體實(shí)施方式
的說明,能夠使人們更好地了解本發(fā)明上述的特點(diǎn)、優(yōu)點(diǎn)和目的。
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的自適應(yīng)會話管理系統(tǒng)的示意圖;圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理器的方框圖;圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法中壓縮過程的流程圖;以及圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法中解壓縮過程的流程圖。
具體實(shí)施例方式
首先,在對本發(fā)明優(yōu)選實(shí)施方式進(jìn)行詳細(xì)描述之前,先來了解一下應(yīng)用服務(wù)器中的會話管理機(jī)制。下面以Servlet的會話管理機(jī)制為例進(jìn)行說明。
如上所述,HTTP是一種無狀態(tài)的協(xié)議。這意味著Web應(yīng)用并不了解有關(guān)同一用戶以前請求的信息。維持會話信息的方法之一是使用Servlet或者JSP容器提供的會話跟蹤功能。Servlet API規(guī)范定義了一個(gè)簡單的HttpSession接口,通過它可以方便地實(shí)現(xiàn)會話跟蹤。
HttpSession接口提供了存儲和返回標(biāo)準(zhǔn)會話屬性的方法。標(biāo)準(zhǔn)會話屬性如會話標(biāo)識符、應(yīng)用數(shù)據(jù)等,都以“名字-值”對的形式保存。簡而言之,HttpSession接口提供了一種將對象保存到內(nèi)存、在同一用戶的后繼請求中提取這些對象的標(biāo)準(zhǔn)方法。在會話中保存數(shù)據(jù)的方法是setAttribute(Strings,Object o),從會話提取原來所保存對象的方法是getAttribute(String s)。
要獲得HttpSession對象,可以調(diào)用HttpServletRequest對象的getSession方法。為了正確地維持會話狀態(tài),必須在發(fā)送任何應(yīng)答內(nèi)容之前調(diào)用getSession方法。
每當(dāng)新用戶請求一個(gè)使用了HttpSession對象的JSP頁面,JSP容器除了發(fā)回應(yīng)答頁面之外,它還要向?yàn)g覽器發(fā)送一個(gè)特殊的數(shù)字。這個(gè)特殊的數(shù)字稱為“會話標(biāo)識符”,它是一個(gè)唯一的用戶標(biāo)識符。此后,HttpSession對象就駐留在內(nèi)存之中,等待同一用戶返回時(shí)再次調(diào)用它的方法。
在客戶端,瀏覽器保存會話標(biāo)識符,并在每一個(gè)后繼請求中將這個(gè)會話標(biāo)識符發(fā)送給服務(wù)器。會話標(biāo)識符告訴JSP容器當(dāng)前請求不是用戶發(fā)出的第一個(gè)請求,服務(wù)器以前已經(jīng)為該用戶創(chuàng)建了HttpSession對象。此時(shí),JSP容器不再為用戶創(chuàng)建新的HttpSession對象,而是尋找具有相同會話標(biāo)識符的HttpSession對象,然后建立該HttpSession對象和當(dāng)前請求的關(guān)聯(lián)。
會話標(biāo)識符以Cookie的形式在服務(wù)器和瀏覽器之間傳送。如果瀏覽器不支持Cookie,則用戶對服務(wù)器的后繼請求將不會帶有會話標(biāo)識符。結(jié)果,JSP容器認(rèn)為該請求來自一個(gè)新用戶,它會再創(chuàng)建一個(gè)HttpSession對象,而以前創(chuàng)建的HttpSession對象仍舊駐留在內(nèi)存中,但該用戶以前的會話信息卻丟失了。
在HTTP協(xié)議中,當(dāng)用戶不再活動時(shí)不存在顯式的終止信號。由于這個(gè)原因,應(yīng)用服務(wù)器不知道用戶是否還要再次返回,如果不采取某種方法解決這個(gè)問題,內(nèi)存中會積累起大量的HttpSession對象。
因此,用戶會話既可以用手工方法作廢,也可以自動作廢。作廢會話意味著從內(nèi)存中刪除HttpSession對象以及它的數(shù)據(jù)。例如,如果一定時(shí)間之內(nèi)(默認(rèn)30分鐘)用戶不再發(fā)送請求,Java Web Server自動地作廢該用戶的會話。
Servlet/JSP會話跟蹤機(jī)制有著一定的局限,即會話對象保存在應(yīng)用服務(wù)器的內(nèi)存之中,占用了可觀的資源。
因此,本發(fā)明的主要思想是增強(qiáng)應(yīng)用服務(wù)器中的會話管理系統(tǒng),使之能夠根據(jù)需要保存的會話狀態(tài)信息的大小、系統(tǒng)資源狀況(如CPU或內(nèi)存)來自動選擇最優(yōu)的壓縮器和壓縮方式來對會話狀態(tài)信息進(jìn)行自適應(yīng)壓縮,以達(dá)到增強(qiáng)會話管理系統(tǒng)的性能、提高應(yīng)用服務(wù)器能承載的會話數(shù)、提高系統(tǒng)容錯(cuò)性的目的。
下面結(jié)合附圖對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的說明。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種自適應(yīng)會話管理系統(tǒng)。下面就結(jié)合附圖對該系統(tǒng)進(jìn)行詳細(xì)說明。
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的自適應(yīng)會話管理系統(tǒng)的示意圖。本實(shí)施例的自適應(yīng)會話管理系統(tǒng)對應(yīng)用服務(wù)器中的會話狀態(tài)信息進(jìn)行自適應(yīng)的管理和維護(hù)。
如圖1所示,本實(shí)施例的自適應(yīng)會話管理系統(tǒng)110駐留在應(yīng)用服務(wù)器100上,包括會話狀態(tài)信息呈現(xiàn)部件120和130、會話管理器140、自適應(yīng)會話壓縮管理器150和接口單元160。
會話狀態(tài)信息呈現(xiàn)部件120,用于獲取用戶與應(yīng)用交互過程中的會話狀態(tài)信息,并通過與會話管理器140之間的接口傳遞給會話管理器,以在會話管理器140中對此會話狀態(tài)信息進(jìn)行管理和維護(hù)。
會話狀態(tài)信息呈現(xiàn)部件130,用于接收對在會話管理器中進(jìn)行維護(hù)的會話狀態(tài)信息的檢索請求,根據(jù)該請求通過與會話管理器140的接口從會話管理器140中提取相應(yīng)的會話狀態(tài)信息,并在經(jīng)過自適應(yīng)會話壓縮管理器150的自適應(yīng)解壓縮之后呈現(xiàn)給應(yīng)用。
會話管理器140用于對會話狀態(tài)信息進(jìn)行保存和管理。在會話管理器140中,優(yōu)選地將會話狀態(tài)信息作為會話狀態(tài)對象,在會話ID的索引下進(jìn)行維護(hù)。在會話管理器140中,可采用基于內(nèi)存的會話管理機(jī)制、基于文件的會話管理機(jī)制或基于數(shù)據(jù)庫的會話管理機(jī)制中的任何一種。在本實(shí)施例中,會話管理器140可采用現(xiàn)有的任何類型的會話管理器。會話管理器140接收到來自應(yīng)用的新建會話的會話狀態(tài)信息、或應(yīng)用對已建立的會話進(jìn)行了更新之后的會話狀態(tài)信息時(shí),會話管理器140首先將該會話狀態(tài)信息傳遞給自適應(yīng)會話壓縮管理器150,同時(shí)指示該會話狀態(tài)信息是新建或更新后需要保存的會話狀態(tài)信息,以對其進(jìn)行自適應(yīng)壓縮,然后再將壓縮后的會話狀態(tài)信息保存在指定位置。此外,在某一應(yīng)用向會話管理器140請求讀出已有會話狀態(tài)信息時(shí),會話管理器140從指定位置提取出所請求的已有會話狀態(tài)信息,并將其傳遞給自適應(yīng)會話壓縮管理器150,同時(shí)指示該會話狀態(tài)信息是需要呈現(xiàn)給應(yīng)用的會話狀態(tài)信息,以對其進(jìn)行自適應(yīng)解壓縮,然后再通過會話狀態(tài)信息呈現(xiàn)部件130將其呈現(xiàn)給應(yīng)用。會話管理器140與自適應(yīng)會話壓縮管理器150之間通過接口互相傳遞會話狀態(tài)信息等有關(guān)信息。
自適應(yīng)會話壓縮管理器150,一方面,用于根據(jù)需要保存的會話狀態(tài)信息的大小和系統(tǒng)資源狀況(如CPU、內(nèi)存)自動選擇最優(yōu)的壓縮器和壓縮方式對來自會話管理器140的被指示為需要保存的會話狀態(tài)信息進(jìn)行自適應(yīng)壓縮,并將所使用的壓縮器的類型信息與壓縮后的會話狀態(tài)信息一起傳遞給會話管理器140,以便進(jìn)行保存。另一方面,對于被指示為要從會話管理器140呈現(xiàn)給應(yīng)用的已有會話狀態(tài)信息,判斷是否需要對其進(jìn)行解壓縮,以及在需要對其進(jìn)行解壓縮時(shí),根據(jù)與該會話狀態(tài)信息一起存儲的壓縮器的類型信息,以相應(yīng)的解壓縮器對其進(jìn)行解壓縮,并將解壓縮后的會話狀態(tài)信息返回給會話管理器140,以便呈現(xiàn)給請求該信息的應(yīng)用。
用戶或該應(yīng)用服務(wù)器的系統(tǒng)管理員通過接口單元160在配置文件中設(shè)置壓縮閾值、壓縮器和壓縮方式等配置信息。
圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理器的方框圖。
如圖所示,該自適應(yīng)會話壓縮管理器150包括會話狀態(tài)信息緩存部件1510、配置信息獲取部件1520、壓縮/解壓縮判斷部件1530、壓縮/解壓縮方式?jīng)Q策部件1540及壓縮/解壓縮器1550。
會話狀態(tài)信息緩存部件1510用于緩存來自應(yīng)用服務(wù)器的會話管理器的新創(chuàng)建或更新后的被指示為需要保存的會話狀態(tài)信息、或會話管理器從指定位置讀出的被指示為要呈現(xiàn)給請求該信息的應(yīng)用的會話狀態(tài)信息,以由該自適應(yīng)會話壓縮管理器對其進(jìn)行自適應(yīng)壓縮/解壓縮。會話狀態(tài)信息緩存部件1510與會話管理器140之間具有可傳遞會話狀態(tài)信息及其相關(guān)信息的接口。
配置信息獲取部件1520用于從一配置文件中獲取由用戶或該應(yīng)用服務(wù)器的系統(tǒng)管理員設(shè)置的配置信息,例如,壓縮閾值、壓縮器和壓縮方式等。以下示出了一個(gè)配置文件的例子[閾值]//會話狀態(tài)信息大小超過多少開始壓縮,例如500kSize=500,000[壓縮器]//用戶可以在這里指定所希望使用的壓縮器Zip=ZipcompressorRar=Rarcompressor…[CPU]//用戶在這里可以指定CPU使用率與對應(yīng)的壓縮方式之間的關(guān)系,如最大、或不壓縮等,數(shù)字表示百分比20=Best50=Normal70=Fast80=None[內(nèi)存]//用戶在這里可以指定內(nèi)存使用率與壓縮方式之間的關(guān)系,數(shù)字表示百分比20=Fast50=Normal70=Best
…在本實(shí)施例中,一方面,壓縮/解壓縮判斷部件1530將會話狀態(tài)信息緩存部件1510中被指示為需要保存到會話管理器140中的會話狀態(tài)信息的大小與配置文件中的壓縮閾值進(jìn)行比較,判斷是否對該會話狀態(tài)信息進(jìn)行壓縮。當(dāng)該會話狀態(tài)信息的大小超過該閾值時(shí),通知壓縮方式?jīng)Q策部件1540選取最優(yōu)的壓縮方式。另一方面,壓縮/解壓縮判斷部件1530判斷會話狀態(tài)信息緩存部件1510中被指示為需要呈現(xiàn)給請求該信息的應(yīng)用的已有會話狀態(tài)信息是否經(jīng)過了壓縮。如果該信息經(jīng)過了壓縮,則將此情況通知給壓縮/解壓縮方式?jīng)Q策部件1540。
壓縮/解壓縮方式?jīng)Q策部件1540,一方面,根據(jù)壓縮/解壓縮判斷部件1530的指示,基于配置文件中設(shè)置的希望使用的壓縮器和對壓縮方式的要求、以及該應(yīng)用服務(wù)器的系統(tǒng)資源狀況,選取最優(yōu)的壓縮器和最優(yōu)的壓縮方式,并通知壓縮/解壓縮器1550中該最優(yōu)的壓縮器對會話狀態(tài)信息緩存部件1510中當(dāng)前被指示為需要壓縮的會話狀態(tài)信息進(jìn)行壓縮。另一方面,壓縮/解壓縮方式?jīng)Q策部件1540,根據(jù)壓縮/解壓縮判斷部件1530的指示,獲取與會話狀態(tài)信息緩存部件1510中當(dāng)前被指示為需要解壓縮的會話狀態(tài)信息一起存儲的壓縮器的類型信息,確定與該壓縮器對應(yīng)的解壓縮器,并通知給壓縮/解壓縮器1550中該相應(yīng)的解壓縮器對其進(jìn)行解壓縮。在本實(shí)施例中,與上面所述的壓縮器對應(yīng)的解壓縮器為Zipdecompressor和Rardecompressor。
需要說明的是,在本實(shí)施例中,即使壓縮/解壓縮判斷部件1530根據(jù)會話狀態(tài)信息的大小與配置文件中的壓縮閾值,判斷應(yīng)對會話狀態(tài)信息進(jìn)行壓縮,壓縮/解壓縮方式?jīng)Q策部件1540也可能根據(jù)應(yīng)用服務(wù)器的系統(tǒng)資源狀況做出不進(jìn)行壓縮的決定。例如,在CPU使用率超過80%時(shí),壓縮/解壓縮方式?jīng)Q策部件1540選取的最優(yōu)壓縮器和最優(yōu)的壓縮方式將是“None”,即不進(jìn)行壓縮。在此情況下,壓縮/解壓縮方式?jīng)Q策部件1540不激活任何壓縮/解壓縮器,會話狀態(tài)信息緩存部件1510會將原始會話狀態(tài)信息返回給會話管理器140。
壓縮/解壓縮器1550中由壓縮/解壓縮方式?jīng)Q策部件1540確定的壓縮/解壓縮器在壓縮/解壓縮方式?jīng)Q策部件1540的指示下,以所確定的最優(yōu)壓縮/解壓縮方式對會話狀態(tài)信息緩存部件1510中的會話狀態(tài)信息進(jìn)行壓縮/解壓縮。在壓縮的情況下,將對會話狀態(tài)信息進(jìn)行壓縮操作的壓縮器的類型信息與該壓縮后的會話狀態(tài)信息一起存儲在會話狀態(tài)信息緩存部件1510中。而該會話狀態(tài)信息緩存部件1510則將壓縮后的會話狀態(tài)信息與壓縮器的類型信息一起返回給會話管理器140。在解壓縮的情況下,對指定會話狀態(tài)信息進(jìn)行解壓縮操作的解壓縮器將解壓縮后的信息存儲在會話狀態(tài)信息緩存部件1510中,進(jìn)而,會話管理器140將其通過會話狀態(tài)信息呈現(xiàn)部件130呈現(xiàn)給請求的應(yīng)用。
需要指出的是,在壓縮/解壓縮判斷部件1530確定不需要對被指示為將要保存在會話管理器140中的會話狀態(tài)信息進(jìn)行壓縮的情況下,會話狀態(tài)信息緩存部件1510將該信息直接返回給會話管理器140。此外,在不需要對被指示為要呈現(xiàn)給應(yīng)用的會話狀態(tài)信息進(jìn)行解壓縮的情況下,自適應(yīng)會話壓縮管理器150可以將該信息通過會話狀態(tài)信息呈現(xiàn)部件130直接返回給請求的應(yīng)用。
此外還需要指出的是,盡管在以上實(shí)施例中,將與解壓縮有關(guān)的部件也包括在自適應(yīng)會話壓縮管理器150中,但是對于本領(lǐng)域一般技術(shù)人員來說很明顯,這些與解壓縮有關(guān)的部件也可以從自適應(yīng)會話壓縮管理器150中分離出去,集成為一個(gè)單獨(dú)的部件。
與此相應(yīng),根據(jù)本發(fā)明的另一方面,提出了一種應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法。該方法包括兩方面一方面是對新建或更新后需要保存在會話管理器中的會話狀態(tài)信息進(jìn)行的自適應(yīng)壓縮過程,另一方面是對會話管理器從指定位置讀出需要呈現(xiàn)給請求應(yīng)用的會話狀態(tài)信息進(jìn)行的自適應(yīng)解壓縮過程。圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法中壓縮過程的流程圖。
如圖所示,在步驟310,獲取來自應(yīng)用服務(wù)器的會話管理器的被指示為新創(chuàng)建或更新后需要保存的會話狀態(tài)信息。
在步驟320,判斷該會話狀態(tài)信息的大小是否超過預(yù)設(shè)的壓縮閾值。其中,該閾值由用戶或應(yīng)用服務(wù)器的系統(tǒng)管理員在配置文件中設(shè)定。該配置文件如上面所描述的那樣。在該步驟中,如果該會話狀態(tài)信息的大小超過配置文件中的壓縮閾值,則該過程轉(zhuǎn)到步驟330,否則,該過程轉(zhuǎn)到步驟350。
在步驟330,根據(jù)配置文件中設(shè)置的希望使用的壓縮器和對壓縮方式的要求,并根據(jù)該應(yīng)用服務(wù)器的系統(tǒng)資源狀況確定最優(yōu)的壓縮器和最優(yōu)的壓縮方式。
然后,在步驟340,利用上述步驟中確定的最優(yōu)的壓縮器和壓縮方式,對該會話狀態(tài)信息進(jìn)行壓縮。
然后,在步驟350,將該會話狀態(tài)信息與壓縮器的類型信息一起存儲在會話管理器中。若該信息未經(jīng)壓縮,則直接存儲該會話狀態(tài)信息,而無壓縮器類型信息。
將上述會話狀態(tài)信息存儲在會話管理器的指定位置,在該會話狀態(tài)信息經(jīng)過壓縮的情況下,將對其進(jìn)行壓縮的壓縮器的類型信息隨同該會話狀態(tài)信息一起存儲。
對于上述過程,可通過使用應(yīng)用服務(wù)器的公共接口HttpSession的setAttribute(java.lang.String,java.lang.Object)函數(shù)將會話狀態(tài)信息作為會話狀態(tài)對象,來實(shí)現(xiàn)用戶自定義的會話狀態(tài)信息的保存。下面是具體的代碼實(shí)現(xiàn)public class xHttpSession{//保存的會話狀態(tài)對象HttpSession session=null;//自適應(yīng)會話壓縮管理器AdaptiveSessionManager asm=AdaptiveSessionManager.getInstance();
//構(gòu)造函數(shù)public xHttpSession(HttpSession session){this.session=session;}//保存會話信息public setAttribute(String key,object value){//檢查是否需要壓縮if(asm.check(value)==true){//如果需要壓縮,那么由自適應(yīng)會話壓縮管理器選擇合適的壓縮//器進(jìn)行壓縮,并將壓縮后的值放入原本的會話管理器object newValue=asm.getCompressor().compress(value);session.setAttribute(key,newValue);}}與此相應(yīng),在經(jīng)上述壓縮過程進(jìn)行了自適應(yīng)壓縮的會話狀態(tài)信息需要再次呈現(xiàn)時(shí),需要對其進(jìn)行解壓縮。因此,在本發(fā)明的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法中還存在相應(yīng)的自適應(yīng)解壓縮過程,該過程的操作對象是經(jīng)歷了上述自適應(yīng)壓縮過程的會話狀態(tài)信息。圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用服務(wù)器中的自適應(yīng)壓縮管理方法中解壓縮過程的流程圖。
如圖所示,在步驟410,獲取會話管理器從指定位置中提取出的被指示為要呈現(xiàn)給請求應(yīng)用的會話狀態(tài)信息。
在步驟420,判斷該會話狀態(tài)信息是否經(jīng)過壓縮。如果該信息經(jīng)過壓縮,則該過程前進(jìn)到步驟430,否則,該過程結(jié)束。
在步驟430,提取出在會話管理器中與該會話狀態(tài)信息一起存儲的壓縮器的類型信息。
在步驟440,根據(jù)在步驟430中提取出的壓縮器的類型信息,確定相應(yīng)的解壓縮器。
在步驟450,利用在步驟440中確定的解壓縮器,對該會話狀態(tài)信息進(jìn)行解壓縮。
在步驟460,將解壓縮后的該會話狀態(tài)信息通過該應(yīng)用服務(wù)器的呈現(xiàn)邏輯返回給請求該會話狀態(tài)信息的應(yīng)用。
對于上述方法,可通過使用應(yīng)用服務(wù)器的公共接口HttpSession的getAttribute(java.lang.String)函數(shù)來實(shí)現(xiàn)用戶自定義的會話狀態(tài)信息的讀取。下面是具體的代碼實(shí)現(xiàn)//讀取會話狀態(tài)對象public Object getAttribute(String key){//通過系統(tǒng)會話管理器獲取值Object value=session.getAttribute(key);//檢查是否壓縮過的valueif(asm.isCompressed(value)){value=asm.uncompress(value);}return value;}以上,結(jié)合實(shí)施例對本發(fā)明的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法、壓縮管理器及會話管理系統(tǒng)進(jìn)行了描述。應(yīng)當(dāng)指出,這些實(shí)施例只是示例性的,本領(lǐng)域的技術(shù)人員可以在此基礎(chǔ)上做出各種改變。
權(quán)利要求
1.一種應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理器,包括壓縮判斷部件,用于根據(jù)會話狀態(tài)信息以及與系統(tǒng)資源狀況有關(guān)的配置信息,判斷是否需要對所述會話狀態(tài)信息進(jìn)行壓縮;壓縮方式?jīng)Q策部件,用于在需要對所述會話狀態(tài)信息進(jìn)行壓縮的情況下,根據(jù)應(yīng)用服務(wù)器的系統(tǒng)資源狀況,確定最優(yōu)的壓縮器和壓縮方式,并通知相應(yīng)的壓縮器;以及壓縮器,用于根據(jù)來自壓縮方式?jīng)Q策部件的命令,對會話狀態(tài)信息進(jìn)行壓縮。
2.權(quán)利要求1所述的自適應(yīng)會話壓縮管理器,還包括配置信息獲取部件,用于從一配置文件中獲取由用戶或系統(tǒng)管理員設(shè)置的配置信息。
3.權(quán)利要求2所述的自適應(yīng)會話壓縮管理器,其中所述配置信息包括壓縮閾值、壓縮器和壓縮方式。
4.權(quán)利要求3所述的自適應(yīng)會話壓縮管理器,其中所述壓縮閾值包括關(guān)于會話狀態(tài)信息大小的閾值和關(guān)于應(yīng)用服務(wù)器的系統(tǒng)資源的閾值。
5.權(quán)利要求3所述的自適應(yīng)會話壓縮管理器,其中所述壓縮方式根據(jù)該應(yīng)用服務(wù)器中CPU的使用率設(shè)定為最佳壓縮、正常壓縮或不進(jìn)行壓縮。
6.權(quán)利要求3所述的自適應(yīng)會話壓縮管理器,其中所述壓縮方式根據(jù)該應(yīng)用服務(wù)器中內(nèi)存的使用率設(shè)定為快速壓縮、正常壓縮或最佳壓縮。
7.權(quán)利要求1所述的自適應(yīng)會話壓縮管理器,還包括會話狀態(tài)信息緩存部件,用于緩存來自會話管理器的被指示為需要保存的會話狀態(tài)信息。
8.權(quán)利要求7所述的自適應(yīng)會話壓縮管理器,其中所述會話狀態(tài)信息緩存部件與所述會話管理器之間通過接口傳遞會話狀態(tài)信息及其相關(guān)信息。
9.權(quán)利要求1所述的自適應(yīng)會話壓縮管理器,其中所述壓縮器包括Zipcompressor和Rarcompressor。
10.權(quán)利要求1-9中任何一項(xiàng)所述的自適應(yīng)會話壓縮管理器,還包括解壓縮判斷部件,用于獲取來自所述會話管理器的被指示為要呈現(xiàn)給應(yīng)用的會話狀態(tài)信息,判斷該會話狀態(tài)信息是否經(jīng)過壓縮,以及在該會話狀態(tài)信息經(jīng)過壓縮時(shí),通知相應(yīng)的解壓縮器;以及解壓縮器,用于對會話狀態(tài)信息進(jìn)行解壓縮。
11.一種應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法,包括獲取來自應(yīng)用服務(wù)器中的會話管理器的被指示為需要保存的會話狀態(tài)信息;根據(jù)該會話狀態(tài)信息以及與系統(tǒng)資源狀況有關(guān)的配置信息確定是否對該會話狀態(tài)信息進(jìn)行壓縮;在需要對該會話狀態(tài)信息進(jìn)行壓縮時(shí),根據(jù)該應(yīng)用服務(wù)器的系統(tǒng)資源狀況確定最優(yōu)的壓縮器和最優(yōu)的壓縮方式,對該會話狀態(tài)信息進(jìn)行壓縮;以及將所述會話狀態(tài)信息存儲在會話管理器的指定位置,在該會話狀態(tài)信息經(jīng)過壓縮的情況下,將對其進(jìn)行壓縮的壓縮器的類型信息隨同該會話狀態(tài)信息一起存儲。
12.權(quán)利要求11所述的方法,還包括從一配置文件中獲取由用戶或系統(tǒng)管理員設(shè)置的配置信息。
13.權(quán)利要求12所述的方法,其中所述配置信息包括壓縮閾值、壓縮器和壓縮方式。
14.權(quán)利要求13所述的方法,其中所述壓縮閾值包括關(guān)于會話狀態(tài)信息大小的閾值和關(guān)于應(yīng)用服務(wù)器的系統(tǒng)資源的閾值。
15.權(quán)利要求13所述的方法,其中,所述壓縮方式根據(jù)該應(yīng)用服務(wù)器中CPU的使用率設(shè)定為最佳壓縮、正常壓縮或不進(jìn)行壓縮。
16.權(quán)利要求13所述的方法,其中,所述壓縮方式根據(jù)該應(yīng)用服務(wù)器中內(nèi)存的使用率設(shè)定為快速壓縮、正常壓縮或最佳壓縮。
17.權(quán)利要求11-16中任何一項(xiàng)所述的方法,還包括獲取來自所述會話管理器的被指示為要呈現(xiàn)給應(yīng)用的會話狀態(tài)信息;判斷該會話狀態(tài)信息是否經(jīng)過壓縮;以及在該會話狀態(tài)信息經(jīng)過壓縮時(shí),根據(jù)與該會話狀態(tài)信息一起存儲的壓縮器的類型信息,利用相應(yīng)的解壓縮器對該會話狀態(tài)信息進(jìn)行解壓縮。
18.一種自適應(yīng)會話管理系統(tǒng),包括會話管理器,用于對用戶與應(yīng)用的會話狀態(tài)信息進(jìn)行管理和維護(hù);會話狀態(tài)信息呈遞部件,用于在上述會話管理器與應(yīng)用之間傳遞用戶的會話狀態(tài)信息;接口單元,用戶或該應(yīng)用服務(wù)器的系統(tǒng)管理員通過該接口在配置文件中設(shè)置配置信息;以及權(quán)利要求1-10中任一項(xiàng)的應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理器。
全文摘要
本發(fā)明提供了一種應(yīng)用服務(wù)器中的自適應(yīng)會話壓縮管理方法及壓縮管理器,該壓縮管理方法包括獲取來自應(yīng)用服務(wù)器的會話管理器的被指示為需要保存的會話狀態(tài)信息;根據(jù)該會話狀態(tài)信息以及與系統(tǒng)資源狀況有關(guān)的配置信息確定是否對該會話狀態(tài)信息進(jìn)行壓縮;在需要對該會話狀態(tài)信息進(jìn)行壓縮時(shí),根據(jù)該應(yīng)用服務(wù)器的系統(tǒng)資源狀況確定最優(yōu)的壓縮器和最優(yōu)的壓縮方式,對該會話狀態(tài)信息進(jìn)行壓縮;以及,將所述會話狀態(tài)信息存儲在會話管理器的指定位置,在該會話狀態(tài)信息經(jīng)過壓縮的情況下,將對其進(jìn)行壓縮的壓縮器的類型信息隨同該會話狀態(tài)信息一起存儲。本發(fā)明確定適當(dāng)?shù)臅r(shí)間和適當(dāng)?shù)姆绞綄捫畔⑦M(jìn)行壓縮,能夠極大地提高應(yīng)用服務(wù)器的性能和能力。
文檔編號H04L29/06GK1901537SQ20051008530
公開日2007年1月24日 申請日期2005年7月22日 優(yōu)先權(quán)日2005年7月22日
發(fā)明者唐威鋒 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
永安市| 五河县| 沛县| 南川市| 乳源| 潢川县| 怀来县| 津市市| 宜兰县| 西城区| 兰西县| 南皮县| 龙泉市| 松江区| 内丘县| 江川县| 沅陵县| 永清县| 安乡县| 宁陕县| 房山区| 蛟河市| 宁都县| 商水县| 界首市| 崇阳县| 永善县| 栾城县| 中西区| 甘洛县| 中牟县| 同德县| 开远市| 渝中区| 扶沟县| 梁山县| 山西省| 新兴县| 常宁市| 长海县| 安岳县|