專(zhuān)利名稱(chēng):消息隊(duì)列管理的制作方法
消息隊(duì)列管理
背景技術(shù):
諸如標(biāo)簽式(tabbed)web瀏覽器那樣的多組件(component)應(yīng)用程序受到用戶(hù)歡迎,因?yàn)樗鼈兪峭ㄟ^(guò)單個(gè)應(yīng)用來(lái)同時(shí)與多個(gè)資源(例如,文檔、網(wǎng)頁(yè)、文件等等)交互的一種方便的方式。傳統(tǒng)上,利用多組件的應(yīng)用采用共享的輸入消息隊(duì)列來(lái)操控用于多個(gè)組件的消息處理和排序。不幸地,在傳統(tǒng)的方法下,如果一個(gè)組件變?yōu)椴豁憫?yīng)的,則該組件停止處理它的來(lái)自共享的隊(duì)列的消息。這可能引起用于共享相同消息隊(duì)列的其它組件的消息的中斷。因此,一個(gè)不響應(yīng)的組件可能實(shí)際上會(huì)堵塞隊(duì)列,并使得其它組件也變?yōu)椴豁憫?yīng)的。
發(fā)明內(nèi)容
這個(gè)概要被提供來(lái)以簡(jiǎn)化的形式介紹概念的選擇,這些概念還將在下面的詳細(xì)說(shuō)明中進(jìn)行描述。這個(gè)概要既不打算標(biāo)識(shí)要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不打算被使用來(lái)限制要求保護(hù)的主題的范圍。各種實(shí)施例提供了消息隊(duì)列管理技術(shù),所述消息隊(duì)列管理技術(shù)被設(shè)計(jì)來(lái)減小多組件應(yīng)用變?yōu)榉琼憫?yīng)(non-responsive)(例如,“鎖住(lock up)”、“掛起(hang)”、“崩潰 (crash) ”等等)的或然率,以及如果一個(gè)個(gè)組件確實(shí)變?yōu)榉琼憫?yīng)的則使能用于它們的恢復(fù)選項(xiàng)。在至少一些實(shí)施例中,消息隊(duì)列管理器可被實(shí)施來(lái)檢測(cè)應(yīng)用的組件何時(shí)變?yōu)榉琼憫?yīng)的,并從共享的輸入消息隊(duì)列中拆離(detach)該組件。共享的隊(duì)列可以繼續(xù)處理用于其它響應(yīng)的組件的消息,而用于非響應(yīng)的組件的消息傳送則經(jīng)由單獨(dú)的隊(duì)列被管理。消息隊(duì)列管理器還可以把非響應(yīng)的組件通知給用戶(hù),并向用戶(hù)提供便于恢復(fù)非響應(yīng)的組件的選項(xiàng)。 而且,在至少一些實(shí)施例中,消息隊(duì)列管理器可以監(jiān)視被拆離的組件,并且當(dāng)拆離的組件重新變?yōu)轫憫?yīng)的時(shí),重附(reattach)該拆離的組件。
在附圖上,相同的數(shù)字被使用來(lái)表示同樣的特征。圖1圖示了在其中可以按照一個(gè)或多個(gè)實(shí)施例來(lái)使用這里描述的各種原理的操作環(huán)境。圖2圖示按照一個(gè)或多個(gè)實(shí)施例的、用于多組件應(yīng)用的示例性消息隊(duì)列管理技術(shù)的表示。圖3圖示按照一個(gè)或多個(gè)實(shí)施例的示例性web瀏覽器。圖4是描述按照一個(gè)或多個(gè)實(shí)施例的方法的步驟的流程圖。圖5圖示可被使用來(lái)實(shí)施一個(gè)或多個(gè)實(shí)施例的示例性系統(tǒng)。
具體實(shí)施例方式概述
各種實(shí)施例提供了消息隊(duì)列管理技術(shù),所述消息隊(duì)列管理技術(shù)被設(shè)計(jì)來(lái)減小多組件應(yīng)用變?yōu)榉琼憫?yīng)(例如,“鎖住”、“掛起”、“崩潰”等等)的或然率,以及如果一個(gè)個(gè)組件確實(shí)變?yōu)榉琼憫?yīng)的則使能用于它們的恢復(fù)選項(xiàng)。在瀏覽環(huán)境下,消息隊(duì)列管理器可被實(shí)施來(lái)管理用于標(biāo)簽式瀏覽器用戶(hù)界面的標(biāo)簽。在至少一些實(shí)施例中,消息隊(duì)列管理器可以檢測(cè)應(yīng)用的組件(例如,標(biāo)簽)何時(shí)變?yōu)榉琼憫?yīng)的并從共享的輸入消息隊(duì)列中拆離該組件。共享的隊(duì)列可以繼續(xù)處理用于其它的響應(yīng)的組件的消息,而用于非響應(yīng)的組件的消息傳送則經(jīng)由單獨(dú)的隊(duì)列被管理。消息隊(duì)列管理器還可以把非響應(yīng)的組件通知給用戶(hù),并向用戶(hù)提供選項(xiàng)以便于恢復(fù)非響應(yīng)的組件。而且,在至少一些實(shí)施例中,消息隊(duì)列管理器可以監(jiān)視被拆離的組件,并且當(dāng)拆離的組件重新變?yōu)轫憫?yīng)的時(shí),重附該拆離的組件。在以下的討論中,提供了標(biāo)題為“操作環(huán)境”的段落,它描述了在其中可以使用一個(gè)或多個(gè)實(shí)施例的一種環(huán)境。在此之后,標(biāo)題為“消息隊(duì)列管理”的段落描述了按照一個(gè)或多個(gè)實(shí)施例的、用來(lái)管理用于多組件應(yīng)用的消息隊(duì)列的示例性技術(shù)。接著,標(biāo)題為“示例性 web瀏覽器”的段落描述了按照一個(gè)或多個(gè)實(shí)施例的標(biāo)簽式web瀏覽器界面、通知和恢復(fù)選項(xiàng)的例子。然后,標(biāo)題為“示例性方法”的段落在示例性方法的上下文中描述了與消息隊(duì)列管理有關(guān)的示例性技術(shù)和特征。最后,標(biāo)題為“示例性系統(tǒng)”的段落描述了可以被利用來(lái)實(shí)施一個(gè)或多個(gè)實(shí)施例的示例性系統(tǒng)。操作環(huán)境
圖1圖示按照一個(gè)或多個(gè)實(shí)施例的操作環(huán)境,總的以100表示。環(huán)境100包括計(jì)算設(shè)備102,其具有一個(gè)或多個(gè)處理器104 ;—個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)106 ;以及駐留在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上并且可由處理器執(zhí)行的一個(gè)或多個(gè)應(yīng)用108。作為例子而不是限制, 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可包括典型地與計(jì)算設(shè)備相關(guān)聯(lián)的、所有形式的易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)介質(zhì)。這樣的介質(zhì)可包括R0M、RAM、快閃存儲(chǔ)器、硬盤(pán)、可拆卸介質(zhì)等等。 下面,在圖5上顯示和描述了計(jì)算設(shè)備的一個(gè)具體的例子。另外,計(jì)算設(shè)備102包括采用web瀏覽器110的形式的軟件應(yīng)用,其包括或者否則利用如以上和以下描述的那樣運(yùn)行的消息隊(duì)列管理器111。消息隊(duì)列管理器可被配置成提供對(duì)于多組件應(yīng)用的組件的管理,以便對(duì)抗由于非響應(yīng)的組件而造成的崩潰/掛起并從其中恢復(fù)。在標(biāo)簽式瀏覽環(huán)境下,消息隊(duì)列管理器可操作來(lái)管理用于web瀏覽器110的多個(gè)標(biāo)簽的一個(gè)或多個(gè)輸入消息隊(duì)列。在至少一些實(shí)施例中,消息隊(duì)列管理器可以檢測(cè)應(yīng)用的組件(例如,標(biāo)簽)何時(shí)變?yōu)榉琼憫?yīng)的、并從共享的輸入消息隊(duì)列拆離該組件。通過(guò)這樣做,用于非響應(yīng)的組件的消息處理可以由單獨(dú)的“拆離”消息隊(duì)列來(lái)操控。這使得該共享的隊(duì)列能繼續(xù)處理用于應(yīng)用的其它響應(yīng)的組件的消息,以使得可以繼續(xù)與響應(yīng)的組件進(jìn)行交互。消息隊(duì)列管理器還可以把非響應(yīng)的組件通知給用戶(hù),并向用戶(hù)提供選項(xiàng)以便于恢復(fù)非響應(yīng)的組件。而且,在至少一些實(shí)施例中,消息隊(duì)列管理器可以監(jiān)視被拆離的組件/標(biāo)簽, 并且當(dāng)拆離的組件重新變?yōu)轫憫?yīng)的時(shí),重附該拆離的組件。這里,在瀏覽環(huán)境和用于web瀏覽器或其它應(yīng)用的標(biāo)簽的上下文中描述各種例子。然而,應(yīng)意識(shí)到,消息隊(duì)列管理器111和對(duì)應(yīng)的技術(shù)可以在各種各樣的環(huán)境下使用,以及可以與利用多組件的任何適當(dāng)?shù)膽?yīng)用一起使用。作為例子而不是限制,消息隊(duì)列管理器可被實(shí)施來(lái)管理用于各種應(yīng)用108的組件,應(yīng)用108包括但不限于電子郵件應(yīng)用、桌面生產(chǎn)力(desktop productivity)應(yīng)用、游戲應(yīng)用、媒體應(yīng)用和/或計(jì)算設(shè)備102的其它適當(dāng)?shù)膽?yīng)用。另外,環(huán)境100包括網(wǎng)絡(luò)112,諸如互聯(lián)網(wǎng);以及可以從其接收內(nèi)容和向其發(fā)送內(nèi)容的一個(gè)或多個(gè)web服務(wù)器114,正如在上面和下面描述的。這樣的內(nèi)容可包括從web 服務(wù)器接收的網(wǎng)頁(yè)。計(jì)算設(shè)備102可以被體現(xiàn)為任何適當(dāng)?shù)挠?jì)算設(shè)備,作為例子而不是限制,諸如是臺(tái)式計(jì)算機(jī)、便攜式計(jì)算機(jī)、手持計(jì)算機(jī),諸如個(gè)人數(shù)字助理(PDA)、蜂窩電話(huà)等等。在描述了示例性操作環(huán)境后,現(xiàn)在考慮有關(guān)能利用消息隊(duì)列管理器111的一些示例性實(shí)施例的討論。消息隊(duì)列管理
圖2圖示按照一個(gè)或多個(gè)實(shí)施例的、用于多組件應(yīng)用的消息隊(duì)列管理的示例性技術(shù)的表示。具體地,圖2表示在與消息隊(duì)列相關(guān)聯(lián)的不同狀態(tài)之間的轉(zhuǎn)移,其可以由適當(dāng)?shù)嘏渲玫挠?jì)算設(shè)備來(lái)執(zhí)行,諸如包括或否則利用消息隊(duì)列管理器111的圖1的示例性計(jì)算設(shè)備 102。在狀態(tài)200,具有多個(gè)組件204 (1)-204( 的多組件應(yīng)用202的實(shí)例初始地被配置成使用共享的輸入消息隊(duì)列206。在這個(gè)狀態(tài)中,用于示例性組件204(1)-204(3)中的各個(gè)組件的消息被排序,并經(jīng)由共享的輸入消息隊(duì)列206來(lái)操控。正如這里使用的,多組件應(yīng)用是使得用戶(hù)能夠經(jīng)由用于應(yīng)用的界面的分開(kāi)的不同部分或“組件”而與多個(gè)資源(例如,網(wǎng)頁(yè)、文檔、文件、腳本、媒體內(nèi)容等等)進(jìn)行交互的應(yīng)用。在本上下文中,術(shù)語(yǔ)組件可以指多組件應(yīng)用的不同的、可分開(kāi)地導(dǎo)航和/或可運(yùn)行的部分。組件可以是被包含在母應(yīng)用的公共主窗口或框內(nèi)的分開(kāi)的子應(yīng)用。因此,利用多個(gè)組件的界面可被包含在用于該應(yīng)用的單個(gè)窗口內(nèi)。組件可被看作為半自主的,因?yàn)楦鹘M件可以是相同應(yīng)用的組成部分,但通過(guò)一個(gè)組件的用戶(hù)交互可以與通過(guò)另一個(gè)組件的用戶(hù)交互無(wú)關(guān)。不同的組件可以交替地經(jīng)由共同的顯示部分和/或同時(shí)地在用戶(hù)界面的不同區(qū)域中被選擇性地暴露。共享的隊(duì)列可被利用來(lái)同步和協(xié)調(diào)不同的多個(gè)半自主組件,以使得它們表現(xiàn)為單個(gè)組件。考慮了各種各樣的多組件應(yīng)用的例子,對(duì)于它們可以使用這里描述的消息隊(duì)列管理。如上所述,被配置成使能實(shí)現(xiàn)多標(biāo)簽的標(biāo)簽式web瀏覽器是多組件應(yīng)用的一個(gè)例子。 標(biāo)簽也可以在其它上下文中被使用,諸如,用于字處理應(yīng)用、電子郵件客戶(hù)端或多媒體應(yīng)用。在另一個(gè)例子中,諸如辦公室生產(chǎn)力套件那樣的應(yīng)用可被配置成具有不同的標(biāo)簽、節(jié)、 列、或其它組件,以方便與包括文本文檔、網(wǎng)頁(yè)、電子表格、圖形等等的多個(gè)資源交互作用。當(dāng)消息隊(duì)列管理器111 (圖1)檢測(cè)到組件變?yōu)榉琼憫?yīng)時(shí),消息隊(duì)列管理器111可以通過(guò)以下方式來(lái)響應(yīng),即使得非響應(yīng)的組件被從共享的輸入消息隊(duì)列206中拆離。例如,假設(shè)由于某種原因,組件204(1)掛起,或否則變?yōu)榉琼憫?yīng)的。消息隊(duì)列管理器111可以以任何適當(dāng)?shù)姆绞綑z測(cè)到組件204(1)是非響應(yīng)的,這方面的例子在上面和下面討論。響應(yīng)于所述檢測(cè),消息隊(duì)列管理器111可以操作來(lái)從共享的輸入消息隊(duì)列中拆離組件204 (I)0具體地,非響應(yīng)的組件204 (1)可被拆離,如由圖2的拆離狀態(tài)208表示的。如所描繪的,拆離消息隊(duì)列210可以與非響應(yīng)的組件204 (1)相關(guān)聯(lián),并可被使用來(lái)管理用于組件204 (1)的消息傳送。組件204 (2)和組件204 (3)可以繼續(xù)使用共享的輸入消息隊(duì)列206。因此,用于非響應(yīng)的組件的消息可以由拆離消息隊(duì)列(detached message queue) 210操控。共享的輸入消息隊(duì)列206可以繼續(xù)處理用于其它響應(yīng)的組件的消息,這樣使得整個(gè)應(yīng)用不會(huì)由于個(gè)體組件造成的中斷而變?yōu)椴豁憫?yīng)的。在至少一些實(shí)施例中,消息隊(duì)列管理器111可被配置成在要求時(shí)創(chuàng)建拆離消息隊(duì)列210,以及指派該隊(duì)列由組件專(zhuān)用。這可以響應(yīng)于檢測(cè)到該組件是非響應(yīng)的而發(fā)生。用于該組件的消息于是可以被遷移到新創(chuàng)建的隊(duì)列。另外地或替換地,消息隊(duì)列管理器111可被配置成根據(jù)需要,利用預(yù)先存在的拆離消息隊(duì)列來(lái)操控非響應(yīng)的組件。萬(wàn)一不同的組件變?yōu)榉琼憫?yīng)的,則預(yù)先存在的拆離消息隊(duì)列可以對(duì)于所述組件被重復(fù)地使用。在這種情形下,消息隊(duì)列管理器111可以在每次使用之前將預(yù)先存在的拆離消息隊(duì)列初始化,和/或在每次使用之后清除該隊(duì)列,以準(zhǔn)備好該隊(duì)列供下次使用。當(dāng)消息隊(duì)列管理器111檢測(cè)到被拆離的組件已經(jīng)復(fù)原了響應(yīng)性,則消息隊(duì)列管理器111可以通過(guò)以下方式來(lái)響應(yīng),即使得所述非響應(yīng)的組件被重附到共享的輸入消息隊(duì)列206中。例如,假設(shè)組件204 (1)在一個(gè)時(shí)期內(nèi)被如上所述地拆離,然后重新變?yōu)轫憫?yīng)的。消息隊(duì)列管理器111可以以任何適當(dāng)?shù)姆绞綑z測(cè)到該組件204 (1)重新是響應(yīng)的,這方面的例子在上面和下面進(jìn)行討論。響應(yīng)于所述檢測(cè),消息隊(duì)列管理器111可以操作來(lái)重附組件204 (I)0具體地,非響應(yīng)的組件204 (1)可被重附,如由圖2的重附狀態(tài)212表示的。如所描繪的,單獨(dú)的組件消息隊(duì)列210已經(jīng)被關(guān)閉或否則被移除。在重附狀態(tài)212,用于組件 204(1)的消息傳送重新由共享的輸入消息隊(duì)列206來(lái)操控。這可以牽涉到將用于組件204 (1)的消息與用于組件204 (2)和組件204 (3)的消息合并,而回到共享的輸入消息隊(duì)列 206中。關(guān)于可被使用來(lái)從共享的輸入消息隊(duì)列中拆離和重附組件的技術(shù)的進(jìn)一步細(xì)節(jié)可以在下面標(biāo)題為“示例性方法”的段落中找到。在描述了消息隊(duì)列管理的例子后,現(xiàn)在考慮示例性web瀏覽器的討論,該示例性 web瀏覽器可以利用按照一個(gè)或多個(gè)實(shí)施例的消息隊(duì)列管理器111。示例性web瀏覽器界面
圖3圖示按照一個(gè)或多個(gè)實(shí)施例的示例性web瀏覽器,總的以300表示。所描繪的web 瀏覽器僅僅是可以利用多個(gè)組件(例如,標(biāo)簽)和消息隊(duì)列管理器111 (圖1)來(lái)便于組件的管理的應(yīng)用的一個(gè)例子。web瀏覽器300包括web瀏覽器用戶(hù)界面302,其包括典型的工具, 諸如向后和向前導(dǎo)航按鈕、地址欄(bar)、搜索欄和可以支持多個(gè)標(biāo)簽的標(biāo)簽區(qū)(band)。例如,多個(gè)標(biāo)簽出現(xiàn)在圖3所示的標(biāo)簽區(qū)中。標(biāo)簽被標(biāo)明為組件204 (1)-204 (3),以表示關(guān)于圖2討論的組件可以對(duì)應(yīng)于標(biāo)簽,諸如圖3的示例性標(biāo)簽。web瀏覽器用戶(hù)界面還包括內(nèi)容呈現(xiàn)區(qū)域304 (用交叉陰影線(xiàn)標(biāo)明),在其中可以呈現(xiàn)內(nèi)容。另外,web瀏覽器用戶(hù)界面 302包括通知欄306。在一個(gè)或多個(gè)實(shí)施例中,通知欄被設(shè)計(jì)成幫助用戶(hù)將焦點(diǎn)維持在他們的瀏覽活動(dòng)上,而同時(shí)以建議的形式提供通知。經(jīng)由通知欄給出的通知可包括涉及非響應(yīng)的標(biāo)簽的通知,它們經(jīng)由消息隊(duì)列管理器111的操作而被輸出或否則被引起,以便使能用于消息隊(duì)列管理的各種技術(shù)。在至少一些實(shí)施例中,通知欄是非模式化的(non-modal)且在瀏覽視場(chǎng)內(nèi)的某位置處給出,該視場(chǎng)被選擇成減小用戶(hù)的注意力分散。例如,在所圖示和描述的實(shí)施例中,通知欄被在web瀏覽器的用戶(hù)界面的底部處或底部附近給出,這里靠近內(nèi)容呈現(xiàn)區(qū)域304的底部或在內(nèi)容呈現(xiàn)區(qū)域304下面。通知欄被設(shè)計(jì)成是明顯的然而是可忽略的,因此使得用戶(hù)能夠在內(nèi)容呈現(xiàn)區(qū)域304中繼續(xù)進(jìn)行他們的瀏覽任務(wù),而不會(huì)被模式化的對(duì)話(huà)分散注意力。此外,在至少一些實(shí)施例中,通知欄以覆蓋web瀏覽器所呈現(xiàn)的內(nèi)容的方式給出。因此,通知欄的位置實(shí)際上使得在內(nèi)容呈現(xiàn)區(qū)域304內(nèi)呈現(xiàn)的內(nèi)容優(yōu)先于可能在通知欄中出現(xiàn)的特定通知。通知
關(guān)于非響應(yīng)的組件的通知可以以任何適當(dāng)?shù)姆绞奖慌渲谩_m當(dāng)?shù)耐ㄖ砂◤棾鍪綄?duì)話(huà)框、由web瀏覽器300或其它應(yīng)用呈現(xiàn)的html頁(yè)、標(biāo)簽式用戶(hù)界面的標(biāo)簽警告、經(jīng)由通知欄306給出的通知、和/或它們的組合。通知可被配置成包括一個(gè)或多個(gè)用戶(hù)可選擇的手段,以直接執(zhí)行恢復(fù)和/或通過(guò)可經(jīng)由該通知訪(fǎng)問(wèn)的單獨(dú)的恢復(fù)對(duì)話(huà)來(lái)執(zhí)行恢復(fù)?;謴?fù)對(duì)話(huà)可被配置成提供關(guān)于崩潰和/或各種可提供的恢復(fù)選項(xiàng)的附加信息。例如,圖3上的通知欄306被描繪為顯示關(guān)于非響應(yīng)的組件的示例性通知。具體地,消息隊(duì)列管理器111可以響應(yīng)于檢測(cè)到示例性瀏覽器300的標(biāo)簽是非響應(yīng)的,而使得通知被給出。通知可被配置成出現(xiàn)在對(duì)應(yīng)的標(biāo)簽上。因此,對(duì)應(yīng)于后臺(tái)中的標(biāo)簽的通知可能不出現(xiàn),直到用戶(hù)把該后臺(tái)標(biāo)簽選擇為活動(dòng)標(biāo)簽為止。這個(gè)方法可以限制用戶(hù)的瀏覽或與該活動(dòng)標(biāo)簽的其它交互的中斷。在所圖示的例子中,通知包括指示“標(biāo)簽沒(méi)有響應(yīng)”的信息部分308。信息部分也可以標(biāo)識(shí)頁(yè)名稱(chēng)、URI、域名和/或與非響應(yīng)的組件相關(guān)聯(lián)的其它標(biāo)識(shí)符,以標(biāo)識(shí)崩潰的源。例如,消息隊(duì)列管理器可以分析用于web資源的域字符串,以確定域名并配置關(guān)于非響應(yīng)的標(biāo)簽的通知以便指示域名,諸如指示“ ^οο. com沒(méi)有響應(yīng)”。任選地,通知還可以包括一個(gè)或多個(gè)用戶(hù)可選擇的手段,諸如所示的按鈕,總的以310表示,它們被配置成提供各種選項(xiàng)以用于恢復(fù)非響應(yīng)的標(biāo)簽或其它組件。例如,圖3的示例性按鈕包括“恢復(fù)標(biāo)簽”按鈕, 當(dāng)被選擇時(shí),它可被配置成通過(guò)該通知來(lái)直接執(zhí)行動(dòng)作以恢復(fù)該標(biāo)簽。示例性動(dòng)作可包括重新裝載頁(yè)面,停止正在與該標(biāo)簽相關(guān)聯(lián)地執(zhí)行的腳本,退回到瀏覽歷史中的以前的資源或URL,等等。另外地或替換地,“恢復(fù)標(biāo)簽”按鈕可以暴露另一個(gè)對(duì)話(huà)或界面,用戶(hù)可以通過(guò)其獲得關(guān)于非響應(yīng)的標(biāo)簽的更詳細(xì)的信息,和/或選擇各種恢復(fù)選項(xiàng)。示例性按鈕還包括“關(guān)閉標(biāo)簽”按鈕,用戶(hù)可以選擇它來(lái)關(guān)掉非響應(yīng)的標(biāo)簽?;謴?fù)選項(xiàng)
如上所提到的,可以經(jīng)由隨通知而包括的用戶(hù)可選擇的手段,和/或通過(guò)具有各種可選擇的恢復(fù)選項(xiàng)的恢復(fù)對(duì)話(huà),而使用來(lái)恢復(fù)非響應(yīng)的標(biāo)簽或其它組件的各種選項(xiàng)可獲得。 可以通過(guò)諸如菜單項(xiàng)選項(xiàng)、工具欄、鍵盤(pán)快捷方式、按鈕等等那樣的典型的手段,使得恢復(fù)選項(xiàng)可獲得?,F(xiàn)在考慮關(guān)于幾個(gè)示例性恢復(fù)選項(xiàng)的細(xì)節(jié),當(dāng)檢測(cè)到非響應(yīng)的標(biāo)簽時(shí),能使得所述示例性恢復(fù)選項(xiàng)可獲得。選項(xiàng)可以被提供來(lái)關(guān)閉標(biāo)簽。因此,用戶(hù)可以?xún)H僅選擇停止與非響應(yīng)的標(biāo)簽進(jìn)行交互。另外,選項(xiàng)可被提供來(lái)復(fù)原標(biāo)簽。復(fù)原選項(xiàng)的選擇可促使web瀏覽器試圖重新裝載和/或重新導(dǎo)航到所選擇的資源(例如,頁(yè)面、文檔、網(wǎng)址等等)。另一個(gè)選項(xiàng)使得用戶(hù)能夠執(zhí)行在與非響應(yīng)的組件相關(guān)聯(lián)的資源之間的交換。所述交換實(shí)際上隱藏和/或終止(kill)非響應(yīng)的組件,并創(chuàng)建具有新資源的新組件來(lái)替代非響應(yīng)的組件。該交換可以在后臺(tái)對(duì)于用戶(hù)透明地被執(zhí)行。從用戶(hù)的角度來(lái)看,就好像是新的資源被通過(guò)該組件來(lái)選擇和給出。例如,可以提供按鈕或其它手段,當(dāng)其被選擇時(shí),自動(dòng)地把非響應(yīng)的標(biāo)簽導(dǎo)航到另一個(gè)網(wǎng)頁(yè)。該另一個(gè)網(wǎng)頁(yè)可以是預(yù)先指定的缺省的頁(yè)面或主頁(yè)。另外地或替換地,用戶(hù)可以通過(guò)以下方式啟動(dòng)交換,即以各種方式輸入或選擇另一個(gè)資源,諸如從收藏頁(yè)列表中選擇鏈接、在web瀏覽器的地址欄中鍵入新的地址、選擇諸如“back (后退)”或“home (主頁(yè))”按鈕那樣的導(dǎo)航按鈕等等。當(dāng)對(duì)于非響應(yīng)的標(biāo)簽發(fā)生另一個(gè)資源的選擇時(shí),消息隊(duì)列管理器111可以檢測(cè)到這一點(diǎn),并自動(dòng)啟動(dòng)交換,它隱藏或終止非響應(yīng)的標(biāo)簽,創(chuàng)建指引到新選擇的資源的新標(biāo)簽,并用新標(biāo)簽無(wú)縫地替代該非響應(yīng)的標(biāo)簽。另外,可以提供腳本恢復(fù)選項(xiàng)來(lái)使得用戶(hù)能夠停止執(zhí)行可能是導(dǎo)致該非響應(yīng)的標(biāo)簽的原因的腳本。例如,當(dāng)消息隊(duì)列管理器111檢測(cè)到非響應(yīng)的標(biāo)簽時(shí),可以進(jìn)行檢驗(yàn)以查明是否正在執(zhí)行與該標(biāo)簽相關(guān)聯(lián)的腳本。如果腳本被識(shí)別,則消息隊(duì)列管理器111可以使用如上面和下面描述的通知來(lái)告知用戶(hù)。所述通知還可以包括按鈕或其它用戶(hù)可選擇的手段,當(dāng)其被選擇時(shí),使得腳本停止執(zhí)行。如果腳本已導(dǎo)致標(biāo)簽是非響應(yīng)的,那么以所描述的方式盡可能快地停止腳本可以快速地復(fù)原標(biāo)簽的響應(yīng)性,以及限制用戶(hù)的瀏覽的中斷。還應(yīng)當(dāng)指出,“自恢復(fù)”選項(xiàng)也可以被實(shí)施來(lái)使能消息隊(duì)列管理器111在沒(méi)有任何用戶(hù)干預(yù)的情況下自動(dòng)地執(zhí)行恢復(fù)。在這個(gè)選項(xiàng)下,消息隊(duì)列管理器111可以確定非響應(yīng)的組件已經(jīng)重新變?yōu)轫憫?yīng)的。所述確定可以與用戶(hù)動(dòng)作無(wú)關(guān)地發(fā)生,諸如是和恢復(fù)按鈕的用戶(hù)選擇無(wú)關(guān)的或者和與恢復(fù)對(duì)話(huà)的交互無(wú)關(guān)的。當(dāng)消息隊(duì)列管理器111確定響應(yīng)性被復(fù)原時(shí),消息隊(duì)列管理器111可以自動(dòng)地操作來(lái)將組件重附到該隊(duì)列,在顯示器部分一諸如在圖3的內(nèi)容呈現(xiàn)區(qū)域304中——呈現(xiàn)對(duì)應(yīng)于該組件的數(shù)據(jù),以及如果適當(dāng)?shù)脑?huà),解除 (dismiss)對(duì)應(yīng)的通知。“自恢復(fù)”方法可被實(shí)施來(lái)避免用通知和/或針對(duì)靠它們自己恢復(fù)(情況經(jīng)常如此)的組件的恢復(fù)選項(xiàng)來(lái)打斷用戶(hù)。在考慮了按照一個(gè)或多個(gè)實(shí)施例的、利用多個(gè)標(biāo)簽和通知欄的示例性web瀏覽器后,現(xiàn)在考慮關(guān)于在示例性方法的上下文中被描述的消息隊(duì)列管理的某些另外的細(xì)節(jié)。示例性方法
圖4是描述按照一個(gè)或多個(gè)實(shí)施例的方法的步驟的流程圖。該方法可以結(jié)合任何適當(dāng)?shù)挠布?、軟件、固件或它們的組合而被實(shí)施。在至少一些實(shí)施例中,所述方法可以借助于適當(dāng)配置的計(jì)算設(shè)備——諸如圖1的包括或否則利用消息隊(duì)列管理器111的示例性計(jì)算設(shè)備 102——而被實(shí)施。回想起在初始狀態(tài)下,諸如標(biāo)簽式web瀏覽器那樣的多組件應(yīng)用可以利用共享的輸入消息隊(duì)列來(lái)操控用于所述組件的各個(gè)組件的消息。在具體的例子中,web瀏覽器可以具有獨(dú)立地操作的多個(gè)標(biāo)簽,它們可被使用來(lái)訪(fǎng)問(wèn)來(lái)自web服務(wù)器的不同的資源。因此, 每個(gè)標(biāo)簽可以被導(dǎo)航,以指向不同的資源或URL,并給出對(duì)應(yīng)的內(nèi)容。在初始狀態(tài),web瀏覽器可被配置成使用共享的輸入消息隊(duì)列來(lái)管理每個(gè)標(biāo)簽。例如,每個(gè)新的標(biāo)簽可以默認(rèn)地被指派到共享的隊(duì)列。消息隊(duì)列管理器111可被實(shí)施來(lái)監(jiān)視標(biāo)簽,以確保該標(biāo)簽保持為響應(yīng)的。具體地,步驟400監(jiān)視諸如用于示例性web瀏覽器的應(yīng)用的標(biāo)簽的響應(yīng)性。根據(jù)所述監(jiān)視,步驟 402確定標(biāo)簽是否變?yōu)榉琼憫?yīng)的。標(biāo)簽的監(jiān)視可以以任何適當(dāng)?shù)姆绞桨l(fā)生。標(biāo)簽監(jiān)視可以發(fā)生的一種方式是通過(guò)將周期性“心跳”消息發(fā)送到標(biāo)簽。換句話(huà)說(shuō),消息隊(duì)列管理器111可被配置成用心跳消息輪詢(xún)每個(gè)標(biāo)簽。心跳消息可被配置為基本請(qǐng)求消息,它促使標(biāo)簽發(fā)送應(yīng)答消息。因此,消息隊(duì)列管理器111可以監(jiān)視標(biāo)簽是否發(fā)送應(yīng)答消息。響應(yīng)的標(biāo)簽將響應(yīng)所述消息,以及消息隊(duì)列管理器111可以得出結(jié)論該標(biāo)簽是響應(yīng)的。然而,如果標(biāo)簽未能響應(yīng)心跳消息,則消息隊(duì)列管理器111可以得出結(jié)論該標(biāo)簽是非響應(yīng)的。在另一種用于監(jiān)視的示例性技術(shù)中,資源可被配置成把消息推送到消息隊(duì)列管理器111,以便通知消息隊(duì)列管理器111它們是響應(yīng)的。這個(gè)方法雖然是合適的,但會(huì)牽涉到用使能被推送的消息的代碼來(lái)重新配置資源。因此,與被推送消息的方法相比,如所述地使用心跳消息來(lái)輪詢(xún)標(biāo)簽,可以是更有效的、不那么昂貴的和不那么復(fù)雜的,雖然二者都是可行的方法。如果每個(gè)步驟402都沒(méi)有標(biāo)簽被檢測(cè)為非響應(yīng)的,則在步驟400執(zhí)行的監(jiān)視可以繼續(xù)進(jìn)行。應(yīng)當(dāng)意識(shí)到,即使在存在非響應(yīng)的標(biāo)簽的情形下,步驟400的監(jiān)視也可以繼續(xù)進(jìn)行,雖然這在圖上沒(méi)有明顯地示出。當(dāng)檢測(cè)到非響應(yīng)的標(biāo)簽時(shí),步驟404可以拆離該標(biāo)簽。具體地,非響應(yīng)的標(biāo)簽可以從由web瀏覽器或其它應(yīng)用使用的共享的輸入消息隊(duì)列中被拆離。為了執(zhí)行拆離,步驟 406啟動(dòng)拆離隊(duì)列。例如,消息隊(duì)列管理器111可以創(chuàng)建或否則獲得隊(duì)列來(lái)以任何適當(dāng)?shù)姆绞讲倏赜糜诜琼憫?yīng)的標(biāo)簽的消息。這可以牽涉到在要求時(shí)創(chuàng)建新的隊(duì)列、和/或準(zhǔn)備好預(yù)先存在的隊(duì)列以供非響應(yīng)的標(biāo)簽使用。該初始化創(chuàng)建了在該隊(duì)列與非響應(yīng)的標(biāo)簽之間的關(guān)聯(lián)。一旦適當(dāng)?shù)牟痣x隊(duì)列被初始化,步驟408就把用于該標(biāo)簽的消息從共享的隊(duì)列遷移到拆離隊(duì)列。這可以包括在隊(duì)列之間移動(dòng)消息,以及確保消息被正確地排序。例如, 消息可以是與定序信息相關(guān)聯(lián)的,定序信息諸如是可被使用來(lái)在輸入隊(duì)列中對(duì)消息進(jìn)行排序的時(shí)間戳和/或優(yōu)先權(quán)。消息還可包括可被使用來(lái)把消息指引到適當(dāng)?shù)臉?biāo)簽的瞄準(zhǔn) (target)信息,諸如消息號(hào)、源名稱(chēng)和/或進(jìn)程ID。為了執(zhí)行與特定的非響應(yīng)標(biāo)簽相關(guān)聯(lián)的消息的遷移,消息隊(duì)列管理器111可以查驗(yàn)瞄準(zhǔn)信息,以識(shí)別和選擇要被移動(dòng)到拆離隊(duì)列的消息。與被移動(dòng)的消息相關(guān)聯(lián)的定序信息可被利用來(lái)保留消息序列和/或如果適當(dāng)?shù)脑?huà)對(duì)拆離隊(duì)列中的消息進(jìn)行重新排序。該標(biāo)簽現(xiàn)在可被認(rèn)為是被拆離的,以及用于被拆離的標(biāo)簽的消息處理可以使用拆離隊(duì)列而被執(zhí)行。同時(shí),共享的輸入消息隊(duì)列可以繼續(xù)被使用來(lái)操控用于其它的“響應(yīng)的”標(biāo)簽的消息。 被保持在共享的輸入消息中的消息也可以使用定序信息來(lái)酌情重新排序。一旦標(biāo)簽已被拆離,步驟410就監(jiān)視被拆離的標(biāo)簽。根據(jù)監(jiān)視,步驟412確定被拆離的標(biāo)簽何時(shí)重新變?yōu)轫憫?yīng)的??梢岳萌魏芜m當(dāng)?shù)臋C(jī)制來(lái)監(jiān)視被拆離的標(biāo)簽。例如, 對(duì)被拆離的標(biāo)簽的監(jiān)視可以以與上述對(duì)于共享隊(duì)列的標(biāo)簽的監(jiān)視相似的方式發(fā)生。在至少一些實(shí)施例中,消息隊(duì)列管理器111可以操作來(lái)發(fā)送心跳消息給被拆離的標(biāo)簽,以及根據(jù)心跳消息來(lái)確定該被拆離的標(biāo)簽是否響應(yīng)。當(dāng)被拆離的標(biāo)簽變?yōu)轫憫?yīng)的時(shí),步驟414重附該標(biāo)簽。例如,如果消息隊(duì)列管理器111接收到來(lái)自被拆離的標(biāo)簽的心跳消息響應(yīng),或否則確定標(biāo)簽是響應(yīng)的,則消息隊(duì)列管理器111可以使得該標(biāo)簽被重附到共享的隊(duì)列。為了執(zhí)行重附,步驟416把用于該標(biāo)簽的消息從拆離隊(duì)列合并到共享的隊(duì)列。例如,消息隊(duì)列管理器111可以以對(duì)于共享隊(duì)列中的消息恰當(dāng)?shù)捻樞?,把消息從拆離隊(duì)列移回到共享的隊(duì)列。前面提到的順序信息可被使用來(lái)組合消息,以使得消息被正確地排序。例如,當(dāng)消息被合并到共享的隊(duì)列中時(shí),與消息相關(guān)聯(lián)的時(shí)間戳和/或優(yōu)先權(quán)可被使用來(lái)對(duì)消息重新排序。
一旦消息在步驟416中被合并,步驟418就清除(clear)拆離隊(duì)列。如果消息隊(duì)列管理器111被配置成重復(fù)地使用該隊(duì)列,就可以執(zhí)行這個(gè)步驟來(lái)準(zhǔn)備好該隊(duì)列以供另一個(gè)非響應(yīng)的標(biāo)簽使用。在其中消息隊(duì)列管理器111在要求時(shí)創(chuàng)建用于非響應(yīng)標(biāo)簽的隊(duì)列的實(shí)施例中,這個(gè)步驟會(huì)牽涉到關(guān)閉、刪除、或否則停止運(yùn)轉(zhuǎn)該拆離隊(duì)列。然后,可以在要求時(shí)創(chuàng)建另一個(gè)拆離隊(duì)列,以便酌情來(lái)供不同的非響應(yīng)標(biāo)簽使用。該標(biāo)簽現(xiàn)在可被認(rèn)為是重附到共享的隊(duì)列,以及重新經(jīng)由該共享的隊(duì)列來(lái)操控用于重附的標(biāo)簽以及其它標(biāo)簽的消息處理。在描述了按照一個(gè)或多個(gè)實(shí)施例的示例性方法后,現(xiàn)在考慮可以被使用來(lái)實(shí)施按照一個(gè)或多個(gè)實(shí)施例的、用于消息隊(duì)列管理的各種技術(shù)的示例性系統(tǒng)。示例性系統(tǒng)
圖5圖示可被使用來(lái)實(shí)施上述的各種實(shí)施例的示例性計(jì)算設(shè)備500。計(jì)算設(shè)備500可以是例如圖1的計(jì)算設(shè)備102或web服務(wù)器114。計(jì)算設(shè)備500包括一個(gè)或多個(gè)處理器或處理單元502、一個(gè)或多個(gè)存儲(chǔ)器和/ 或存儲(chǔ)部件504、一個(gè)或多個(gè)輸入/輸出(I/O)設(shè)備506、以及總線(xiàn)508,總線(xiàn)508允許各種部件和設(shè)備互相通信??偩€(xiàn)508代表幾種類(lèi)型的總線(xiàn)結(jié)構(gòu)的任意一種或多種,包括存儲(chǔ)器總線(xiàn)或存儲(chǔ)器控制器、外圍總線(xiàn)、加速的圖形端口和使用各種各樣的總線(xiàn)結(jié)構(gòu)中任何總線(xiàn)結(jié)構(gòu)的處理器或本地總線(xiàn)。總線(xiàn)508可包括有線(xiàn)和/或無(wú)線(xiàn)總線(xiàn)。存儲(chǔ)器/存儲(chǔ)部件504代表一個(gè)或多個(gè)計(jì)算機(jī)存儲(chǔ)介質(zhì)。部件504可包括易失性介質(zhì)(諸如,隨機(jī)存取存儲(chǔ)器(RAM))和/或非易失性介質(zhì)(諸如,只讀存儲(chǔ)器(ROM)、快閃存儲(chǔ)器、光盤(pán)、磁盤(pán)等等)。部件504可包括固定的介質(zhì)(例如,RAM、R0M、固定的硬驅(qū)動(dòng)等等) 以及可拆卸介質(zhì)(例如,快閃存儲(chǔ)器驅(qū)動(dòng)、可拆卸硬驅(qū)動(dòng)、光盤(pán)等等)。一個(gè)或多個(gè)輸入/輸出設(shè)備506允許用戶(hù)輸入命令和信息到計(jì)算設(shè)備500,還允許向用戶(hù)和/或其它部件或設(shè)備給出信息。輸入設(shè)備的例子包括鍵盤(pán)、光標(biāo)控制裝置(例如,鼠標(biāo))、話(huà)筒、掃描儀等等。輸出設(shè)備的例子包括顯示設(shè)備(例如,監(jiān)視器或投影儀)、揚(yáng)聲器、打印機(jī)、網(wǎng)卡等等。各種技術(shù)可以在這里在軟件或程序模塊的一般性上下文中描述。通常,軟件包括執(zhí)行特定的任務(wù)或?qū)嵤┨囟ǖ某橄髷?shù)據(jù)類(lèi)型的例行程序、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。 這些模塊和技術(shù)的實(shí)現(xiàn)可被存儲(chǔ)在某種形式的計(jì)算機(jī)可讀介質(zhì)上,或通過(guò)某些形式的計(jì)算機(jī)可讀介質(zhì)來(lái)傳送。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算設(shè)備存取的任何可獲得的媒介或介質(zhì)。作為例子,而不是限制,計(jì)算機(jī)可讀介質(zhì)可包括“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”?!坝?jì)算機(jī)可讀存儲(chǔ)介質(zhì)”包括易失性和非易失性的、可拆卸和非可拆卸的介質(zhì),它們以任何方法或技術(shù)被實(shí)施來(lái)存儲(chǔ)信息,諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其它數(shù)據(jù)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括,但不限于RAM、R0M、EEPR0M、快閃存儲(chǔ)器或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(pán)(DVD)、或其它光學(xué)存儲(chǔ)裝置、盒式磁帶、磁帶、磁盤(pán)存儲(chǔ)裝置或其它磁存儲(chǔ)設(shè)備、或可被使用來(lái)存儲(chǔ)想要的信息并可由計(jì)算機(jī)存取的任何其它媒介。結(jié)論
各種實(shí)施例提供了用于消息隊(duì)列管理的技術(shù),所述技術(shù)被設(shè)計(jì)來(lái)減小多組件應(yīng)用變?yōu)榉琼憫?yīng)(例如,“鎖住”、“掛起”、“崩潰”等等)的或然率,以及如果一個(gè)個(gè)組件確實(shí)變?yōu)榉琼憫?yīng)的,則使能用于它們的恢復(fù)選項(xiàng)。在至少一些實(shí)施例中,消息隊(duì)列管理器可被實(shí)施來(lái)檢測(cè)應(yīng)用界面的組件何時(shí)變?yōu)榉琼憫?yīng)的,并從共享的消息隊(duì)列中拆離該組件。共享的消息隊(duì)列可以繼續(xù)處理用于其它響應(yīng)的組件的消息,而對(duì)于非響應(yīng)的組件的消息傳送則經(jīng)由單獨(dú)的隊(duì)列被管理。消息隊(duì)列管理器還可以把非響應(yīng)的組件通知給用戶(hù),并向用戶(hù)提供選項(xiàng)以便于非響應(yīng)的組件的恢復(fù)。而且,在至少一些實(shí)施例中,消息隊(duì)列管理器可以監(jiān)視被拆離的組件,并且當(dāng)拆離的組件重新變?yōu)轫憫?yīng)的時(shí),重附該拆離的組件。 雖然本主題已經(jīng)以對(duì)于結(jié)構(gòu)特征和/或方法行為特定的語(yǔ)言進(jìn)行描述,但應(yīng)當(dāng)明白,在所附權(quán)利要求中定義的主題不是必須限于上述的特定的特征或行為。而是,上述的特定特征和行為是作為實(shí)施權(quán)利要求的示例性形式被公開(kāi)的。
權(quán)利要求
1.存儲(chǔ)指令的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(106),所述指令當(dāng)被計(jì)算設(shè)備執(zhí)行時(shí),使得計(jì)算設(shè)備實(shí)施消息隊(duì)列管理器(111),該消息隊(duì)列管理器被配置成執(zhí)行以下動(dòng)作, 包括管理共享的輸入消息隊(duì)列,以便處理用于應(yīng)用的多個(gè)組件的消息; 檢測(cè)所述多個(gè)組件中的非響應(yīng)的組件;以及從共享的輸入消息隊(duì)列中拆離非響應(yīng)的組件。
2.權(quán)利要求1的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述應(yīng)用包括web瀏覽器。
3.權(quán)利要求1的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述多個(gè)組件包括用于該應(yīng)用的標(biāo)簽式界面的多個(gè)標(biāo)簽。
4.權(quán)利要求1的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述應(yīng)用包括web瀏覽器,以及所述多個(gè)組件包括用于該web瀏覽器的標(biāo)簽式界面的多個(gè)標(biāo)簽。
5.權(quán)利要求1的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中檢測(cè)非響應(yīng)的組件包括 周期地發(fā)送消息到多個(gè)組件的每個(gè)組件,以便監(jiān)視所述多個(gè)組件的響應(yīng)性;以及確定非響應(yīng)的組件未能響應(yīng)所述消息。
6.權(quán)利要求1的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述消息隊(duì)列管理器還被配置成執(zhí)行以下動(dòng)作,包括輸出通知來(lái)把非響應(yīng)的組件通知給用戶(hù),其中該通知是非模式化的且經(jīng)由通知欄而被輸出,所述通知欄覆蓋由所述應(yīng)用在內(nèi)容呈現(xiàn)區(qū)域中呈現(xiàn)的內(nèi)容。
7.權(quán)利要求6的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述通知包括一個(gè)或多個(gè)用戶(hù)可選擇的手段,其被配置成使得恢復(fù)選項(xiàng)能夠恢復(fù)非響應(yīng)的組件。
8.權(quán)利要求1的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述多個(gè)組件包括被包含在所述應(yīng)用的公共框內(nèi)的可分開(kāi)地操作的子應(yīng)用。
9.權(quán)利要求1的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中拆離非響應(yīng)的組件包括 啟動(dòng)拆離消息隊(duì)列,以便操控用于非響應(yīng)的組件的消息;以及將用于非響應(yīng)的組件的消息從共享的輸入消息隊(duì)列遷移到拆離消息隊(duì)列。
10.權(quán)利要求1的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述消息隊(duì)列管理器還被配置成執(zhí)行以下動(dòng)作,包括確定被檢測(cè)為非響應(yīng)的所述組件重新是響應(yīng)的;以及將所述組件重附到共享的輸入消息隊(duì)列。
11.權(quán)利要求10的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中重附組件包括 把用于該組件的消息從拆離消息隊(duì)列合并到共享的輸入消息隊(duì)列中;以及清除該拆離消息隊(duì)列。
12.—種計(jì)算機(jī)實(shí)施的方法,包括周期地發(fā)送(400)消息到標(biāo)簽式應(yīng)用的多個(gè)標(biāo)簽,以便監(jiān)視該多個(gè)標(biāo)簽的響應(yīng)性,所述多個(gè)標(biāo)簽被配置成使用共享的輸入消息隊(duì)列來(lái)進(jìn)行消息操控;根據(jù)所述消息,檢測(cè)(402)到所述多個(gè)標(biāo)簽的一個(gè)標(biāo)簽是非響應(yīng)的; 通過(guò)將用于非響應(yīng)標(biāo)簽的消息從該共享的輸入消息隊(duì)列遷移到拆離消息隊(duì)列,而從共享的輸入消息隊(duì)列中拆離(404)該非響應(yīng)的標(biāo)簽;確定(412)被檢測(cè)為非響應(yīng)的標(biāo)簽重新是響應(yīng)的;以及通過(guò)將用于所述標(biāo)簽的消息從拆離消息隊(duì)列遷移到共享的輸入消息隊(duì)列,而將所述標(biāo)簽重附(414)到該共享的輸入消息隊(duì)列。
13.權(quán)利要求12的計(jì)算機(jī)實(shí)施的方法,還包括 輸出通知來(lái)把非響應(yīng)的標(biāo)簽通知給用戶(hù);以及經(jīng)由被包括在所述通知中的一個(gè)或多個(gè)用戶(hù)可選擇的手段,提供對(duì)恢復(fù)選項(xiàng)的訪(fǎng)問(wèn)。
14.權(quán)利要求13的計(jì)算機(jī)實(shí)施的方法,其中所述恢復(fù)選項(xiàng)包括選項(xiàng)來(lái)用另一個(gè)資源交換經(jīng)由非響應(yīng)的標(biāo)簽訪(fǎng)問(wèn)的資源。
15.權(quán)利要求13的計(jì)算機(jī)實(shí)施的方法,其中所述恢復(fù)選項(xiàng)包括選項(xiàng)來(lái)當(dāng)與非響應(yīng)的標(biāo)簽相關(guān)聯(lián)的腳本的執(zhí)行被識(shí)別為是導(dǎo)致非響應(yīng)的標(biāo)簽的原因時(shí),停止該腳本的執(zhí)行。
全文摘要
本發(fā)明提供了消息隊(duì)列管理技術(shù),所述消息隊(duì)列管理技術(shù)被設(shè)計(jì)來(lái)減小多組件應(yīng)用變?yōu)榉琼憫?yīng)的或然率,以及如果一個(gè)個(gè)組件確實(shí)變?yōu)榉琼憫?yīng)的則使能用于它們的恢復(fù)選項(xiàng)。在至少一些實(shí)施例中,消息隊(duì)列管理器檢測(cè)應(yīng)用界面的組件何時(shí)變?yōu)榉琼憫?yīng)的,并從共享的消息隊(duì)列中拆離該組件。共享的消息隊(duì)列可以繼續(xù)處理用于其它響應(yīng)的組件的消息,而用于非響應(yīng)的組件的消息傳送則經(jīng)由單獨(dú)的隊(duì)列來(lái)管理。消息隊(duì)列管理器還可以把非響應(yīng)的組件通知給用戶(hù),并向用戶(hù)提供便于恢復(fù)非響應(yīng)的組件的選項(xiàng)。而且,在至少一些實(shí)施例中,消息隊(duì)列管理器可以監(jiān)視被拆離的組件,并且當(dāng)拆離的組件重新變?yōu)轫憫?yīng)的時(shí),重附該拆離的組件。
文檔編號(hào)G06F9/44GK102368212SQ20111027092
公開(kāi)日2012年3月7日 申請(qǐng)日期2011年9月14日 優(yōu)先權(quán)日2010年9月14日
發(fā)明者J. 格拉弗 A., J. 普拉斯特 D., M. 伍茲 S., 吳暿文 申請(qǐng)人:微軟公司