專利名稱:具有混合代理/存儲-并-轉發(fā)邏輯的消息網關的制作方法
技術領域:
本發(fā)明涉及消息網關,尤其涉及具有混合代理/存儲-并-轉發(fā)邏輯的消息網關。
背景技術:
通過主控的電子郵件過濾服務,將嘗試向SMTP (簡單郵件傳輸協(xié)議)遞送系統(tǒng)發(fā)送郵件消息的外部客戶端的發(fā)送者導向電子郵件過濾服務/服務器(以下簡稱為“過濾服務”)。過濾服務通常被實現(xiàn)為SMTP中繼或網關,要么接受消息要么拒絕消息。例如,來自已知為壞的發(fā)送者(例如,“垃圾郵件發(fā)送者”)的消息可被拒絕。如果消息被接受,則過濾服務有責任將該消息發(fā)送到遞送SMTP系統(tǒng)。過濾服務掃描消息頭部和主體以不同于處理其他消息的方式來處理不期望的消息。一般地,關于接收消息、掃描它們以及遞送通信,這樣的過濾服務要么使用“代理”語義要么使用“存儲-并-轉發(fā)”語義。各個類型的語義都有益處和缺點。代理語義在外部SMTP發(fā)送客戶端和過濾服務之間的TCP連接,以及過濾服務和遞送系統(tǒng)之間類似的連接上操作?;诖淼倪^濾服務處理(掃描)消息并代理去往遞送服務器和發(fā)送者以及來自遞送服務器和發(fā)送者的通信,而不將消息寫入盤中或對消息承擔正式責任。這對大多數(shù)消息而言是簡單、成本低的、促進高吞吐量、引入相對少的延遲,并避免了對發(fā)送反彈(bounce)消息/NDR(非遞送報告/接收)或隔離(quarantining)消息的需要。然而,使用代理語義,在掃描發(fā)生期間必須保持外部客戶端和過濾服務之間的連接;對于慢的連接和/或大的消息(包括具有大的附件的消息)而言,這會是易于出錯的。 此外,如果在嘗試遞送到遞送系統(tǒng)時發(fā)生瞬態(tài)錯誤,則整個會話需要停止并在稍后被重試, 包括對被重新提交的消息進行冗余的掃描。另外,在大的負載的情況下,基于代理的過濾服務可能不能處理接收到的消息,并且必需向外部發(fā)送客戶端返回響應(例如,400-級響應),該響應基本上指示那些客戶端稍后再試。相反,存儲-并-轉發(fā)類型的過濾服務將每個接受到的輸入消息寫入盤上并接著關閉與外部客戶端的連接。存儲-并-轉發(fā)類型的過濾服務接著按需處理消息,并維持該消息直到該消息到遞送系統(tǒng)的轉發(fā)成功。這提供了在諸如當遞送系統(tǒng)(目的地郵件服務器) 不可用或當消息特別地大的特定環(huán)境下更可預測和可靠的結果。通過存儲消息,包括具有大的附件的大的消息可被分析而無需保持打開的TCP連接。此外,可以通過重新嘗試消息發(fā)送直到成功來克服瞬態(tài)錯誤,而不需要使消息遭受冗余的過濾。另外,如果過濾服務在大的負載的情況下,則過濾服務依然能接受郵件,該郵件保持排隊直到負載減輕。然而,存儲-并-轉發(fā)語義的缺點包括,存儲是昂貴的。此外,被拒絕的郵件需要以某種方式被處理,因為刪除郵件是與SMTP規(guī)范相背的,而被發(fā)送的NDR反彈通知常常被誤認為垃圾郵件。隔離消息增加了存儲成本。另外,在端對端遞送中存在更多的延遲,并且如果過濾服務在對消息正式負責之后而在該消息被遞送之前崩潰或失敗,則存在郵件丟失的風險。
發(fā)明內容
提供本發(fā)明內容以便以簡化形式介紹將在以下的具體實施方式
中進一步描述的一些代表性概念。本發(fā)明內容不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在以限制所要求保護的主題的范圍的任何方式來使用。簡言之,在此描述的主題的各個方面涉及網關/中繼內的技術,諸如包括代理和存儲-并-轉發(fā)邏輯的電子郵件過濾服務。當接收到電子消息(例如,電子郵件消息)時, 使用代理邏輯來初始地處理該消息。服務(例如,其中的代理邏輯)可基于對一個或多個情形的檢測來確定使用存儲-并-轉發(fā)邏輯進一步處理該消息。例如,一個情形可以是代理邏輯不能在超時時段內完成對消息的過濾掃描,由此代理邏輯調用存儲-并-轉發(fā)邏輯來完成對該消息的處理。其他情形包括,在代理邏輯內作出的遞送嘗試例如由于瞬態(tài)錯誤在遞送超時時段之前沒有完成,或失敗了。當遇見這樣的情形時,存儲-并-轉發(fā)邏輯接受消息,包括存儲該消息、發(fā)送指示該消息被接受的響應,以及關閉通過其接收消息的連接。任何掃描,如果代理邏輯沒有完成,存儲-并-轉發(fā)邏輯可以完成。消息(如果沒有被任何掃描阻止)被排隊以供遞送,并且嘗試的遞送可以被重新嘗試(例如,如果發(fā)生瞬態(tài)錯誤)直到消息被遞送。結合附圖閱讀以下具體實施方式
,本發(fā)明的其他優(yōu)點會變得顯而易見。
作為示例而非限制,在附圖中示出了本發(fā)明,附圖中相同的附圖標記指示相同或相似的元素,附圖中圖1是表示在混合代理/存儲-并-轉發(fā)過濾服務中的示例組件和電子消息數(shù)據(jù)流的框圖。圖2-4包括顯示代理邏輯與存儲-并-轉發(fā)邏輯進行交互以供過濾和遞送電子消息的流程圖。圖5是由多個服務/服務器實現(xiàn)的替換的混合代理/存儲-并-轉發(fā)過濾服務的表不。圖6是由多個服務器池和/或服務器鏈實現(xiàn)的替換的混合代理/存儲-并-轉發(fā)過濾服務的表示。圖7顯示了其中可并入本發(fā)明的各個方面的計算環(huán)境的說明性示例。
具體實施例方式在此描述的技術的各個方面一般涉及電子郵件過濾服務,該電子郵件過濾服務呈現(xiàn)代理語義,還能按需(諸如在異常情形或對大的消息的情況下)動態(tài)地使用存儲-并-轉發(fā)語義進行操作。電子郵件過濾服務可基于每消息或每連接(例如,連接上的某個消息組) 動態(tài)地采用代理和/或存儲-并-轉發(fā)語義。例如,大多數(shù)消息使用代理語義被發(fā)送,然而, 如果在給定消息上發(fā)生瞬態(tài)消息遞送錯誤或經過了指定的超時,則過濾服務一般表現(xiàn)像存儲-并-轉發(fā)過濾服務,例如,接受并存儲消息直到被遞送。應當理解的是,此處的任何示例均是非限制的。作為一個示例,盡管描述了電子郵
5件消息,但是任何其他類型的電子通信可以從在此描述的技術中受益。此外,盡管在此將網關/中繼例示為過濾服務,但是(不需要執(zhí)行過濾的)網關/中繼路由服務可以從在此描述的技術中受益。因此,本發(fā)明不限制于在此描述的任何具體的實施例、方面、概念、結構、 功能或示例。相反,在此描述的任何實施例、方面、概念、結構、功能或示例是非限制的,并且本發(fā)明能以一般在數(shù)據(jù)通信提供益處和優(yōu)點的各個方式使用。圖1顯示了其中客戶端發(fā)送者102發(fā)送旨在遞送接受者的消息10 的框圖,該消息實際上首先被導向過濾服務106。如將被理解的,如果沒有被過濾阻止,則過濾服務106 嘗試將消息104b發(fā)送給遞送系統(tǒng)108。起初,通信是由實現(xiàn)代理語義的代理機制110(邏輯)處理的。然而,如果基于代理的轉發(fā)沒有如所期望的那樣工作,則消息進而被提供給實現(xiàn)存儲-并-轉發(fā)語義的存儲-并-轉發(fā)機制112(邏輯)。如以下描述的,(如掃描器114表示的)消息掃描可在消息被代理機制110處理時或消息被存儲-并-轉發(fā)機制112處理時發(fā)生,或消息掃描可部分在代理機制110處理期間發(fā)生而部分在存儲-并-轉發(fā)機制112處理期間發(fā)生。圖2-4包括表示由代理機制110( —般地圖2和圖3)和存儲-并-轉發(fā)機制 112( —般地圖4)執(zhí)行的示例步驟。步驟202表示客戶端發(fā)送者連接到過濾服務106(例如,如通過DNS服務導向的),步驟204表示客戶端發(fā)送者向過濾服務106發(fā)送消息頭部。此時,代理語義是運作的,并且在過濾服務對消息(相對快速地)執(zhí)行頭部掃描時傳入連接保持打開。正如所知的,許多消息基于它們的頭部數(shù)據(jù)被拒絕,其由步驟208分支到拒絕消息表示。如果沒有在步驟208被阻止,客戶端向過濾服務106發(fā)送消息主體,過濾服務106 在步驟212開始掃描該消息。取決于包括任何附件的消息主體的大小,主體掃描可相對快地或相對慢地完成。如由步驟214所表示的,掃描在連接保持打開直到超時時段期間繼續(xù),該超時時段可由管理員或過濾服務的類似的成員類配置。在該掃描期間,如果消息主體包括被阻止的內容,則消息被拒絕,其由步驟214分支到拒絕消息表示。如果主體掃描完成而沒有阻止,則步驟繼續(xù)到如下描述的圖3。與傳統(tǒng)的基于代理的過濾相反,在步驟214的超時時段可在對還沒有被阻止的消息(雖然該消息可能在稍后被阻止)完成掃描之前達到。如果這樣,則步驟使用存儲-并-轉發(fā)邏輯繼續(xù)掃描,如以下描述的。更具體的,步驟302確定是否完成主體掃描或是否已經達到超時時段。如果沒有完成,步驟302分支到如下描述的圖4,在那里實現(xiàn)存儲-并-轉發(fā)語義。如果掃描是完成的,則消息被嘗試遞送,此時依然維持代理語義。為此,過濾服務 106連接到遞送系統(tǒng)(步驟304)并嘗試遞送消息(步驟306)。然而,該嘗試可能存在問題, 如由步驟308表示的該嘗試超時,或步驟310檢測到來自瞬態(tài)情形的遞送失敗。如果這樣的情形發(fā)生,則過程分支到如下描述的圖4以由存儲-并-轉發(fā)邏輯處理。步驟312表示接收來自遞送服務的結果,其在步驟314被返回到客戶端發(fā)送者。 由于使用傳統(tǒng)的代理操作,因為不存在觸發(fā)存儲-并-轉發(fā)處理的情形,成功或失敗(步驟 316)被返回到客戶端發(fā)送者,除了一般地掃描它,無需過濾服務存儲或以其他方式對處理該消息承擔任何責任。
轉向在諸如以上描述的情形下發(fā)生的存儲-并-轉發(fā)方面,圖4的步驟402表示過濾服務接受消息,包括存儲該消息并對嘗試遞送負責。例如,過濾服務在返回適當?shù)捻憫?例如,2500K響應)后關閉與客戶端的連接,并正式獲得該消息的所有權。隨后使用存儲-并-轉發(fā)邏輯來處理該消息。注意,如果主體掃描沒有完成(例如,圖4是經由圖3 的步驟302達到的),則主體掃描在步驟406繼續(xù),其中消息可通過步驟408被阻止(被隔
1 ) O 如果掃描已經完成并且沒有阻止,或通過步驟308或310達到圖4的存儲-并-轉發(fā)邏輯,則在步驟410消息被排隊以供遞送。步驟412和414表示嘗試連接并遞送消息,該嘗試可通過步驟416由于瞬態(tài)錯誤(至少某些時候)而被重新嘗試,即,該消息在稍后被重新排隊(或沒有被出列)并嘗試重試。在遞送沒有成功的情況下,步驟418向客戶端發(fā)送者返回NDR消息。注意的是,以上的流程圖步驟僅僅是示例,可以實現(xiàn)其他從代理操作到存儲-并-轉發(fā)操作的切換。例如,大的消息可能更直接地由存儲-并-轉發(fā)邏輯處理,使得代理邏輯不需要執(zhí)行掃描直到時限,而是盡快地將消息切換到存儲-并-轉發(fā)邏輯,釋放與代理相關的資源以供掃描其他消息。在高負載的時期內,過濾服務也可以將消息提供給存儲-并-轉發(fā)邏輯,例如,而不需要涉及代理邏輯。作為另一替換,可接收相同連接上的多個消息,并且一旦這些消息中的任意一個消息由存儲-并-轉發(fā)邏輯處理,則之后的任何消息也由存儲-并-轉發(fā)邏輯處理,(例如,以幫助保持這些消息有次序)。一般地,過濾服務可在任何時間針對任何給定的消息切換到存儲-并-轉發(fā)邏輯來代替代理邏輯。由此可見,在該混合模型下,當可能時使用代理語義,例如,除了被認為是非尋常的情形,諸如耗時的掃描、遞送超時、或由瞬態(tài)情形導致的遞送失敗。對于正常情形下的大部分消息,能獲得代理語義的優(yōu)點,例如,小的消息能被方便地掃描并遞送,不對過濾服務施加存儲或盤I/O成本。對于其他情況,使用存儲-并-轉發(fā)語義。這么做克服了基于代理的過濾因大的消息/異常情形而產生的缺點,包括當對消息主體的掃描長于期望的超時時段時、當消息遞送不能在期望的超時時段內完成時,或當消息遞送由于瞬態(tài)錯誤而失敗時。在混合模型的該存儲-并-轉發(fā)部分,對大部分時間而言連接沒有被保持打開,這對客戶端和過濾服務釋放了網絡端口。此外,注意的是,在接受消息之前完成的任何掃描、處理、或其他活動不需要在該接受后被重復。由此,對任何消息執(zhí)行的處理的總量基本是不變的;區(qū)別在于客戶端和過濾服務在處理不能以及時地方式被遞送的消息之間的工作的區(qū)分。消息不必多于一次地通過過濾服務,因為客戶端屏蔽起源于遞送服務器的任何瞬態(tài)錯誤。例如,如果遞送服務器暫時地不工作,該事實對客戶端偽裝。轉到替換實施方式,圖5和6是通過以上描述的混合模型處理電子郵件過濾和/ 或路由的大范圍服務部署的表示,該部署使用服務器池和/或鏈接的服務器。例如在圖5的替換實施方式中,消息可由多個服務/服務器506、507處理,該多個服務/服務器506、507 一般具有不同的配置以匹配它們的角色/功能。例如,發(fā)送者102向過濾服務506的代理部分發(fā)送消息(標記為(1)的箭頭),其可包括一個或多個服務器。如果掃描和遞送(或路由)能由該代理服務506執(zhí)行,則消息通過代理邏輯發(fā)送(標記為O)的箭頭)。
然而,在遇見如上描述的消息沒有被及時地掃描或消息沒有被遞送的情形下,(被打叉的標記為OB)的箭頭),消息可被放手到過濾服務內的分開的服務507(服務器或子系統(tǒng))以供掃描完成和/或遞送(虛箭頭3B和4B)。這允許過濾服務的主要部分包括純粹的無狀態(tài)主控(其可順應于虛擬化),而允許在服務507上的有狀態(tài)存儲-并-轉發(fā)工作,服務507包括一個或多個其他被更適當配置的機器,例如,盤重(disk-heavy)單元和/或具有專用冗余存儲的機器。圖6顯示了另一替換實施方式,(其也可由如圖5的多部分服務配置)。在圖6 中,消息處理的不同方面,例如,接收、掃描和遞送,分別由多個不同的服務器集合660-662 處理,并具有服務器集合之間按需執(zhí)行的任何負載平衡(LB)。注意的是,任何服務器集合可以被配置以供混合代理/存儲-并-轉發(fā)處理。示例性操作環(huán)境圖7示出其上可實現(xiàn)圖1-6的各示例和實現(xiàn)的合適的計算和聯(lián)網環(huán)境700的示例。計算系統(tǒng)環(huán)境700只是合適計算環(huán)境的一個示例,而非意在暗示對本發(fā)明使用范圍或功能有任何限制。也不應該將計算環(huán)境700解釋為對示例性操作環(huán)境700中示出的任一組件或其組合有任何依賴性或要求。本發(fā)明可用各種其他通用或專用計算系統(tǒng)環(huán)境或配置來操作。適用于本發(fā)明的公知計算系統(tǒng)、環(huán)境、和/或配置的示例包括但不限于個人計算機、服務器計算機、手持式或膝上型設備、平板設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產品、網絡PC、微型計算機、大型計算機、包括任何以上系統(tǒng)或設備的分布式計算環(huán)境等等。本發(fā)明可在諸如程序模塊等由計算機執(zhí)行的計算機可執(zhí)行指令的通用上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、 組件、數(shù)據(jù)結構等等。本發(fā)明也可在其中由通過通信網絡鏈接的遠程處理設備執(zhí)行任務的分布式計算環(huán)境中實現(xiàn)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲器存儲設備在內的本地和/或遠程計算機存儲介質中。參考圖7,用于實現(xiàn)本發(fā)明的各方面的示例性系統(tǒng)可包括計算機710形式的通用計算設備。計算機710的組件可以包括但不限于處理單元720、系統(tǒng)存儲器730和將包括系統(tǒng)存儲器在內的各種系統(tǒng)組件耦合至處理單元720的系統(tǒng)總線721。系統(tǒng)總線721可以是若干類型的總線結構中的任一種,包括使用各種總線體系結構中的任一種的存儲器總線或存儲器控制器、外圍總線,以及局部總線。作為示例而非限制,這樣的體系結構包括工業(yè)標準體系結構(ISA)總線、微通道體系結構(MCA)總線、增強型ISA(EISA)總線、視頻電子標準協(xié)會(VESA)局部總線,以及也稱為夾層總線的外圍部件互連(PCI)總線。計算機710通常包括各種計算機可讀介質。計算機可讀介質可以是能由計算機 710訪問的任何可用介質,并包含易失性和非易失性介質以及可移動、不可移動介質。作為示例而非限制,計算機可讀介質可包括計算機存儲介質和通信介質。計算機存儲介質包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊之類的信息或其他數(shù)據(jù)的任何方法或技術實現(xiàn)的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括,但不僅限于,RAM、ROM、EEPR0M、閃存或其他存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其他光盤存儲、磁帶盒、磁帶、磁盤存儲或其他磁存儲設備,或可以用來存儲所需信息并可以被計算機 710訪問的任何其他介質。通信介質通常以諸如載波或其他傳輸機制的已調制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù),并包括任意信息傳送介質。術語“已調制數(shù)據(jù)信號”指的是一個或多個特征以在信號中編碼信息的方式被設定或更改的信號。 作為示例而非限制,通信介質包括如有線網絡或直接線連接之類的有線介質,以及如聲學、 RF、紅外及其他無線介質之類的無線介質。上面各項中的任何項的組合也包括在計算機可讀介質的范圍內。系統(tǒng)存儲器730包括易失性和/或非易失性存儲器形式的計算機存儲介質,如只讀存儲器(ROM) 731和隨機存取存儲器(RAM) 732。基本輸入/輸出系統(tǒng)733 ¢10 包括如在啟動時幫助在計算機710內的元件之間傳輸信息的基本例程,它通常儲存在ROM 731中。 RAM 732通常包含處理單元720可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。 作為示例而非限制,圖7示出了操作系統(tǒng)734、應用程序735、其他程序模塊736和程序數(shù)據(jù) 737。計算機710也可以包括其他可移動/不可移動、易失性/非易失性計算機存儲介質。僅作為示例,圖7示出了從不可移動、非易失性磁介質中讀取或向其寫入的硬盤驅動器 741,從可移動、非易失性磁盤752中讀取或向其寫入的磁盤驅動器751,以及從諸如⑶ROM 或其他光學介質等可移動、非易失性光盤756中讀取或向其寫入的光盤驅動器755。可以在示例性操作環(huán)境中使用的其他可移動/不可移動、易失性/非易失性計算機存儲介質包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅動器741通常由諸如接口 740的不可移動存儲器接口連接至系統(tǒng)總線721,并且磁盤驅動器 751和光盤驅動器755通常由諸如接口 750的可移動存儲器接口連接至系統(tǒng)總線721。以上描述并在圖7中示出的驅動器及其相關聯(lián)的計算機存儲介質為計算機710提供了對計算機可讀指令、數(shù)據(jù)結構、程序模塊和其他數(shù)據(jù)的存儲。例如,在圖7中,硬盤驅動器741被示為存儲操作系統(tǒng)744、應用程序745、其他程序模塊746和程序數(shù)據(jù)747。注意, 這些組件可以與操作系統(tǒng)734、應用程序735、其他程序模塊736和程序數(shù)據(jù)737相同,也可以與它們不同。操作系統(tǒng)744、應用程序745、其他程序模塊746和程序數(shù)據(jù)747在這里被標注了不同的附圖標記是為了說明至少它們是不同的副本。用戶可通過諸如輸入板或電子數(shù)字化儀764、話筒763、鍵盤762和定點設備761 (通常指的是鼠標、跟蹤球或觸摸墊)等輸入設備向計算機710輸入命令和信息。圖7中未示出的其他輸入設備可以包括操縱桿、 游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些和其他輸入設備通常由耦合至系統(tǒng)總線的用戶輸入接口 760連接至處理單元720,但也可以由諸如并行端口、游戲端口或通用串行總線 (USB)等其他接口和總線結構來進行連接。監(jiān)視器791或其他類型的顯示設備也通過諸如視頻接口 790的接口連接至系統(tǒng)總線721。監(jiān)視器791也可以與觸摸屏面板等集成。注意, 監(jiān)視器和/或觸摸屏面板可以在物理上耦合至其中包括計算設備710的外殼,諸如在平板型個人計算機中。此外,諸如計算設備710等計算機還可以包括其他外圍輸出設備,諸如揚聲器795和打印機796,它們可以通過輸出外圍接口 794等連接。計算機710可使用至諸如遠程計算機780之類的一個或多個遠程計算機的邏輯連接在網絡化環(huán)境中操作。遠程計算機780可以是個人計算機、服務器、路由器、網絡PC、對等設備或其他常見網絡節(jié)點,并且通常包括許多或所有以上關于計算機710所描述的元件, 盡管在圖7中僅示出了存儲器存儲設備781。圖7中所示的邏輯連接包括一個或多個局域網(LAN) 771和一個或多個廣域網(WAN) 773,但也可以包括其他網絡。這樣的聯(lián)網環(huán)境在辦公室、企業(yè)范圍計算機網絡、內聯(lián)網和因特網中是常見的。當在LAN聯(lián)網環(huán)境中使用時,計算機710通過網絡接口或適配器771連接至LAN 770。當在WAN聯(lián)網環(huán)境中使用時,計算機710通常包括調制解調器772或用于通過諸如因特網等WAN 773建立通信的其他手段??蔀閮戎没蚩蔀橥庵玫恼{制解調器772可以經由用戶輸入接口 760或其他合適的機制連接至系統(tǒng)總線721。諸如包括接口和天線的無線聯(lián)網組件774可以通過諸如接入點或對等計算機等合適的設備耦合到WAN或LAN。在網絡化環(huán)境中,相對于計算機710所描述的程序模塊或其部分可被存儲在遠程存儲器存儲設備中。 作為示例而非限制,圖7示出了遠程應用程序785駐留在存儲器設備781上??梢岳斫猓镜木W絡連接是示例性的,也可以使用在計算機之間建立通信鏈路的其他手段。輔助子系統(tǒng)799 (例如,用于內容的輔助顯示)可經由用戶接口 760連接,從而即使計算機系統(tǒng)的主要部分處于低功率狀態(tài)中,也允許諸如程序內容、系統(tǒng)狀態(tài)和事件通知等數(shù)據(jù)被提供給用戶。輔助子系統(tǒng)799可連接至調制解調器772和/或網絡接口 770,從而在主處理單元720處于低功率狀態(tài)中時,也允許在這些系統(tǒng)之間進行通信。結論盡管本發(fā)明易于作出各種修改和替換構造,但其某些說明性實施例在附圖中示出并在上面被詳細地描述。然而應當了解,這不旨在將本發(fā)明限于所公開的具體形式,而是相反地,旨在覆蓋落入本發(fā)明的精神和范圍之內的所有修改、替換構造和等效方案。
權利要求
1.一種在計算環(huán)境內至少部分地在至少一個處理器上執(zhí)行的方法,包括接收旨在被遞送到遞送系統(tǒng)(108)的電子消息(104a);使用代理邏輯(110)處理所述消息;以及基于一個或多個情形確定是否使用存儲-并-轉發(fā)邏輯(11 來進一步處理所述消息,并且如若是,則使用所述存儲-并-轉發(fā)邏輯來進一步處理所述消息。
2.如權利要求1所述的方法,其特征在于,使用代理邏輯處理所述消息包括掃描所述電子消息的至少一部分,并且其中基于一個或多個情形確定是否使用存儲-并-轉發(fā)邏輯來進一步處理所述消息包括,檢測掃描邏輯在超時時段內沒有完成對所述消息的掃描,并且其中使用所述存儲-并-轉發(fā)邏輯來處理所述消息包括完成對所述電子消息的掃描。
3.如權利要求1所述的方法,其特征在于,基于一個或多個情形確定是否使用存儲-并-轉發(fā)邏輯來進一步處理所述消息包括,確定在遞送超時時段之前沒有完成遞送嘗試,并且其中使用所述存儲-并-轉發(fā)邏輯來處理所述消息包括接受所述消息、存儲所述消息并重新嘗試遞送所述消息。
4.如權利要求1所述的方法,其特征在于,基于一個或多個情形確定是否使用存儲-并-轉發(fā)邏輯來進一步處理所述消息包括,確定遞送嘗試失敗了,并且其中使用所述存儲-并-轉發(fā)邏輯來處理所述消息包括接受所述消息、存儲所述消息并重新嘗試遞送所述消息。
5.如權利要求1所述的方法,其特征在于,遇見所述一個或多個情形的至少之一,并且進一步包括通過所述存儲-并-轉發(fā)邏輯來接受所述消息,包括存儲所述消息、發(fā)送指示所述消息被接受的響應、以及關閉鏈接,通過所述鏈接接收所述消息。
6.如權利要求5所述的方法,其特征在于,進一步包括,對所述消息進行排隊以供遞送,嘗試遞送所述消息,檢測瞬態(tài)錯誤,以及重新嘗試遞送所述消息。
7.一種在計算環(huán)境內的系統(tǒng),所述系統(tǒng)包括電子消息處理服務(106),所述電子消息處理服務被配置為具有處理至少一些消息的代理機制(110),以及處理所述消息的至少一些的存儲-并-轉發(fā)機制(11 ,所述服務被配置為基于一個或多個情形確定是否使用所述存儲-并-轉發(fā)機制來處理給定的消息。
8.如權利要求7所述的系統(tǒng),其特征在于,所述電子消息處理服務包括電子郵件過濾服務,所述電子郵件過濾服務對所述給定的消息執(zhí)行消息掃描,包括一個或多個消息頭部掃描以及一個或多個消息主體掃描。
9.一個或多個具有當被執(zhí)行時執(zhí)行過程步驟的計算機可執(zhí)行指令的計算機可讀媒體, 包括(a)維持關于電子消息的打開連接;(b)過濾所述電子消息,包括掃描(206)—個或多個消息頭部以確定是否阻止所述消息,并且如果不阻止,則開始012)消息主體掃描;(c)確定(302)所述主體掃描是否在超時時段內完成,并且如果沒有,行進到步驟(e);(d)嘗試所述消息的遞送(306),并且如果成功,則由代理向所述電子消息的發(fā)送者返回結果(314),關閉所述連接,并結束所述過程而不行進到步驟(e)或之下;(e)接受(40 所述消息以供存儲-并-轉發(fā)處理,包括存儲所述消息、通過向所述電子消息的發(fā)送者返回響應來接受對所述消息的責任,以及關閉所述連接;(f)確定(404)在步驟(b)是否完成消息主體掃描,如果沒有,則完成消息主體掃描;以及(g)在步驟(f)完成的消息主體掃描不對應阻止所述消息,則將所述消息進行排隊 (410)以供遞送。
10.如權利要求9所述的一個或多個計算機可讀媒體,其特征在于,進一步包括計算機可執(zhí)行指令,包括,在步驟(g)后,連接到遞送系統(tǒng),并且遞送已排隊的消息,包括如果遞送因瞬態(tài)錯誤而失敗則重新嘗試遞送。
全文摘要
描述了具有混合代理/存儲-并-轉發(fā)邏輯的消息網關。在此描述了一種技術,通過這種技術電子郵件過濾服務或其他網關包括混合代理和存儲-并-轉發(fā)邏輯。消息起初由代理邏輯處理。如果代理邏輯不能在超時時段內完成消息的過濾/掃描,則調用存儲-并-轉發(fā)邏輯來完成消息的過濾/掃描。如果代理邏輯作出的遞送嘗試失敗或沒有在遞送超時時段前完成,也可以調用存儲-并-轉發(fā)邏輯。當遇見這樣的情形時,存儲-并-轉發(fā)邏輯接受消息,包括存儲該消息、發(fā)送指示該消息被接受的響應、以及關閉通過其接收消息的連接。任何掃描,如果代理邏輯沒有完成,存儲-并-轉發(fā)邏輯可以完成,并接管遞送責任。
文檔編號H04L12/58GK102394835SQ20111030682
公開日2012年3月28日 申請日期2011年9月27日 優(yōu)先權日2010年9月28日
發(fā)明者H·C·安德森 申請人:微軟公司