連接會話的保留的制作方法
【專利說明】連接會話的保留
[0001 ] 背景
[0002]在通信環(huán)境中,客戶端/服務器關(guān)系常被用來互聯(lián)可能跨不同遠程位置分布的服務。通常,用戶可在客戶端設備上本地地執(zhí)行應用而該應用可從通過網(wǎng)絡連接至客戶端設備的遠程服務器檢索數(shù)據(jù)。在示例場景中,在客戶端設備和服務器之間建立連接之后,應用可將請求轉(zhuǎn)發(fā)給服務器,且服務器可進而向數(shù)據(jù)庫發(fā)送請求以檢索所請求的數(shù)據(jù)和信息。服務器可將所檢索的數(shù)據(jù)返回給客戶端設備,客戶端設備可向用戶顯示該信息并使得該用戶能夠與該數(shù)據(jù)交互。
[0003]通信協(xié)議被用來促成本地客戶端與遠程服務器之間的通信。一些協(xié)議可能需要與服務器的持久連接以用于通信、認證和交換數(shù)據(jù)。如果連接丟失,則客戶端可重連,但是客戶端必須與服務器建立新會話。其它協(xié)議不需要持久連接,而是改為周期性地連接到服務器(例如輪詢)以用于通信、認證和交換數(shù)據(jù)。然而,在每次輪詢期間或者如果客戶端和服務器之間使用輪詢協(xié)議的連接丟失,則客戶端必須與服務器建立新會話。相應地,客戶端必須在每次客戶端和服務器之間的連接丟失時建立新會話。
[0004]各實施例正是對于這些和其它一般考慮事項而做出的。而且,盡管討論了相對具體的問題,但是應當理解,各實施例不應被限于解決本【背景技術(shù)】中所標識的具體問題。
【發(fā)明內(nèi)容】
[0005]概括而言,本公開涉及跨斷開連接時間段在客戶端和服務器之間維持會話。具體而言,本公開一般涉及用于在斷開連接時間段之后連接至先前創(chuàng)建的會話的方法和系統(tǒng)??蛻舳吮慌渲贸删哂锌绮煌B接性狀態(tài)維持或建立持久會話的能力。
[0006]在第一方面,一種方法包括跨斷開連接時間段在客戶端和服務器之間維持會話以通過網(wǎng)絡交換數(shù)據(jù)。該方法包括:
[0007]基于斷開連接條件確定所述服務器和所述客戶端之間的斷開連接有暫停資格;
[0008]基于所述確定在第一重連嘗試期間向所述服務器發(fā)送上下文標識符;以及
[0009]響應于被發(fā)送的上下文標識符從所述服務器接收所述會話的狀態(tài)。
[0010]在第二方面中,一種系統(tǒng)包括計算系統(tǒng),該計算系統(tǒng)具有至少部分由計算設備執(zhí)行的用于與服務器進行數(shù)據(jù)交換的客戶端。此外,計算設備具有可編程電路和包含計算機可執(zhí)行指令的存儲器。所述計算機可執(zhí)行指令在被執(zhí)行時使得所述計算系統(tǒng)基于斷開連接條件確定所述服務器和所述客戶端之間的斷開連接有暫停足夠,在第一重連嘗試期間向所述服務器發(fā)送上下文標識符,以及基于響應于該上下文標識符接收到從所述服務器發(fā)送的會話的有效狀態(tài)來恢復與所述服務器的所述會話。
[0011]在第三方面,揭示了包括存儲于其上的計算機可執(zhí)行指令的計算機可讀存儲介質(zhì)。所述計算機可執(zhí)行指令在被計算系統(tǒng)執(zhí)行時使得所述計算系統(tǒng)執(zhí)行一種方法。該方法包括:
[0012]通過網(wǎng)絡連接在與服務器的會話中交換數(shù)據(jù);
[0013]從所述服務器接收標識所述會話的上下文標識符;
[0014]存儲所述上下文標識符;
[0015]基于斷開連接條件確定斷開連接有暫停資格;
[0016]在第一重連嘗試期間向所述服務器發(fā)送回所述上下文標識符;
[0017]響應于所發(fā)送的上下文標識符從所述服務器接收所述會話的有效狀態(tài);
[0018]恢復所述會話,其中所述會話提供對在斷開連接之前訪問的任何資源的訪問。
[0019]所述斷開連接條件是以下的至少一個:休眠、接口的改變、連接性的喪失、密碼過期、服務器請求扼流、以及無連接性。
[0020]提供本概述以便以簡化的形式介紹將在以下的詳細描述中進一步描述的一些概念。本
【發(fā)明內(nèi)容】
并不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護的主題的范圍。
[0021]附圖簡述
[0022]參考以下附圖描述非限制性和非窮盡的實施例,其中:
[0023]圖1解說了根據(jù)一示例實施例的其中客戶端可通過網(wǎng)絡訪問生產(chǎn)力和通信服務的示例性系統(tǒng);
[0024]圖2解說了根據(jù)一示例實施例的采用HTTP協(xié)議的客戶端和服務器之間的示例性數(shù)據(jù)交換系統(tǒng)。
[0025]圖3解說了根據(jù)一示例實施例的用于采用HTTP協(xié)議建立會話的客戶端和服務器之間的示例性數(shù)據(jù)交換系統(tǒng);
[0026]圖4解說了根據(jù)一示例實施例的用于在客戶端和服務器之間建立會話以通過網(wǎng)絡交換數(shù)據(jù)并且在斷開連接之后還原先前建立的會話的示例方法;
[0027]圖5解說了根據(jù)一示例實施例的用于在斷開連接時間段之后恢復會話的示例性方法;
[0028]圖6解說了根據(jù)一示例實施例的用于在圖5中解說的重連嘗試期間在客戶端和服務器之間建立新會話的示例性方法;
[0029]圖7是解說可用來實施本公開的各實施例的計算設備的示例物理組件的示例的框圖;
[0030]圖8A和SB是可用來實施本公開的各實施例的移動計算設備的簡化框圖;以及[0031 ]圖9是可在其中實施本公開的各實施例的分布式計算系統(tǒng)的簡化框圖。
[0032]詳細描述
[0033]在下面的詳細描述中,參考構(gòu)成其一部分的附圖,在附圖中,通過例圖,示出了具體的實施例或示例??梢詫⑦@些方面組合起來,也可以理由其他方面,并且可以作出結(jié)構(gòu)上的改變而在不背離本公開的精神或范圍。因此,下面的【具體實施方式】不應以限制性的意義來理解,而是本公開的范圍是由所附權(quán)利要求及其等效方案來定義的。
[0034]貫穿本說明書,術(shù)語“平臺”可以是用于通過客戶端和服務器之間的協(xié)議以及通過網(wǎng)絡提供數(shù)據(jù)交換的軟件和硬件組件的組合。平臺的示例包括、但不限于:在多個服務器上執(zhí)行的主存服務、在單個計算設備上執(zhí)行的應用、及類似的系統(tǒng)。術(shù)語“服務器”一般是指一般在聯(lián)網(wǎng)環(huán)境中執(zhí)行一個或多個軟件程序的計算設備。然而,服務器也可以被實現(xiàn)為在一個或多個計算設備上執(zhí)行的虛擬服務器(軟件程序),所述虛擬服務器被視為網(wǎng)絡上的服務器。以下提供了關(guān)于這些技術(shù)和示例操作的更多細節(jié)。
[0035]如以上簡要描述的,本公開的各實施例涉及在斷開連接之后維持客戶端和服務器之間的會話。具體而言,本公開一般涉及用于在斷開連接之后連接至先前創(chuàng)建的會話的方法和系統(tǒng)??蛻舳吮慌渲贸删哂锌绮煌B接性狀態(tài)維持或建立持久會話的能力。
[0036]在通信環(huán)境中,客戶端/服務器關(guān)系常被用來互聯(lián)可能跨不同遠程位置分布的服務。通常,用戶可在客戶端設備上本地地執(zhí)行應用而該應用可從通過網(wǎng)絡連接至客戶端設備的遠程服務器檢索數(shù)據(jù)。協(xié)議可被用來促成客戶端和服務器之間對數(shù)據(jù)的通信、認證和交換。一些協(xié)議可要求與服務器的持久連接而一些協(xié)議可周期性地連接到服務器以用于通信、認證和交換數(shù)據(jù)。在數(shù)據(jù)交換期間,會話被創(chuàng)建并存儲在服務器內(nèi)。會話(也被稱為上下文)在本文中被用來指代在客戶端和服務器之間的數(shù)據(jù)交換期間被客戶端訪問或請求的一個或多個服務器資源。在斷開連接之后,服務器保留會話達預定時間量。在該預定時間量之后,服務器刪除該會話或使該會話失效。
[0037]先前采用的協(xié)議和/或應用需要客戶端在連接之后建立新會話。換言之,客戶端必須重新開始會話來訪問該服務器上的該應用所必需的資源。先前,客戶端不能夠重連到服務器上的保留的會話且必須使被訪問(諸如被打開)的客戶端側(cè)資源失效或刪除該客戶端側(cè)資源。相應地,由最終用戶和/或客戶端在斷開連接之前作出但在斷開連接之前未被保存的任何編輯或改變丟失且不被保存。例如,如果用戶正在起草尚未被保存的電子郵件,則在網(wǎng)絡斷開連接之際,被起草的電子郵件在重連之后丟失或不能被保存和/或恢復。
[0038]為了解決上述限制,本公開的各實施例允許客戶端跨越斷開連接與服務器維持或建立持久會話。在一斷開連接時間段上,持久會話可保留活動。如此,本文公開的實施例允許客戶端重連至服務器,且在這樣做時,提供對服務器上的先前創(chuàng)建的會話的訪問。在各實施例中,客戶端在數(shù)據(jù)交換期間和/或在會話創(chuàng)建之際從服務器接收標識被創(chuàng)建的會話的會話標識符或上下文標識符。在各實施例中,數(shù)據(jù)通信協(xié)議(在本文中也被稱為“協(xié)議”)可包括但不限于:遠程過程調(diào)用(RPC)協(xié)議、超文本傳輸(HTTP)協(xié)議、郵局協(xié)議(POP3)、因特網(wǎng)消息訪問協(xié)議(IMAP)等。本領(lǐng)域技術(shù)人員將領(lǐng)會,任何類型的通信協(xié)議可以與本文公開的各實施例一起使用。客戶端可利用會話標識符或上下文標識符來與服務器斷開連接。上下文標識符或會話標識符認證客戶端并提供對在客戶端和服務器之間的先前連接中的會話期間被訪問的資源(諸如對象)的訪問。相應地,在暫停之后恢復服務器和客戶端之間的連接在與先前所利用的需要建立新會話的連接過程相比時需要更少的時間和帶寬。
[0039]然而,在各實施例中,并非所有斷開連接條件均允許或能理想地使用會話標識符或上下文標識符進行重連。在各實施例中,有資格使用上下文標識符來恢復會話的斷開連接條件在本文中被稱為暫停。沒有資格使用上下文標識符來恢復會話的斷開連接條件在本文中被稱為完全斷開連接或完全被斷開連接。在各實施例中,各種場景可決定連接是暫停還是完全斷開連接。相應地,本文描述的實施例允許客戶端確定斷開連接是否有資格使用上下文標識符來與所建立的會話重連。本文公開的實施例可操作以基于斷開連接條件確定斷開連接是否有暫停資格。斷開連接條件可以是引起斷開連接的事件或者斷開連接時的數(shù)據(jù)交換狀態(tài)。
[0040]在各實施例中,暫停狀態(tài)可在其中所需要的均是輕量級操作的場景下使用,諸如,舉例而言,不需要對服務器側(cè)函數(shù)的調(diào)用的情形。相應地,當客戶端從暫停狀態(tài)中恢復時,服務器會話和相關(guān)聯(lián)的資源仍舊有效且可訪問(例如,因為在客戶端從服務器斷開連接時它們尚未被修改或刪除)。因為資源仍舊有效,所以在重連至服務器之前不需要客戶端使客戶端側(cè)資源無效或刪除客戶端側(cè)資源。
[0041]圖1解說了根據(jù)本文公開的一些實施例的示例系統(tǒng)100,其中客戶端設備102可通過網(wǎng)絡訪問生產(chǎn)力和/或通信服務。圖1中示出的計算設備和計算環(huán)境是出于圖示目的。本領(lǐng)域技術(shù)人員將領(lǐng)會,本文公開的實施例可采用各種計算設備和系統(tǒng)的在各種本地、聯(lián)網(wǎng)和類似計算環(huán)境中實現(xiàn)。
[0042]如系統(tǒng)100中所示,客戶端設備102可采用各種不同的應用以交換數(shù)據(jù)和/或與數(shù)據(jù)交互。在客戶端設備執(zhí)行的用于與數(shù)據(jù)交互的示例應用可以是一個或多個生產(chǎn)力應用106(例如,文字處理器、演示文稿應用、電子表格應用等)和一個或多個通信應用104(例如,電子郵件應用、即時消息收發(fā)應用、視頻流傳輸應用等)或需要客戶端設備和服務器通信的任何應用(例如,銀行應用、內(nèi)部公司應用等)。示例客戶端設備102可包括臺式計算機、膝上型計算機、平板計算機、智能手表、可穿戴計算機、移動電話、智能電話、電子白板、和/或其它類似客戶端設備。通信服務和生產(chǎn)力服務也可協(xié)同工作以檢索和交換電子郵件和其它數(shù)據(jù)。此外,盡管圖1解說了單一客戶端設備102和服務器110,本領(lǐng)域技術(shù)人員將領(lǐng)會,本公開的各實施例可包括與多個服務器110交互的多個客戶端設備。
[0043]示例生產(chǎn)力應用106可被配置成提供對圍繞生產(chǎn)力平臺構(gòu)建的各種服務。在各實施例中,服務器可被本地執(zhí)行或被托管在遠程設備(諸如服務器110)上。一些生產(chǎn)力服務可包括但不限于:協(xié)作應用、企業(yè)管理應用、消息收發(fā)應用、文字處理應用、電子表格應用、數(shù)據(jù)庫應用、演示文稿應用等。生產(chǎn)力服務106可通過從例如遠程服務器110檢索數(shù)據(jù)來提供對與托管在遠程設備上的各種生產(chǎn)力應用相關(guān)聯(lián)的數(shù)據(jù)的訪問。服務器110可通過網(wǎng)絡112被訪問,該網(wǎng)絡可以是有線或無線網(wǎng)絡、或云網(wǎng)絡,且所檢索的數(shù)據(jù)可在執(zhí)行生產(chǎn)力服務106的用戶的本地客戶端設備處加載、操縱或另行訪問。示例性網(wǎng)絡可包括但不限于:蜂窩數(shù)據(jù)網(wǎng)絡、工作區(qū)域網(wǎng)絡(WAN)、局域網(wǎng)(LAN)、以及因特網(wǎng)。
[0044]類似地,示例通信應用104可以是被配置成提供電子郵件、聯(lián)系人管理和/或日歷服務的應用或服務。在各實施例中,通信應用104還可提供一個或多個實時通信平臺,諸如即時消息收發(fā)、音頻/視頻會議以及在場檢測。例如,用戶可使用在客戶端102上執(zhí)行的通信應用104來接收、查看并回復電子郵件。
[0045]通信應用104和生產(chǎn)力應用106所提供的服務和/或功能可被托管在能夠與通信應用104和/或生產(chǎn)力應用106通信或以其他方式交換數(shù)據(jù)的外部服務器處,且用戶可在客戶端設備102本地通過網(wǎng)絡112訪問所提供的服務和/或生產(chǎn)力。此外,數(shù)據(jù)可通過網(wǎng)絡112在本地客戶端設備和服務