專利名稱:對(duì)通信檔案進(jìn)行協(xié)調(diào)和補(bǔ)救的制作方法
對(duì)通信檔案進(jìn)行協(xié)調(diào)和補(bǔ)救背景電子郵件(e-mail)提供了用于端對(duì)端消息傳遞的存儲(chǔ)并轉(zhuǎn)發(fā)方法,這種方法允 許消息跨越多個(gè)機(jī)器、通過(guò)各種組織和網(wǎng)絡(luò)傳播,并幸免于暫時(shí)連接中斷。這一異步方法的 不利之處在于,發(fā)送用戶或組織沒有辦法真正知道接收者是否以及何時(shí)接收到消息以及是 否已經(jīng)成功完成任何接收后處理。在電子郵件檔案的情況中,這一問(wèn)題尤其普遍。經(jīng)受由于遵守規(guī)章制度和法院指 令而帶來(lái)的電子郵件保留要求的企業(yè)和組織需要能夠從這樣的檔案搜索和產(chǎn)生電子郵件。 不能這樣做的話,會(huì)導(dǎo)致大筆罰金和聲譽(yù)損害。由于當(dāng)前的電子郵件系統(tǒng)不能保證被發(fā)送 給檔案的消息已經(jīng)被成功地保存在檔案中,這些企業(yè)蒙受除了在他們的檔案中進(jìn)行搜索之 外還不得不在冗余備份中進(jìn)行搜索的大量成本。從消息生成電子郵件系統(tǒng)的觀點(diǎn)來(lái)看,沿著到檔案的通道上存在若干潛在的數(shù)據(jù) 丟失點(diǎn)。例如,生成電子郵件系統(tǒng)或中介電子郵件系統(tǒng)會(huì)遭受軟件或硬件故障,且丟失去往 檔案的消息。另外,其中接收到消息的檔案的前端電子郵件系統(tǒng)或其中消息被保存到數(shù)據(jù) 庫(kù)的檔案注入系統(tǒng)會(huì)遭受軟件或硬件故障,且丟失去往檔案的消息。因此,需要進(jìn)行改進(jìn)以 便解決這些問(wèn)題和其他問(wèn)題,并保證在沒有事務(wù)處理的環(huán)境中消息的端對(duì)端傳遞和歸檔。概述提供本概述以便以簡(jiǎn)化形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。本 發(fā)明內(nèi)容并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所 要求保護(hù)的主題的范圍。各實(shí)施例涉及用于協(xié)調(diào)和補(bǔ)救由服務(wù)器發(fā)送以供存儲(chǔ)在檔案中的消息的技術(shù)。一 些技術(shù)可以包括接收對(duì)應(yīng)于由服務(wù)器發(fā)送給檔案以供存儲(chǔ)的消息的要協(xié)調(diào)的消息、對(duì)所接 收的要協(xié)調(diào)的消息進(jìn)行分類、根據(jù)要協(xié)調(diào)的消息的分類來(lái)向檔案發(fā)出傳遞確認(rèn)查詢、以及 基于對(duì)傳遞確認(rèn)查詢的響應(yīng)來(lái)確定從服務(wù)器發(fā)送給檔案的消息是否被存儲(chǔ)在檔案中。在接 收到對(duì)傳遞確認(rèn)查詢的否定響應(yīng)之后,可以發(fā)出重試查詢。在接收到對(duì)重試查詢的否定響 應(yīng)之后,可將要協(xié)調(diào)的消息重新提交給檔案。可以存儲(chǔ)要協(xié)調(diào)的消息直到接收到確認(rèn),且在 接收到對(duì)傳遞確認(rèn)查詢的肯定響應(yīng)之后刪除該消息。描述并要求保護(hù)其他實(shí)施例。通過(guò)閱讀下面的“詳細(xì)描述”并參考相關(guān)聯(lián)的圖形,這些及其他特點(diǎn)和優(yōu)點(diǎn)將變得 顯而易見。應(yīng)該理解,前面的一般性的說(shuō)明和下面的詳細(xì)描述只是說(shuō)明性的,不會(huì)對(duì)如權(quán)利 要求所述的方面形成限制。附圖簡(jiǎn)述
圖1示出操作環(huán)境的實(shí)施例。圖2示出計(jì)算設(shè)備的實(shí)施例。圖3示出協(xié)調(diào)應(yīng)用程序的實(shí)施例。圖4示出圖的實(shí)施例。圖5示出消息流的實(shí)施例。圖6示出邏輯流程的實(shí)施例。
圖7示出制品的實(shí)施例。詳細(xì)描述各實(shí)施例包括被配置為執(zhí)行某些操作、功能或服務(wù)的物理或邏輯結(jié)構(gòu)。結(jié)構(gòu)可以 包括物理結(jié)構(gòu)、邏輯結(jié)構(gòu)或兩者的組合。物理或邏輯結(jié)構(gòu)是使用硬件元素、軟件元素或兩者 的組合來(lái)實(shí)現(xiàn)的。然而,參考特定硬件或軟件元素對(duì)實(shí)施例的描述只作為示例而非限制。 使用硬件或軟件元素以實(shí)際實(shí)踐實(shí)施例的決定取決于若干個(gè)外部因素,如所希望的計(jì)算速 率、功率水平、耐熱性、處理周期預(yù)算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲(chǔ)器資源、數(shù)據(jù)總線 速度,及其他設(shè)計(jì)或性能約束。此外,物理或邏輯結(jié)構(gòu)還可以具有對(duì)應(yīng)的物理或邏輯連接, 以便以電子信號(hào)或消息的形式在各結(jié)構(gòu)之間傳達(dá)信息。連接可以包括對(duì)于信息或特定結(jié)構(gòu) 適合的有線和/或無(wú)線連接。值得注意的是,任何對(duì)“一個(gè)實(shí)施例”或“一實(shí)施例”的引用 都意味著結(jié)合該實(shí)施例所描述的特定的特征、結(jié)構(gòu)、或特性被包括在至少一個(gè)實(shí)施例中。出 現(xiàn)在說(shuō)明書中各個(gè)地方的短語(yǔ)“在一個(gè)實(shí)施例中”不必全都指的是同一實(shí)施例。提供用于協(xié)調(diào)和補(bǔ)救由服務(wù)器發(fā)送以供存儲(chǔ)在檔案中的消息的各種技術(shù)。一些技 術(shù)可以包括接收對(duì)應(yīng)于由服務(wù)器發(fā)送以供存儲(chǔ)在檔案中的消息的要協(xié)調(diào)的消息??梢詫?duì)所 接收的要協(xié)調(diào)的消息進(jìn)行分類,且可以根據(jù)要協(xié)調(diào)的消息的分類來(lái)向檔案發(fā)出傳遞確認(rèn)查 詢。基于對(duì)傳遞確認(rèn)查詢的響應(yīng),可以肯定地確定被發(fā)送給檔案以供存儲(chǔ)的消息是否確實(shí) 被存儲(chǔ)在該檔案中。另外地或另選地,在接收到對(duì)傳遞確認(rèn)查詢的否定響應(yīng)之后,可以發(fā)出 重試查詢。如果接收到對(duì)重試查詢的否定響應(yīng),可將要協(xié)調(diào)的消息重新提交給檔案??梢?存儲(chǔ)要協(xié)調(diào)的消息直到接收到確認(rèn),且僅在接收到對(duì)傳遞確認(rèn)查詢的肯定響應(yīng)之后刪除該 消息,以保證消息的可用性。圖1示出了適于實(shí)施各實(shí)施例的操作環(huán)境100的框圖。操作環(huán)境100可以包括為 通過(guò)單個(gè)實(shí)體環(huán)境或多個(gè)實(shí)體分布式環(huán)境的實(shí)現(xiàn)而設(shè)計(jì)的元素。根據(jù)對(duì)于給定一組設(shè)計(jì)參 數(shù)或性能約束的需要,每一元素都可以實(shí)現(xiàn)為硬件元素、軟件元素或其任何組合。硬件元素 的示例可包括器件、組件、處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容 器、感應(yīng)器等等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數(shù)字信號(hào)處理 器(DSP)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、存儲(chǔ)器單元、邏輯門、寄存器、半導(dǎo)體器件、芯片、微芯 片、芯片集等等。軟件元素的示例可包括任何軟件元素組件、程序、應(yīng)用、計(jì)算機(jī)程序、應(yīng)用 程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方 法、接口、軟件接口、應(yīng)用程序接口(API)、指令集、計(jì)算代碼、計(jì)算機(jī)代碼、代碼段、計(jì)算機(jī)代 碼段、文字、值、符號(hào),或其任何組合。 如此處所使用的,術(shù)語(yǔ)“系統(tǒng)”、“子系統(tǒng)”、“組件,,和“模塊,,旨在指示計(jì)算機(jī)相關(guān) 的實(shí)體,包括硬件、硬件和軟件的組合、軟件、或執(zhí)行中的軟件。例如,組件可被實(shí)現(xiàn)為在處 理器上運(yùn)行的進(jìn)程、處理器、硬盤驅(qū)動(dòng)器、多個(gè)存儲(chǔ)驅(qū)動(dòng)器(光學(xué)和/或磁存儲(chǔ)介質(zhì))、對(duì)象、 可執(zhí)行程序、執(zhí)行的線程、程序,和/或計(jì)算機(jī)。作為說(shuō)明,在服務(wù)器上運(yùn)行的應(yīng)用程序和服 務(wù)器兩者都可以是組件。根據(jù)給定實(shí)現(xiàn)的需要,一個(gè)或多個(gè)組件可以駐留在進(jìn)程和/或執(zhí) 行的線程內(nèi),組件可以被局部化在一臺(tái)計(jì)算機(jī)上和/或分布在兩個(gè)或更多計(jì)算機(jī)之間。在 此上下文中,實(shí)施例不受限制。 在圖1中所示出的示例中,操作環(huán)境100可以包括電子郵件服務(wù)器110和檔案140 以及其他元件。盡管在圖1中示出的操作環(huán)境100具有以某種拓?fù)浣Y(jié)構(gòu)的有限數(shù)量的節(jié)點(diǎn),但應(yīng)明白,根據(jù)給定實(shí)現(xiàn)的需要,操作環(huán)境100可以包括以替換拓?fù)浣Y(jié)構(gòu)的更多或更少 的節(jié)點(diǎn)。在各實(shí)施例中,可以在電子郵件消息收發(fā)系統(tǒng)中實(shí)現(xiàn)電子郵件服務(wù)器110,以便通 過(guò)電子通信系統(tǒng)發(fā)送和接收消息。檔案140可以被實(shí)現(xiàn)為用于歸檔通過(guò)電子通信系統(tǒng)從電 子郵件消息收發(fā)系統(tǒng)接收到的消息的現(xiàn)場(chǎng)或場(chǎng)外歸檔系統(tǒng)或數(shù)據(jù)存儲(chǔ)設(shè)施。如圖所示,電 子郵件服務(wù)器110和檔案140可以經(jīng)由網(wǎng)絡(luò)118和適當(dāng)?shù)臒o(wú)線或有線通信介質(zhì)在通信上耦 合。電子郵件服務(wù)器110和檔案140可以通過(guò)網(wǎng)絡(luò)118傳遞信息且在相互之間協(xié)調(diào)操作, 這可以涉及信息的單向交換和雙向交換。網(wǎng)絡(luò)118可以包括分組交換網(wǎng)絡(luò)、電路交換網(wǎng)絡(luò) 或兩者的組合。通過(guò)網(wǎng)絡(luò)118傳遞的信息可以被實(shí)現(xiàn)為跨各種網(wǎng)絡(luò)接口發(fā)送的數(shù)據(jù)消息。 示例性網(wǎng)絡(luò)接口包括并行接口、串行接口和總線接口。電子郵件服務(wù)器110可用于與各種類型的消息收發(fā)客戶機(jī)通信。在一些實(shí)現(xiàn)中, 電子郵件服務(wù)器110可以提供用于與基于客戶機(jī)的軟件程序進(jìn)行通信的接口,基于客戶機(jī) 的軟件程序例如來(lái)自華盛頓州雷蒙德市的微軟公司的MICROSOFT OFFICE OUTLOOK . 應(yīng)用 程序軟件。電子郵件服務(wù)器110還可以提供用于與各種其他類型的電子郵件客戶機(jī)進(jìn)行通 信的接口,各種其他類型的電子郵件客戶機(jī)包括但不限于簡(jiǎn)單郵件傳輸協(xié)議(SMTP)客戶 機(jī)、超文本傳輸協(xié)議(HTTP)客戶機(jī)、消息收發(fā)應(yīng)用程序編程接口(MAPI)客戶機(jī)、郵局協(xié)議 3 (P0P3)客戶機(jī)、因特網(wǎng)消息訪問(wèn)協(xié)議(IMAP或IMAP4)客戶機(jī)、網(wǎng)絡(luò)新聞傳輸協(xié)議(NNTP) 客戶機(jī)、webmail客戶機(jī)等等。電子郵件服務(wù)器110可以用來(lái)提供web訪問(wèn)、移動(dòng)訪問(wèn)和同步功能、因特網(wǎng)信息 服務(wù)(IIS)和因特網(wǎng)服務(wù)器應(yīng)用程序編程接口(ISAPI)應(yīng)用程序,因特網(wǎng)服務(wù)器應(yīng)用程 序編程接口(ISAPI)應(yīng)用程序提供SMTP、NNTP, IMAP4和P0P3服務(wù),以允許在多種因特網(wǎng) 訪問(wèn)協(xié)議和基于HTTP的協(xié)議上進(jìn)行通信,基于HTTP的協(xié)議包括在HTTP通信上的遠(yuǎn)程過(guò) 程調(diào)用(RPC)。在一些實(shí)現(xiàn)中,電子郵件服務(wù)器110可以傳送被格式化為壓縮無(wú)線二進(jìn)制 XML(WbXML)數(shù)據(jù)的數(shù)據(jù),以充分利用移動(dòng)客戶機(jī)的帶寬。當(dāng)由公司或其他組織使用時(shí),除了 標(biāo)準(zhǔn)網(wǎng)際協(xié)議之外,電子郵件服務(wù)器110還可以支持在專有或非標(biāo)準(zhǔn)協(xié)議上進(jìn)行通信。在各種實(shí)現(xiàn)中,根據(jù)所描述的實(shí)施例,電子郵件服務(wù)器110和/或檔案140可以執(zhí) 行一種或多種協(xié)調(diào)和補(bǔ)救技術(shù)。在一些實(shí)施例中,電子郵件服務(wù)器110可以包括實(shí)現(xiàn)基于 服務(wù)器的電子郵件軟件程序的服務(wù)器計(jì)算設(shè)備。因此,在一些實(shí)施例中,一種或多種協(xié)調(diào)和 補(bǔ)救技術(shù)可以被實(shí)現(xiàn)為基于服務(wù)器的軟件程序內(nèi)的特征,基于服務(wù)器的軟件程序例如來(lái)自 華盛頓州雷蒙德市的微軟公司的MICROSOFT EXCHANGE SERVER 。應(yīng)明白,各實(shí)施例在該上 下文中受限,且電子郵件服務(wù)器110可以實(shí)現(xiàn)包括提供經(jīng)由web瀏覽器的對(duì)電子郵件服務(wù) 的訪問(wèn)的基于web的電子郵件應(yīng)用程序在內(nèi)的其他類型的應(yīng)用程序、程序或服務(wù)。在一些實(shí)施例中,檔案140可以包括實(shí)現(xiàn)一個(gè)或多個(gè)服務(wù)器應(yīng)用程序和/或web 服務(wù)的服務(wù)器計(jì)算設(shè)備。檔案140可以實(shí)現(xiàn)使用平臺(tái)和語(yǔ)言無(wú)關(guān)格式的各種web服務(wù), 這些格式被設(shè)計(jì)成使用諸如超文本傳輸協(xié)議(HTTP)、安全套接字層上的超文本傳輸協(xié)議 (HTTPQ、簡(jiǎn)單郵件傳輸協(xié)議(SMTP)、文件傳輸協(xié)議(FTP)等通信協(xié)議來(lái)通過(guò)諸如因特網(wǎng)等 網(wǎng)絡(luò)進(jìn)行通信。因此,在一些實(shí)施例中,一種或多種協(xié)調(diào)和補(bǔ)救技術(shù)可以被實(shí)現(xiàn)為服務(wù)器應(yīng) 用程序和/或web服務(wù)內(nèi)的特征。應(yīng)明白,各實(shí)施例在該上下文中不受限,且檔案140可以 由其他類型的現(xiàn)場(chǎng)或場(chǎng)外歸檔系統(tǒng)和/或或數(shù)據(jù)存儲(chǔ)設(shè)施來(lái)實(shí)現(xiàn)。—般地,根據(jù)所描述的實(shí)施例,電子郵件服務(wù)器110和檔案140都可以包括具有計(jì)算能力和通信能力的任何合適類型的計(jì)算設(shè)備或由這樣的計(jì)算設(shè)備實(shí)現(xiàn)。為實(shí)現(xiàn)這樣的能 力,電子郵件服務(wù)器110和檔案140可以包括各自的計(jì)算系統(tǒng)120、120a和通信系統(tǒng)130、 130a。計(jì)算系統(tǒng)120,120a可包括各種計(jì)算元件,諸如一個(gè)或多個(gè)處理器、協(xié)處理器、存儲(chǔ)器 單元、芯片集、控制器、外圍設(shè)備、接口、振蕩器、定時(shí)設(shè)備、視頻卡、音頻卡、多媒體輸入/輸 出(I/O)組件等等。通信系統(tǒng)130,130a可包括各種通信元件,如發(fā)射機(jī)、接收機(jī)、收發(fā)機(jī)、 無(wú)線電、網(wǎng)絡(luò)接口、基帶處理器、天線、放大器、濾波器等等。計(jì)算系統(tǒng)120、120a可以實(shí)現(xiàn)各自的服務(wù)器程序122、142以及其他元件。根據(jù)所描 述的實(shí)施例,服務(wù)器程序122、142和它們所包括的元件可以包括支持電子郵件服務(wù)器110 和檔案140的操作的一種或多種類型的應(yīng)用程序、軟件組件、程序模塊和/或程序數(shù)據(jù)或由 其實(shí)現(xiàn)。在一些實(shí)現(xiàn)中,服務(wù)器程序122可以在一個(gè)物理服務(wù)器計(jì)算機(jī)設(shè)備上實(shí)現(xiàn)?;蛘?, 各種服務(wù)器程序122可以跨越可能位于不同的域和站點(diǎn)以滿足地理部署要求和/或在支持 大量用戶時(shí)提供性能和容錯(cuò)的多個(gè)服務(wù)器而實(shí)現(xiàn)。在圖1中所示出的示例中,服務(wù)器程序122可以實(shí)現(xiàn)一個(gè)或多個(gè)服務(wù)器角色,這些 服務(wù)器角色包括例如用來(lái)提供用于電子郵件服務(wù)器110的特定服務(wù)和特征的中樞傳輸服 務(wù)器角色1 和郵箱服務(wù)器角色126。中樞傳輸服務(wù)器角色I(xiàn)M可以用來(lái)處理傳入消息和 傳出消息,而郵箱服務(wù)器角色1 可以用于主存郵箱和公共文件夾數(shù)據(jù)。如圖所示,中樞傳 輸服務(wù)器角色1 可以包括日志記錄代理125,而郵箱服務(wù)器角色1 可以包括協(xié)調(diào)代理 127。根據(jù)各實(shí)施例,日志記錄代理125和協(xié)調(diào)代理127可以執(zhí)行一種或多種協(xié)調(diào)和補(bǔ)救技 術(shù),如下面更詳細(xì)地描述的。根據(jù)所描述的實(shí)施例,服務(wù)器程序122還可以包括其他服務(wù)器 程序128,諸如其他服務(wù)器角色和/或其他類型的服務(wù)器應(yīng)用程序。在圖1所示的示例中,服務(wù)器程序142可以實(shí)現(xiàn)一個(gè)或多個(gè)服務(wù)器應(yīng)用程序,包括 例如日志記錄應(yīng)用程序144和協(xié)調(diào)應(yīng)用程序146,這些應(yīng)用程序用來(lái)提供用于檔案140的特 定服務(wù)和特征。根據(jù)各實(shí)施例,日志記錄應(yīng)用程序146和協(xié)調(diào)應(yīng)用程序146可以與日志記 錄代理125以及協(xié)調(diào)代理127進(jìn)行通信,以便執(zhí)行一種或多種協(xié)調(diào)和補(bǔ)救技術(shù),如下面更詳 細(xì)地描述的。根據(jù)所描述的實(shí)施例,服務(wù)器程序142還可以包括其他服務(wù)器程序148,諸如 其他類型的服務(wù)器應(yīng)用程序和/或web服務(wù)。根據(jù)所描述的實(shí)施例,電子郵件服務(wù)器110和檔案140可以包括用于將諸如電子 郵件消息和其他數(shù)據(jù)等項(xiàng)目存儲(chǔ)在郵箱和文件夾中的各自的數(shù)據(jù)存儲(chǔ)或與該數(shù)據(jù)存儲(chǔ)進(jìn) 行通信。參見圖1,用于電子郵件服務(wù)器110的數(shù)據(jù)存儲(chǔ)可以由電子郵件服務(wù)器數(shù)據(jù)庫(kù)150 實(shí)現(xiàn),而用于檔案140的數(shù)據(jù)存儲(chǔ)可以由檔案數(shù)據(jù)庫(kù)160實(shí)現(xiàn)。盡管出于說(shuō)明的目的而被示 出為獨(dú)立元件,但應(yīng)明白,在一些實(shí)施例中,電子郵件服務(wù)器數(shù)據(jù)庫(kù)150可以形成電子郵件 服務(wù)器110的一部分,和/或檔案數(shù)據(jù)庫(kù)160可以形式檔案140的一部分。還應(yīng)明白,用于 電子郵件服務(wù)器110和檔案140的各自的數(shù)據(jù)存儲(chǔ)可以與電子郵件服務(wù)器110和檔案140 駐留在一起或駐留在其他遠(yuǎn)程設(shè)備中。圖2提供了適于實(shí)施各實(shí)施例的計(jì)算設(shè)備200的說(shuō)明性體系結(jié)構(gòu)。計(jì)算設(shè)備200 可以表示例如電子郵件服務(wù)器110。如圖所示,計(jì)算設(shè)備200示出了個(gè)人或服務(wù)器計(jì)算機(jī)的 常規(guī)計(jì)算體系結(jié)構(gòu),包括包含處理器202和系統(tǒng)存儲(chǔ)器204的處理系統(tǒng)。系統(tǒng)存儲(chǔ)器204 可包括,除其他類型的存儲(chǔ)器之外,隨機(jī)存取存儲(chǔ)器(RAM) 206和只讀存儲(chǔ)器(ROM) 208。諸 如基本I/O系統(tǒng)(BIOS)之類的輸入/輸出(I/O)系統(tǒng)可以實(shí)現(xiàn)諸如在啟動(dòng)操作期間使用存儲(chǔ)在ROM 208中的邏輯來(lái)幫助在計(jì)算設(shè)備200內(nèi)的各元件之間傳輸信息的例程。系統(tǒng)總 線210可通信地耦合計(jì)算設(shè)備200的所有元件以促進(jìn)信息傳輸和數(shù)據(jù)處理操作。計(jì)算設(shè)備200還可包括大容量存儲(chǔ)設(shè)備212,該存儲(chǔ)設(shè)備用于存儲(chǔ)諸如來(lái)自華盛 頓州雷蒙德市的微軟公司的MICROSOFT WINDOWS 操作系統(tǒng)或其他合適的操作系統(tǒng)等操作 系統(tǒng)214。大容量存儲(chǔ)設(shè)備212還可存儲(chǔ)如下文中更詳細(xì)地描述的各種應(yīng)用程序,以及其他 程序模塊216和程序數(shù)據(jù)218。大容量存儲(chǔ)設(shè)備212可以通過(guò)連接到系統(tǒng)總線210的大容量存儲(chǔ)控制器(未示 出)連接到處理器202。大容量存儲(chǔ)設(shè)備212以及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì),為計(jì)算設(shè) 備200提供非易失性存儲(chǔ)器。雖然此處包含的計(jì)算機(jī)可讀介質(zhì)的描述引用了諸如硬盤或 CD-ROM驅(qū)動(dòng)器之類的大容量存儲(chǔ)設(shè)備,但是,本領(lǐng)域的技術(shù)人員應(yīng)該了解,計(jì)算機(jī)可讀介質(zhì) 可以是可以被計(jì)算設(shè)備200訪問(wèn)的任何可用的介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì) 可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以存儲(chǔ)如計(jì)算機(jī)可讀指令、數(shù) 據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)來(lái)實(shí)現(xiàn)的易失性和非易失性、可移 動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、R0M、EPR0M、EEPR0M、閃存或其它 固態(tài)存儲(chǔ)器技術(shù)、CD-ROM、DVD或其它光學(xué)存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其它磁性存儲(chǔ)設(shè) 備、或能用于存儲(chǔ)所需信息且可以由計(jì)算機(jī)訪問(wèn)的任何其它介質(zhì)。根據(jù)各實(shí)施例,計(jì)算設(shè)備200可以通過(guò)網(wǎng)絡(luò)118,使用到遠(yuǎn)程計(jì)算機(jī)的邏輯連接在 聯(lián)網(wǎng)環(huán)境中操作,在一些實(shí)現(xiàn)中,網(wǎng)絡(luò)118可以是諸如因特網(wǎng)之類的傳輸控制協(xié)議(TCP)和 網(wǎng)際協(xié)議(IP)網(wǎng)絡(luò)。計(jì)算設(shè)備200可以通過(guò)連接到系統(tǒng)總線210的網(wǎng)絡(luò)接口 220(例如, 有線或無(wú)線網(wǎng)絡(luò)接口)連接到網(wǎng)絡(luò)118??梢岳斫猓W(wǎng)絡(luò)118可以包括根據(jù)所描述的實(shí)施例 的任何類型的網(wǎng)絡(luò),包括,但不僅限于,廣域網(wǎng)(WAN)、局域網(wǎng)(LAN),和/或蜂窩電話網(wǎng)絡(luò), 并且網(wǎng)絡(luò)接口 220可以支持各種傳輸層,如GPRS、CDMA IxRTT, IEEE 802. 11、藍(lán)牙 (PAN) 及用于連接到各種網(wǎng)絡(luò)和/或遠(yuǎn)程計(jì)算機(jī)系統(tǒng)的其他。計(jì)算設(shè)備200可包括用于接收和處理來(lái)自多個(gè)輸入設(shè)備224的輸入的1/0控制器 222。用戶可以通過(guò)諸如鍵盤和定點(diǎn)設(shè)備(如,鼠標(biāo)、跟蹤球或觸摸板)之類的各種輸入設(shè) 備224向計(jì)算設(shè)備200中輸入命令和信息。輸入設(shè)備2M的其他示例可包括話筒、游戲桿、 游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。輸入設(shè)備2M可以通過(guò)耦合到系統(tǒng)總線210的I/ 0控制器222連接到處理器202,但是,也可以通過(guò)諸如并行端口、游戲端口或通用串行總線 (USB)之類的其他接口和總線結(jié)構(gòu)來(lái)進(jìn)行連接。1/0控制器222也可以提供到諸如監(jiān)視器 或經(jīng)由1/0控制器222連接到系統(tǒng)總線210的其他類型的顯示設(shè)備、打印機(jī)、揚(yáng)聲器和其他 外圍設(shè)備之類的各種輸出設(shè)備224的輸出。如上文所提及的,許多程序模塊和數(shù)據(jù)文件可以存儲(chǔ)在計(jì)算設(shè)備200的大容量存 儲(chǔ)設(shè)備212和RAM 206中。在圖2所示的示例中,大容量存儲(chǔ)設(shè)備212和RAM206可存儲(chǔ)操 作系統(tǒng)214以及一個(gè)或多個(gè)服務(wù)器程序122,包括包含日志記錄代理125的中樞傳輸服務(wù)器 角色I(xiàn)M和包含協(xié)調(diào)代理127的郵箱服務(wù)器角色126。根據(jù)各實(shí)施例,協(xié)調(diào)代理127可用于 執(zhí)行一種或多種協(xié)調(diào)和補(bǔ)救技術(shù)。例如,在一個(gè)實(shí)施例中,協(xié)調(diào)代理127可以如參考圖3所 描述的那樣實(shí)現(xiàn)。圖3示出適用于實(shí)踐各實(shí)施例的協(xié)調(diào)應(yīng)用程序300的一個(gè)實(shí)施例。參考圖1和2, 在一些實(shí)現(xiàn)中,協(xié)調(diào)應(yīng)用程序300可以用作作為駐留在電子郵件服務(wù)器110上的服務(wù)器程序122中的一個(gè)的協(xié)調(diào)代理127。電子郵件應(yīng)用程序300的一個(gè)或多個(gè)部分還可以由計(jì)算 設(shè)備200的RAM 206或計(jì)算機(jī)軟件領(lǐng)域中的技術(shù)人員想到的任何其他變體中的應(yīng)用程序程
序?qū)崿F(xiàn)。如圖所示,電子郵件應(yīng)用程序300可以包括消息存儲(chǔ)310。盡管出于說(shuō)明而非限制 的目的將消息存儲(chǔ)310示為協(xié)調(diào)應(yīng)用程序300的一部分,但應(yīng)明白,根據(jù)所描述的實(shí)施例, 消息存儲(chǔ)310可以駐留在各個(gè)位置中。例如,消息存儲(chǔ)310可以駐留在電子郵件服務(wù)器110 和/或電子郵件服務(wù)器數(shù)據(jù)庫(kù)150上。作為一個(gè)非限制性示例,協(xié)調(diào)應(yīng)用程序300的消息 存儲(chǔ)310可以以數(shù)據(jù)庫(kù)和/或以一個(gè)或多個(gè)文件駐留在計(jì)算設(shè)備200的程序數(shù)據(jù)218內(nèi)。 作為另一非限制性示例,消息存儲(chǔ)310可以全部或部分駐留在由用戶在諸如操作系統(tǒng)214 之類的操作系統(tǒng)的文件系統(tǒng)中指定的目錄中。在圖3所示的示例中,消息存儲(chǔ)310包括一個(gè)或多個(gè)待協(xié)調(diào)消息,待協(xié)調(diào)消息可 以被分類為0代(Gen-O)消息312、1代(Gen-I)消息314、2代(Gen-2)消息316和3代 (Gen-3)消息318。在各實(shí)施例中,可以根據(jù)消息分類來(lái)發(fā)出查詢。例如,可以基于協(xié)調(diào)代 來(lái)發(fā)出查詢以便優(yōu)化協(xié)調(diào)過(guò)程的性能并最小化對(duì)檔案140的查詢的數(shù)量。在一些實(shí)施例中,可以基于與檔案140相關(guān)聯(lián)的等待時(shí)間來(lái)將待協(xié)調(diào)消息分類為 Gen-O消息312。被協(xié)調(diào)應(yīng)用程序300接收并被分類為Gen-O消息312的消息可以對(duì)應(yīng)于 最近被發(fā)送給檔案140的消息。根據(jù)各實(shí)施例,不為待決Gen-O消息312發(fā)出查詢,且查詢 延遲直到與檔案14相關(guān)聯(lián)的等待時(shí)間已經(jīng)過(guò)去。對(duì)于在特定消息被協(xié)調(diào)應(yīng)用程序300接收之后的短時(shí)間間隔,特定消息的副本可 以被本地存儲(chǔ)在高速緩存320中并可從該高速緩存訪問(wèn)。在一些實(shí)施例中,基于可以從高 速緩存320本地獲得特定消息的副本時(shí)的時(shí)間間隔,待協(xié)調(diào)消息可以被分類為Gen-I消息 314。被協(xié)調(diào)應(yīng)用程序300接收并被分類為Gen-I消息314的消息可以對(duì)應(yīng)于預(yù)期已經(jīng)被 傳遞至檔案140和/或由檔案140處理的消息。另外,當(dāng)可以從高速緩存320獲得消息的 副本時(shí),可以實(shí)現(xiàn)I/O節(jié)省。在各種實(shí)現(xiàn)中,為Gen-I消息314發(fā)送傳遞確認(rèn)查詢,且嘗試 在高速緩存320的生存期內(nèi)處理幾乎所有消息。當(dāng)接收到對(duì)關(guān)于特定消息的傳遞確認(rèn)查詢的肯定響應(yīng)時(shí),協(xié)調(diào)應(yīng)用程序300確認(rèn) 消息被歸檔且可以從消息存儲(chǔ)310中刪除消息。當(dāng)協(xié)調(diào)應(yīng)用程序300接收到關(guān)于特定消息 的否定響應(yīng)時(shí),在消息存儲(chǔ)310中維護(hù)未經(jīng)確認(rèn)的消息以保證其可用性,直到可以確認(rèn)該 消息被歸檔。在一些實(shí)施例中,可以基于確認(rèn)此類消息的歸檔失敗來(lái)對(duì)待協(xié)調(diào)消息進(jìn)行分類。 當(dāng)接收到對(duì)特定消息的否定響應(yīng)時(shí),協(xié)調(diào)應(yīng)用程序300可以將消息分類為Gen-2消息316。 基于解決消息延遲所需要的時(shí)間,消息可以保持被分類為Gen-2消息316。被協(xié)調(diào)應(yīng)用程序 300分類為Gen-2消息316的待決消息可以對(duì)應(yīng)于經(jīng)歷延遲問(wèn)題的未經(jīng)確認(rèn)的消息。根據(jù) 各實(shí)施例,不為Gen-2消息316發(fā)出查詢并且延遲查詢以允許解決郵件延遲。被協(xié)調(diào)應(yīng)用程序300分類為Gen-3消息318的待決消息可以對(duì)應(yīng)于具有現(xiàn)在可以 解決的延遲問(wèn)題的未經(jīng)確認(rèn)的消息。協(xié)調(diào)應(yīng)用程序300可以發(fā)出關(guān)于Gen-3消息218中的 一個(gè)或多個(gè)的重試查詢。當(dāng)接收到對(duì)特定消息的肯定響應(yīng)時(shí),協(xié)調(diào)應(yīng)用程序300可以確認(rèn) 先前未經(jīng)確認(rèn)的消息已經(jīng)被歸檔且可以從消息存儲(chǔ)310中刪除該消息。當(dāng)接收到對(duì)重試查 詢的否定響應(yīng)時(shí),未經(jīng)確認(rèn)的消息保留在消息存儲(chǔ)310中以保證其可用性,直到可以確認(rèn)
9該消 息被歸檔。當(dāng)不能確認(rèn)一個(gè)或多個(gè)Gen-3消息218時(shí),協(xié)調(diào)代理127可以通過(guò)將Gen-3消息 318重新提交給檔案140來(lái)執(zhí)行補(bǔ)救。未經(jīng)確認(rèn)的消息保留在消息存儲(chǔ)310中以保證其可 用性,直到確認(rèn)特定消息被歸檔。協(xié)調(diào)應(yīng)用程序300可以將未經(jīng)確認(rèn)的Gen-3消息318重 新提交給檔案140,且可以將每一未經(jīng)確認(rèn)的消息的副本保存在消息存儲(chǔ)310中。在特定的 未經(jīng)確認(rèn)的消息被重新提交給檔案140后,協(xié)調(diào)過(guò)程可以再次開始直到確認(rèn)該特定消息被 歸檔。應(yīng)明白,即使是在特定消息不能被協(xié)調(diào)時(shí),消息也保留在消息存儲(chǔ)310中以保證其可 用性。如圖所示,電子郵件應(yīng)用程序300可以包括負(fù)責(zé)執(zhí)行在此所描述的協(xié)調(diào)和補(bǔ)救技 術(shù)中的部分或全部的協(xié)調(diào)和補(bǔ)救邏輯330。在圖3所示的示例中,協(xié)調(diào)和補(bǔ)救邏輯330包括 用于接收要協(xié)調(diào)的消息的邏輯332、用于對(duì)待協(xié)調(diào)消息進(jìn)行分類的邏輯334,用于發(fā)出檔案 查詢的邏輯336,用于確認(rèn)已歸檔消息的邏輯338、用于刪除經(jīng)確認(rèn)的消息的邏輯340以及 用于補(bǔ)救未經(jīng)確認(rèn)的消息的邏輯342。在一些實(shí)現(xiàn)中,協(xié)調(diào)和補(bǔ)救邏輯330可以作為電子郵件服務(wù)器110上的協(xié)調(diào)代理 127的一部分來(lái)駐留在協(xié)調(diào)應(yīng)用程序300內(nèi)。然而,應(yīng)明白,根據(jù)所描述的實(shí)施例,協(xié)調(diào)和補(bǔ) 救邏輯330可以另選地或另外地被具體化為存儲(chǔ)在各種位置中的一種或多種類型的計(jì)算 機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行指令。盡管圖3所示的示例包括特定邏輯集,但應(yīng)明白,協(xié)調(diào)和補(bǔ)救邏輯330提供一般功 能的示例性實(shí)現(xiàn)。可以理解,邏輯的序列不一定必須按呈現(xiàn)的順序執(zhí)行,除非另有陳述。此 夕卜,盡管協(xié)調(diào)和補(bǔ)救邏輯330可以被描述為執(zhí)行特定步驟序列,但是,根據(jù)替換實(shí)施例,還 可執(zhí)行其他步驟序列。此外,由協(xié)調(diào)和補(bǔ)救邏輯330所執(zhí)行的某些個(gè)體步驟可包括多個(gè)子 步驟,這些子步驟可以對(duì)個(gè)體步驟合適的各種序列執(zhí)行。此外,取決于特定實(shí)現(xiàn),還可以執(zhí) 行額外的步驟,或者某些步驟可以被協(xié)調(diào)和補(bǔ)救邏輯330省略。圖4示出例示適用于實(shí)施各實(shí)施例的各代協(xié)調(diào)的圖400的一個(gè)實(shí)施例。參考圖 1-圖3,在一些實(shí)現(xiàn)中,待協(xié)調(diào)消息可以被協(xié)調(diào)應(yīng)用程序300分類成各代協(xié)調(diào),協(xié)調(diào)應(yīng)用程 序300又可以由駐留在電子郵件服務(wù)器110上的協(xié)調(diào)代理127實(shí)現(xiàn)。然而,各實(shí)施例不限 于這樣的實(shí)現(xiàn)。此外,應(yīng)明白,根據(jù)所描述的實(shí)施例,術(shù)語(yǔ)分類或代(和它們的派生詞)可 以是指任何合適的技術(shù)或消息組。盡管當(dāng)指代消息的分類或消息組時(shí)一些操作系統(tǒng)或應(yīng)用 程序可以不使用術(shù)語(yǔ)分類或代,但這樣場(chǎng)景旨在被所描述的實(shí)施例涵蓋。如圖所示,根據(jù)對(duì)應(yīng)的時(shí)間間隔(T0-T3),待協(xié)調(diào)消息可以被分類為0代(Gen-O)、 1代(Gen-I)、2代(Gen-2)和3代(Gen-3)消息。在此示例中,當(dāng)與消息相關(guān)聯(lián)的時(shí)間在時(shí) 間間隔TO內(nèi)時(shí),消息可以被分類為Gen-O消息,當(dāng)該時(shí)間在時(shí)間間隔Tl內(nèi)時(shí),消息可以被 分類為Gen-I消息,當(dāng)該時(shí)間在時(shí)間間隔Tl內(nèi)時(shí),消息可以被分類為Gen-2消息,當(dāng)該時(shí)間 在T3期間時(shí),消息可以被分類為Gen-3消息。盡管一些實(shí)施例可以描述與時(shí)間間隔相關(guān)聯(lián) 的特定示例性值(T0-T3),但應(yīng)理解,可以使用其他合適的值。還應(yīng)明白,根據(jù)所描述的實(shí)施 例,可以按其他方式對(duì)消息進(jìn)行分類。在各個(gè)實(shí)現(xiàn)中,與特定消息相關(guān)聯(lián)的時(shí)間可以對(duì)應(yīng)于自從接收到包括該特定消息 在內(nèi)的日志報(bào)告的副本以來(lái)過(guò)去的時(shí)間量。例如,與特定消息相關(guān)聯(lián)的時(shí)間可以是協(xié)調(diào)代 理127接收到包含該特定消息的日志報(bào)告的副本的時(shí)間,和/或可以是該特定消息被存儲(chǔ)在消息存儲(chǔ)310中的時(shí)間。在其他實(shí)施例中,與該消息相關(guān)聯(lián)的時(shí)間可以基于可以在曰志 報(bào)告的副本中提供的消息被發(fā)送給檔案140的時(shí)間。在協(xié)調(diào)代理127接收到在日志報(bào)告的副本中的特定消息之后,需要較短時(shí)間間隔 來(lái)將原始的日志報(bào)告?zhèn)鬟f給檔案140和/或由檔案140處理該報(bào)告。因此,在一些實(shí)施例 中,可以基于諸如與檔案140相關(guān)聯(lián)的傳遞和/或處理等待時(shí)間等等待時(shí)間來(lái)對(duì)待協(xié)調(diào)消 息進(jìn)行分類。在圖4所示的示例中,當(dāng)與消息相關(guān)聯(lián)的時(shí)間是在時(shí)間間隔TO內(nèi)時(shí),消息可以被 分類為Gen-O消息。如圖所示,時(shí)間間隔TO的長(zhǎng)度可以對(duì)應(yīng)于原始日志報(bào)告被傳遞給檔案 140的預(yù)期水平協(xié)議(SLA)或等待時(shí)間(ASLA)。一般地,時(shí)間間隔Δ SLA將是相對(duì)較短的 時(shí)間段,例如約5秒。根據(jù)各實(shí)施例,時(shí)間間隔△ SLA可以基于被發(fā)送給檔案140的消息的傳 遞和/或 處理等待時(shí)間。在一些實(shí)施例中,時(shí)間間隔Δ SLA可以是大多數(shù)日志報(bào)告被傳遞給檔案140 所需要的假定的或觀察到的時(shí)間量。時(shí)間間隔ASLA還可以由廠商SLA定義,該廠商SLA 指定檔案140約定的服務(wù)水平和/或執(zhí)行時(shí)間。在一些情況下,時(shí)間間隔Δ SLA可以基于 由檔案140提供的信息。例如,在一些實(shí)現(xiàn)中,協(xié)調(diào)代理127可以查詢檔案140以獲得某些 配置信息,諸如用于處理消息的預(yù)期SLA或等待時(shí)間。如圖所示,時(shí)間間隔TO可以對(duì)應(yīng)于Δ SLA且在Δ SLA過(guò)去后結(jié)束。在各種實(shí)現(xiàn)中, 在時(shí)間間隔TO期間,且直到ASLA從與該消息相關(guān)聯(lián)的時(shí)間起已經(jīng)過(guò)去,特定消息可以被 分類為Gen-O消息,該時(shí)間諸如包含特定消息的日志報(bào)告的副本被協(xié)調(diào)代理127接收的時(shí) 間和/或消息被存儲(chǔ)在消息存儲(chǔ)310中的時(shí)間。因此,被協(xié)調(diào)代理127接收到且被分類為 Gen-O的消息可以對(duì)應(yīng)于最近被發(fā)送給檔案140的消息。對(duì)于在特定消息被協(xié)調(diào)代理127接收到之后的較短時(shí)間間隔,要協(xié)調(diào)的消息的副 本可以被本地存儲(chǔ)在高速緩存320中且從高速緩存320訪問(wèn)。因此,在一些實(shí)施例中,可以 基于此時(shí)間間隔或與高速緩存320相關(guān)聯(lián)的高速緩存生存期(△高速緩存)來(lái)對(duì)待協(xié)調(diào)消 息進(jìn)行分類。一般地,高速緩存生存期Δ高速緩存將是,且在某些情況下必須是比預(yù)期等 待時(shí)間Δ SLA長(zhǎng)。在一些實(shí)施例中,高速緩存生存期Δ高速緩存可以是約10秒。高速緩存生存期Δ高速緩存一般將與系統(tǒng)上可用的RAM諸如RAM 206成正比地 變化。例如,在具有10分鐘的高速緩存生存期△高速緩存的電子郵件服務(wù)器110上,高速 緩存生存期Δ高速緩存通??梢酝ㄟ^(guò)使RAM翻倍來(lái)翻倍。因此,Δ高速緩存時(shí)間間隔通 常比往往是大約5秒且相對(duì)難以改變的諸如時(shí)間間隔ASLA等其他時(shí)間間隔中的大多數(shù)易 變得多。由于其與RAM的線性關(guān)系,可以通過(guò)在運(yùn)行協(xié)調(diào)代理127的服務(wù)器上添加RAM來(lái) 容易地增加高速緩存生存期△高速緩存。這允許高速緩存生存期△高速緩存在需要時(shí)寬 裕地超過(guò)SLA時(shí)間間隔并且產(chǎn)生I/O節(jié)省。在圖4所示的示例中,當(dāng)與消息相關(guān)聯(lián)的時(shí)間在時(shí)間間隔Tl內(nèi)時(shí),消息可以被分 類為Gen-I消息。如圖所示,時(shí)間間隔Tl的長(zhǎng)度可以對(duì)應(yīng)于Δ SLA期滿之后且高速緩存生 存期△高速緩存期滿之前的時(shí)間窗口。在各種實(shí)現(xiàn)中,在時(shí)間間隔Tl期間且直到自從與 消息相關(guān)聯(lián)的時(shí)間起已經(jīng)過(guò)去高速緩存生存期△高速緩存,特定消息可以被分類為Gen-I 消息,該與消息相關(guān)聯(lián)的時(shí)間諸如當(dāng)包含特定消息的日志報(bào)告的副本被協(xié)調(diào)代理127接收 和/或當(dāng)該消息被存儲(chǔ)在消息存儲(chǔ)310中的時(shí)間。因此,被協(xié)調(diào)代理127接收且被分類為Gen-I的消息可以對(duì)應(yīng)于預(yù)期已經(jīng)被傳遞給檔案140和/或由檔案140處理的消息。在各實(shí)施例中,可以根據(jù)消息分類來(lái)發(fā)出查詢。例如,可以基于協(xié)調(diào)世代來(lái)發(fā)出查詢以優(yōu)化協(xié)調(diào)過(guò)程的性能并最小化對(duì)檔案140的查詢的數(shù)量。被協(xié)調(diào)代理127接收并被分類為Gen-O的消息可以對(duì)應(yīng)于最近被發(fā)送給檔案140 的消息。根據(jù)各實(shí)施例,協(xié)調(diào)代理127不發(fā)出關(guān)于被分類為Gen-O的待決消息的查詢。例 如,如果在八SLA已經(jīng)過(guò)去之前將關(guān)于日志報(bào)告的部署的查詢發(fā)送給檔案140,則該查詢將 很有可能得到否定響應(yīng)(Nak)。因此,不為TO期間的Gen-O消息執(zhí)行查詢發(fā)出,且可以延遲 查詢的發(fā)出直到Δ SLA期滿。被協(xié)調(diào)代理127接收并被分類為Gen-I的消息對(duì)應(yīng)于預(yù)期被存儲(chǔ)在檔案140中的 消息。另外,在可以從高速緩存320獲得消息的副本時(shí),可以實(shí)現(xiàn)I/O節(jié)省。然而,在高速緩 存生存期(△高速緩存)期滿之后,消息的副本可以從高速緩存320里掉出,且I/O節(jié)省不 再可能。在各實(shí)施例中,發(fā)送關(guān)于分類為Gen-I的待決消息的初始查詢。在這樣的實(shí)施例 中,協(xié)調(diào)代理127可以在時(shí)間間隔Tl期間嘗試處理幾乎所有消息,這可以基于并延伸至高 速緩存生存期△高速緩存的期滿高速緩存。因此,協(xié)調(diào)過(guò)程的性能自從協(xié)調(diào)代理127發(fā)出 關(guān)于預(yù)期被存儲(chǔ)在檔案140中的消息的查詢依賴可以進(jìn)行優(yōu)化且可以通過(guò)從高速緩存320 訪問(wèn)消息實(shí)現(xiàn)I/O節(jié)省。在時(shí)間間隔Tl期間,協(xié)調(diào)代理127可以聯(lián)系檔案140的協(xié)調(diào)應(yīng)用程序146并發(fā)出 包括一個(gè)或多個(gè)Gen-I消息的消息ID在內(nèi)的初始查詢。初始查詢可由檔案140經(jīng)由協(xié)調(diào) 應(yīng)用程序146接收,且可以確定查詢中所標(biāo)識(shí)的每一個(gè)消息是否已經(jīng)被接收并由檔案140 完全存儲(chǔ)。在確定查詢中所標(biāo)識(shí)的所有消息被完全存儲(chǔ)之后,檔案140可以經(jīng)由協(xié)調(diào)應(yīng)用 程序146用指示每一消息均被存儲(chǔ)的肯定響應(yīng)(Ack)來(lái)響應(yīng)。當(dāng)接收到對(duì)特定消息的肯定 響應(yīng)之后,協(xié)調(diào)代理127確認(rèn)消息被歸檔且可以從本地消息存儲(chǔ)310刪除該消息。然而,在某些情況下,可以確定在查詢中標(biāo)識(shí)的消息中的一個(gè)或多個(gè)未被檔案140 存儲(chǔ)。例如,檔案140在接收到查詢時(shí)可能沒有接收到特定消息。在這樣的情況下,檔案140 可以經(jīng)由協(xié)調(diào)應(yīng)用程序146用標(biāo)識(shí)未被存儲(chǔ)的消息的否定響應(yīng)(Nak)來(lái)響應(yīng)。因?yàn)橛蓞f(xié) 調(diào)代理127發(fā)出的初始傳遞確認(rèn)查詢針對(duì)預(yù)期被存儲(chǔ)在檔案140中的消息,所以接收到否 定響應(yīng)可以指示典型的消息傳遞和處理延遲或更嚴(yán)重的問(wèn)題。當(dāng)協(xié)調(diào)代理127從檔案140 接收到關(guān)于特定消息的否定響應(yīng)時(shí),在消息存儲(chǔ)310中維護(hù)未經(jīng)確認(rèn)的消息以保證其可用 性,直到可以確認(rèn)該消息被歸檔。當(dāng)接收到關(guān)于特定消息的否定響應(yīng)時(shí),協(xié)調(diào)代理127可以將消息分類為Gen-2。因 此,在一些實(shí)施例中,可以基于不能確認(rèn)這樣的消息的歸檔來(lái)對(duì)待協(xié)調(diào)消息進(jìn)行分類。如果 不能確認(rèn)消息的歸檔,則可能是正在經(jīng)歷典型的消息傳遞和處理延遲且需要額外的時(shí)間來(lái) 允許解決延遲的情況。在圖4所示的示例中,當(dāng)與消息相關(guān)聯(lián)的時(shí)間在時(shí)間間隔T2內(nèi)時(shí),該消息可以被 分類為Gen-2消息。如圖所示,時(shí)間間隔T2的長(zhǎng)度可以對(duì)應(yīng)于問(wèn)題解決SLA( △問(wèn)題解決) 時(shí)間間隔。根據(jù)各實(shí)施例,時(shí)間間隔Δ問(wèn)題解決可以基于解決消息延遲所需要的時(shí)間。例 如,時(shí)間間隔△問(wèn)題解決可以是按正常過(guò)程通過(guò)自動(dòng)修正和/或通過(guò)手動(dòng)干預(yù)解決引起延 遲的問(wèn)題來(lái)解決大多數(shù)消息延遲問(wèn)題所耗費(fèi)的假設(shè)的或觀察到的時(shí)間量。一般地,時(shí)間間 隔Δ問(wèn)題解決將是相對(duì)較長(zhǎng)的時(shí)間段,例如約5小時(shí)。
可以基于用于解決消息延遲的時(shí)間間隔來(lái)對(duì)待協(xié)調(diào)消息進(jìn)行分類。應(yīng)明白,理想 地,將消息分類為Gen-2或Gen-3很少出現(xiàn)。在各種實(shí)現(xiàn)中,在時(shí)間間隔T2期間且直到時(shí) 間間隔Δ問(wèn)題解決已經(jīng)過(guò)去,特定消息可以被分類為Gen-2消息,且然后被分類為Gen-3。 例如,特定的未經(jīng)確認(rèn)的消息可以被分類為Gen-2,直到從協(xié)調(diào)代理127接收到包含特定的 未經(jīng)確認(rèn)的消息的日志報(bào)告的副本和/或未經(jīng)確認(rèn)的消息最初被存儲(chǔ)在消息存儲(chǔ)310中的 時(shí)間起已經(jīng)過(guò)去時(shí)間間隔(△高速緩存+ △問(wèn)題解決)?;蛘撸囟ǖ奈唇?jīng)確認(rèn)的消息可以 被分類為Gen-2,直到從發(fā)送關(guān)于特定的未經(jīng)確認(rèn)的消息的初始傳遞確認(rèn)查詢的時(shí)間起已 經(jīng)過(guò)去時(shí)間間隔Δ問(wèn)題解決。 被協(xié)調(diào)代理127分類為Gen-2的待決消息可以對(duì)應(yīng)于經(jīng)歷延遲問(wèn)題的未經(jīng)確認(rèn)的 消息。根據(jù)各實(shí)施例,協(xié)調(diào)代理127不發(fā)出關(guān)于被分類為Gen-2的待決消息的查詢。例如, 如果在已經(jīng)過(guò)去Δ問(wèn)題解決之前發(fā)送關(guān)于日志報(bào)告的部署的重試查詢,則該查詢將很可 能得到另一否定響應(yīng)(Nak)。因此,不為T2期間的Gen-2消息執(zhí)行查詢發(fā)出,且可以延遲該 查詢發(fā)出直到Δ問(wèn)題解決期滿。在各實(shí)施例中,被分類為Gen-3消息的消息可以包括比T0+T1+T2更老的消息。在 一些實(shí)施例中,例如,被分類為Gen-3的消息跨越在當(dāng)前時(shí)間之前的時(shí)間間隔(△高速緩存 + Δ問(wèn)題解決)之前提交的所有消息。被協(xié)調(diào)代理127分類為Gen-3的待決消息可以對(duì)應(yīng) 于具有現(xiàn)在可以解決的延遲問(wèn)題的未經(jīng)確認(rèn)的消息。在允許時(shí)間間隔Δ問(wèn)題解決過(guò)去以解決郵件延遲之后,協(xié)調(diào)代理127可以發(fā)出關(guān) 于被分類為Gen-3的一個(gè)或多個(gè)未經(jīng)確認(rèn)的消息的重試查詢。在時(shí)間間隔T3期間,例如,協(xié) 調(diào)代理127可以聯(lián)系檔案140的協(xié)調(diào)應(yīng)用程序146并發(fā)出包括一個(gè)或多個(gè)Gen-3消息的消 息ID在內(nèi)的重試查詢。在一些實(shí)施例中,協(xié)調(diào)代理127可以周期性地發(fā)出關(guān)于待決Gen-3 消息中的部分或全部的重試查詢。例如,協(xié)調(diào)代理127可以每隔24小時(shí)就聯(lián)系檔案140的 協(xié)調(diào)應(yīng)用程序146,并發(fā)出包括先前在當(dāng)前時(shí)間之前的時(shí)間間隔(△高速緩存+△問(wèn)題解 決)之前提交的所有Gen-3消息的消息ID在內(nèi)的重試查詢。重試查詢可由檔案140經(jīng)由協(xié)調(diào)應(yīng)用程序146接收,且可以確定在重試查詢中標(biāo) 識(shí)的每一個(gè)消息現(xiàn)在是否已經(jīng)被檔案140接收并完全地存儲(chǔ)。如果確定在重試查詢中標(biāo)識(shí) 的所有Gen-3消息都被完全存儲(chǔ),則檔案140可以經(jīng)由協(xié)調(diào)應(yīng)用程序146用指示每一消息 均被存儲(chǔ)的肯定響應(yīng)(Ack)來(lái)響應(yīng)。當(dāng)接收到對(duì)特定消息的肯定響應(yīng)時(shí),協(xié)調(diào)代理127可 以確認(rèn)先前未經(jīng)確認(rèn)的消息已經(jīng)被歸檔且可以從本地消息存儲(chǔ)310刪除該消息。然而,如果確定在重試查詢中標(biāo)識(shí)的消息中的一個(gè)或多個(gè)未被存儲(chǔ),則檔案140 可以經(jīng)由協(xié)調(diào)應(yīng)用程序146用標(biāo)識(shí)未被存儲(chǔ)的消息的否定響應(yīng)(Nak)來(lái)響應(yīng)。當(dāng)協(xié)調(diào)代理 127從檔案140接收到關(guān)于特定消息的否定響應(yīng)時(shí),在消息存儲(chǔ)310中維護(hù)未經(jīng)確認(rèn)的消息 以保證其可用性,直到可以確認(rèn)該消息被歸檔。在一些實(shí)施例中,當(dāng)接收到對(duì)關(guān)于Gen-3消息的重試查詢的否定響應(yīng)時(shí),協(xié)調(diào)代 理127可以確定是否已經(jīng)達(dá)到最大等待時(shí)間閾值。如果還沒有達(dá)到最大等待時(shí)間閾值,則 協(xié)調(diào)可以周期性地聯(lián)系檔案140的協(xié)調(diào)應(yīng)用程序146并發(fā)出對(duì)未經(jīng)確認(rèn)的消息的進(jìn)一步的 重試查詢,直到達(dá)到最大等待時(shí)間閾值。在其他實(shí)施例中,當(dāng)接收到對(duì)關(guān)于Gen-3消息的重試查詢的否定響應(yīng)時(shí)協(xié)調(diào)代理 127可以確定是否已經(jīng)達(dá)到最大重試嘗試次數(shù)。如果沒有達(dá)到最大重試嘗試次數(shù),則協(xié)調(diào)可以周期性地聯(lián)系檔案140的協(xié)調(diào)應(yīng)用程序146并發(fā)出對(duì)未經(jīng)確認(rèn)的消息的進(jìn)一步的重試查詢,直到達(dá)到最大嘗試次數(shù)。當(dāng)不能確認(rèn)消息時(shí),協(xié)調(diào)代理127可以通過(guò)將未經(jīng)確認(rèn)的消息重新提交給檔案 140來(lái)執(zhí)行對(duì)未經(jīng)確認(rèn)的消息的補(bǔ)救。在一些實(shí)施例中,當(dāng)已經(jīng)達(dá)到最大等待時(shí)間或最大重 試嘗試次數(shù)時(shí),協(xié)調(diào)代理127可以執(zhí)行對(duì)未經(jīng)確認(rèn)的消息的補(bǔ)救。在其他實(shí)施例中,可以不 存在最大等待時(shí)間或最大重試嘗試次數(shù),且協(xié)調(diào)代理127可以在單次重試嘗試失敗后開始 補(bǔ)救。例如,如果對(duì)Gen-3消息的第一重試嘗試失敗,則協(xié)調(diào)代理127可以在接收到來(lái)自檔 案140的否定響應(yīng)之后立即補(bǔ)救消息。直到確認(rèn)特定消息被歸檔,未經(jīng)確認(rèn)的消息保留在消息存儲(chǔ)310中以保證其可用 性。根據(jù)各實(shí)施例,協(xié)調(diào)代理127可以將未經(jīng)確認(rèn)的消息重新提交給檔案140,并將未經(jīng)確 認(rèn)的消息的副本保存在消息存儲(chǔ)310中。在未經(jīng)確認(rèn)的消息被重新提交給檔案140之后, 協(xié)調(diào)過(guò)程可以再次開始,直到確認(rèn)該特定消息被歸檔。如果在若干重新提交嘗試之后不能協(xié)調(diào)特定消息,則需要干預(yù)。根據(jù)各實(shí)施例, 在補(bǔ)救失敗諸如特定數(shù)量的重新提交嘗試失敗之后,協(xié)調(diào)代理127可以生成和發(fā)送警告警 告。例如,如果在若干重新提交嘗試之后協(xié)調(diào)失敗,則可以給生成電子郵件系統(tǒng)的管理員發(fā) 送告知管理員該問(wèn)題以及需要手動(dòng)過(guò)程來(lái)解決該問(wèn)題的警告。應(yīng)明白,即使是在特定消息 不能被協(xié)調(diào)時(shí),消息仍保留在消息存儲(chǔ)310中以保證其可用性。圖5示出適用于實(shí)施各實(shí)施例的消息流500的一個(gè)實(shí)施例。如圖所示,消息流500 可以涉及在電子郵件服務(wù)器Iio和檔案140之間交換消息501-509。在一些實(shí)現(xiàn)中,日志 記錄代理125、協(xié)調(diào)代理127、日志記錄應(yīng)用程序144和協(xié)調(diào)應(yīng)用程序146發(fā)送和接收消息 501-509,如以上所描述的。然而,各實(shí)施例不限于這樣的實(shí)現(xiàn)。此外,盡管圖所示的示例包 括特定消息集,但應(yīng)明白,消息流500提供一般功能的示例性實(shí)現(xiàn)。應(yīng)理解,可以包括替換 或附加消息,且取決于特定實(shí)現(xiàn)可以省略一些消息。如圖所示,電子郵件服務(wù)器110經(jīng)由日志記錄代理125,將日志報(bào)告501發(fā)送給檔 案140。在各種實(shí)現(xiàn)中,可以基于日志記錄條件集來(lái)創(chuàng)建日志報(bào)告501。例如,當(dāng)電子郵件 消息被電子郵件服務(wù)器110發(fā)送給接收者時(shí),日志記錄代理125可以確定電子郵件消息是 否滿足日志記錄的條件。如果滿足這些條件且要應(yīng)用日志記錄,則日志記錄代理125將電 子郵件消息打包為日志報(bào)告501。日志報(bào)告501可以包括,例如滿足檔案140的日志記錄條件的電子郵件消息的副 本以及包括消息的消息ID、接收者身份和消息的其他傳輸數(shù)據(jù)的元數(shù)據(jù)。電子郵件服務(wù)器 110將電子郵件消息發(fā)送給接收者并經(jīng)由經(jīng)由日志記錄代理125將日志報(bào)告501發(fā)送給檔 案140。可以例如通過(guò)SMTP經(jīng)由電子郵件將日志報(bào)告501發(fā)送給檔案140。根據(jù)各實(shí)施例,當(dāng)日志報(bào)告501被創(chuàng)建時(shí),日志記錄代理125還將日志報(bào)告的副本 502發(fā)送給協(xié)調(diào)代理127以便存儲(chǔ)在本地郵箱或保存區(qū),諸如消息存儲(chǔ)310中。日志報(bào)告的 副本502包括要協(xié)調(diào)的消息,其可以包括被發(fā)送給接收者并被發(fā)送給檔案140的相同消息 的副本。日志報(bào)告的副本502還可以包含包括消息的消息ID、接收者身份和消息的其他傳 輸數(shù)據(jù)元數(shù)據(jù)的元數(shù)據(jù)。如上所述,在一些實(shí)現(xiàn)中,保存區(qū)中的待協(xié)調(diào)消息可以被分類成多代協(xié)調(diào)。根據(jù)各 實(shí)施例,待協(xié)調(diào)消息可基于與檔案140相關(guān)聯(lián)的等待時(shí)間、在可以從高速緩存320中本地地獲得要協(xié)調(diào)的消息的副本時(shí)、確認(rèn)消息歸檔失敗、用于解決消息延遲的時(shí)間間隔或以其他 方式來(lái)進(jìn)行分類。在這樣的實(shí)現(xiàn)中,可以根據(jù)消息分類來(lái)發(fā)出查詢以便優(yōu)化協(xié)調(diào)過(guò)程的性 能并最小化對(duì)檔案140的查詢的數(shù)量。 在圖5所示的示例中,協(xié)調(diào)代理127可以聯(lián)系檔案140的協(xié)調(diào)應(yīng)用程序146并發(fā) 送配置查詢503。在各種實(shí)現(xiàn)中,配置查詢503可以包括向檔案140請(qǐng)求諸如處理消息的預(yù) 期SLA或等待時(shí)間等特定配置信息的web服務(wù)查詢。檔案140可以經(jīng)由協(xié)調(diào)應(yīng)用程序146 接收配置查詢503。檔案140經(jīng)由協(xié)調(diào)應(yīng)用程序146用包括所請(qǐng)求的配置信息的配置響應(yīng) 504來(lái)響應(yīng)配置查詢503。如圖所示,電子郵件服務(wù)器110可以經(jīng)由協(xié)調(diào)代理127向協(xié)調(diào)應(yīng)用程序146發(fā)出 一個(gè)或多個(gè)查詢,以保證特定消息到達(dá)并存儲(chǔ)在檔案140處。在各實(shí)施例中,協(xié)調(diào)代理127 可以執(zhí)行異步協(xié)調(diào)過(guò)程,該異步協(xié)調(diào)過(guò)程用于聯(lián)系檔案140、詢問(wèn)被發(fā)送給檔案140的消息 是否已經(jīng)被完全保存以及確認(rèn)消息在檔案140中的存儲(chǔ)。如果檔案140不能確認(rèn)給定消息 的存儲(chǔ),則協(xié)調(diào)代理127可以在稍后時(shí)刻再次執(zhí)行詢問(wèn)檔案140的一系列步驟。即使檔案 140從不確認(rèn)存儲(chǔ),協(xié)調(diào)代理127也將維護(hù)消息的本地副本,以供查看、打印、保存等等。在圖5所示的示例中,協(xié)調(diào)代理127可以聯(lián)系檔案140的協(xié)調(diào)應(yīng)用程序146和發(fā) 送傳遞確認(rèn)查詢505。在各種實(shí)現(xiàn)中,在ASLA期滿之后在時(shí)間間隔Tl期間,可以發(fā)送傳遞 確認(rèn)查詢505。傳遞確認(rèn)查詢505可以包括,例如一個(gè)或多個(gè)Gen-I消息的消息ID。由協(xié) 調(diào)代理127接收并被分類為Gen-I的消息可以對(duì)應(yīng)于預(yù)期被存儲(chǔ)在檔案140中的消息。另 夕卜,消息的副本可以從高速緩存320中獲得,以實(shí)現(xiàn)I/O節(jié)省。傳遞確認(rèn)查詢505可以由檔案140經(jīng)由協(xié)調(diào)應(yīng)用程序146接收,且可以確定傳遞 確認(rèn)查詢505中標(biāo)識(shí)的每一個(gè)消息是否已經(jīng)由檔案140接收并完全存儲(chǔ)?;谠摯_定,檔 案140經(jīng)由協(xié)調(diào)應(yīng)用程序146用傳遞確認(rèn)查詢響應(yīng)506來(lái)響應(yīng)傳遞確認(rèn)查詢505。在各種 實(shí)現(xiàn)中,傳遞確認(rèn)查詢響應(yīng)506可以在時(shí)間間隔Tl期間發(fā)送并包括一個(gè)或多個(gè)Gen-I消息 的消息ID。如果確定傳遞確認(rèn)查詢505中標(biāo)識(shí)的所有消息被完全存儲(chǔ),則檔案140可以經(jīng)由 協(xié)調(diào)應(yīng)用程序146用包括指示每一個(gè)消息都已被存儲(chǔ)的肯定響應(yīng)(Ack)的傳遞確認(rèn)查詢響 應(yīng)506來(lái)響應(yīng)。當(dāng)傳遞確認(rèn)查詢響應(yīng)506包括肯定響應(yīng)時(shí),協(xié)調(diào)代理127確認(rèn)消息被歸檔 且可以從本地消息存儲(chǔ)310刪除該消息。如果確定傳遞確認(rèn)查詢505中標(biāo)識(shí)的消息中的一個(gè)或多個(gè)沒有被檔案140存儲(chǔ), 則檔案140可以經(jīng)由協(xié)調(diào)應(yīng)用程序146用包括標(biāo)識(shí)未被存儲(chǔ)的消息的否定響應(yīng)(Nak)的傳 遞確認(rèn)查詢響應(yīng)506來(lái)響應(yīng)。當(dāng)協(xié)調(diào)代理127接收到包括否定響應(yīng)的傳遞確認(rèn)查詢響應(yīng) 506時(shí),在消息存儲(chǔ)310中維護(hù)未經(jīng)確認(rèn)的消息以保證可用性,直到可以確認(rèn)消息被歸檔。當(dāng)一個(gè)或多個(gè)消息未被確認(rèn)時(shí),協(xié)調(diào)代理127可以聯(lián)系檔案140的協(xié)調(diào)應(yīng)用程序 146并發(fā)送重試查詢507。在各種實(shí)現(xiàn)中,可以在允許用于解決郵件延遲的時(shí)間間隔Δ問(wèn) 題解決過(guò)去之后的時(shí)間間隔Τ3期間發(fā)送重試查詢507。重試查詢507可以包括一個(gè)或多個(gè) Gen-3消息的消息ID。由協(xié)調(diào)代理127分類為Gen-3的待決消息可以對(duì)應(yīng)于具有現(xiàn)在可以 解決的延遲問(wèn)題的未經(jīng)確認(rèn)的消息。重試查詢507可以由檔案140經(jīng)由協(xié)調(diào)應(yīng)用程序146接收,且可以確定重試查詢 507中標(biāo)識(shí)的每一個(gè)消息是否已經(jīng)由檔案140接收并完全存儲(chǔ)?;谠摯_定,檔案140經(jīng)由協(xié)調(diào)應(yīng)用程序146用重試查詢響應(yīng)508來(lái)響應(yīng)重試查詢507。在各種實(shí)現(xiàn)中,重試響應(yīng)508 可以在時(shí)間間隔T3期間發(fā)送并包括一個(gè)或多個(gè)Gen-3消息的消息ID。
如果確定重試查詢507中標(biāo)識(shí)的所有消息已被完全存儲(chǔ),則檔案140可以經(jīng)由協(xié) 調(diào)應(yīng)用程序146用包括指示每一消息被存儲(chǔ)的肯定響應(yīng)(Ack)的傳遞確認(rèn)查詢響應(yīng)508來(lái) 響應(yīng)。當(dāng)重試查詢響應(yīng)508包括肯定響應(yīng)時(shí),協(xié)調(diào)代理127確認(rèn)消息被歸檔和可以從本地 消息存儲(chǔ)310刪除該消息。如果確定重試查詢507中標(biāo)識(shí)的消息中的一個(gè)或多個(gè)沒有被檔案140存儲(chǔ),則檔 案140可以經(jīng)由協(xié)調(diào)應(yīng)用程序146用包括標(biāo)識(shí)沒有被存儲(chǔ)的消息的否定響應(yīng)(Nak)的重試 查詢響應(yīng)508來(lái)響應(yīng)。當(dāng)協(xié)調(diào)代理127接收到包括否定響應(yīng)的重試查詢響應(yīng)508時(shí),在消 息存儲(chǔ)310中維護(hù)未經(jīng)確認(rèn)的消息以保證可用性,直到可以確認(rèn)消息被歸檔。在一些實(shí)施例中,當(dāng)接收到包括否定響應(yīng)的重試查詢響應(yīng)508時(shí),協(xié)調(diào)代理127可 以發(fā)出進(jìn)一步的重試查詢,直到達(dá)到最大的等待時(shí)間閾值和/或最大嘗試次數(shù)。在其他實(shí) 施例中,在單次重試嘗試失敗時(shí),協(xié)調(diào)代理127就可以立即開始補(bǔ)救。當(dāng)消息不能被確認(rèn)時(shí),通過(guò)將消息重新提交給檔案140,協(xié)調(diào)代理127可以執(zhí)行對(duì) 未經(jīng)確認(rèn)的消息的補(bǔ)救。如圖所示,在一些實(shí)施例中,通過(guò)將重新提交消息509發(fā)送給日志 記錄應(yīng)用程序144,協(xié)調(diào)代理127可以執(zhí)行對(duì)未經(jīng)確認(rèn)的消息的補(bǔ)救。在其他實(shí)施例中,通 過(guò)將重新提交消息509發(fā)送給日志記錄代理125以便重新提交給檔案140,協(xié)調(diào)代理127可 以執(zhí)行對(duì)未經(jīng)確認(rèn)的消息的補(bǔ)救。重新提交消息509可以包括未經(jīng)確認(rèn)的消息的副本且可以通過(guò)例如SMTP作為日 志報(bào)告電子郵件消息被發(fā)送給檔案140。在各種實(shí)現(xiàn)中,發(fā)送重新提交消息509重演被發(fā)送 給檔案140的原始日志報(bào)告501。協(xié)調(diào)代理127還將未經(jīng)確認(rèn)的消息的副本保存在消息存 儲(chǔ)310中。在重新提交消息509被發(fā)送之后,協(xié)調(diào)過(guò)程可以再次開始,直到確認(rèn)特定消息被 歸檔。如果在若干重新提交嘗試之后,特定消息不能被協(xié)調(diào),則協(xié)調(diào)代理127可以生成警告
并將警告發(fā)送給管理員。根據(jù)各實(shí)施例,根據(jù)用于在電子郵件服務(wù)器110和檔案140之間通信的協(xié)調(diào)協(xié)議, 消息流500可以涉及一個(gè)或多個(gè)消息的交換。使用web服務(wù)協(xié)議和web服務(wù)模式,協(xié)調(diào)協(xié)議 可以例如被實(shí)現(xiàn)為web服務(wù)。在一些實(shí)施例中,協(xié)調(diào)協(xié)議可以被實(shí)現(xiàn)為根據(jù)簡(jiǎn)單的對(duì)象訪 問(wèn)協(xié)議(SOAP)通信協(xié)議和應(yīng)用程序之間的通信過(guò)程來(lái)傳遞XML文檔。當(dāng)被實(shí)現(xiàn)為web服務(wù) 時(shí),協(xié)調(diào)協(xié)議可以使用各種平臺(tái)和語(yǔ)言無(wú)關(guān)格式,這些格式被設(shè)計(jì)成根據(jù)諸如HTTP、HTTPS、 SMTP、FTP等通信協(xié)議通過(guò)諸如因特網(wǎng)等計(jì)算機(jī)網(wǎng)絡(luò)來(lái)進(jìn)行通信。應(yīng)明白,協(xié)調(diào)協(xié)議可以有 利地被實(shí)現(xiàn)為web服務(wù),這是由于防火墻通常允許HTTP通信并且許多檔案已經(jīng)提供HTTP 前端以允許管理員登陸歸檔內(nèi)容并對(duì)其執(zhí)行搜索。在一些實(shí)施例中,協(xié)調(diào)協(xié)議的查詢和響應(yīng)消息可以包括被實(shí)現(xiàn)為XML文檔的web 服務(wù)查詢和響應(yīng)。查詢和響應(yīng)XML文檔可以使用XML架構(gòu)和諸如XML命名空間(xmlns)、 XML架構(gòu)實(shí)例(xsi)、XML架構(gòu)定義(xsd)擴(kuò)展文件名等屬性來(lái)實(shí)現(xiàn)。在一些實(shí)現(xiàn)中,查詢和 響應(yīng)XML文檔可以包括SOAP消息,SOAP消息包括SOAP包封和包含調(diào)用和響應(yīng)信息的SOAP 正文。以下示出根據(jù)web服務(wù)協(xié)調(diào)協(xié)議實(shí)現(xiàn)的配置查詢503和配置響應(yīng)504的一個(gè)非限制性示例。在此示例中,配置查詢503正在詢問(wèn)以獲得特定配置信息,諸如用于處理消息的 預(yù)期SLA或等待時(shí)間。查詢
< ? xml version = “ 1.0〃 encoding = “ utf-8 “ ? ><soap Envelope xmlns xsi = “ http://www.w3.org/2001/ XMLSchema-instance“xmlns :xsd = ‘‘ http //www. w3. org/2001/XMLSchema"xmlns:soap = " http://schemas.xmlsoap.org/soap/envelope/" ><soap:Body>〈Configuration xmlns =" http://localhost/reconcile" ><IgnoredParameter xmlns =" " />〈/Configuration〉</soap:Body></soap:Envelope)響應(yīng)SLA是“O年O月O天O小時(shí)10分鐘O秒”所支持的版本是1.0和1.5< ? xml version = ” 1.0〃 encoding = ” utf-8” ? ><soap Envelope xmlns xsi = “ http://www.w3.org/2001/ XMLSchema-instance“xmlns :xsd = ‘‘ http //www. w3. org/2001/XMLSchema"xmlns: soap = " http://schemas.xmlsoap.org/soap/envelope/" ><soap:Body><ConfigurationResponse xmlns = " http://localhost/ reconcile" >〈Configuration xmlns = 〃 〃 ><Sla>P0Y0M0DT0H10M0S</Sla><SupportedVersions>〈Version〉<MajorVersion>l</MajorVersion><MinorVersion>0</MinorVersion>〈/Version〉〈Version〉<MajorVersion>l</MajorVersion><MinorVersion>5</MinorVersion>〈/Version〉</SupportedVersions>〈/Configuration〉</ConfigurationResponse)
〈/soap: Body〉</soap: Envelope) 以下示出根據(jù)web服務(wù)協(xié)調(diào)協(xié)議實(shí)現(xiàn)的傳遞確認(rèn)查詢505和傳遞確認(rèn)響應(yīng)506的 一個(gè)非限制性示例。在此示例中,傳遞確認(rèn)查詢505正在向檔案帳戶bank_customer@ehs. com詢問(wèn)已發(fā)送所示次數(shù)的兩個(gè)消息的狀態(tài)(‘V后綴指示XML架構(gòu)的UTC)。查詢< ? xml version = “ 1.0〃 encoding = “ utf-8 “ ? ><soap Envelope xmlns xsi = “ http://www.w3.org/2001/ XMLSchema-instance“xmlns :xsd = ‘‘ http //www. w3. org/2001/XMLSchema"xmlns:soap = " http://schemas.xmlsoap.org/soap/envelope/" ><soap:Body><ConfirmDe 1 ivery xmlns=" http://localhost/reconcile" >〈Account xmlns="" ><EmailAddress>bank_customeriehs. com</EmailAddress>〈/Account〉〈MessageldList xmlns="" ><MessageIdSentTime = " 2008-09-01T09:00:OOZ " >12345ijournal. report. messageicK/ Messageld><MessageIdSentTime = " 2008-09-01T09:01:OOZ〃 >67890ijournal. report. messageicK/ Messageld>〈/MessageldList〉</ConfirmDelivery>〈/soap: Body〉</soap: Envelope)響應(yīng)對(duì)于第一消息,消息等待時(shí)間為9分15秒,而對(duì)于第二消息,消息等待時(shí)間為8分 12秒。< ? xml version = “ 1.0〃 encoding = “ utf-8 “ ? ><soap Envelope xmlns:xsi = “ http://www.w3.org/200 1/ XMLSchema-instance“xmlns :xsd = ‘‘ http //www. w3. org/2001/XMLSchema"xmlns:soap = " http://schemas.xmlsoap.org/soap/envelope/" ><soap:Body><ConfirmDeIiveryResponse xmlns = " http://localhost/ reconcile" >〈MessageldList xmlns="" >
<MessageIdLatency = “ P0Y0M0DT0H9M15S “ >12345ijournal. report. messageicK/ Messageld><MessageIdLatency = “ P0Y0M0DT0H8M12S “ >67890ijournal. report. messageicK/ Messageld></MessageIdList></ConfirmDeliveryResponse>〈/soap: Body〉</soap: Envelope)可以理解,盡管一些實(shí)施例可以被描述為根據(jù)web服務(wù)協(xié)議來(lái)實(shí)現(xiàn)協(xié)調(diào)協(xié)議,但 是可以使用其他協(xié)議,包括但不限于,遠(yuǎn)程過(guò)程調(diào)用(RPC)協(xié)議、電子郵件消息收發(fā)協(xié)議、 諸如傳輸控制協(xié)議(TCP)等網(wǎng)際協(xié)議、代表性狀態(tài)傳輸(REST)協(xié)議、諸如真正簡(jiǎn)單聚合 (RSS)等web饋源協(xié)議、和/或任何其他合適的同步或異步協(xié)議??梢詤⒖家粋€(gè)或多個(gè)邏輯流程進(jìn)一步描述上文所描述的實(shí)施例的操作??梢岳?解,代表性的邏輯流程不一定必須按呈現(xiàn)的順序執(zhí)行,或按任何特定順序執(zhí)行,除非另有陳 述。此外,參考邏輯流程所描述的各種活動(dòng)可以串行地或并行地執(zhí)行。邏輯流程可以根據(jù) 給定一組設(shè)計(jì)和性能約束的需要,使用所描述的各實(shí)施例一個(gè)或多個(gè)硬件元素和/或軟件 元素,或替換的元素來(lái)實(shí)現(xiàn)。例如,邏輯流程可以實(shí)現(xiàn)為由邏輯設(shè)備(例如,通用或特定用 途計(jì)算機(jī))執(zhí)行的邏輯(例如,計(jì)算機(jī)程序指令)。圖6示出了適于實(shí)施各實(shí)施例的邏輯流程600的一個(gè)實(shí)施例。邏輯流程600可以 代表由此處所描述的一個(gè)或多個(gè)實(shí)施例執(zhí)行的某些或全部操作。如圖所示,邏輯流程600可以包括接收要協(xié)調(diào)的消息(框610)。在各種實(shí)現(xiàn)中,要協(xié)調(diào)的消息可以對(duì)應(yīng)于由電子郵件服務(wù)器110發(fā)送給檔案140以供存儲(chǔ)的消息。在一些實(shí) 現(xiàn)中,例如,要協(xié)調(diào)的消息可以包括被發(fā)送給檔案140以供存儲(chǔ)的消息的副本。要協(xié)調(diào)的消 息可以在日志報(bào)告502的副本中接收,日志報(bào)告502對(duì)應(yīng)于由電子郵件服務(wù)器110發(fā)送給 檔案140的日志報(bào)告501。日志報(bào)告502的副本可以包括被發(fā)送給接受者并被發(fā)送給檔案 140以供存儲(chǔ)的相同消息的副本。邏輯流程600可以包括對(duì)所接收的要協(xié)調(diào)的消息進(jìn)行分類(框620)。在各實(shí)施例 中,要協(xié)調(diào)的消息可以基于一個(gè)或多個(gè)時(shí)間間隔來(lái)分類,諸如對(duì)應(yīng)于與檔案相關(guān)聯(lián)的等待 時(shí)間的時(shí)間間隔、可以在本地高速緩存320中獲得要協(xié)調(diào)的消息的副本的時(shí)間間隔和用于 解決延遲問(wèn)題的時(shí)間間隔。要協(xié)調(diào)的消息還可以基于接收到對(duì)傳遞確認(rèn)查詢的否定響應(yīng)來(lái) 分類。邏輯流程600可以包括根據(jù)要協(xié)調(diào)的消息的分類來(lái)向檔案發(fā)出的傳遞確認(rèn)查詢 (框630)。在各實(shí)施例中,傳遞確認(rèn)查詢可以基于檔案140的等待時(shí)間來(lái)延遲。在一些實(shí) 現(xiàn)中,傳遞確認(rèn)查詢可以根據(jù)web服務(wù)協(xié)議被發(fā)送給檔案140。邏輯流程600可以包括確認(rèn)被發(fā)送給服務(wù)器的消息的歸檔(框640)。在各實(shí)施 例中,要協(xié)調(diào)的消息被存儲(chǔ)在諸如消息存儲(chǔ)310等保存區(qū)中,直到確認(rèn)發(fā)送給檔案140的消 息被存儲(chǔ)。在確認(rèn)消息被存儲(chǔ)在檔案140中之后,可以從消息存儲(chǔ)310中刪除要協(xié)調(diào)的消息。如果接收到對(duì)傳遞確 認(rèn)查詢的否定響應(yīng),則可以向檔案140發(fā)送重試查詢,直到達(dá)到最 大等待時(shí)間和/或最大嘗試次數(shù)。邏輯流程600可以包括補(bǔ)救未經(jīng)確認(rèn)的消息(框650)。在各實(shí)施例中,在接收到 對(duì)重試查詢的否定響應(yīng)之后,可將要協(xié)調(diào)的消息重新提交給檔案。在未經(jīng)確認(rèn)的消息被重 新提交給檔案140之后,協(xié)調(diào)過(guò)程可以再次開始,直到確認(rèn)特定消息被歸檔。應(yīng)明白,即使 在無(wú)法確認(rèn)特定消息時(shí),消息也保留在消息存儲(chǔ)310中以保證其可用性??梢岳斫猓M管邏輯流程600可以被描述為執(zhí)行特定步驟序列,但是,根據(jù)替換實(shí) 施例,還可執(zhí)行其他步驟序列。此外,由邏輯流程600的某些單獨(dú)步驟可包括多個(gè)子步驟, 這些子步驟可以按對(duì)單獨(dú)步驟合適的各種順序執(zhí)行。此外,取決于特定實(shí)現(xiàn),可以添加附加 步驟或者可以移除某些步驟。圖7示出了適于存儲(chǔ)各實(shí)施例的邏輯的制品700的示圖。如圖所示,制品700可 以包括用于存儲(chǔ)邏輯704的存儲(chǔ)介質(zhì)702。存儲(chǔ)介質(zhì)702的示例可包括能夠存儲(chǔ)電子數(shù)據(jù) 的一種或多種類型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括易失性存儲(chǔ)器或非易失性存儲(chǔ)器,可移動(dòng) 或不可移動(dòng)存儲(chǔ)器,可擦除或不可擦存儲(chǔ)器,可寫入或可重寫的存儲(chǔ)器等等。邏輯704的示 例可包括各種軟件元素,如軟件組件、程序、應(yīng)用、計(jì)算機(jī)程序、應(yīng)用程序、系統(tǒng)程序、機(jī)器程 序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過(guò)程、軟件接口、應(yīng)用 程序接口(API)、指令集、計(jì)算代碼、計(jì)算機(jī)代碼、代碼段、計(jì)算機(jī)代碼段、文字、值、符號(hào),或 其任何組合。在一個(gè)實(shí)施例中,例如,制品700和/或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)702可以存儲(chǔ)包括可 執(zhí)行計(jì)算機(jī)程序指令的邏輯704,當(dāng)由計(jì)算機(jī)執(zhí)行所述指令時(shí),所述指令使計(jì)算機(jī)執(zhí)行根據(jù) 所描述的實(shí)施例的方法和/或操作。計(jì)算機(jī)的示例可包括具有根據(jù)所述實(shí)施例的計(jì)算能力 和/或通信能力的任何合適的計(jì)算設(shè)備。示例性計(jì)算設(shè)備可包括但不限于,移動(dòng)設(shè)備、個(gè) 人數(shù)字助理、移動(dòng)計(jì)算設(shè)備、智能電話、蜂窩電話、手機(jī)、單向?qū)ず魴C(jī)、雙向?qū)ず魴C(jī)、消息通信 設(shè)備、計(jì)算機(jī)、個(gè)人計(jì)算機(jī)(PC)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、手持式計(jì)算機(jī)、 服務(wù)器、服務(wù)器陣列或服務(wù)器場(chǎng)、web服務(wù)器、網(wǎng)絡(luò)服務(wù)器、因特網(wǎng)服務(wù)器、工作站、小型計(jì)算 機(jī)、大型計(jì)算機(jī)、超級(jí)計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備、web設(shè)備、分布式計(jì)算系統(tǒng)、多處理器系統(tǒng)、基于處 理器的系統(tǒng)、消費(fèi)電子產(chǎn)品、可編程消費(fèi)電子產(chǎn)品、電視機(jī)、數(shù)字電視機(jī)、機(jī)頂盒、無(wú)線接入 點(diǎn)、基站、用戶站、移動(dòng)用戶中心、無(wú)線電網(wǎng)絡(luò)控制器、路由器、集線器、網(wǎng)關(guān)、網(wǎng)橋、交換機(jī)、 機(jī)器、或其組合??蓤?zhí)行的計(jì)算機(jī)程序指令可包括任何合適類型的代碼,如源代碼、已編譯的代碼、 已解釋的代碼、可執(zhí)行代碼、靜態(tài)代碼、動(dòng)態(tài)代碼等等。可執(zhí)行計(jì)算機(jī)程序指令可以根據(jù)預(yù) 定義的計(jì)算機(jī)語(yǔ)言、方式或語(yǔ)法來(lái)實(shí)現(xiàn),以便指令計(jì)算機(jī)來(lái)執(zhí)行某一功能。指令可以使用任 何合適的高級(jí)、低級(jí)、面向?qū)ο?、可視、已編譯和/或解釋性編程語(yǔ)言,諸如c#、c、c++、java、 BASIC、Perl、Matlab、Pascal、Visual BASIC、匯編語(yǔ)言,及其他語(yǔ)言來(lái)實(shí)現(xiàn)。各實(shí)施例可以使用硬件元素、軟件元素或兩者的組合來(lái)實(shí)現(xiàn)。硬件元素的示例可 包括如前面為邏輯設(shè)備提供的示例中的任何一個(gè),并且還包括微處理器、電路、電路元件 (例如,晶體管、電阻器、電容器、感應(yīng)器等等)、集成電路、邏輯門、寄存器、半導(dǎo)體器件、芯 片、微芯片、芯片集等等。軟件元素的示例可包括軟件組件、程序、應(yīng)用、計(jì)算機(jī)程序、應(yīng)用程 序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過(guò)程、軟件接口、應(yīng)用程序接口(API)、指令集、計(jì)算代碼、計(jì)算機(jī)代碼、代碼段、計(jì)算機(jī)代碼 段、文字、值、符號(hào),或其任何組合。確定一個(gè)實(shí)施例是否使用硬件元素和/或軟件元素來(lái)實(shí) 現(xiàn)可以根據(jù)諸如根據(jù)給定實(shí)現(xiàn)所需的任意數(shù)量的因素而不同,諸如所希望的計(jì)算速率、功 率水平、耐熱性、處理周期預(yù)算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲(chǔ)器資源、數(shù)據(jù)總線速度, 及其他設(shè)計(jì)或性能約束。可以使用表達(dá)“耦合”和“連接”以及它們的派生詞來(lái)描述某些實(shí)施例。這些術(shù)語(yǔ) 不一定作為彼此的同義詞。例如,一些實(shí)施例可使用術(shù)語(yǔ)“連接的”和/或“耦合的”來(lái)描 述以指示兩個(gè)或更多元件彼此有直接的物理或電接觸。然而,術(shù)語(yǔ)“耦合的”還可以意味著 兩個(gè)或更多元件彼此不直接接觸,而仍彼此合作或交互。要強(qiáng)調(diào)的是,提供了本公開的摘要以符合37C.F.R. 1.72(b)節(jié),該節(jié)要求使讀者 能快速確定本技術(shù)公開的特性的摘要。但應(yīng)理解,它不能被用來(lái)解釋或限制權(quán)利要求的范 圍或含義。此外,在前面的“具體實(shí)施方式
”中,可以看出,各種特點(diǎn)可以編組到一個(gè)實(shí)施例 中,以便簡(jiǎn)化說(shuō)明。本公開的此方法不應(yīng)被解釋為反映所要求保護(hù)的各實(shí)施例需要比每一 個(gè)權(quán)利要求中明確地記載的特征更多的特征的意圖。相反,如下面的權(quán)利要求所反映的,本 發(fā)明的主題在于少于單個(gè)所公開的實(shí)施例的所有特征。如此,下面的權(quán)利要求被包括到“具 體實(shí)施方式”,且每一個(gè)權(quán)利要求本身也作為單獨(dú)的實(shí)施例。在所附權(quán)利要求書中,術(shù)語(yǔ)“包 括(including)”和“其中(其中)”被分別用作相應(yīng)的術(shù)語(yǔ)“包括(comprising)”和“其中 (wherein)”的普通英語(yǔ)等效詞。此 外,術(shù)語(yǔ)“第一”、“第二”、“第三”等等只用作標(biāo)記,并不 旨在對(duì)它們的對(duì)象施加數(shù)值要求。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語(yǔ)言描述了本主題,但可以理解,所附權(quán) 利要求書中定義的主題不必限于上述具體特征或動(dòng)作。相反,上述具體特征和動(dòng)作是作為 實(shí)現(xiàn)權(quán)利要求的示例形式公開的。
權(quán)利要求
1.一種方法,所述方法包括接收(610)要協(xié)調(diào)的消息,所述要協(xié)調(diào)的消息對(duì)應(yīng)于由服務(wù)器(110)發(fā)送給檔案(140) 以供存儲(chǔ)的消息;對(duì)所接收的要協(xié)調(diào)的消息進(jìn)行分類(620);根據(jù)所述要協(xié)調(diào)的消息的分類來(lái)向所述檔案發(fā)出(630)傳遞確認(rèn)查詢;以及基于對(duì)所述傳遞確認(rèn)查詢的響應(yīng)來(lái)確認(rèn)(640)從所述服務(wù)器發(fā)送到所述檔案的消息 是否被存儲(chǔ)在所述檔案中。
2.如權(quán)利要求1所述的方法,其特征在于,包括接收對(duì)應(yīng)于由所述服務(wù)器發(fā)送到所述 檔案的日志報(bào)告的日志報(bào)告的副本。
3.如權(quán)利要求1所述的方法,其特征在于,包括發(fā)出向所述檔案請(qǐng)求包括預(yù)期等待時(shí) 間的配置信息的配置查詢。
4.如權(quán)利要求1所述的方法,其特征在于,包括基于一個(gè)或多個(gè)時(shí)間間隔來(lái)對(duì)所述要 協(xié)調(diào)的消息進(jìn)行分類。
5.如權(quán)利要求4所述的方法,其特征在于,所述時(shí)間間隔包括以下時(shí)間間隔中的一個(gè) 或多個(gè)對(duì)應(yīng)于與所述檔案相關(guān)聯(lián)的等待時(shí)間的時(shí)間間隔、可從本地高速緩存中獲得所述 要協(xié)調(diào)的消息的副本的時(shí)間間隔、以及用于解決延遲問(wèn)題的時(shí)間間隔。
6.如權(quán)利要求1所述的方法,其特征在于,包括基于接收到對(duì)所述傳遞確認(rèn)查詢的否 定響應(yīng)來(lái)對(duì)所述要協(xié)調(diào)的消息進(jìn)行分類。
7.如權(quán)利要求1所述的方法,其特征在于,包括在接收到對(duì)所述傳遞確認(rèn)查詢的否定 響應(yīng)之后發(fā)出重試查詢。
8.如權(quán)利要求7所述的方法,其特征在于,包括在接收到對(duì)所述重試查詢的否定響應(yīng) 之后將所述要協(xié)調(diào)的消息重新提交給所述檔案。
9.如權(quán)利要求1所述的方法,其特征在于,包括存儲(chǔ)所述要協(xié)調(diào)的消息;以及在接收到對(duì)所述傳遞確認(rèn)查詢的肯定響應(yīng)之后,刪除所述要協(xié)調(diào)的消息。
10.如權(quán)利要求1所述的方法,其特征在于,包括根據(jù)web服務(wù)協(xié)議來(lái)向所述檔案發(fā)出 所述傳遞確認(rèn)查詢。
11.一種包括包含指令的機(jī)器或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的制品,所述指令在被執(zhí)行時(shí)使 系統(tǒng)能夠?qū)崿F(xiàn)如權(quán)利要求1到10中的任一項(xiàng)所述的方法。
12.一種裝置,包括消息接收組件(332),所述消息接收組件(332)從日志記錄代理(125)接收日志報(bào)告的 副本,所述日志報(bào)告的副本包括對(duì)應(yīng)于由所述日志記錄代理發(fā)送給檔案(140)以供存儲(chǔ)的 消息的要協(xié)調(diào)的消息;分類組件(334),所述分類組件(334)對(duì)所接收的要協(xié)調(diào)的消息進(jìn)行分類;以及查詢發(fā)出組件(336),所述查詢發(fā)出組件(336)向所述檔案發(fā)出傳遞確認(rèn)查詢,以便確 定從服務(wù)器(110)發(fā)送到所述檔案的消息是否被存儲(chǔ)在所述檔案中。
13.如權(quán)利要求12所述的裝置,其特征在于,包括查詢響應(yīng)接收組件(338),所述查詢響應(yīng)接收組件(338)從所述檔案接收對(duì)所述傳遞 確認(rèn)查詢的響應(yīng),其中所述查詢發(fā)出組件在接收到對(duì)所述傳遞確認(rèn)查詢的否定響應(yīng)之后發(fā)出重試查詢;以及補(bǔ)救組件(342),所述補(bǔ)救組件(34 在接收到對(duì)所述重試查詢的否定響應(yīng)后將所述 要協(xié)調(diào)的消息重新提交給所述檔案。
14.如權(quán)利要求12所述的裝置,其特征在于,所述裝置包括所述日志記錄代理。
15.如權(quán)利要求12所述的裝置,其特征在于,所述傳遞確認(rèn)查詢包括web服務(wù)查詢。
全文摘要
描述了用于協(xié)調(diào)和補(bǔ)救由服務(wù)器發(fā)送以供存儲(chǔ)在檔案中的消息的技術(shù)。一些技術(shù)可以包括接收要協(xié)調(diào)消息,該消息對(duì)應(yīng)于由服務(wù)器發(fā)送以便存儲(chǔ)在檔案中的消息??蓪?duì)所接收的要協(xié)調(diào)的消息進(jìn)行分類,且可以根據(jù)供協(xié)調(diào)的消息的分類來(lái)向檔案發(fā)出傳遞確認(rèn)查詢?;趯?duì)傳遞確認(rèn)查詢的響應(yīng),可以肯定地確定被發(fā)送給檔案以供存儲(chǔ)的消息是否確實(shí)被存儲(chǔ)在檔案中。描述并要求保護(hù)其他實(shí)施例。
文檔編號(hào)G06Q50/00GK102077237SQ200980125607
公開日2011年5月25日 申請(qǐng)日期2009年5月28日 優(yōu)先權(quán)日2008年6月27日
發(fā)明者G·普拉, J·凱, N·昌德, S·托馬斯, Y·王 申請(qǐng)人:微軟公司