電子郵件網(wǎng)絡(luò)客戶端通知排隊(duì)的制作方法
【專利說明】電子郵件網(wǎng)絡(luò)客戶端通知排隊(duì)
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求2013年9月17日提交的美國專利申請(qǐng)?zhí)?4/029,113和2013年9月24日提交的美國專利申請(qǐng)?zhí)?4/035,355 (部分繼續(xù)申請(qǐng))的權(quán)益,以上申請(qǐng)的公開內(nèi)容的全部內(nèi)容通過引用并入本文。
【背景技術(shù)】
[0003]通過互聯(lián)網(wǎng)提供的許多服務(wù)(諸如由電子郵件服務(wù)供應(yīng)商所提供的服務(wù))提供了web接口( “網(wǎng)絡(luò)客戶端(webclient)” ),所述web接口允許用戶使用web瀏覽器來與諸如郵件服務(wù)器的服務(wù)器進(jìn)行交互。到郵件服務(wù)器的用戶連接性通過一個(gè)或多個(gè)web服務(wù)器(通常是超文本傳輸協(xié)議(HTTP)服務(wù)器)促成,所述web服務(wù)器響應(yīng)于用戶網(wǎng)頁請(qǐng)求來檢索數(shù)據(jù)。郵件服務(wù)器和web服務(wù)器通常位于數(shù)據(jù)中心或遠(yuǎn)離用戶的一些其他設(shè)施中。冗余性通常被建立在這類系統(tǒng)中,其中冗余服務(wù)器在主服務(wù)器故障的情況下提供服務(wù),并且冗余通信鏈路在一個(gè)或多個(gè)通信鏈路故障的情況下被連接到互聯(lián)網(wǎng)來提供服務(wù)。
[0004]網(wǎng)絡(luò)客戶端不維持到HTTP服務(wù)器或到網(wǎng)絡(luò)客戶端通過HTTP服務(wù)器與其進(jìn)行交互的其他服務(wù)器的持續(xù)連接(例如,傳輸控制協(xié)議(TCP)連接)。因此,從這種服務(wù)器發(fā)送的通知(例如,新的電子郵件通知)可以不由網(wǎng)絡(luò)客戶端所接收,因?yàn)榉?wù)器在觸發(fā)通知的事件之后傳送通知并且在發(fā)送這類通知之前不存儲(chǔ)這類通知或確認(rèn)與網(wǎng)絡(luò)客戶端的連接。一旦發(fā)送,服務(wù)器不保留通知,并且因此對(duì)于網(wǎng)絡(luò)客戶端來說不可能隨后請(qǐng)求在過去已發(fā)送過的通知。因此,網(wǎng)絡(luò)客戶端的用戶可以不接收旨在警告用戶事件發(fā)生的通知。
[0005]當(dāng)用戶使用網(wǎng)絡(luò)客戶端編寫消息(諸如電子郵件消息)時(shí),與消息相關(guān)聯(lián)的數(shù)據(jù)被本地保存在網(wǎng)絡(luò)客戶端內(nèi)部。這種數(shù)據(jù)可以包括收件人地址和文本內(nèi)容。當(dāng)用戶發(fā)送消息或選擇保存消息草稿時(shí),這個(gè)數(shù)據(jù)被發(fā)送至郵件服務(wù)器用于保存和/或處理。在一些系統(tǒng)中,這種消息內(nèi)容被定期自動(dòng)地保存。在消息編寫期間,用戶還可以向消息附加數(shù)據(jù)文件(例如,圖像、音頻文件、視頻文件等),但是這種文件在消息編寫期間不被保存在網(wǎng)絡(luò)客戶端中,并且不被發(fā)送至郵件服務(wù)器直到用戶發(fā)送消息或手動(dòng)地保存消息草稿。當(dāng)在消息編寫期間到為網(wǎng)絡(luò)客戶端服務(wù)的HTTP服務(wù)器的連接性失效時(shí),附件數(shù)據(jù)可能丟失。
【附圖說明】
[0006]在全部附圖中,參考數(shù)字可被再使用來指示所參考元件之間的對(duì)應(yīng)關(guān)系。提供附圖來示出本文所述的示例實(shí)施方案,并且并不意圖限制本公開的范圍。
[0007]圖1示出可實(shí)現(xiàn)本發(fā)明的實(shí)施方案的示例環(huán)境;
[0008]圖2示出可實(shí)現(xiàn)本發(fā)明的實(shí)施方案的另一種示例環(huán)境;
[0009]圖3描繪了根據(jù)各實(shí)施方案的用于HTTP服務(wù)器的示例操作程序;
[0010]圖4描繪了根據(jù)各實(shí)施方案的用于HTTP服務(wù)器的示例操作程序;
[0011]圖5描繪了根據(jù)各實(shí)施方案的用于HTTP服務(wù)器的示例操作程序;
[0012]圖6描繪了根據(jù)各實(shí)施方案的用于HTTP服務(wù)器的示例操作程序;
[0013]圖7描繪了根據(jù)各實(shí)施方案的示例信號(hào)流;
[0014]圖8描繪了可實(shí)現(xiàn)本文所述的實(shí)施方案的合適的計(jì)算環(huán)境的示例;
[0015]圖9描繪了示出用于實(shí)現(xiàn)計(jì)算服務(wù)平臺(tái)的數(shù)據(jù)中心的一種配置的計(jì)算系統(tǒng)圖;以及
[0016]圖10描繪了用于能夠執(zhí)行上述軟件部件的計(jì)算機(jī)的示例計(jì)算機(jī)架構(gòu)。
【具體實(shí)施方式】
[0017]電子郵件系統(tǒng)以及許多社交消息傳送網(wǎng)站和其他交互式網(wǎng)站允許包括消息傳送能力的用戶交互,從而賦予用戶彼此發(fā)送包括附件的消息的能力。根據(jù)本公開的各種實(shí)施方案的系統(tǒng)和方法提供了如果到服務(wù)器(例如HTTP服務(wù)器)的連接在消息編寫期間丟失,那么自動(dòng)地保存消息內(nèi)容(諸如附件)的能力。例如,用戶可以使用被配置來通過HTTP服務(wù)器與遠(yuǎn)程服務(wù)器(例如,郵件服務(wù)器)進(jìn)行通信的網(wǎng)絡(luò)客戶端來編寫電子郵件或消息。盡管在消息編寫期間許多消息內(nèi)容可以由網(wǎng)絡(luò)客戶端來保存,消息可以包括不能夠被保存在網(wǎng)絡(luò)客戶端中的一個(gè)或多個(gè)附件。如果HTTP服務(wù)器故障或以其他方式變得不可訪問,那么附件內(nèi)容可能丟失,因?yàn)橄⑸形丛谟糜谶f送的服務(wù)器處保存或者尚未發(fā)送至用于遞送的服務(wù)器。在一個(gè)實(shí)施方案中,網(wǎng)絡(luò)客戶端最初與其進(jìn)行通信的HTTP服務(wù)器可以在消息正被編寫時(shí)接收附件內(nèi)容,并將附件內(nèi)容復(fù)制到存儲(chǔ)系統(tǒng)中。在一些實(shí)施方案中,關(guān)于網(wǎng)絡(luò)客戶端的狀態(tài)信息將同樣被保存。HTTP服務(wù)器還可以將與附件和/或消息相關(guān)聯(lián)的元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中。當(dāng)?shù)匠跏糎TTP服務(wù)器的連接失敗時(shí),網(wǎng)絡(luò)客戶端可以與備用HTTP服務(wù)器通信,所述備用HTTP服務(wù)器使用與存儲(chǔ)在數(shù)據(jù)庫中的電子郵件相關(guān)聯(lián)的元數(shù)據(jù)來檢索存儲(chǔ)的消息附件。以這種方式,當(dāng)?shù)紿TTP服務(wù)器的連接丟失時(shí),用戶的附件數(shù)據(jù)在編寫期間不會(huì)丟失,但是當(dāng)正編寫消息時(shí)并沒有消耗郵件或消息服務(wù)器上的存儲(chǔ)空間來保存這種附件數(shù)據(jù)。
[0018]根據(jù)本公開的各種實(shí)施方案的系統(tǒng)和方法還提供了使旨在對(duì)網(wǎng)絡(luò)客戶端的用戶的通知排隊(duì)的能力。由于網(wǎng)絡(luò)客戶端不維持到電子郵件服務(wù)器或類似系統(tǒng)或者到HTTP服務(wù)器的持續(xù)連接,如果響應(yīng)于來自網(wǎng)絡(luò)客戶端的對(duì)于服務(wù)或活動(dòng)的請(qǐng)求無法提供通知,那么旨在對(duì)網(wǎng)絡(luò)客戶端的通知可能會(huì)被網(wǎng)絡(luò)客戶端錯(cuò)過。在一個(gè)實(shí)施方案中,有利于網(wǎng)絡(luò)客戶端與電子郵件服務(wù)器或其他系統(tǒng)之間的通信的HTTP服務(wù)器能夠維持與服務(wù)器或系統(tǒng)的持續(xù)連接,并且當(dāng)旨在對(duì)網(wǎng)絡(luò)客戶端的通知由服務(wù)器或系統(tǒng)傳送時(shí)存儲(chǔ)所述通知。可替代地,這種通知可以由對(duì)HTTP服務(wù)器可訪問的通知服務(wù)器來接收和存儲(chǔ)。當(dāng)HTTP服務(wù)器接收來自網(wǎng)絡(luò)客戶端的HTTP請(qǐng)求時(shí),這些通知隨后由HTTP服務(wù)器傳送至網(wǎng)絡(luò)客戶端。當(dāng)通知被存儲(chǔ)在通知服務(wù)器上時(shí),當(dāng)HTTP服務(wù)器接收來自網(wǎng)絡(luò)客戶端的HTTP請(qǐng)求時(shí),HTTP服務(wù)器可以查詢或以其他方式檢索通知。這些實(shí)施方案提供了一種方式來在沒有改變由網(wǎng)絡(luò)客戶端和/或與網(wǎng)絡(luò)客戶端一起使用的服務(wù)器或系統(tǒng)所使用的連接類型的情況下確保網(wǎng)絡(luò)客戶端接收通知。
[0019]盡管本文論述的許多示例是根據(jù)電子郵件系統(tǒng)和郵件服務(wù)器來進(jìn)行討論的,本領(lǐng)域技術(shù)人員將理解的是公開的實(shí)施方案可以被容易地施加到其中在編寫任意類型的消息或可能包括一個(gè)或多個(gè)附加文件的通信期間可能發(fā)生缺少連接性的任意系統(tǒng)。公開的實(shí)施方案還可以被容易地施加到將任意類型的通知提供給網(wǎng)絡(luò)客戶端的任意系統(tǒng)。全部這種應(yīng)用被預(yù)期為在本公開的范圍內(nèi)的實(shí)施方案。
[0020]圖1示出其中可以實(shí)現(xiàn)當(dāng)前公開的實(shí)施方案的非限制性示例性系統(tǒng)100。用戶可以操作用戶設(shè)備101,所述用戶設(shè)備101可以是任意類型的計(jì)算機(jī)、計(jì)算設(shè)備、移動(dòng)設(shè)備、智能電話或能夠操作網(wǎng)絡(luò)客戶端的任意其他設(shè)備。網(wǎng)絡(luò)客戶端110可以在用戶設(shè)備101上執(zhí)行,例如在web瀏覽器中執(zhí)行。網(wǎng)絡(luò)客戶端110可以是提供到電子郵件系統(tǒng)的接口的電子郵件網(wǎng)絡(luò)客戶端,所述電子郵件系統(tǒng)是由電子郵件服務(wù)供應(yīng)商托管或以其他方式提供的。用戶設(shè)備101通??梢耘c其他設(shè)備進(jìn)行通信,并且確切地是使用互聯(lián)網(wǎng)120通過通信鏈路112與一個(gè)或多個(gè)電子郵件服務(wù)供應(yīng)商設(shè)備進(jìn)行通信。通信鏈路112可以是能夠使用任意協(xié)議或使設(shè)備之間能夠進(jìn)行通信的其他裝置來有助于兩個(gè)或更多個(gè)設(shè)備之間的通信的任意類型和數(shù)量的通信鏈路,包括有線通信鏈路、無線通信鏈路以及它們的組合?;ヂ?lián)網(wǎng)120表示有助于設(shè)備之間的通信的任意類型和數(shù)量的網(wǎng)絡(luò)以及它們的任意組合。全部這種實(shí)施方案被預(yù)期為在本公開的范圍內(nèi)。
[0021]網(wǎng)絡(luò)客戶端110可以與HTTP服務(wù)器130進(jìn)行通信,所述HTTP服務(wù)器130使用通信鏈路123連接到互聯(lián)網(wǎng)120,所述通信鏈路123像通信鏈路112—樣可以是任意類型和數(shù)量的通信鏈路。HTTP服務(wù)器130可以通過通信鏈路173與郵件服務(wù)器170交換電子郵件數(shù)據(jù),所述通信鏈路173也可以是任意類型和數(shù)量的通信鏈路。
[0022]當(dāng)用戶正使用網(wǎng)絡(luò)客戶端110來編寫電子郵件時(shí),電子郵件數(shù)據(jù)可以通過網(wǎng)絡(luò)客戶端110被本地保存在用戶設(shè)備101上。但是,當(dāng)用戶在編寫中向電子郵件附加附件時(shí),附件通常不能由網(wǎng)絡(luò)客戶端110保存。在一個(gè)實(shí)施方案中,當(dāng)用戶選擇用于附加至電子郵件的文件時(shí),這個(gè)附件可以被發(fā)送至HTTP服務(wù)器130 ATTP服務(wù)器130可以通過通信鏈路153將附件的副本傳送至存儲(chǔ)裝置150。通信鏈路153可以是任意類型和數(shù)量的通信鏈路。存儲(chǔ)裝置150表示任意類型和數(shù)量的數(shù)據(jù)存儲(chǔ)設(shè)備和系統(tǒng),包括云存儲(chǔ)系統(tǒng)。
[0023]HTTP服務(wù)器130可以使用通信鏈路163來傳送或產(chǎn)生與存儲(chǔ)的附件和數(shù)據(jù)庫160中的電子郵件相關(guān)聯(lián)的元數(shù)據(jù)。通信鏈路163可以是任意類型和數(shù)量的通信鏈路。數(shù)據(jù)庫160表示任意類型和數(shù)量的數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)(包括基于云的數(shù)據(jù)庫系統(tǒng))以及任意數(shù)量和類型的存儲(chǔ)器、高速緩存器、磁盤驅(qū)動(dòng)器等。由HTTP服務(wù)器130傳送和/或產(chǎn)生的元數(shù)據(jù)可以包括可以由另一個(gè)設(shè)備所使用的任意信息,以在網(wǎng)絡(luò)客戶端110中進(jìn)行編寫時(shí)使存儲(chǔ)的附件與電子郵件相關(guān)聯(lián),所述信息可以包括指示附件在哪里被保存在存儲(chǔ)裝置150上的存儲(chǔ)位置信息??商娲?,附件已被保存在存儲(chǔ)裝置150上的指示可以被包括在元數(shù)據(jù)中。其中這種元數(shù)據(jù)包括已將附件保存的指示而不是對(duì)于附件的具體位置的指示,其他識(shí)別的信息可以被用來確定存儲(chǔ)的附件的存儲(chǔ)位置。例如,網(wǎng)絡(luò)客戶端標(biāo)識(shí)符(例如,會(huì)話標(biāo)識(shí)符)與附件標(biāo)識(shí)符(例如,以與網(wǎng)絡(luò)客戶端110相關(guān)聯(lián)的記錄保存的附件名稱)的組合可以被用來識(shí)別存儲(chǔ)裝置150中的附件。這個(gè)元數(shù)據(jù)還可以包括關(guān)于網(wǎng)絡(luò)客戶端110的狀態(tài)信息,諸如指示網(wǎng)絡(luò)客戶端110正編寫電子郵件的信息。注意的是HTTP服務(wù)器130可以存儲(chǔ)狀態(tài)信息并定期地或者當(dāng)網(wǎng)絡(luò)客戶端110的狀態(tài)改變時(shí)來更新與網(wǎng)絡(luò)客戶端110相關(guān)聯(lián)的狀態(tài)信息,不管是否正存儲(chǔ)關(guān)于電子郵件附件的任意信息。全部這種實(shí)施方案被預(yù)期為在本公開的范圍內(nèi)。
[0024]HTTP服務(wù)器140可以通過用作HTTP服務(wù)器130的備用HTTP服務(wù)器來向用戶提供冗余性。HTTP服務(wù)器140可以使用通信鏈路124連接到其他設(shè)備,并且可以分別使用通信鏈路154、164和174與存儲(chǔ)裝置150、數(shù)據(jù)庫160以及郵件服務(wù)器170進(jìn)行通信。通信鏈路124、154、164和174中的每一個(gè)可以是任意類型和數(shù)量的通信鏈路。注意的是通信鏈路124、154、164和174中的每一個(gè)在圖1中并不強(qiáng)調(diào)地示出,僅為了在圖1中清楚地示出網(wǎng)絡(luò)客戶端110和其他設(shè)備正使用其他鏈路而不是通信鏈路124、154、164和174來進(jìn)行通信。當(dāng)前圖中所示出的通信鏈路的各種寬度和強(qiáng)調(diào)不應(yīng)當(dāng)被理解成是示出的通信鏈路的任意其他特性、特征、或限制的指示。
[0025]在一個(gè)實(shí)施方案中,HTTP服務(wù)器130可以通過通信鏈路174與郵件服務(wù)器170建立持續(xù)連接(例如,TCP連接)O這種持續(xù)連接可以專用于與網(wǎng)絡(luò)客戶端110相關(guān)聯(lián)的通信。所述持續(xù)連接可以當(dāng)從網(wǎng)絡(luò)客戶端110接收對(duì)訪問郵件服務(wù)器170的初始請(qǐng)求時(shí)開始,并且可以被維持直到預(yù)先確定的超時(shí)期滿或者直到持續(xù)連接的明確關(guān)閉被獲準(zhǔn)(例如,用戶退出或關(guān)閉網(wǎng)絡(luò)客戶端110)。響應(yīng)于網(wǎng)絡(luò)客戶端的初始請(qǐng)求,HTTP服務(wù)器130可以代表網(wǎng)絡(luò)客戶端110從郵件服務(wù)器170請(qǐng)求電子郵件數(shù)據(jù)(例如,收件箱中的郵件列表、新的電子郵件等),并在從郵件服務(wù)器170接收后將這種數(shù)據(jù)提供給網(wǎng)絡(luò)客戶端110。
[0026]HTTP服務(wù)器130還可以為網(wǎng)絡(luò)客戶端110和/或與其相關(guān)聯(lián)的用戶從郵件服務(wù)器170訂閱通知,或者以其他方式請(qǐng)求任意這種通知由郵件服務(wù)器170提供給HTTP服務(wù)器130。通知包括可以被發(fā)送給用戶的事件的任意公告或指示,諸如最近接收的電子郵件、日歷提醒、會(huì)議邀請(qǐng)等的指示。當(dāng)發(fā)布通知時(shí),HTTP服務(wù)器130可以本地存儲(chǔ)這種通知(例如,存儲(chǔ)器、硬盤),并使通知與網(wǎng)絡(luò)客戶端110、與網(wǎng)絡(luò)客戶端110相關(guān)聯(lián)的會(huì)話、和/或與網(wǎng)絡(luò)客戶端110相關(guān)聯(lián)的用戶相關(guān)聯(lián)。當(dāng)后續(xù)通知被從郵件服務(wù)器170接收時(shí),HTTP服務(wù)器130可以將其存儲(chǔ)。HTTP服務(wù)器130可以將收到一個(gè)或多個(gè)通知的確認(rèn)傳送至郵件服務(wù)器170。
[0027]HTTP服務(wù)器130可以從網(wǎng)絡(luò)客戶端110接收對(duì)于由郵件服務(wù)器170所提供的數(shù)據(jù)或服務(wù)的后續(xù)請(qǐng)求。響應(yīng)于這個(gè)請(qǐng)求,HTTP服務(wù)器130可以將請(qǐng)求轉(zhuǎn)發(fā)至郵件服務(wù)器170,并從郵件服務(wù)器170接收對(duì)所述請(qǐng)求的響應(yīng)。HTTP服務(wù)器可以隨后將對(duì)網(wǎng)絡(luò)客戶端110的任意存儲(chǔ)的通知與從郵件服務(wù)器170接收到的響應(yīng)進(jìn)行組合,并將組合通信傳送至網(wǎng)絡(luò)客戶端110??商娲?,HTTP服務(wù)器130可以從不需要與郵件服務(wù)器170交互的網(wǎng)絡(luò)客戶端110接收?;钔ㄐ呕蚱渌ㄐ?。在這個(gè)實(shí)施方案中,HTTP服務(wù)器130可以將對(duì)網(wǎng)絡(luò)客戶端110的任意存儲(chǔ)的通知傳送至網(wǎng)絡(luò)客戶端110。當(dāng)傳送存儲(chǔ)的通知時(shí),HTTP服務(wù)器130可以從本地存儲(chǔ)裝置移除這種通知。可替代地,網(wǎng)絡(luò)客戶端110可以將收到通知的確認(rèn)傳送至HTTP服務(wù)器130,并且HTTP服務(wù)器可以在收到這個(gè)確認(rèn)時(shí)從本地存儲(chǔ)裝置刪除通知。注意的是,通知可以在離散通信中或者在每一個(gè)可以包含超過一個(gè)通知的一個(gè)或多個(gè)通信中單獨(dú)地傳送。不論單獨(dú)傳送是否在某些方面被組合在一起,包含一個(gè)或多個(gè)通知的通信還可以包含其他數(shù)據(jù),包括旨在用于網(wǎng)絡(luò)客戶端110的電子郵件數(shù)據(jù)。全部這種實(shí)施方案被預(yù)期為在本公開的范圍內(nèi)。
[0028]在一個(gè)實(shí)施方案中,而不是或除了本地存儲(chǔ)通知之外,HTTP服務(wù)器130可以在數(shù)據(jù)庫或存儲(chǔ)裝置處存儲(chǔ)這種通知。例如,通知或通知的指示可以由HTTP服務(wù)器130存儲(chǔ)在數(shù)據(jù)庫160處與網(wǎng)絡(luò)客戶端110、由網(wǎng)絡(luò)客戶端110所使用的通信會(huì)話、或網(wǎng)絡(luò)客戶端110的用戶相關(guān)聯(lián)的一個(gè)或多個(gè)記錄中。在其中一個(gè)或多個(gè)通知不被存儲(chǔ)在數(shù)據(jù)庫160中的實(shí)施方案中,這種通知可以被存儲(chǔ)在存儲(chǔ)裝置中,諸如存儲(chǔ)裝置150。在這種實(shí)施方案中,指不通知在哪里被保存在存儲(chǔ)裝置150上的存儲(chǔ)位置信息可以包括在數(shù)據(jù)庫160上與網(wǎng)絡(luò)客戶端110相關(guān)聯(lián)的記錄中??商娲兀褜⒁粋€(gè)或多個(gè)通知保存在存儲(chǔ)裝置150上的指示可以被包括在這種記錄中,并且其他識(shí)別信息可以被用來確定存儲(chǔ)的通知的存儲(chǔ)位置。例如,通知標(biāo)識(shí)符可以針對(duì)每個(gè)通知存儲(chǔ)在數(shù)據(jù)庫160上與網(wǎng)絡(luò)客戶端110相關(guān)聯(lián)的記錄中,并且網(wǎng)絡(luò)客戶端標(biāo)識(shí)符(例如會(huì)話標(biāo)識(shí)符)與通知標(biāo)識(shí)符的組合可以被用來在存儲(chǔ)裝置150中定位通知。全部這種實(shí)施方案被預(yù)期為在本公開的范圍內(nèi)。通過在數(shù)據(jù)庫160或存儲(chǔ)裝置150處存儲(chǔ)通知,這個(gè)信息在網(wǎng)絡(luò)客戶端110出于任意原因可以不再與HTTP服務(wù)器130進(jìn)行通信的情況下,對(duì)于HTTP服務(wù)器140或其他HTTP服務(wù)器是可訪問的。
[