專利名稱:用于在客戶機-服務(wù)器網(wǎng)絡(luò)上通信的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
發(fā)明一般涉及在客戶機-服務(wù)器網(wǎng)絡(luò)上通信,更具體地,涉及,允許操作第一客戶機的用戶斷開與服務(wù)器的通信會話,并且,隨后在任何時候從同一個或另一個客戶機重新連到同一會話。
背景技術(shù):
參考圖1,先有技術(shù)熟知的一種聯(lián)網(wǎng)的計算機系統(tǒng)100通常包括客戶機計算機110和服務(wù)器115??蛻魴C計算機110通常是能從服務(wù)器115下載信息的個人計算機。常規(guī)的客戶機110在經(jīng)過網(wǎng)絡(luò)125(如因特網(wǎng)或萬維網(wǎng))的客戶機-服務(wù)器通信信道120上與服務(wù)器115通信。服務(wù)器115還可是一個或更多的能被客戶機110訪問的應(yīng)用程序130的主機。
客戶機110還可包括Web瀏覽器135,用于連接Web和/或從服務(wù)器115下載內(nèi)容,如INTERNET EXPLORE,由位于華盛頓州雷蒙德市的微軟公司(Microsoft Corporation)開發(fā),或NETSCAPENAVIGATOR,由加利福尼亞州芒廷維尤市的網(wǎng)景通信公司(NetscapeCommunications Corporation)開發(fā)。服務(wù)器115通常發(fā)送網(wǎng)頁給客戶機110(如Web瀏覽器135),響應(yīng)來自客戶機110的通信請求。
當(dāng)在因特網(wǎng)125上通信的時候,客戶機110和服務(wù)器115傳統(tǒng)采用超文本傳輸協(xié)議(HTTP)。但是,不幸的是,HTTP是“無狀態(tài)的”協(xié)議。換句話說,每個到服務(wù)器115的訪問通常被服務(wù)器115看作是用戶的第一次訪問。本質(zhì)上,每個通信請求過后,服務(wù)器“忘記”一切。
例如,用戶操作客戶機110,可以在因特網(wǎng)上和服務(wù)器115通信。在這些通信期間,用戶可以用在服務(wù)器115上執(zhí)行的應(yīng)用程序130,例如,進行一些工作。服務(wù)器115還通常存儲和通信相關(guān)聯(lián)的數(shù)據(jù)。隨后,例如當(dāng)用戶不得不離開這個區(qū)域的時候,用戶結(jié)束與服務(wù)器115的通信。作為通信終止的結(jié)果,服務(wù)器115通常刪除和通信相關(guān)聯(lián)的數(shù)據(jù)。當(dāng)用戶隨后回到這個區(qū)域用同一個客戶機110,用戶可以用客戶機110再次與服務(wù)器115通信。如果用戶試圖訪問在以前的通信期間服務(wù)器115存儲的數(shù)據(jù),用戶通常無法訪問,因為,服務(wù)器115由于HTTP無狀態(tài)的本質(zhì)不再存取和以前的通信相關(guān)聯(lián)的數(shù)據(jù)。
這個問題的一種解決方法是建立HTTP會話。HTTP會話通常指,操作客戶機110的單個用戶對網(wǎng)頁的數(shù)個請求的持續(xù)時間。在HTTP會話期間,通常采用Cookie來維持狀態(tài)。例如,服務(wù)器115可以創(chuàng)建和發(fā)送Cookie到Web瀏覽器135以隨后在客戶機110上存儲。在HTTP會話期間,客戶機110通常發(fā)送和用戶Cookie相關(guān)聯(lián)的數(shù)據(jù)到服務(wù)器115,以保持狀態(tài)。
此外,如果服務(wù)器115和應(yīng)用服務(wù)提供商(ASP.NET)模塊(由位于華盛頓州雷蒙德市的微軟公司開發(fā))一起執(zhí)行,ASP.NET模塊通常允許HTTP會話狀態(tài)存儲在服務(wù)器115中。此外,為了隨后的會話狀態(tài)的識別,服務(wù)器115可分配認證Cookie給客戶機110。此外,在客戶機110和服務(wù)器115之間只發(fā)送認證Cookie,而會話狀態(tài)存儲在服務(wù)器115中。
HTTP會話的實現(xiàn)即使用了Cookie,還是經(jīng)常缺乏靈活性和健壯性。例如,Cookie常規(guī)上局限于特定的客戶機110。此外,常規(guī)的HTTP會話,傳統(tǒng)上適合提供簡短服務(wù)的Web應(yīng)用程序130。對于服務(wù)器在其中采用HTTP會話的應(yīng)用程序130,用戶可能不得不在相當(dāng)短的時段內(nèi)沒有中斷地完成任務(wù)。如果用戶在任務(wù)期間空閑太久,服務(wù)器115可能終止會話,再次導(dǎo)致用戶數(shù)據(jù)的損失。
例如,當(dāng)用戶想在線(例如,在因特網(wǎng)125上)購買商品時,用戶用客戶機110登錄到出售其感興趣的商品的網(wǎng)頁。用戶通常經(jīng)過多個屏幕,如用于選擇商品的屏幕和用于輸入個人信息(例如郵寄地址)的屏幕。然后,在某點,用戶來到必需輸入付款信息的屏幕,如信用卡號碼。如果用戶等了很久才提供其信用卡信息,服務(wù)器115經(jīng)常終止通信會話,強制用戶建立另一個與服務(wù)器115的通信會話。在這第二通信會話中,因為客戶機110和服務(wù)器115之間的超時,用戶通常不得不在以后的通信會話中再次重新輸入所有其數(shù)據(jù)。
此外,以前用客戶機110訪問網(wǎng)頁的用戶此后“綁定”到那個客戶機,以利用存儲在客戶機110上的Cookie。因此,有必要增加客戶機110和服務(wù)器115之間的通信會話的靈活性和健壯性。
發(fā)明內(nèi)容
本發(fā)明涉及,允許用戶斷開與Web服務(wù)器的通信會話然后在任何時候、從任何地方和通過任何設(shè)備重新連到同一個會話的方法和系統(tǒng)。因此,減輕了上面提到與通信會話相關(guān)聯(lián)的限制,如在預(yù)先確定的時段內(nèi)完不成任務(wù)丟失數(shù)據(jù)的可能性。此外,因為撤銷了通常和服務(wù)器與客戶機之間的常規(guī)的通信會話相關(guān)聯(lián)的時間限制和客戶機限制,本發(fā)明為通信會話增加了靈活性和健壯性。
一方面,本發(fā)明涉及用于在客戶機-服務(wù)器網(wǎng)絡(luò)上通信的服務(wù)器。服務(wù)器包括接收器,接收第一來自第一客戶機的與服務(wù)器建立通信會話的請求。服務(wù)器還有用戶會話機制,建立用戶會話響應(yīng)第一請求。服務(wù)器另外包括客戶機會話機制,建立第一客戶機會話響應(yīng)第一請求。第一客戶機會話終止后,服務(wù)器在存儲器單元(可能是例如數(shù)據(jù)庫)存儲用戶會話數(shù)據(jù)。接收器還從第二客戶機接收第二與服務(wù)器建立通信會話的第二請求。當(dāng)接收這第二請求時,用戶會話機制重新激活用戶會話。在一個實施例中,用戶會話機制分配狀態(tài)給建立的用戶會話。該狀態(tài)可能是活動狀態(tài)、暫停狀態(tài)或完成狀態(tài)。
在另一方面,本發(fā)明涉及用于在客戶機-服務(wù)器網(wǎng)絡(luò)上進行通信的方法。方法包括步驟通過服務(wù)器接收與所述服務(wù)器建立通信的請求。由用戶操作的第一客戶機發(fā)送請求到服務(wù)器。響應(yīng)接收的請求,建立服務(wù)器和識別的用戶之間的用戶會話。相似地,第一客戶機和服務(wù)器之間的客戶機會話也被建立,以響應(yīng)接收的請求。方法還包括步驟通過服務(wù)器存儲用戶會話數(shù)據(jù),以響應(yīng)客戶機會話的終止。方法還包括步驟通過服務(wù)器接收來自由用戶操作的第二客戶機的與服務(wù)器建立通信的請求,和重新激活用戶會話。
在一個實施例中,請求識別用戶,如用用戶認證證書。方法還可包括從第一客戶機接收終止消息,并且在存儲用戶會話數(shù)據(jù)之前終止第一客戶機和服務(wù)器之間的客戶機會話。在另一個實施例中,服務(wù)器在等待預(yù)先確定的時間后,終止第一客戶機和服務(wù)器之間的客戶機會話,并且存儲用戶會話數(shù)據(jù)。在一些實施例中,方法還包括分配狀態(tài)給建立的用戶會話,如活動、暫?;蛲瓿蔂顟B(tài)。
存儲的用戶會話數(shù)據(jù)可用于,在接收另一個與服務(wù)器建立通信的請求之后,確定和用戶相關(guān)聯(lián)的建立的用戶會話的存在性。在一個實施例中,當(dāng)建立的用戶會話的存在性確定時,重新激活用戶會話。
通過參考下面的附圖描述,可更好地理解本發(fā)明上述的優(yōu)點以及更多的優(yōu)點。圖中,相似的參考字符通常指不同視圖中同樣的部分。此外,附圖不一定按比例,而通常著重說明本發(fā)明的原理。
圖1是先有技術(shù)的客戶機-服務(wù)器網(wǎng)絡(luò)的實施例的方框圖 圖2是具有用戶會話機制的服務(wù)器的客戶機-服務(wù)器網(wǎng)絡(luò)的實施例的方框圖。
圖3是具有用戶會話機制的服務(wù)器的實施例的更詳細的方框圖。
圖4是說明通過服務(wù)器進行的步驟的實施例的流程圖。
圖5是說明通過服務(wù)器進行的建立用戶會話的步驟的實施例的流程圖。
圖6是說明通過服務(wù)器進行的終止客戶機會話的步驟的實施例的流程圖。
圖7是說明通過服務(wù)器進行的重新激活用戶會話的步驟的 圖8是說明分配給用戶會話的狀態(tài)的實施例的狀態(tài)圖。
圖9是說明用戶和客戶機會話的相關(guān)時序的實施例的流程圖。
圖10是說明通過服務(wù)器進行的和圖9的用戶和客戶機會話的相關(guān)時序相關(guān)聯(lián)的步驟的流程圖。
圖11是存儲單元的實施例的更詳細的方框圖。
計算機系統(tǒng)200包括第一客戶機110’、第二客戶機110”(通常在下面表示為客戶機110)和服務(wù)器115。在一個實施例中,每個客戶機110’、110”有各自的Web瀏覽器135’、135”(通常在下面表示為Web瀏覽器135)。雖然以兩個客戶機110’、110”示出,但是計算機系統(tǒng)200可以有任何數(shù)量的客戶機(例如,一、三或五十)。
客戶機110可以是任何個人計算機(如,基于x86系列的、奔騰系列的、680x0系列的、PowerPC、PA-RISC、MIPS系列的微處理器)、智能的或非智能的終端、網(wǎng)絡(luò)計算機、無線設(shè)備、信息裝置、工作站、小型計算機、大型計算機或其它的計算設(shè)備。客戶機110支持的操作系統(tǒng)可包括,來自位于華盛頓州雷蒙德市的微軟公司的WINDOWS系列操作系統(tǒng)的任何成員,MacOS、JavaOS和Unix的各種變體(如Solaris、SunOS、Linux、HP-UX、A/IX和基于BSD的發(fā)布)。
在一個實施例中,為了與服務(wù)器115通信,Web瀏覽器135使用安全套接層(Secure Socket Layer)(SSL)支持。SSL是由加利福尼亞州芒廷維尤市的網(wǎng)景通信公司(Netscape CommunicationsCorporation)開發(fā)的安全的協(xié)議,并且現(xiàn)在是由因特網(wǎng)工程任務(wù)組(Internet Engineering Task Force)(IETF)頒布的標(biāo)準(zhǔn)。Web瀏覽器135可選擇地用其它安全協(xié)議連到服務(wù)器115,例如,但不局限于,由美國中部的洛斯阿爾托斯市的Terisa Systems開發(fā)的安全的超文本傳輸協(xié)議(Secure Hypertext Transfer Protocol)(SHTTP)、基于SSL的HTTP(HTTPS)、由華盛頓州雷蒙德市的微軟公司(MicrosoftCorporation)開發(fā)的專用通信技術(shù)(Private CommunicationTechnology)(PCT)和由IETF頒布的傳輸層安全(Transport LevelSecurity)(TLS)標(biāo)準(zhǔn)。
雖然上面和下面以Web瀏覽器135描述,但是客戶機110可以選擇地不用Web瀏覽器135從服務(wù)器115獲取內(nèi)容。例如,客戶機110可以從服務(wù)器110獲取內(nèi)容,不用訪問Web,而是使用通信設(shè)備或模塊直接與服務(wù)器115通信。此外,雖然用于服務(wù)器115和客戶機110之間通信的協(xié)議在上面和下面描述為HTTP,但是可以使用任何協(xié)議。
如上所述,在一個實施例中,每個客戶機110能通過網(wǎng)絡(luò)125從服務(wù)器115下載內(nèi)容。網(wǎng)絡(luò)125可以是局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或諸如因特網(wǎng)或萬維網(wǎng)(即,Web)的網(wǎng)絡(luò)組成的網(wǎng)絡(luò)。在另一個實施例中,第一客戶機110’和第二客戶機110”通過不同的網(wǎng)絡(luò)與服務(wù)器115通信。具體地,每個客戶機110’、110”可通過各自的經(jīng)過網(wǎng)絡(luò)125的客戶機-服務(wù)器通信信道120’、120”(通常在下面被表示為客戶機-服務(wù)器通信信道120)與服務(wù)器115通信。
通信信道120’、120”的示例實施例包括標(biāo)準(zhǔn)的電話線、LAN或WAN鏈接(例如,T1、T3、56kb、X.25),寬帶連接(ISDN、幀中繼、ATM)和無線連接。通信信道120’、120”上的連接可采用各種通信協(xié)議建立(例如,HTTP、HTTPS、TCP/IP、IPX、SPX、NetBIOS、以太網(wǎng)、RS232、消息傳送應(yīng)用編程接口(messagingapplication programming interface)(MAPI)協(xié)議、實時流協(xié)議(real-timestreaming protocol)(RTSP)、用于用戶數(shù)據(jù)報協(xié)議方案的實時流協(xié)議(RTSPU)、由華盛頓州西雅圖市的RealNetworks股份有限公司開發(fā)的順序網(wǎng)絡(luò)多媒體(Progressive Networks Multimedia)(PNM)、制造消息規(guī)范(manufacturing message specification)(MMS)協(xié)議和直接的異步連接)。
在一個實施例中,服務(wù)器115發(fā)送內(nèi)容(例如,網(wǎng)頁)到客戶機110。服務(wù)器115可以是任何能與客戶機110通信的個人計算機,例如上述的那些關(guān)于客戶機110的計算機。此外,服務(wù)器115能支持任何操作系統(tǒng),例子也同樣在上面為客戶機110給出。
在一個實施例中,服務(wù)器115是由客戶機110可用的應(yīng)用程序130的主機。這種應(yīng)用程序的例子包括,諸如MICROSOFT WORD的字處理程序和諸如MICROSOFT EXCEL的電子表格程序(這兩個程序都是華盛頓州雷蒙德市的微軟公司(Microsoft Corporation)制作的)、財務(wù)報表程序、客戶注冊程序、提供技術(shù)支持信息的程序、客戶數(shù)據(jù)庫應(yīng)用程序和應(yīng)用程序集合管理器。
服務(wù)器115還包括用戶會話機制205。用戶會話機制205建立和管理服務(wù)器115和用戶之間的一個或更多的用戶會話。在一個實施例中, 用戶會話包括一系列的源自同一識別用戶的HTTP請求。在一些實施例中,請求被提交給應(yīng)用程序130。因為建立用戶會話的請求源自同一個用戶而不是同一個Web瀏覽器135(并且因此不是同一個客戶機),所以用戶會話機制205可以維持與同一用戶的來自不同Web瀏覽器和/或來自不同客戶機的單個用戶會話。此外,用戶會話機制205可以建立和維持多個在同一個和多個客戶機110上的服務(wù)器115與用戶之間的用戶會話。
在一個實施例中,用戶會話機制205是在服務(wù)器115內(nèi)部執(zhí)行的軟件模塊。用戶會話機制205也可以是外部的軟件模塊, “插入”服務(wù)器115以增加服務(wù)器115的用戶會話能力。不像HTTP會話被時間限制,特定用戶和用戶會話機制205之間的用戶會話不依賴于任何時間周期。在更多的實施例中,用戶會話機制205’作為應(yīng)用程序130的一部分執(zhí)行,例如應(yīng)用程序130的子例程或過程。
服務(wù)器115還可以是服務(wù)器場210或服務(wù)器網(wǎng)絡(luò)的成員,它是一個或更多個服務(wù)器的邏輯組,作為單個實體被管理。在一個實施例中,服務(wù)器場210包括三個Web服務(wù)器115、115’、115”(通常115)。雖然圖2所示的實施例有三個Web服務(wù)器115,但是服務(wù)器場210可以有任何數(shù)量的服務(wù)器。在其它的實施例中,服務(wù)器場210是保護的網(wǎng)絡(luò),未授權(quán)的個人不能訪問,例如公司的內(nèi)部網(wǎng)、虛擬專用網(wǎng)(VPN)或安全的外部網(wǎng)。此外,組成服務(wù)器場210的服務(wù)器可以在上述的任何網(wǎng)絡(luò)(例如,WAN,LAN)上用任何所討論的協(xié)議通信。
關(guān)于服務(wù)器115的更詳細地,還參考圖3,在一個實施例中,服務(wù)器115包括接收器305、客戶機會話機制310、存儲器單元315、用戶會話機制205和應(yīng)用程序130。這些部件允許服務(wù)器115創(chuàng)建和維持用戶會話,即使在終止建立的客戶機會話之后。
具體地,在一個實施例中,接收器305是軟件模塊,接收一個或更多個來自客戶機110的與服務(wù)器115建立通信會話的請求320。因此,在一個實施例中,請求320提交給接收器305。請求300可能是,例如,登錄并使用諸如MICROSOFT WORD的應(yīng)用程序130的請求。在一個實施例中,接收器305在應(yīng)用程序130內(nèi)部執(zhí)行。在其它的實施例中,接收器305是在服務(wù)器115或服務(wù)器115的另一個模塊的一部分上(例如,用戶會話機制205)獨立地執(zhí)行的軟件模塊。
服務(wù)器115還包括與接收器305通信的客戶機會話機制310??蛻魴C會話機制310是建立和管理服務(wù)器115和客戶機110之間的HTTP通信會話的軟件模塊。作為該管理的一部分,客戶機會話機制310存儲和維持和客戶機110和服務(wù)器115之間的每個通信會話相關(guān)聯(lián)的會話數(shù)據(jù)。在一個實施例中,客戶機會話機制310在存儲器單元315存儲會話數(shù)據(jù)。
存儲器單元315可以是任何標(biāo)準(zhǔn)的存儲器設(shè)備,例如,動態(tài)RAM(DRAM)、靜態(tài)RAM(SRAM)、同步DRAM(SDRAM)、雙倍數(shù)據(jù)速率同步動態(tài)RAM(DDR SDRAM)、電可擦除可編程只讀存儲器(EEPROM)或可編程只讀存儲器(PROM)。存儲器單元315可以放在服務(wù)器315的內(nèi)部或外部。另外的存儲器單元315例子包括永久數(shù)據(jù)庫(例如,永久用戶會話數(shù)據(jù)庫)、磁盤、或磁光驅(qū)動器。在一些實施例中,應(yīng)用程序130也在存儲器單元315訪問和存儲信息。
如下更詳細地描述,在一個實施例中,客戶機會話機制310可創(chuàng)建客戶機會話對象325,用于存儲和與一個或更多的客戶機會話相關(guān)聯(lián)的會話數(shù)據(jù)。此外,用戶會話機制205還創(chuàng)建用戶會話對象330,用于存儲與一個或更多的用戶會話相關(guān)聯(lián)的會話數(shù)據(jù)。
在建立客戶機會話之后的某點,服務(wù)器115將終止通信會話。在一個實施例中,通信會話的終止是響應(yīng)指定的終止消息。在一些實施例中,終止消息由客戶機110發(fā)送,或者響應(yīng)客戶機110上的用戶進行的動作,例如,當(dāng)用戶關(guān)閉Web瀏覽器135的時候。選擇地,當(dāng)服務(wù)器115在預(yù)先確定的時段沒有接收來自用戶110的關(guān)于客戶機通信會話的任何信息,可接收終止消息。換句話說,當(dāng)客戶機110的用戶保持空閑太久的時候,服務(wù)器115可終止客戶機會話。
一旦客戶機會話結(jié)束,服務(wù)器115通常丟棄會話數(shù)據(jù),因為通信會話結(jié)束。但是,為了允許用戶在以后從同樣的或不同的客戶機110回到其通信會話,在客戶機會話終止之后,用戶會話機制205維持會話數(shù)據(jù)。
此外,軟件模塊130、205、305、310、315、325、330的任何組合可組合為單個模塊。例如,用戶會話機制205和客戶機會話機制310可并入單個會話機制335。此外,任何或所有軟件模塊130、205、305、310、315、325、330和335可放在服務(wù)器115的內(nèi)部或外部。
作為由服務(wù)器115進行的步驟的縱覽,并且還參考圖4,接收器305接收(步驟405)來自第一客戶機110’的與服務(wù)器建立通信會話的請求320,例如,訪問應(yīng)用程序130。在一個實施例中,一旦接收器305接收請求320,然后,用戶會話機制205建立(步驟410)操作第一客戶機110’的用戶與服務(wù)器115之間的用戶會話。
然后,服務(wù)器115建立(步驟415)第一客戶機110’與服務(wù)器115之間的客戶機會話。如上所述,客戶機會話機制310存儲與客戶機會話相關(guān)聯(lián)的在客戶機會話期間的會話數(shù)據(jù)??蛻魴C會話機制310在客戶機會話期間繼續(xù)存儲會話數(shù)據(jù)直到服務(wù)器115確定,在步驟420,終止客戶機會話(例如,響應(yīng)超時或終止消息的接收)。在這種確定時,服務(wù)器115終止(步驟425)客戶機會話,并且用戶會話機制205接管了存儲用戶會話數(shù)據(jù)的責(zé)任。
然后,服務(wù)器115接收(步驟430)來自第二客戶機110”的繼續(xù)用戶的通信會話的請求。然后,用戶會話機制205重新激活(步驟435)用戶會話。盡管終止了以前的客戶機會話,用戶會話的重新激活允許用戶在不同的機器(例如,第二客戶機110”)上和不同的時間繼續(xù)其工作。
關(guān)于建立用戶會話更詳細地,并且參考圖5,在服務(wù)器115接收來自第一客戶機110’的建立用戶會話的請求(如上所述在步驟405)之后,服務(wù)器115在建立用戶會話之前,在步驟510-520認證用戶。認證過程包括服務(wù)器115請求(步驟510)用戶的證書,例如用戶的登錄名和口令。在一個實施例中,用戶在第一客戶機110’的Web瀏覽器135’的顯示上輸入其證書,并且Web瀏覽器135’發(fā)送該信息到服務(wù)器115。在其它的實施例中,Web瀏覽器135’自動發(fā)送該信息到服務(wù)器115用于用戶驗證。在另外其它的實施例中,服務(wù)器115通過聲音辨認和通過生物計量信息(例如,面孔辨認或眼睛掃描)驗證用戶。
服務(wù)器115等待接收用戶證書(步驟515),然后確定服務(wù)器啟115是否認可接收的用戶證書(步驟520)。在一個實施例中,服務(wù)器115用其存儲在存儲器單元315中的用戶證書列表來檢驗接收的用戶證書。如果在步驟520,服務(wù)器115不認可用戶(例如,服務(wù)器115未認可接收的用戶證書),服務(wù)器115重復(fù)請求用戶的證書。在一個實施例中,服務(wù)器115在終止其與第一客戶機110’的通信之前,只請求用戶的證書固定的次數(shù)。如果在步驟515,服務(wù)器115在預(yù)先確定的時間未接收任何用戶證書,服務(wù)器115也可終止其與第一客戶機110’的通信。
如果在步驟520,服務(wù)器115認可用戶證書,并且因此識別用戶,然后服務(wù)器115創(chuàng)建認證Cookie(步驟525),用于建立與第一客戶機110’的客戶機會話。在一個實施例中,服務(wù)器115傳送認證Cookie到第一客戶機110’,例如,作為一個或更多個HTTP報頭的一部分。此外,在一些實施例中,服務(wù)器115還保留了在認證Cookie中發(fā)送的數(shù)據(jù)的副本為將來用于識別用戶。在一個實施例中,服務(wù)器115然后創(chuàng)建和認證Cookie(步驟530)相關(guān)聯(lián)的客戶機會話對象325。因此,在第一客戶機110’與服務(wù)器115之間的客戶機通信會話期間,服務(wù)器115存儲和客戶機會話相關(guān)聯(lián)的會話數(shù)據(jù)在客戶機會話對象325中。
在步驟535,服務(wù)器115還創(chuàng)建和以前在步驟510-520認證的用戶相關(guān)聯(lián)的用戶會話對象330。然后,服務(wù)器115把客戶機會話和用戶會話相關(guān)聯(lián)(步驟540),以便對同一用戶,用戶會話和客戶機會話有關(guān)。在一個實施例中,服務(wù)器115通過連接客戶機會話對象325和用戶會話對象330來關(guān)聯(lián)客戶機會話和用戶會話。在另一個實施例中,服務(wù)器115通過維持客戶機會話標(biāo)識符與用戶會話標(biāo)識符之間的映射來關(guān)聯(lián)客戶機會話和用戶會話。在一個實施例中,服務(wù)器115關(guān)聯(lián)對象325、330,以便服務(wù)器115在客戶機會話對象325存儲的數(shù)據(jù)對用戶會話對象330是可存取的,即使是在客戶機會話終止之后。
在一個實施例中,當(dāng)在用戶會話機制205創(chuàng)建用戶會話之后接收隨后的建立通信會話的請求320的時候,服務(wù)器115比較來自請求報頭的認證Cookie和與服務(wù)器115存儲用于將來的用戶識別的Cookie相關(guān)聯(lián)的數(shù)據(jù)。如果來自接收的Cookie的信息和存儲的數(shù)據(jù)匹配,服務(wù)器115把當(dāng)前的請求320和客戶機會話相關(guān)聯(lián)。在一個實施例中,這種關(guān)聯(lián)包括在用戶以前創(chuàng)建的和使用的同樣的用戶會話中創(chuàng)建客戶機會話。
關(guān)于在與第一客戶機110’的客戶機會話終止時服務(wù)器115進行的步驟更詳細地,并且也參考圖6,服務(wù)器115在確定接收終止消息后,從HTTP報頭除去認證Cookie(步驟605)。然后,服務(wù)器115傳遞(步驟610)以前存儲在客戶機會話對象325中的客戶機會話數(shù)據(jù)到用戶會話對象330,使得盡管終止了與第一客戶機110’的客戶機會話,用戶仍能在以后的時間存取同樣的會話數(shù)據(jù)。在步驟615,服務(wù)器除去了用戶會話與客戶機會話之間的關(guān)聯(lián)。在一個實施例中,服務(wù)器115刪除客戶機會話對象325。
參考圖7,如上在圖4簡述的(步驟430和435),在服務(wù)器確定終止與第一客戶機110’的客戶機會話之后,用戶可發(fā)送來自第二客戶機110”的請求以重新激活同樣的用戶會話(步驟705)。這可能發(fā)生,例如,如果從其辦公室的計算機連到服務(wù)器115的用戶現(xiàn)在出差。用戶可能更喜歡繼續(xù)以前在其辦公室計算機上建立的通信會話,但是用戶可能在其旅途上只能使用膝上型電腦(例如,第二客戶機110”)。在這種情形下,用戶可使用,例如,他的膝上型電腦向服務(wù)器115發(fā)送代表用戶期望重新激活以前的用戶會話的請求。
在步驟710,在允許存取在以前的通信會話中創(chuàng)建的會話數(shù)據(jù)之前,服務(wù)器115認證用戶。上面參考圖5的步驟510-520更詳細地描述了該認證過程。一旦認證用戶,服務(wù)器然后創(chuàng)建認證Cookie(步驟715),也在上面圖5的步驟525中描述。服務(wù)器115還創(chuàng)建客戶機會話對象325,以建立服務(wù)器115與第二客戶機110”之間的新的客戶機會話(步驟720)。
在一個實施例中,服務(wù)器115然后搜索存儲器單元315找與用戶的證書(例如,用戶的名字、用戶的口令或任何其它的用戶標(biāo)識符)相關(guān)聯(lián)的用戶會話對象330。關(guān)聯(lián)的用戶會話數(shù)據(jù)和用戶會話定位(步驟725)后,然后,服務(wù)器115把客戶機會話和用戶會話相關(guān)聯(lián)(步驟730)。然后,服務(wù)器115檢索和傳遞(步驟735)以前在圖6的步驟610中發(fā)送到用戶會話對象330的會話數(shù)據(jù)到客戶機會話對象325,以允許客戶機會話機制310管理和更新會話數(shù)據(jù)。
關(guān)于用戶會話更詳細地,并且參考圖8,在一個實施例中,用戶會話機制205分配狀態(tài)給用戶會話,以在用戶通信會話期間維持狀態(tài)。分配一個狀態(tài)給用戶會話允述再次激活用戶會話。具體地,用戶會話機制可分配活動狀態(tài)805、暫停狀態(tài)810、或完成狀態(tài)815給用戶會話。
在一個實施例中,用戶會話開始于活動狀態(tài)805。只要客戶機110和服務(wù)器115之間的客戶機會話建立,用戶會話就在活動狀態(tài)805。因此,在一個實施例中,用戶會話機制205分配用戶一個活動狀態(tài)805響應(yīng)開始事件820。開始事件820的一個例子包括接收來自客戶機110的與服務(wù)器115建立用戶通信的請求,如在上面步驟405(圖4)所述。用戶會話機制205維持用戶會話在活動狀態(tài)805,直到斷開事件825(例如,終止消息)發(fā)生。當(dāng)服務(wù)器115經(jīng)歷了斷開事件825,用戶會話機制205重新分配用戶會話的狀態(tài),從活動狀態(tài)805到暫停狀態(tài)810。此后,當(dāng)服務(wù)器收到繼續(xù)事件830(例如,來自另一個客戶機上的同一個用戶的繼續(xù)以前的用戶會話的請求),用戶會話機制205重新分配用戶會話的狀態(tài),從暫停狀態(tài)810回到活動狀態(tài)805。因此,用戶會話機制205可以分配和重新分配用戶會話狀態(tài),從活動狀態(tài)805到暫停狀態(tài)810(和從暫停狀態(tài)810到活動狀態(tài)805),次數(shù)和用戶想要的次數(shù)一樣多。具體地,用戶會話機制205可改變用戶會話的狀態(tài),從活動到暫停和從暫停到活動,次數(shù)和服務(wù)器收到繼續(xù)事件830和/或斷開事件825的次數(shù)一樣多。
此外,如上所述,服務(wù)器115接收結(jié)束事件835之后結(jié)束用戶會話(例如,通過用戶會話終止消息)。當(dāng)接收結(jié)束事件835時,用戶會話機制205轉(zhuǎn)換用戶會話的狀態(tài),從活動狀態(tài)805到完成狀態(tài)815。在一個實施例中,用戶會話狀態(tài)可從暫停狀態(tài)轉(zhuǎn)變到完成狀態(tài)815,以響應(yīng)清除事件840。在一個實施例中,清除事件840是管理員(例如,服務(wù)器115的,用戶會話機制205的,等等)采取的命令或動作。在另一個實施例中,用戶會話狀態(tài)可從暫停狀態(tài)810轉(zhuǎn)變到完成狀態(tài)815,是用于管理程序周期地檢驗暫停會話,以確定是否有暫停會話在預(yù)先確定的時段(例如,一個月)之外保持在暫停狀態(tài)810。如果這樣的暫停會話存在,用戶會話將可能在將來不被用戶激活。因此,管理程序可轉(zhuǎn)變這些會話狀態(tài)到完成狀態(tài)815。
參考圖9和10,示出了用戶會話狀態(tài)變化的時線900和服務(wù)器115進行的關(guān)于用戶會話狀態(tài)的步驟的實施例。服務(wù)器115(即接收器305)接收來自第一客戶機110’的第一開始事件820’(例如,請求與服務(wù)器115建立通信)(步驟1005)。接收到第一開始事件820’后,為了用戶會話機制205檢驗以前和用戶相關(guān)聯(lián)的任何用戶會話(即,處于暫停狀態(tài)810的用戶會話)用的存儲器單元315(例如,永久用戶會話數(shù)據(jù)庫)(步驟1010)。在一個實施例中,這發(fā)生在認證用戶之后,如上所述。如果在步驟1010,用戶會話機制205確定對于識別的用戶不存在用戶會話,用戶會話機制205為用戶創(chuàng)建新的用戶會話(步驟1020),如上參考圖5所述。因此,如上所述,當(dāng)用戶會話機制205創(chuàng)建第一用戶會話時,用戶客戶機會話機制310也創(chuàng)建第一客戶機會話905。此外,客戶機會話機制310創(chuàng)建初始的客戶機會話對象325’,并且分配缺省的用戶會話狀態(tài)給該對象325’。
當(dāng)?shù)谝豢蛻魴C會話905進行時,客戶機會話機制310存儲與第一客戶機會話905相關(guān)聯(lián)的會話數(shù)據(jù)在初始的客戶機會話對象325’中,因此,使得對象325’的狀態(tài)轉(zhuǎn)變到具有第一存儲用戶會話狀態(tài)的初始的第一狀態(tài)客戶機會話對象325”。隨后,服務(wù)器115接收斷開事件825,以終止第一客戶機會話905。在該點,當(dāng)用戶會話機制205轉(zhuǎn)變用戶會話到暫停的狀態(tài)810時,用戶會話機制205還傳遞來自初始的第一狀態(tài)客戶機會話對象325”的會話數(shù)據(jù)到永久用戶會話對象330’(用箭頭910示出)。因此,用戶會話機制205分配第一永久數(shù)據(jù)會話狀態(tài)給永久用戶會話對象330’。
但是,如果用戶會話機制205在步驟1010確定對于識別的用戶存在暫停的用戶會話810,例如在斷開事件825之后收到繼續(xù)事件830(例如,來自第二客戶機110”的請求),服務(wù)器115在做出最近的通信請求的客戶機110(例如,第二客戶機110”)上顯示關(guān)于用戶可用的每個暫停的用戶會話810的信息(步驟1025)。在一個實施例中,用戶會話機制205然后在步驟1030確定,是否用戶更喜歡重新連到暫停的用戶會話810,例如通過從用戶接收輸入。如果服務(wù)器115確定用戶選擇不重新連到暫停的用戶會話,服務(wù)器115在步驟1020創(chuàng)建新的用戶會話。
如果用戶選擇繼續(xù)暫停的用戶會話810,用戶會話機制205等待用戶從顯示的用戶會話中選擇暫停的用戶會話810,如果對于識別的用戶存在不止一個暫停的用戶會話810的話。在一個實施例中,服務(wù)器115認為繼續(xù)事件830是從服務(wù)器顯示的客戶機110(例如,第二客戶機110”)上的暫停的用戶會話810中選擇暫停的用戶會話810。
選擇地,繼續(xù)事件830可以是從第二客戶機110”接收的與服務(wù)器115建立通信會話的直接請求。在這個實施例中,服務(wù)器115不向用戶提供任何選擇。代替地,服務(wù)器115可連到最近暫停的用戶會話810、最早暫停的用戶會話810、或預(yù)先確定的暫停的用戶會話810。在一些實施例中,請求指示了用戶要重新激活哪個用戶會話810。
一旦用戶會話機制205確定用戶會話機制205接收了繼續(xù)事件830,用戶會話機制205轉(zhuǎn)變暫停的用戶會話810到活動的用戶會話805,并且客戶機會話機制310創(chuàng)建第二客戶機會話915。此外,在一個實施例中,用戶會話機制205恢復(fù)來自永久用戶會話對象的會話數(shù)據(jù)在第二第一狀態(tài)客戶機會話對象325中(用箭頭920示出)(步驟1035)。該客戶機會話對象325具有和初始的第一狀態(tài)客戶機會話對象325”在第一客戶機會話905結(jié)束之前具有的一樣的會話數(shù)據(jù)。一旦用戶會話機制205恢復(fù)會話數(shù)據(jù),以前暫停的用戶會話繼續(xù)(步驟1040)。
當(dāng)?shù)诙蛻魴C會話915進行時,客戶機會話機制310保存新的會話數(shù)據(jù)在第二第一狀態(tài)客戶機會話對象325中,因此,客戶機會話對象325轉(zhuǎn)化為具有第二存儲用戶會話狀態(tài)的第二狀態(tài)客戶機會話對象325””。當(dāng)用戶請求結(jié)束用戶會話時,服務(wù)器115接收結(jié)束事件835。在接收終止事件835時,用戶會話機制205然后清空具有第一用戶會話狀態(tài)的永久用戶會話對象330’,因此產(chǎn)生空的永久用戶會話對象330”。如果服務(wù)器115然后接收第二開始事件820”,重復(fù)該過程,例如伴隨著第三客戶機對象925的創(chuàng)建。
在用戶會話機制205更詳細的實施例中,可用任何計算機語言或框架來寫用戶會話機制205。例如,用戶會話機制205,可以是應(yīng)用服務(wù)提供商(ASP.NET)的HTTP模塊或HTTP處理器。在一個實施例中,用戶會話機制205是連在HTTP事件處理器上的HTTP事件模塊。采用ASP.NET的框架,用戶會話機制205可以是加到HTTP運行時間的管線上的HTTP模塊,提供上述的用戶會話能力。
在一個實施例中,用戶會話機制205可預(yù)/后處理提供用戶會話服務(wù)的請求。具體地,在一個實施例中,HTTP模塊通過確定是否有開始或繼續(xù)用戶會話的需要預(yù)處理請求320。HTTP模塊能后處理請求320,以確定用戶是否要求斷開或結(jié)束用戶會話。
服務(wù)器115存儲在存儲器單元315的用戶會話數(shù)據(jù)和客戶機會話數(shù)據(jù)的實施例,如圖11所示??蛻魴C會話對象325包括,例如,應(yīng)用程序模塊1115里的AppID字段1105和App名(AppName)字段1110。在會話模塊1120中,客戶機會話對象325存儲,例如,會話ID(SessionID)字段1122、已創(chuàng)建(Created)字段1125、過期時間(Expires)字段1130、鎖定日期(LockDate)字段1135、鎖定Cookie(LockCookie)字段1140、超時(Timeout)字段1145、已鎖定(Locked)字段1150、會話項短型(SessionItemShort)字段1155和會話項長型(SessionItemLong)字段1160。在一個實施例中,客戶機會話機制310為客戶機會話存儲會話數(shù)據(jù)在這些字段中。在一些實施例中,這些字段是存儲在數(shù)據(jù)庫315中的表的字段。
在一個實施例中,客戶機會話機制310為與客戶機110的客戶機通信會話存儲標(biāo)識符在會話ID(SessionID)字段1122中。已創(chuàng)建(Created)字段1125可存儲客戶機通信會話創(chuàng)建時候的時間標(biāo)記。相似地,過期時間(Expires)字段1130包括客戶機會話過期的時間。鎖定日期(LockDate)字段1135存儲日期,如果有的話,客戶機會話在該日期鎖定,使得該會話不能被訪問。在一個實施例中,鎖定Cookie(LockCookie)字段1140存儲關(guān)于特定的Cookie是否鎖定的布爾值(即,真或假),使得與Cookie相關(guān)聯(lián)的數(shù)據(jù)是不可訪問的(例如,在使用期間,如當(dāng)Cookie正在被更新的時候)。在另一個實施例中,如果會話數(shù)據(jù)鎖定,鎖定Cookie(LockCookie)字段1140包括存儲器單元315中的客戶機會話數(shù)據(jù)的鎖定類型。在一個實施例中,存在三種可能鎖定類型讀鎖定(Read Lock)、寫鎖定(Write Lock)和自旋鎖定(Spin Lock)。在一個實施例中,設(shè)置讀鎖定以允許多個程序同時讀會話數(shù)據(jù)而阻止程序?qū)憰挃?shù)據(jù)。此外,設(shè)置寫鎖定以阻止其它的程序在一個程序正在寫會話數(shù)據(jù)的時候讀和寫會話數(shù)據(jù)。此外,在一個實施例中,設(shè)置自旋鎖定以阻止在一個程序正存取(即,讀或?qū)?會話數(shù)據(jù)的時候存取會話數(shù)據(jù)。超時(Timeout)字段1145存儲因為例如服務(wù)器115未收到輸入而結(jié)束客戶機會話的時間值。在一個實施例中,鎖定(Locked)字段1150是代表數(shù)據(jù)是否鎖定的布爾值,因此,當(dāng)客戶機會話使用(例如,寫和/或讀)會話數(shù)據(jù)時,禁止存取數(shù)據(jù)。會話項短型(SessionItemShort)字段1155和會話項長型(SessionItemLong)字段1160可以是服務(wù)器115存儲會話數(shù)據(jù)的字段。
用戶會話機制205存儲關(guān)于客戶機會話機制310的附加的信息。具體地,用戶會話機制205存儲用戶ID(UserID)字段1165、用戶名(UserName)字段1170和Auth類型(AuthType)字段1175在用戶會話對象330的會話用戶模塊1180中。在一個實施例中,用戶ID(UserID)字段1165包括唯一的用戶標(biāo)識符。用戶名(UserName)字段1170可包括用于識別用戶的名稱。在一些實施例中,Auth類型(AuthType)字段1175包括用于認證用戶的方法,例如通過Web形式、窗口或通行證認證。
用戶會話對象330還可包括活動的會話模塊1185?;顒拥臅捘K1185包括會話ID(SessionID)字段1190、已創(chuàng)建(Created)字段1195和用戶ID(UserID)字段1200。在一個實施例中,會話ID(SessionID)字段119包括唯一的用戶會話標(biāo)識符。已創(chuàng)建(Created)字段1195包括用戶會話機制205創(chuàng)建用戶會話的時間。在一個實施例中,用戶ID(UserID)字段1200包括唯一的與活動的用戶會話有關(guān)的用戶標(biāo)識符。
用戶會話對象330還可包括斷開會話模塊1205。斷開會話模塊1205可包括會話ID(SessionID)字段1210、已創(chuàng)建(Created)字段1215、鎖定Cookie(LockCookie)字段1220、超時(Timeout)字段1225、會話項短型(SessionItemShort)字段1230、會話項長型(SessionItemLong)字段1235、用戶ID字段(UserID)1240和斷開時間(DisconnectTime)字段1245。在一個實施例中,如果會話數(shù)據(jù)鎖定,鎖定Cookie(LockCookie)字段1220包括存儲器單元315中存儲的會話數(shù)據(jù)的鎖定類型(例如,讀鎖定(Read Lock)、寫鎖定(Write Lock)或自旋鎖定(Spin Lock))。超時(Timeout)字段1225包括預(yù)先確定的時間,用于在客戶機110不動作(例如,從客戶機110沒有接收請求320)之后終止客戶機會話。會話項短型(SessionItemShort)字段1230可存儲當(dāng)數(shù)據(jù)比預(yù)先確定數(shù)量的字節(jié)(例如,7000)小的時候的會話數(shù)據(jù)。同樣地,會話項長型(SessionItemLong)字段1235可存儲當(dāng)數(shù)據(jù)比預(yù)先確定的數(shù)量字節(jié)(例如,7000)大的時候的會話數(shù)據(jù)。在一個實施例中,斷開時間(DisconnectTime)字段1245包括用戶會話斷開的時間。
使能用戶會話向最終用戶提供了許多的優(yōu)點。例如,用戶會話向用戶提供了高的可動性,因為用戶可在第一地方開始任務(wù),并且移動到另一個地方繼續(xù)進行任務(wù)。此外,用戶不必為找到正確的地點以繼續(xù)工作而尋遍網(wǎng)絡(luò)應(yīng)用程序130,用戶一登錄進服務(wù)器115就能立即工作。此外,用戶會話能力確保用戶的部分工作不被丟失,即使用戶在有機會暫停應(yīng)用程序130之前不得不離開。對用戶會話也沒有時間限制,并且用戶可使多個用戶會話同時活動,以便用戶能從一個任務(wù)移動到另一個。
相似地,對Web開發(fā)器存在許多優(yōu)點。例如,用戶會話能力簡化了Web應(yīng)用程序能如用戶期望的那么久保持用戶會話數(shù)據(jù)的特征。此外,在一個實施例中,引入用戶會話沒有給Web開發(fā)器增加負擔(dān),因為關(guān)于以與當(dāng)前編程同樣的方式編程會話數(shù)據(jù)存在著高級別的透明度。此外,用戶會話可被任何Web應(yīng)用程序130使用。用戶會話還允許Web開發(fā)器有更大的自由集中在業(yè)務(wù)問題而不是會話數(shù)據(jù)上,潛在地減少了應(yīng)用程序130的開發(fā)時間。
本發(fā)明可作為包含在一個或多個制造產(chǎn)品上或內(nèi)的一個或多個計算機可讀的程序提供。制造產(chǎn)品可能是軟盤、硬盤、CDROM、閃存卡、PROM、RAM、ROM、便攜式存儲設(shè)備或磁帶。通常,計算機可讀的程序可以用任何編程語言實現(xiàn)??捎谜Z言的例子包括C、C++或JAVA。軟件程序可作為對象代碼存儲在一個或多個制造產(chǎn)品上或里。
描述了本發(fā)明的某些實施例,現(xiàn)在,本領(lǐng)域的技術(shù)人員將理解,可使用其它的包含本發(fā)明概念的實施例。因此,本發(fā)明不應(yīng)該被限制在某些實施例,而是應(yīng)該只被下面權(quán)利要求書的精神和保護范圍限制。
權(quán)利要求
1.一種用于在客戶機-服務(wù)器網(wǎng)絡(luò)上通信的方法,所述方法包含以下步驟(a)通過服務(wù)器,接收來自由用戶操作的第一客戶機的與所述服務(wù)器建立通信的請求;(b)響應(yīng)所接收的請求,建立所述服務(wù)器和所識別的用戶之間的用戶會話;(c)響應(yīng)所接收的請求,建立第一客戶機和所述服務(wù)器之間的客戶機會話;(d)通過所述服務(wù)器,存儲用戶會話數(shù)據(jù),響應(yīng)所述客戶機會話的終止;(e)通過所述服務(wù)器,接收來自由所述用戶操作的第二客戶機的與所述服務(wù)器建立通信的請求;以及(f)重新激活所述用戶會話。
2.如權(quán)利要求1所述的方法,其中步驟(a)包含,通過服務(wù)器,接收與所述服務(wù)器建立通信的請求,其中所述請求識別所述用戶。
3.如權(quán)利要求1所述的方法,還包含通過服務(wù)器接收用戶認證證書的步驟。
4.如權(quán)利要求1所述的方法,其中步驟(a)包含,通過服務(wù)器接收與所述服務(wù)器建立通信的超文本傳輸協(xié)議(http)的請求。
5.如權(quán)利要求1所述的方法,其中步驟(d)還包含(d-a)接收來自第一客戶機的終止消息;(d-b)終止第一用戶和所述服務(wù)器之間的客戶機會話;以及(d-c)通過所述服務(wù)器存儲用戶會話數(shù)據(jù),響應(yīng)第一客戶機和所述服務(wù)器之間的客戶機會話的終止。
6.如權(quán)利要求1所述的方法,其中步驟(d)還包含(d-a)等待預(yù)先確定的時段;(d-b)終止第一客戶機和所述服務(wù)器之間的客戶機會話;以及(d-c)通過所述服務(wù)器存儲用戶會話數(shù)據(jù),響應(yīng)第一客戶機和所述服務(wù)器之間的客戶機會話的終止。
7.如權(quán)利要求1所述的方法,其中步驟(d)還包含,通過所述服務(wù)器在數(shù)據(jù)庫中存儲用戶會話數(shù)據(jù),響應(yīng)所述客戶機會話的終止。
8.如權(quán)利要求1所述的方法,還包含分配狀態(tài)給建立的用戶會話的步驟。
9.如權(quán)利要求8所述的方法,其中步驟(b)還包含,分配標(biāo)識符給所建立的用戶會話,指示所述用戶會話是活動的。
10.如權(quán)利要求8所述的方法,其中步驟(f)還包含,分配標(biāo)識符給所述用戶會話,指示所重新激活的用戶會話是活動的。
11.如權(quán)利要求8所述的方法,其中步驟(d)還包含,分配標(biāo)識符給所述用戶會話,指示所述用戶會話暫停。
12.如權(quán)利要求1所述的方法,還包含以下所述步驟(g)接收用戶會話終止消息,以終止所述用戶會話;以及(h)分配標(biāo)識符給所述用戶會話,指示所述用戶會話完成。
13.如權(quán)利要求12所述的方法,還包含刪除所存儲的用戶會話數(shù)據(jù)的步驟。
14.如權(quán)利要求1所述的方法,其中,步驟(e)包含(e-a)通過所述服務(wù)器,接收另一個來自由所述用戶操作的第一客戶機和第二客戶機中的至少一個的與所述服務(wù)器建立通信的請求;以及(e-b)使用所存儲的用戶會話數(shù)據(jù),確定和所述用戶關(guān)聯(lián)的建立的用戶會話的存在性。
15.如權(quán)利要求14所述的方法,還包含以下步驟重新激活所述用戶會話,響應(yīng)確定所建立的用戶會話的存在性。
16.如權(quán)利要求1所述的方法,其中步驟(d)還包含以下步驟通過所述服務(wù)器存儲下列項的至少一項對所述用戶的用戶識別、用于識別所述用戶的名字、代表用于認證所述用戶的方法的方法指示器、所述用戶會話的唯一標(biāo)識符、所述用戶會話創(chuàng)建的時間、所述會話數(shù)據(jù)的鎖定類型、超時、所述會話數(shù)據(jù)和斷開的時間。
17.如權(quán)利要求1所述的方法,其中,步驟(b)還包含(b-a)通過所述服務(wù)器接收來自第一客戶機的用戶證書;(b-b)用所述用戶證書認證所述用戶;(b-c)創(chuàng)建認證Cookie;(b-d)創(chuàng)建和所述認證Cookie關(guān)聯(lián)的客戶機會話對象;(b-e)創(chuàng)建和所述用戶關(guān)聯(lián)的用戶會話對象;以及(b-f)把所述用戶會話和所述客戶機會話相關(guān)聯(lián)。
18.如權(quán)利要求17所述的方法,還包含以下步驟接收來自第一客戶機和第二客戶機中的至少一個的與所述服務(wù)器建立通信的另一個請求。
19.如權(quán)利要求18所述的方法,還包含,在與所述另一個請求建立客戶機會話之前,比較所述另一個請求的報頭中的Cookie和所述服務(wù)器上的Cookie。
20.一種用于在客戶機-服務(wù)器網(wǎng)絡(luò)上通信的服務(wù)器,包含(a)接收器,接收來自第一客戶機的與所述服務(wù)器建立通信會話的第一請求和來自第二客戶機的與所述服務(wù)器建立通信會話的第二請求;(b)與所述接收器通信的用戶會話機制,建立用戶會話,響應(yīng)與所述服務(wù)器建立通信會話的第一請求;(c)與所述接收器通信的客戶機會話機制,建立第一客戶機會話,響應(yīng)與所述服務(wù)器建立通信會話的第一請求;以及(d)存儲器單元,存儲用戶會話數(shù)據(jù),響應(yīng)第一客戶機會話的終止,其中,所述用戶會話機制重新激活所述用戶會話,響應(yīng)所述接收器接收第二請求。
21.如權(quán)利要求20所述的服務(wù)器,其中,所述用戶會話機制包含事件處理器。
22.如權(quán)利要求20所述的服務(wù)器,其中,所述用戶會話機制包含HTTP模塊。
23.如權(quán)利要求20所述的服務(wù)器,其中,所述存儲器單元包含數(shù)據(jù)庫。
24.如權(quán)利要求20所述的服務(wù)器,其中,所述用戶會話機制分配狀態(tài)給建立的用戶會話。
25.如權(quán)利要求24所述的服務(wù)器,其中,所述用戶會話機制分配狀態(tài),該狀態(tài)又由活動狀態(tài)、完成狀態(tài)和暫停狀態(tài)中的至少一個組成。
26.一種用于在客戶機-服務(wù)器網(wǎng)絡(luò)上通信的服務(wù)器,包括(a)用于接收來自由用戶操作的第一客戶機的與所述服務(wù)器建立通信的請求的裝置;(b)用于響應(yīng)所接收的請求而建立和所識別的用戶的用戶會話的裝置;(c)用于響應(yīng)所接受的請求而建立和第一客戶機的客戶機會話的裝置;(d)用于存儲用戶會話數(shù)據(jù)響應(yīng)所述客戶機會話終止的裝置;(e)用于接收來自由所述用戶操作的第二客戶機的與所述服務(wù)器建立通信的請求的裝置;(f)用于重新激活所述用戶會話的裝置。
27.一種具有其中包含的計算機可讀程序裝置的制造產(chǎn)品,所述產(chǎn)品包含(a)計算機可讀程序裝置,用于接收來自第一客戶機的與所述服務(wù)器建立通信會話的第一請求和來自第二客戶機的與所述服務(wù)器建立通信會話的第二請求;(b)計算機可讀程序裝置,用于建立用戶會話,響應(yīng)與所述服務(wù)器建立通信會話的第一請求;(c)計算機可讀程序裝置,用于建立第一客戶機會話,響應(yīng)與所述服務(wù)器建立通信會話的第一請求;以及(d)計算機可讀程序裝置,用于存儲用戶會話數(shù)據(jù),響應(yīng)第一客戶機會話的終止,其中,用于建立用戶會話以響應(yīng)第一請求的計算機可讀程序裝置重新激活所述用戶會話,響應(yīng)所述接收器接收第二請求。
全文摘要
本發(fā)明涉及用于在客戶機-服務(wù)器網(wǎng)絡(luò)上通信的服務(wù)器。服務(wù)器包括接收器,接收來自第一客戶機的第一與服務(wù)器建立通信會話的請求。服務(wù)器還有用戶會話機制,建立用戶會話,響應(yīng)第一請求。服務(wù)器另外包括客戶機會話機制,建立第一客戶機會話,響應(yīng)第一請求。第一客戶機會話終止之后,服務(wù)器在存儲器單元存儲用戶會話數(shù)據(jù),可能是,例如,數(shù)據(jù)庫。接收器還接收來自第二客戶機的第二與服務(wù)器建立通信會話的請求。當(dāng)接收這第二請求時,用戶會話機制重新激活用戶會話。
文檔編號G06F13/00GK1717676SQ200380104577
公開日2006年1月4日 申請日期2003年10月3日 優(yōu)先權(quán)日2002年10月4日
發(fā)明者武志學(xué) 申請人:茨特里克斯系統(tǒng)公司