專利名稱:條件延遲排隊(duì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及條件延遲排隊(duì)。
背景技術(shù):
條件延遲排隊(duì)可提供一種根據(jù)所建立的規(guī)則和/或優(yōu)先級(jí)集合延遲消息處理的能力。在常規(guī)系統(tǒng)中,消息可遍歷一系列隊(duì)列和處理階段。每個(gè)處理框可從隊(duì)列中取出一消息,執(zhí)行對(duì)該消息的操作,并且使該消息重新排隊(duì)以供進(jìn)ー步處理和/或遞送。在ー些情形下,諸如當(dāng)超過并發(fā)限制和/或所需資源不可用吋,可能需要延遲處理。在常規(guī)系統(tǒng)的情況下,預(yù)測(cè)延遲對(duì)消息的處理的需求可能是困難的或不可能的,因此消息處理可延遲固定時(shí)間量。這可在固定延遲太長(zhǎng)的情況下導(dǎo)致空閑的資源,而在固定延遲太短的情況下導(dǎo)致資源浪費(fèi)。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡(jiǎn)化的形式介紹在以下具體實(shí)施方式
中進(jìn)ー步描述的ー 些概念。此發(fā)明內(nèi)容既不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征。本發(fā)明內(nèi)容也不旨在用于限制所要求保護(hù)的主題的范圍??商峁l件延遲排隊(duì)。在接收到消息之后,可標(biāo)識(shí)與該消息相關(guān)聯(lián)的ー個(gè)或多個(gè)節(jié)流條件??蓪?duì)消息創(chuàng)建與節(jié)流條件相關(guān)聯(lián)的鎖定,直至滿足節(jié)流條件。隨后,可去除對(duì)消息的鎖定,并且可遞送消息。以上概括描述和以下詳細(xì)描述兩者都提供了示例,并且只是說明性的。因此,以上概括描述和以下詳細(xì)描述不應(yīng)當(dāng)被認(rèn)為是限制性的。此外,除了本文中所闡述的那些特征或變體以外,還可以提供其他特征或變體。例如,實(shí)施例可涉及具體實(shí)施方式
中所描述的各種特征組合和子組合。
合并在本公開中并構(gòu)成其一部分的附圖示出本發(fā)明的實(shí)施例。在附圖中圖1是操作環(huán)境的框圖;圖2是條件隊(duì)列的框圖;圖3是基于優(yōu)先級(jí)的隊(duì)列的框圖;圖4是用于提供條件延遲排隊(duì)的方法的流程圖;以及圖5是包括計(jì)算設(shè)備的系統(tǒng)的框圖。
具體實(shí)施例方式以下詳細(xì)描述參考各個(gè)附圖。只要可能,就在附圖和以下描述中使用相同的附圖標(biāo)記來指示相同或相似的元件。盡管可能描述了本發(fā)明的實(shí)施例,但修改、改編、以及其他實(shí)現(xiàn)是可能的。例如,可對(duì)附圖中所示的元件進(jìn)行置換、添加、或修改,并且可通過對(duì)所公開的方法置換、重新排序、或添加階段來修改本文中所描述的方法。因此,以下詳細(xì)描述并不限制本發(fā)明。相反,本發(fā)明的正確范圍由所附權(quán)利要求書定義。可提供條件延遲排隊(duì)。根據(jù)本發(fā)明的實(shí)施例,可根據(jù)節(jié)流條件鎖定消息,且使這些消息加入隊(duì)列。數(shù)據(jù)結(jié)構(gòu)可跟蹤與隊(duì)列中的每個(gè)鎖定消息相關(guān)聯(lián)的條件,并且在鎖定時(shí)消息可不離開隊(duì)列?;诠?jié)流條件鎖定的消息可保持在鎖定狀態(tài)中,直至發(fā)送該條件的信號(hào)并且它是基于該條件的第一消息。一旦解鎖消息,就將該消息例如通過下ー離隊(duì)操作遞送到消息處理組件或接收者。節(jié)流條件可用作將ー個(gè)條件與另一條件區(qū)分開的標(biāo)志。當(dāng)特定條件可接受更多消息吋,可向隊(duì)列發(fā)送信號(hào)。例如,針對(duì)消息標(biāo)識(shí)符條件,可向隊(duì)列發(fā)送信號(hào),從而在當(dāng)前正在處理的同一消息的副本完成其遞送時(shí)解鎖隊(duì)列上的第一消息。圖1是包括郵件服務(wù)器110、第一用戶120、包括多個(gè)用戶135(A)_(B)的租賃者 130、以及第ニ用戶140的操作環(huán)境100的框圖。租賃者130可包括例如其郵件服務(wù)(例如, 消息的接收、遞送、以及存儲(chǔ))由郵件服務(wù)器110主存的個(gè)人和/或組織用戶。郵件服務(wù)器 110、第一用戶120、租賃者130、和/或第二用戶140可經(jīng)由諸如局域網(wǎng)(LAN)和/或公共網(wǎng)絡(luò)(諸如,因特網(wǎng))之類的網(wǎng)絡(luò)150通信地耦合。圖2是條件隊(duì)列200的框圖。條件隊(duì)列200可包括多個(gè)解鎖消息210(A)-(E)、以及鎖定消息列表220。鎖定消息隊(duì)列220可與多個(gè)條件相關(guān)聯(lián)。例如,鎖定消息隊(duì)列220 可包括包括多個(gè)第一鎖定消息235 (A)-(F)的第一條件隊(duì)列230、包括多個(gè)第二鎖定消息 245 (A)-(F)的第二條件隊(duì)列M0、以及包括多個(gè)第三鎖定消息255 (A)-(F)的第三條件隊(duì)列 250。條件隊(duì)列中的每ー個(gè)可與不同的節(jié)流條件相關(guān)聯(lián),這些節(jié)流條件諸如資源可用條件、消息標(biāo)識(shí)符條件、并發(fā)限制條件、和/或租賃條件。例如,第一條件隊(duì)列230可包括并發(fā)條件隊(duì)列,其包括所有計(jì)劃發(fā)往同一接收者的消息。并發(fā)條件隊(duì)列可例如限制單個(gè)用戶所發(fā)送的、可并發(fā)處理的消息的數(shù)量,從而允許來自其他用戶的消息接收對(duì)郵件服務(wù)器110的資源的訪問。隨著來自該用戶的每個(gè)消息完成處理,可解鎖隊(duì)列上的下一消息并將其移到解鎖消息隊(duì)列。第二條件隊(duì)列240可例如包括等待遞送到消息處理組件(諸如, 病毒掃描器)的消息的資源可用隊(duì)列。根據(jù)本發(fā)明的實(shí)施例,可將消息210(A)-(E)、消息 235 (A)-(F)、消息245 (A)-(F)、和/或消息255 (A)-(F)按照郵件服務(wù)器110接收它們的次序排隊(duì)。圖3是基于優(yōu)先級(jí)的隊(duì)列300的框圖。基于優(yōu)先級(jí)的隊(duì)列300可包括包括多個(gè)第一優(yōu)先級(jí)活動(dòng)消息322 (A)-(C)和第一條件隊(duì)列324的第一優(yōu)先級(jí)隊(duì)列320、包括多個(gè)第 ニ優(yōu)先級(jí)活動(dòng)消息332 (A)-(C)和第二條件隊(duì)列334的第二優(yōu)先級(jí)隊(duì)列330、以及包括多個(gè)第三優(yōu)先級(jí)活動(dòng)消息342 (A)-(C)和第三條件隊(duì)列344的第三優(yōu)先級(jí)隊(duì)列340。活動(dòng)消息可包括從未在相應(yīng)條件隊(duì)列中鎖定的消息;活動(dòng)消息和未鎖定消息是當(dāng)前可遞送的,而鎖定消息是當(dāng)前不可遞送的。離隊(duì)請(qǐng)求可由郵件服務(wù)器110生成,該離隊(duì)請(qǐng)求可包括特定優(yōu)先級(jí),從而使以那個(gè)優(yōu)先級(jí)入隊(duì)的第一活動(dòng)和/或解鎖項(xiàng)得以遞送。沒有優(yōu)先級(jí)的離隊(duì)請(qǐng)求可使第一活動(dòng)和/或解鎖消息被遞送,和/或可依賴于關(guān)于基于先前離隊(duì)和入隊(duì)哪ー個(gè)優(yōu)先級(jí)接著要離隊(duì)的特定試探。例如,具有最大積壓(backlog)的優(yōu)先級(jí)隊(duì)列、或具有最早離隊(duì)的隊(duì)列可離隊(duì)。給定優(yōu)先級(jí)的離隊(duì)操作可首先使來自相關(guān)聯(lián)條件隊(duì)列的解鎖消息離隊(duì),并且如果未找到消息,則可使該優(yōu)先級(jí)的活動(dòng)消息隊(duì)列離隊(duì)。解鎖消息的優(yōu)先級(jí)可確定為在同一優(yōu)先級(jí)內(nèi)從未鎖定的消息(即,活動(dòng)消息)之前、但在該消息之前解鎖的消息之后。鎖定消息的優(yōu)先級(jí)可確定為在所有其他消息之后,因?yàn)殒i定消息不符合離隊(duì)條件。當(dāng)與相應(yīng)條件隊(duì)列相關(guān)聯(lián)的條件出現(xiàn)時(shí),解鎖請(qǐng)求可由郵件服務(wù)器110類似地生成。例如,第一條件隊(duì)列324中的鎖定消息各自可與同一接收者相關(guān)聯(lián)。當(dāng)遞送該接收者的ー個(gè)消息吋,可生成解鎖請(qǐng)求, 從而使該接收者的下ー鎖定消息被解鎖并且可用于未來離隊(duì)請(qǐng)求。圖4是闡述根據(jù)本發(fā)明的一個(gè)實(shí)施例的、用于提供條件延遲排隊(duì)的方法400中所涉及的各一般步驟的流程圖。方法400可使用計(jì)算設(shè)備500來實(shí)現(xiàn),如以下參考圖4更詳細(xì)描述的。在下文中將更詳細(xì)地描述實(shí)現(xiàn)方法400的各步驟的方式。方法400可在開始框 405開始,并且前進(jìn)到其中計(jì)算設(shè)備500可接收消息的步驟410。例如,郵件服務(wù)器110可接收來自第一用戶120的消息,以供遞送到與租賃者130相關(guān)聯(lián)的多個(gè)用戶135(A)-(B)。 根據(jù)本發(fā)明的實(shí)施例,可在接收之后使消息加入到活動(dòng)消息隊(duì)列上。方法400可從步驟410前進(jìn)到步驟415,其中計(jì)算設(shè)備500可確定消息是否是活動(dòng)消息隊(duì)列中的第一個(gè)。如果為否,則方法400可保持在步驟415中(例如,可處理活動(dòng)隊(duì)列中該消息之前的其他消息),直至該消息變成隊(duì)列中的第一個(gè)。一旦該消息到達(dá)活動(dòng)消息隊(duì)列前面,方法400就可前進(jìn)到步驟420,其中計(jì)算設(shè)備 500可確定節(jié)流條件是否應(yīng)用于該消息。例如,與第二用戶140的服務(wù)級(jí)協(xié)定可對(duì)第二用戶 140所發(fā)送和/或接收的消息確定優(yōu)先級(jí)。如果從第二用戶140接收到的消息當(dāng)前正在由消息處理組件(諸如,DNS解析器、垃圾信息過濾器、和/或病毒掃描器)處理,則從第一用戶120接收到的消息可與資源可用節(jié)流條件相關(guān)聯(lián)。郵件服務(wù)器110可在每個(gè)消息從活動(dòng)消息隊(duì)列離隊(duì)時(shí)作出該確定,這可以郵件服務(wù)器110接收消息的次序進(jìn)行。如果在步驟420確定消息與節(jié)流條件相關(guān)聯(lián),則方法400可前進(jìn)到步驟425,其中計(jì)算設(shè)備500可鎖定該消息。例如,郵件服務(wù)器110可使“鎖定”標(biāo)志與該消息相關(guān)聯(lián),并且將該消息分配給第三條件隊(duì)列250??刹贿f送這種鎖定消息,直至滿足節(jié)流條件并且清除與該消息相關(guān)聯(lián)的鎖定標(biāo)志。根據(jù)本發(fā)明的實(shí)施例,可按次序維持鎖定消息,并且其可進(jìn)入鎖定消息隊(duì)列220。方法400可從步驟425前進(jìn)到步驟430,其中計(jì)算設(shè)備500可確定是否滿足節(jié)流條件。如果為否,方法400可保持在步驟430,直至已滿足節(jié)流條件。例如,如果該消息正在等待病毒掃描器組件變成可用的,則該消息可在資源可用條件隊(duì)列中保持鎖定,直至病毒掃描器指示它已變成可用的。該指示可包括例如用于解鎖消息的應(yīng)用程序編程接ロ(API)調(diào)用和/或遠(yuǎn)程過程調(diào)用(RPC)。在步驟430確定滿足節(jié)流條件之后,方法400可前進(jìn)到步驟435,其中計(jì)算設(shè)備 500可解鎖該消息。例如,郵件服務(wù)器110可清除與該消息相關(guān)聯(lián)的“鎖定”標(biāo)志,并且將來自鎖定消息隊(duì)列220的消息重新分配給條件隊(duì)列200的解鎖隊(duì)列205。根據(jù)本發(fā)明的實(shí)施例,可在單個(gè)操作中解鎖多個(gè)消息。例如,在確定滿足與將消息遞送到特定接收者相關(guān)聯(lián)的節(jié)流條件之后,可解鎖以該接收者為目的地的多個(gè)消息。方法400可從步驟435前進(jìn)到步驟440,其中計(jì)算設(shè)備500可確定消息是否是隊(duì)列中的第一個(gè)。例如,可根據(jù)先進(jìn)先出(FIFO)方式對(duì)消息排隊(duì),其中解鎖消息根據(jù)解鎖它們的時(shí)間進(jìn)行分配,而與節(jié)流條件不相關(guān)聯(lián)的消息根據(jù)接收它們的時(shí)間進(jìn)行分配。根據(jù)本發(fā)明的實(shí)施例,從條件隊(duì)列接收的消息可根據(jù)接收它們的時(shí)間進(jìn)行分配,并且由此在隊(duì)列中可位于與節(jié)流條件不相關(guān)聯(lián)的、但在節(jié)流消息之后接收到的消息之前。根據(jù)本發(fā)明的其他實(shí)施例,變成解鎖的消息可在從未鎖定的消息之前離隊(duì)。方法400可保持在步驟440中,直至在接收到離隊(duì)請(qǐng)求時(shí)該消息是隊(duì)列205中的第一個(gè)消息。如果該消息是隊(duì)列中的第一個(gè)消息,或者如果在步驟420確定未應(yīng)用節(jié)流條件, 則方法400隨后可前進(jìn)到步驟445,其中計(jì)算設(shè)備500可遞送該消息。例如,郵件服務(wù)器110 可將該消息遞送到接收者,諸如與租賃者130相關(guān)聯(lián)的用戶135(A)。再例如,郵件服務(wù)器 110可將該消息遞送到諸如病毒掃描器之類的處理組件。根據(jù)本發(fā)明的實(shí)施例,該消息可在由組件處理之后離隊(duì)。方法400然后可在步驟450結(jié)束。根據(jù)本發(fā)明的一個(gè)實(shí)施例可包括一種用于提供條件延遲排隊(duì)的系統(tǒng)。該系統(tǒng)可包括存儲(chǔ)器存儲(chǔ)和耦合到該存儲(chǔ)器存儲(chǔ)的處理單元。處理單元可用于接收消息,標(biāo)識(shí)與該消息相關(guān)聯(lián)的節(jié)流條件,對(duì)該消息創(chuàng)建與節(jié)流條件相關(guān)聯(lián)的鎖定,并且確定是否滿足節(jié)流條件。響應(yīng)于確定滿足節(jié)流條件,處理單元可用于去除對(duì)該消息的鎖定,并且隨后遞送該消息。該消息可包括例如電子郵件消息、即時(shí)消息收發(fā)服務(wù)消息、和/或文本消息。節(jié)流條件可包括例如資源可用條件、消息標(biāo)識(shí)符條件、并發(fā)限制條件、和/或租賃條件??捎糜谶f送該消息可包括處理單元可用于將該消息遞送給接收者用戶和/或消息處理組件(例如,病毒掃描器、垃圾信息過濾器、廣告服務(wù)、日歷功能等)。處理單元還可用于在去除對(duì)該消息的鎖定之前確定該消息是否是條件隊(duì)列的第 ー鎖定消息。如果為否,則處理単元可維持對(duì)該消息的鎖定。處理單元還可用于標(biāo)識(shí)與該消息相關(guān)聯(lián)的優(yōu)先級(jí),并且將該消息分配給與所標(biāo)識(shí)優(yōu)先級(jí)相關(guān)聯(lián)的優(yōu)先級(jí)隊(duì)列。條件隊(duì)列可與優(yōu)先級(jí)隊(duì)列相關(guān)聯(lián);即,可使用多個(gè)條件隊(duì)列,并且每ー個(gè)條件隊(duì)列可與ー個(gè)和/或多個(gè)優(yōu)先級(jí)隊(duì)列相關(guān)聯(lián)。根據(jù)本發(fā)明的實(shí)施例,優(yōu)先級(jí)隊(duì)列中的消息可與節(jié)流條件不相關(guān)聯(lián)。處理單元可用于接收與所標(biāo)識(shí)優(yōu)先級(jí)相關(guān)聯(lián)的解鎖請(qǐng)求,確定該消息是否是與節(jié)流條件相關(guān)聯(lián)的隊(duì)列中的第一個(gè)消息,以及響應(yīng)于確定該消息是第一個(gè)消息,解鎖該消息并將其移到解鎖/活動(dòng)隊(duì)列。響應(yīng)于接收到離隊(duì)請(qǐng)求,可遞送解鎖/活動(dòng)隊(duì)列的第一個(gè)消息。根據(jù)本發(fā)明的另ー實(shí)施例可包括一種用于提供條件延遲排隊(duì)的系統(tǒng)。該系統(tǒng)可包括存儲(chǔ)器存儲(chǔ)和耦合到該存儲(chǔ)器存儲(chǔ)的處理單元。處理單元可用于接收消息,標(biāo)識(shí)與該消息相關(guān)聯(lián)的節(jié)流條件,將該消息分配給與節(jié)流條件相關(guān)聯(lián)的條件隊(duì)列,確定是否滿足節(jié)流條件,以及如果為是、則在該消息是條件隊(duì)列中的第一個(gè)消息的情況下遞送該消息。節(jié)流條件可包括例如與消息的接收者和/或發(fā)送者相關(guān)聯(lián)的并發(fā)限制條件。即,節(jié)流條件可限制可并發(fā)處理的、由單個(gè)用戶尋址和/或發(fā)送的消息的數(shù)量。節(jié)流條件可包括對(duì)該消息的多個(gè)副本的消息標(biāo)識(shí)符條件限制處理,諸如其中同一消息正在被發(fā)送和/或復(fù)制給多個(gè)接收者。節(jié)流條件可包括資源可用條件,包括可由消息處理組件(例如,存儲(chǔ)器和/或處理能力限制)同時(shí)處理的消息的閾值量。節(jié)流條件包括關(guān)聯(lián)于對(duì)與多個(gè)消息處理租賃者相關(guān)聯(lián)的多個(gè)消息排隊(duì)的租賃條件。例如,多個(gè)組織作為租賃者可使用單個(gè)郵件服務(wù)器的資源,節(jié)流條件可限制在任何給定時(shí)間正在針對(duì)那些租賃者中的每ー個(gè)進(jìn)行處理的消息的數(shù)量。根據(jù)本發(fā)明的另ー實(shí)施例可包括一種用于提供條件延遲排隊(duì)的系統(tǒng)。該系統(tǒng)可包括存儲(chǔ)器存儲(chǔ)和耦合到該存儲(chǔ)器存儲(chǔ)的處理單元。處理單元可用于接收消息,確定該消息是否與多個(gè)節(jié)流條件中的至少ー個(gè)相關(guān)聯(lián),以及響應(yīng)于確定該消息與多個(gè)節(jié)流條件中的至少ー個(gè)相關(guān)聯(lián),鎖定該消息。響應(yīng)于確定已滿足節(jié)流條件,處理單元可用于解鎖該消息。如果該消息與節(jié)流條件不相關(guān)聯(lián),則處理單元可用于遞送該消息。圖5是包括計(jì)算設(shè)備500的系統(tǒng)的框圖。根據(jù)本發(fā)明的一個(gè)實(shí)施例,上述存儲(chǔ)器存儲(chǔ)和處理單元可在諸如圖5的計(jì)算設(shè)備500之類的計(jì)算設(shè)備中實(shí)現(xiàn)??墒褂糜布?、軟件或固件的任何合適的組合來實(shí)現(xiàn)存儲(chǔ)器存儲(chǔ)和處理單元。例如,存儲(chǔ)器存儲(chǔ)和處理單元可用計(jì)算設(shè)備500或結(jié)合計(jì)算設(shè)備500的其他計(jì)算設(shè)備518中的任ー個(gè)來實(shí)現(xiàn)。根據(jù)本發(fā)明的實(shí)施例,上述系統(tǒng)、設(shè)備和處理器是示例,而其他系統(tǒng)、設(shè)備和處理器可包括上述存儲(chǔ)器存儲(chǔ)和處理單元。此外,計(jì)算設(shè)備500可包括用于如上所述的系統(tǒng)100的操作環(huán)境。系統(tǒng) 100可在其他環(huán)境中操作,并且不限于計(jì)算設(shè)備500。參考圖5,根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)可包括計(jì)算設(shè)備,諸如計(jì)算設(shè)備500。 在基本配置中,計(jì)算設(shè)備500可包括至少ー個(gè)處理單元502和系統(tǒng)存儲(chǔ)器504。取決于計(jì)算設(shè)備的配置和類型,系統(tǒng)存儲(chǔ)器504可包括,但不限干,易失性存儲(chǔ)器(例如,隨機(jī)存取存儲(chǔ)器(RAM))、非易失性存儲(chǔ)器(例如,只讀存儲(chǔ)器(ROM))、閃存、或任何組合。系統(tǒng)存儲(chǔ)器504 可包括操作系統(tǒng)505、ー個(gè)或多個(gè)編程模塊506,并且可包括例如排隊(duì)組件506和/或消息處理組件507。例如,操作系統(tǒng)505可適用于控制計(jì)算設(shè)備500的操作。此外,本發(fā)明的實(shí)施例可結(jié)合圖形庫(kù)、其他操作系統(tǒng)、或任何其他應(yīng)用程序來實(shí)踐,并且不限于任何特定應(yīng)用或系統(tǒng)。該基本配置在圖5中由虛線508內(nèi)的那些組件示出。計(jì)算設(shè)備500可具有附加特征或功能。例如,計(jì)算設(shè)備500還可包括附加數(shù)據(jù)存儲(chǔ)設(shè)備(可移動(dòng)和/或不可移動(dòng)),諸如例如,磁盤、光盤、或磁帶。這些附加存儲(chǔ)在圖5中由可移動(dòng)存儲(chǔ)509和不可移動(dòng)存儲(chǔ)510示出。計(jì)算機(jī)存儲(chǔ)介質(zhì)可包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其他數(shù)據(jù)之類的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。系統(tǒng)存儲(chǔ)器504、可移動(dòng)存儲(chǔ)509和不可移動(dòng)存儲(chǔ) 510都是計(jì)算機(jī)存儲(chǔ)介質(zhì)示例(即,存儲(chǔ)器存儲(chǔ))。計(jì)算機(jī)存儲(chǔ)介質(zhì)可包括,但不限干,RAM、 ROM、電可擦除只讀存儲(chǔ)器(EEPROM)、閃存或其他存儲(chǔ)器技木、CD-ROM、數(shù)字多功能盤(DVD) 或其他光存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備、或者可用于存儲(chǔ)信息且可由計(jì)算設(shè)備500訪問的任何其他介質(zhì)。任何這種計(jì)算機(jī)存儲(chǔ)介質(zhì)都可以是設(shè)備500的一部分。 計(jì)算設(shè)備500還可具有輸入設(shè)備512,諸如鍵盤、鼠標(biāo)、筆、聲音輸入設(shè)備、觸摸輸入設(shè)備等。 還可包括輸出設(shè)備514,諸如顯示器、揚(yáng)聲器、打印機(jī)等。上述設(shè)備是示例,并且可使用其他設(shè)備。計(jì)算設(shè)備500還可包含可允許設(shè)備500諸如通過分布式計(jì)算環(huán)境中的網(wǎng)絡(luò)(例如,內(nèi)聯(lián)網(wǎng)或因特網(wǎng))來與其他計(jì)算設(shè)備518進(jìn)行通信的通信連接516。通信連接516是通信介質(zhì)的ー個(gè)示例。通信介質(zhì)通常由諸如載波或其他傳輸機(jī)制之類的已調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其他數(shù)據(jù)來體現(xiàn),并且包括任何信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號(hào)”可描述以對(duì)該信號(hào)中的信息進(jìn)行編碼的方式設(shè)定或改變的一個(gè)或多個(gè)特性的信號(hào)。作為示例而非限制,通信介質(zhì)可包括諸如有線網(wǎng)絡(luò)或直接線連接之類的有線介質(zhì),以及諸如聲學(xué)、射頻(RF)、紅外線和其他無線介質(zhì)之類的無線介質(zhì)。如此處所使用的術(shù)語“計(jì)算機(jī)可讀介質(zhì)”可包括存儲(chǔ)介質(zhì)和通信介質(zhì)兩者。
如上所述,可在系統(tǒng)存儲(chǔ)器504中存儲(chǔ)包括操作系統(tǒng)505在內(nèi)的多個(gè)程序模塊和數(shù)據(jù)文件。當(dāng)在處理單元502上執(zhí)行時(shí),編程模塊506可執(zhí)行各個(gè)過程,包括例如,如上所述的方法400的各步驟中的ー個(gè)或多個(gè)。上述過程是ー個(gè)示例,且處理単元502可執(zhí)行其他過程。根據(jù)本發(fā)明的實(shí)施例可使用的其他編程模塊可包括電子郵件和聯(lián)系人應(yīng)用程序、 文字處理應(yīng)用程序、電子表格應(yīng)用程序、數(shù)據(jù)庫(kù)應(yīng)用程序、幻燈片演示應(yīng)用程序、繪圖或計(jì)算機(jī)輔助應(yīng)用程序等。一般而言,根據(jù)本發(fā)明的實(shí)施例,程序模塊可包括可執(zhí)行特定任務(wù)或可實(shí)現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其他類型的結(jié)構(gòu)。此外,本發(fā)明的實(shí)施例可用其他計(jì)算機(jī)系統(tǒng)配置來實(shí)踐,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)或可編程消費(fèi)電子產(chǎn)品、小型機(jī)、大型計(jì)算機(jī)等。本發(fā)明的實(shí)施例還可在其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)踐。在分布式計(jì)算環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備兩者中。此外,本發(fā)明的實(shí)施例可在包括分立電子元件的電路、包含邏輯門的封裝或集成電子芯片、利用微處理器的電路、或在包含電子元件或微處理器的單個(gè)芯片上實(shí)踐。本發(fā)明的實(shí)施例還可使用能夠執(zhí)行諸如例如,AND(與)、OR(或)和NOT(非)的邏輯運(yùn)算的其他技術(shù)來實(shí)踐,包括但不限干,機(jī)械、光學(xué)、流體和量子技木。另外,本發(fā)明的實(shí)施例可在通用計(jì)算機(jī)或任何其他電路或系統(tǒng)中實(shí)踐。例如,本發(fā)明的實(shí)施例可被實(shí)現(xiàn)為計(jì)算機(jī)過程(方法)、計(jì)算系統(tǒng)、或諸如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)之類的制品。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀并對(duì)用于執(zhí)行計(jì)算機(jī)過程的指令的計(jì)算機(jī)程序編碼的計(jì)算機(jī)存儲(chǔ)介質(zhì)。計(jì)算機(jī)程序產(chǎn)品還可以是計(jì)算系統(tǒng)可讀并對(duì)用于執(zhí)行計(jì)算機(jī)過程的指令的計(jì)算機(jī)程序編碼的載體上的傳播信號(hào)。因此,本發(fā)明可以硬件和/或軟件(包括固件、常駐軟件、微碼等)來體現(xiàn)。換言之,本發(fā)明的實(shí)施例可采用其上包含有供指令執(zhí)行系統(tǒng)使用或結(jié)合其使用的計(jì)算機(jī)可使用或計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可使用或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品的形式。計(jì)算機(jī)可使用或計(jì)算機(jī)可讀介質(zhì)可以是可包含、存儲(chǔ)、通信、傳播、或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或結(jié)合其使用的任何介質(zhì)。計(jì)算機(jī)可使用或計(jì)算機(jī)可讀介質(zhì)可以是,例如,但不限于,電、磁、光、電磁、紅外、 或半導(dǎo)體系統(tǒng)、裝置、設(shè)備或傳播介質(zhì)。更具體的計(jì)算機(jī)可讀介質(zhì)示例(非窮盡列表),計(jì)算機(jī)可讀介質(zhì)可包括以下具有一條或多條導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、隨機(jī)存取存儲(chǔ)器 (RAM)、只讀存儲(chǔ)器(ROM)、可擦除可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、以及便攜式壓縮盤只讀存儲(chǔ)器(CD-ROM)。注意,計(jì)算機(jī)可使用或計(jì)算機(jī)可讀介質(zhì)甚至可以是其上打印有程序的紙張或另ー合適的介質(zhì),因?yàn)槌绦蚩山?jīng)由例如對(duì)紙張或其他介質(zhì)的光學(xué)掃描而電子地捕獲,隨后如有必要被編譯、解釋、或以其他合適的方式處理,并且隨后存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。以上參考例如根據(jù)本發(fā)明的實(shí)施例的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品的框圖和/或操作示圖描述了本發(fā)明的實(shí)施例??蛑兴⒚鞯母鞴δ?動(dòng)作可按不同于任何流程圖所示的次序出現(xiàn)。例如,取決于所涉及的功能/動(dòng)作,連續(xù)示出的兩個(gè)框?qū)嶋H上可基本同時(shí)執(zhí)行,或者這些框有時(shí)可按相反的次序執(zhí)行。盡管已描述了本發(fā)明的特定實(shí)施例,但也可能存在其他實(shí)施例。此外,雖然本發(fā)明的實(shí)施例被描述為與存儲(chǔ)在存儲(chǔ)器和其他存儲(chǔ)介質(zhì)中的數(shù)據(jù)相關(guān)聯(lián),但是數(shù)據(jù)還可被存儲(chǔ)在其他類型的計(jì)算機(jī)可讀介質(zhì)上或從其讀取,諸如輔助存儲(chǔ)設(shè)備(像硬盤、軟盤、或 CD-ROM)、來自因特網(wǎng)的載波、或其他形式的RAM或ROM。此外,所公開的方法的各步驟可以任何方式修改,包括通過對(duì)各步驟重新排序和/或插入或刪除步驟,而不背離本發(fā)明。包括此處所包括的代碼中的版權(quán)在內(nèi)的所有權(quán)利都?xì)w屬于申請(qǐng)人并且是本申請(qǐng)人的財(cái)產(chǎn)。本申請(qǐng)人保持并保留此處所包括的代碼中的所有權(quán)利,并且授予僅關(guān)于所授權(quán)專利的再現(xiàn)且未出于其他目的再現(xiàn)該材料的許可。盡管本說明書包括示例,但本發(fā)明的范圍由所附權(quán)利要求書來指示。此外,盡管用對(duì)結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本說明書,但權(quán)利要求書并不限于以上所描述的特征或動(dòng)作。相反,以上所描述的特定特征和動(dòng)作是作為本發(fā)明的實(shí)施例的示例來公開的。
權(quán)利要求
1.一種用于提供條件延遲排隊(duì)的方法,所述方法包括 接收消息G10);標(biāo)識(shí)與所述消息相關(guān)聯(lián)的節(jié)流條件G20)對(duì)所述消息創(chuàng)建與所述節(jié)流條件相關(guān)聯(lián)的鎖定G25);確定是否滿足所述節(jié)流條件G30);以及響應(yīng)于確定滿足所述節(jié)流條件去除對(duì)所述消息的鎖定035),以及遞送所述消息(445)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括將所述消息分配給與所述節(jié)流條件相關(guān)聯(lián)的條件隊(duì)列じ00、230、240)。
3.如權(quán)利要求2所述的方法,其特征在于,還包括在去除對(duì)所述消息的鎖定之前 確定所述消息是否是所述條件隊(duì)列(200、230、M0)的第一個(gè)消息G40);以及響應(yīng)于確定所述消息不是所述條件隊(duì)列O00、230、240)的第一個(gè)消息,維持對(duì)所述消息的鎖定。
4.如權(quán)利要求3所述的方法,其特征在于,還包括 標(biāo)識(shí)與所述消息相關(guān)聯(lián)的優(yōu)先級(jí);以及將所述消息分配給與所標(biāo)識(shí)優(yōu)先級(jí)相關(guān)聯(lián)的優(yōu)先級(jí)隊(duì)列(300、320、330)。
5.如權(quán)利要求4所述的方法,其特征在干,所述條件隊(duì)列(200、230、Μ0)與所述優(yōu)先級(jí)隊(duì)列(300、320、330)相關(guān)聯(lián)。
6.一種存儲(chǔ)指令集的計(jì)算機(jī)可讀介質(zhì),所述指令集在被執(zhí)行時(shí)執(zhí)行ー種用于提供條件延遲排隊(duì)的方法,所述指令集所執(zhí)行的方法包括接收消息G10);標(biāo)識(shí)與所述消息相關(guān)聯(lián)的節(jié)流條件G20);將所述消息分配給與所述節(jié)流條件相關(guān)聯(lián)的鎖定隊(duì)列G25);確定是否滿足所述節(jié)流條件G30);以及響應(yīng)于確定滿足所述節(jié)流條件確定所述消息是否是所述鎖定隊(duì)列中的第一個(gè)鎖定消息035 (A)-(F)、245 (A)-(F)、 255 (A)-(F)),以及響應(yīng)于確定所述消息是所述條件隊(duì)列O00、230、240)中的第一個(gè)鎖定消息 (235 (A)-(F) ,245 (A)-(F)、255 (A) -(F)),將所述消息移到解鎖隊(duì)列(435)。
7.如權(quán)利要求6所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括 確定是否已接收到離隊(duì)請(qǐng)求;響應(yīng)于確定已接收到所述離隊(duì)請(qǐng)求,確定所述消息是否是所述解鎖隊(duì)列中的第一個(gè)解鎖消息(210 (A)-(E) )(440);以及響應(yīng)于確定所述消息是所述解鎖隊(duì)列中的第一個(gè)解鎖消息OlO(A)-(E)),遞送所述消息(445)。
8.如權(quán)利要求6所述的計(jì)算機(jī)可讀介質(zhì),其特征在干,所述節(jié)流條件包括并發(fā)限制條件。
9.如權(quán)利要求6所述的計(jì)算機(jī)可讀介質(zhì),其特征在干,所述節(jié)流條件包括資源可用條件。
10. 一種用于提供知曉上下文的環(huán)境的系統(tǒng),所述系統(tǒng)包括 存儲(chǔ)器存儲(chǔ);以及耦合到所述存儲(chǔ)器存儲(chǔ)的處理單元,其中所述處理単元可用干 接收消息(410),確定所述消息是否與多個(gè)節(jié)流條件中的至少ー個(gè)相關(guān)聯(lián)G20),其中所述多個(gè)節(jié)流條件中的至少ー個(gè)包括下列項(xiàng)中的至少ー項(xiàng)資源可用條件、消息標(biāo)識(shí)符條件、并發(fā)限制條件、以及租賃條件,響應(yīng)于確定所述消息與所述多個(gè)節(jié)流條件中的至少ー個(gè)相關(guān)聯(lián) 根據(jù)所述多個(gè)節(jié)流條件中的至少ー個(gè)鎖定所述消息G25); 確定是否滿足所述節(jié)流條件(430),以及響應(yīng)于確定所述消息包括所述鎖定隊(duì)列O20)的第一個(gè)消息G40),解鎖所述消息 (435),以及響應(yīng)于確定所述消息與所述多個(gè)節(jié)流條件中的至少ー個(gè)不相關(guān)聯(lián),將所述消息遞送到以下的至少之ー G45)所述消息的接收者和消息處理組件。
全文摘要
可提供條件延遲排隊(duì)。在接收到消息之后,可標(biāo)識(shí)與該消息相關(guān)聯(lián)的一個(gè)或多個(gè)節(jié)流條件??蓪?duì)消息創(chuàng)建與節(jié)流條件相關(guān)聯(lián)的鎖定,直至滿足節(jié)流條件。然后,可去除對(duì)消息的鎖定,并且可遞送消息。
文檔編號(hào)G06F9/44GK102541552SQ20111044320
公開日2012年7月4日 申請(qǐng)日期2011年12月14日 優(yōu)先權(quán)日2010年12月15日
發(fā)明者F·西加洛夫, G·古爾維奇, S·M·華萊士, V·伯克特, W·德格拉夫 申請(qǐng)人:微軟公司