專利名稱:基于資源訪問(wèn)模式預(yù)測(cè)、診斷應(yīng)用故障并從其恢復(fù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及故障恢復(fù)。
背景技術(shù):
在計(jì)算機(jī)系統(tǒng)上執(zhí)行的軟件應(yīng)用可能由于各種原因而發(fā)生故障,諸如代碼隱錯(cuò)、 用戶錯(cuò)誤、不正確的輸入數(shù)據(jù)、不可用資源等。這些應(yīng)用故障可能會(huì)造成數(shù)據(jù)丟失和應(yīng)用停工期,并且可能引起與恢復(fù)應(yīng)用和數(shù)據(jù)相關(guān)的成本和時(shí)間??梢灶A(yù)期在給定相同輸入、條件和/或情境的情況下,在公共環(huán)境中運(yùn)行或來(lái)自公共安裝的應(yīng)用會(huì)遇到相同的故障。這可以是應(yīng)用在虛擬應(yīng)用環(huán)境中運(yùn)行的情形。應(yīng)用虛擬化允許由計(jì)算機(jī)執(zhí)行的軟件應(yīng)用與計(jì)算機(jī)的硬件、操作系統(tǒng)(“OS”)和本地配置去耦。應(yīng)用虛擬化可以消除對(duì)要在計(jì)算機(jī)上本地安裝、配置和維護(hù)應(yīng)用的要求。作為替代,虛擬應(yīng)用環(huán)境可以在計(jì)算機(jī)上執(zhí)行并且通過(guò)網(wǎng)絡(luò)從集中維護(hù)在虛擬應(yīng)用服務(wù)器上的虛擬化應(yīng)用包流傳送應(yīng)用組件。本文所做出的公開(kāi)正是對(duì)于這些和其它考慮而提出的。
發(fā)明內(nèi)容
本文描述了用于區(qū)分應(yīng)用程序的正常操作與錯(cuò)誤條件以預(yù)測(cè)、診斷應(yīng)用故障并從其恢復(fù)的技術(shù)。當(dāng)應(yīng)用程序運(yùn)行在虛擬應(yīng)用環(huán)境中時(shí),虛擬化層或虛擬應(yīng)用環(huán)境可以知曉并控制應(yīng)用對(duì)資源的請(qǐng)求,諸如從數(shù)據(jù)文件讀取、對(duì)注冊(cè)表項(xiàng)寫入等等。利用本文所述的技術(shù),虛擬化層可以記錄對(duì)資源的訪問(wèn),并隨時(shí)間建立資源使用的公共模式。一旦這種資源訪問(wèn)模式被建立,虛擬化層可以繼續(xù)監(jiān)視應(yīng)用程序?qū)Y源的使用并在模式改變時(shí)提供警告或警報(bào)。這種搶先警告可以向應(yīng)用程序的用戶或管理員提供快速采取診斷或校正動(dòng)作的機(jī)會(huì),從而減少、甚至防止停工期和數(shù)據(jù)丟失。應(yīng)該意識(shí)到,應(yīng)用程序通常具有向用戶或管理員顯示錯(cuò)誤的手段,類似彈出式對(duì)話框或在應(yīng)用或系統(tǒng)事件日志中記錄的事件。然而,這些錯(cuò)誤消息的質(zhì)量和利用可能隨應(yīng)用不同而顯著改變。提供允許確定錯(cuò)誤源的高質(zhì)量錯(cuò)誤消息需要大量投入,而缺并非所有的軟件商都作出了這種投入。利用本文所述的對(duì)資源的訪問(wèn)日志以及所建立的公共模式來(lái)對(duì)哪些資源正被訪問(wèn)或就在錯(cuò)誤條件之前模式如何改變進(jìn)行關(guān)聯(lián),可以允許用戶和/或管理員更快速地診斷應(yīng)用故障并實(shí)現(xiàn)恢復(fù)動(dòng)作,從而減少應(yīng)用停工期。此外,由于虛擬化層知道應(yīng)用程序?qū)Y源的所有使用,它能夠記錄資源添加、修改或刪除以及在隨時(shí)間發(fā)生的這些資源修改中使用的數(shù)據(jù)。如果應(yīng)用程序故障,可以立即啟動(dòng)應(yīng)用程序的第二實(shí)例,并且可以重放資源修改和數(shù)據(jù)的日志,從而使應(yīng)用狀態(tài)剛好還原到剛好在應(yīng)用第一實(shí)例故障之前的點(diǎn)。應(yīng)用實(shí)例之間的這種快速故障轉(zhuǎn)移(failover)可以限制進(jìn)一步的停工期。根據(jù)實(shí)施例,監(jiān)視在虛擬應(yīng)用環(huán)境中執(zhí)行的應(yīng)用程序?qū)Y源的訪問(wèn),并且將資源訪問(wèn)事件記錄在資源訪問(wèn)日志中。利用計(jì)算機(jī)模式識(shí)別技術(shù),從所記錄的資源訪問(wèn)事件建立資源訪問(wèn)模式。如果應(yīng)用程序后續(xù)對(duì)資源的訪問(wèn)偏離所建立的模式,則基于所檢測(cè)的偏離向應(yīng)用程序的用戶和/或管理員通知可能的錯(cuò)誤條件。此外,可以基于錯(cuò)誤條件發(fā)生時(shí)間的時(shí)間接近度,將從所建立的資源訪問(wèn)模式偏離的資源訪問(wèn)事件序列與錯(cuò)誤條件相關(guān)聯(lián),以向用戶和/或管理員提供關(guān)于錯(cuò)誤的診斷信息。最后,在應(yīng)用故障以及隨后重啟應(yīng)用的事件中,可以重放資源訪問(wèn)日志中記錄的關(guān)于數(shù)據(jù)添加、修改和刪除的資源訪問(wèn)事件,以重建應(yīng)用程序的應(yīng)用狀態(tài)。應(yīng)該意識(shí)到,上述主題可被實(shí)現(xiàn)為計(jì)算機(jī)控制的裝置、計(jì)算機(jī)進(jìn)程、計(jì)算系統(tǒng)或諸如計(jì)算機(jī)可讀介質(zhì)等的制品。通過(guò)閱讀下面的詳細(xì)描述并審閱相關(guān)聯(lián)的附圖,這些及各種其它特征將變得顯而易見(jiàn)。提供本發(fā)明內(nèi)容以便以簡(jiǎn)化的形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在將本概述用來(lái)限制所要求保護(hù)的主題的范圍。此外,所請(qǐng)求保護(hù)的主題不限于解決在本公開(kāi)的任一部分中提及的任何或所有缺點(diǎn)的實(shí)現(xiàn)。
圖1是示出由本文呈現(xiàn)的實(shí)施例所提供的說(shuō)明性操作環(huán)境和若干軟件組件的多方面的框圖;圖2-4是示出根據(jù)本文所述實(shí)施例用于區(qū)分應(yīng)用程序的正常操作與錯(cuò)誤條件以預(yù)測(cè)、診斷應(yīng)用故障并從其恢復(fù)的方法的流程圖;以及圖5是示出能夠?qū)崿F(xiàn)本文呈現(xiàn)的實(shí)施例的多方面的計(jì)算系統(tǒng)的說(shuō)明性計(jì)算機(jī)硬件和軟件體系結(jié)構(gòu)的框圖。
具體實(shí)施例以下詳細(xì)描述涉及用于基于資源訪問(wèn)的模式來(lái)區(qū)分應(yīng)用程序的正常操作與錯(cuò)誤條件以便預(yù)測(cè)、診斷應(yīng)用故障和/或從其恢復(fù)的技術(shù)。盡管在結(jié)合計(jì)算機(jī)系統(tǒng)上的操作系統(tǒng)和應(yīng)用程序的執(zhí)行而執(zhí)行的程序模塊的一般上下文中呈現(xiàn)了本文描述的主題,但是本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,其它實(shí)現(xiàn)可以結(jié)合其它類型的程序模塊來(lái)執(zhí)行。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其它類型的結(jié)構(gòu)。此外,本領(lǐng)域技術(shù)人員將明白,可以利用其它計(jì)算機(jī)系統(tǒng)配置來(lái)實(shí)施本文描述的主題, 這些計(jì)算機(jī)系統(tǒng)配置包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子產(chǎn)品、小型計(jì)算機(jī)、大型計(jì)算機(jī)等等。在以下詳細(xì)描述中,參考了構(gòu)成其一部分并作為說(shuō)明示出各具體實(shí)施例或示例的附圖。在附圖中,在全部若干附圖中相似的附圖標(biāo)記表示相似的元素。圖1示出根據(jù)本文所提供實(shí)施例非說(shuō)明性操作環(huán)境100,包括用于區(qū)分應(yīng)用程序的正常操作與錯(cuò)誤條件以預(yù)測(cè)、診斷應(yīng)用故障并從其恢復(fù)的若干軟件組件。環(huán)境100包括計(jì)算機(jī)102。計(jì)算設(shè)備102可以是服務(wù)器計(jì)算機(jī);個(gè)人計(jì)算機(jī)(“PC”),諸如臺(tái)式工作站、 膝上型計(jì)算機(jī)或筆記本計(jì)算機(jī);個(gè)人數(shù)字助理(“PDA”);無(wú)線電話;機(jī)頂盒;游戲控制臺(tái); 或可以執(zhí)行應(yīng)用程序的任何其它計(jì)算設(shè)備。軟件應(yīng)用程序104在計(jì)算機(jī)102上執(zhí)行。根據(jù)實(shí)施例,應(yīng)用程序104可以在虛擬應(yīng)用環(huán)境106內(nèi)執(zhí)行。虛擬應(yīng)用環(huán)境106可允許計(jì)算設(shè)備102啟動(dòng)并執(zhí)行之前尚未安裝在計(jì)算機(jī)上的應(yīng)用程序。虛擬應(yīng)用環(huán)境106可以改為通過(guò)網(wǎng)絡(luò)110實(shí)時(shí)地或近乎實(shí)時(shí)地從虛擬應(yīng)用服務(wù)器112流傳送應(yīng)用程序104的組件。虛擬應(yīng)用環(huán)境106和虛擬應(yīng)用服務(wù)器112 可以基于來(lái)自華盛頓州雷蒙德市微軟公司的MICROSOFT APP-V技術(shù)、來(lái)自佛羅里達(dá)州勞德代爾堡市的CITRIXSYSTEMS有限公司的CITRIX XENAPP 技術(shù)或任何其它應(yīng)用流傳送和虛擬化平臺(tái)或技術(shù)。網(wǎng)絡(luò)110可以是LAN、廣域網(wǎng)(“WAN”)、因特網(wǎng)或?qū)⒂?jì)算機(jī)102連接到虛擬應(yīng)用服務(wù)器112的任何其它聯(lián)網(wǎng)拓?fù)?。?yīng)用程序104的軟件組件可被存儲(chǔ)在位于虛擬應(yīng)用服務(wù)器112可訪問(wèn)的存儲(chǔ)設(shè)備上的虛擬化應(yīng)用包114中。根據(jù)實(shí)施例,虛擬化應(yīng)用包114由多個(gè)數(shù)據(jù)塊組成,數(shù)據(jù)塊包含應(yīng)用程序結(jié)構(gòu)信息以及各個(gè)組件文件和應(yīng)用的其它元素。虛擬化應(yīng)用包114還可包括與由應(yīng)用程序104在執(zhí)行期間利用的本地和遠(yuǎn)程資源的位置和配置相關(guān)的元數(shù)據(jù)。虛擬化應(yīng)用包114可以由應(yīng)用程序104的管理員通過(guò)在管理服務(wù)器上執(zhí)行應(yīng)用的典型安裝并記錄對(duì)如本地文件系統(tǒng)、注冊(cè)表等等作出的改變來(lái)創(chuàng)建。虛擬化應(yīng)用包114中的塊然后被流傳送到虛擬應(yīng)用環(huán)境106以允許應(yīng)用程序104在計(jì)算機(jī)102上執(zhí)行。虛擬應(yīng)用環(huán)境106可以創(chuàng)建單獨(dú)的虛擬運(yùn)行時(shí)環(huán)境(被稱為“應(yīng)用沙箱 (application sandbox)")以執(zhí)行從虛擬應(yīng)用服務(wù)器112流傳送的每個(gè)應(yīng)用程序104。應(yīng)用沙箱允許應(yīng)用程序104的組件與系統(tǒng)的其余部分隔離地執(zhí)行。虛擬應(yīng)用環(huán)境106還可以提供提取對(duì)由應(yīng)用程序104在執(zhí)行期間利用的本地資源118A和遠(yuǎn)程資源118B(本文中被統(tǒng)稱為資源11 的訪問(wèn)的虛擬化層116。資源118可以包括在計(jì)算機(jī)102本地可用或通過(guò)網(wǎng)絡(luò)110遠(yuǎn)程可用的系統(tǒng)存儲(chǔ)器、本地處理器時(shí)間或處理線程、存儲(chǔ)在文件系統(tǒng)中的文件、 存儲(chǔ)在注冊(cè)表數(shù)據(jù)庫(kù)中的數(shù)據(jù)、應(yīng)用服務(wù)、演示服務(wù)、數(shù)據(jù)庫(kù)服務(wù)等等。應(yīng)用程序104可以通過(guò)由安裝在計(jì)算機(jī)102上的操作系統(tǒng)122或其它標(biāo)準(zhǔn)軟件庫(kù)實(shí)現(xiàn)的資源應(yīng)用編程接口(API)來(lái)訪問(wèn)本地和遠(yuǎn)程資源118。根據(jù)實(shí)施例,虛擬化層116提取資源API 120以便監(jiān)視和控制由在虛擬應(yīng)用環(huán)境106中執(zhí)行的應(yīng)用程序104對(duì)本地和遠(yuǎn)程資源118的訪問(wèn)請(qǐng)求。此外,虛擬化層116可以將應(yīng)用程序104對(duì)資源118的訪問(wèn)記錄在資源訪問(wèn)日志124中。資源訪問(wèn)日志IM可以包括本地文件系統(tǒng)中的日志文件、遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器上的多個(gè)數(shù)據(jù)庫(kù)表、兩者的組合或可由計(jì)算機(jī)102訪問(wèn)的任何其它數(shù)據(jù)存儲(chǔ)系統(tǒng)。資源訪問(wèn)日志IM可以包含資源訪問(wèn)事件126的日志。資源訪問(wèn)事件1 可以包括由在虛擬應(yīng)用環(huán)境106中執(zhí)行的應(yīng)用程序104作出的、對(duì)資源API 120的調(diào)用的細(xì)節(jié)。 資源訪問(wèn)事件126的每一個(gè)可以包括指示資源訪問(wèn)何時(shí)發(fā)生的時(shí)間戳、所調(diào)用的各個(gè)資源 API 120的標(biāo)識(shí)符、以及指示正被訪問(wèn)的本地或遠(yuǎn)程資源118的資源類型、位置或其它方面的多個(gè)參數(shù)值。資源訪問(wèn)事件126可以被存儲(chǔ)為日志文件中的條目、數(shù)據(jù)庫(kù)表中的行、字典 (dictionary)中的對(duì)象或者以本領(lǐng)域中已知的任何其它數(shù)據(jù)結(jié)構(gòu)或格式來(lái)存儲(chǔ)。在一個(gè)實(shí)施例中,資源訪問(wèn)日志124還包含資源訪問(wèn)模式128。資源訪問(wèn)模式1 可以包括定期發(fā)生的應(yīng)用程序104的資源訪問(wèn)模式。例如,應(yīng)用程序104可以在時(shí)間Tl讀取特定注冊(cè)表項(xiàng),隨后在時(shí)間Tl+MOmsec (毫秒)對(duì)位于遠(yuǎn)程文件系統(tǒng)的特定文件進(jìn)行寫入。此外,讀取注冊(cè)表項(xiàng)并寫入文件的這一模式可以例如響應(yīng)于特定事件或條件、周期性地或者在一天的特定時(shí)間發(fā)生多于一次。資源訪問(wèn)模式1 可以在特定API調(diào)用之間、在對(duì)
5特定資源的API調(diào)用之間、或者對(duì)特定量的資源(諸如所分配的存儲(chǔ)器量或所啟動(dòng)的線程數(shù)量)的API調(diào)用之間建立。資源訪問(wèn)模式1 可以從使用模式識(shí)別技術(shù)在某時(shí)段收集的資源訪問(wèn)事件1 建立。例如,事件類型的子集可被確定為重要,并且可以利用貝葉斯學(xué)習(xí)技術(shù)來(lái)在收集時(shí)段內(nèi)的這些類型的資源訪問(wèn)事件1 上建立資源訪問(wèn)模式128。所生成的資源訪問(wèn)模式1 可被存儲(chǔ)為例如馬爾可夫鏈或概率樹(shù),指示資源訪問(wèn)事件之間的相對(duì)發(fā)生概率。根據(jù)一個(gè)實(shí)施例,資源訪問(wèn)模式1 可以在與應(yīng)用程序104的執(zhí)行并行的后臺(tái)進(jìn)程中,根據(jù)資源訪問(wèn)事件126的日志在計(jì)算機(jī)上近乎實(shí)時(shí)地生成。在另一實(shí)施例中,由在虛擬應(yīng)用環(huán)境106中執(zhí)行應(yīng)用程序104的多個(gè)計(jì)算機(jī)102上的虛擬化層116記錄的資源訪問(wèn)事件126可被聚集到中央位置??梢酝ㄟ^(guò)例如移除計(jì)算機(jī)相關(guān)的資源路徑來(lái)泛化 (genericize)所聚集的事件數(shù)據(jù),并且可以從所聚集和泛化的事件數(shù)據(jù)來(lái)建立資源訪問(wèn)模式128。然后可以將所生成的資源訪問(wèn)模式1 發(fā)送到執(zhí)行應(yīng)用程序104的每個(gè)計(jì)算機(jī)102 以便在預(yù)測(cè)應(yīng)用故障時(shí)利用模式,如以下參照?qǐng)D2更詳細(xì)描述。在另一實(shí)施例中,資源訪問(wèn)日志IM還包含資源寫入數(shù)據(jù)130。資源寫入數(shù)據(jù)130 可以包含由應(yīng)用程序104調(diào)用添加、修改或刪除數(shù)據(jù)的資源API 120的日志,諸如注冊(cè)表值寫入或I/O緩沖器寫入。資源寫入數(shù)據(jù)130可以包含來(lái)自指針或結(jié)構(gòu)-類型參數(shù)的“深副本(de印copy)”以便包括正在寫入的數(shù)據(jù)。此外,可以使用執(zhí)行應(yīng)用程序104的當(dāng)前上下文,泛化任何文件名、鍵名、地址或其它位置參數(shù)。應(yīng)該明白,可以將資源寫入數(shù)據(jù)130和資源訪問(wèn)事件126集成為資源訪問(wèn)日志124的單個(gè)日志文件或其它結(jié)構(gòu)。在從應(yīng)用故障恢復(fù)期間,可以利用資源寫入數(shù)據(jù)130還原應(yīng)用程序104的應(yīng)用狀態(tài),如以下參照?qǐng)D4更詳細(xì)描述?,F(xiàn)在參照?qǐng)D2-4,提供關(guān)于本文所呈現(xiàn)實(shí)施例的附加細(xì)節(jié)。應(yīng)該明白,針對(duì)圖2-4 所述的邏輯操作被實(shí)現(xiàn)為(1)在計(jì)算系統(tǒng)上運(yùn)行的計(jì)算機(jī)實(shí)現(xiàn)動(dòng)作序列或程序模塊序列和/或(2)計(jì)算系統(tǒng)內(nèi)的互連機(jī)器邏輯電路或電路模塊。取決于計(jì)算系統(tǒng)的性能及其它要求,可以選擇不同的實(shí)現(xiàn)。因此,本文所描述的邏輯操作被不同地稱為操作、結(jié)構(gòu)設(shè)備、動(dòng)作或模塊。這些操作、結(jié)構(gòu)設(shè)備、動(dòng)作和模塊可以用軟件、固件、專用數(shù)字邏輯、及其任何組合來(lái)實(shí)現(xiàn)。還應(yīng)該明白,可以執(zhí)行比附圖中示出并在本文描述的操作更多或更少的操作。這些操作還可按與所述次序不同的次序來(lái)執(zhí)行。圖2示出根據(jù)本文所述的實(shí)施例、基于從所建立資源訪問(wèn)模式的偏離預(yù)測(cè)應(yīng)用程序104中可能的錯(cuò)誤條件的例程200。例程200可以由在計(jì)算機(jī)102上虛擬應(yīng)用環(huán)境106 中執(zhí)行的虛擬化層116和/或在計(jì)算機(jī)上或在集中應(yīng)用服務(wù)器上執(zhí)行的其它模塊的組合來(lái)執(zhí)行??梢悦靼?,例程200也可由在其它計(jì)算設(shè)備上執(zhí)行的其它模塊或組件執(zhí)行,或者由模塊、組件和計(jì)算設(shè)備的任何組合來(lái)執(zhí)行。例程200在操作202開(kāi)始,其中虛擬化層116監(jiān)視在虛擬應(yīng)用環(huán)境106中執(zhí)行的應(yīng)用程序104對(duì)本地和遠(yuǎn)程資源118的訪問(wèn),并將這些訪問(wèn)記錄到資源訪問(wèn)日志124。如以上參照?qǐng)D1所述,虛擬化層116可以記錄應(yīng)用程序104對(duì)資源API 120的調(diào)用的細(xì)節(jié)作為資源訪問(wèn)事件126,包括指示資源訪問(wèn)何時(shí)發(fā)生的時(shí)間戳、所調(diào)用的各個(gè)資源API的標(biāo)識(shí)符、以及指示正被訪問(wèn)的本地或遠(yuǎn)程資源118的資源類型、位置或其它方面的多個(gè)參數(shù)值。從操作202,例程200前進(jìn)到操作204,其中建立資源訪問(wèn)模式128。應(yīng)該明白,在某一時(shí)段上,大量資源訪問(wèn)事件126可被虛擬化層116記錄在資源訪問(wèn)日志124中。如上參照?qǐng)D1所述,虛擬化層116或一些其它模塊或進(jìn)程可以利用所記錄的資源訪問(wèn)事件1 建立資源訪問(wèn)模式128。例如,虛擬化層116可以利用諸如貝葉斯網(wǎng)絡(luò)之類的模式識(shí)別技術(shù)來(lái)建立兩個(gè)或更多資源訪問(wèn)事件之間的相對(duì)發(fā)生概率。所建立的資源訪問(wèn)模式1 隨后可以作為馬爾可夫鏈或概率樹(shù)被存儲(chǔ)在資源訪問(wèn)日志124中。資源訪問(wèn)模式1 可由虛擬化層116在計(jì)算機(jī)102上近乎實(shí)時(shí)地生成?;蛘撸涗浀馁Y源訪問(wèn)事件1 可以從多個(gè)計(jì)算機(jī)102聚集到中央位置,被泛化并用于在跨各個(gè)計(jì)算機(jī)的虛擬應(yīng)用環(huán)境106中執(zhí)行的應(yīng)用程序104的多個(gè)實(shí)例上建立資源訪問(wèn)模式128。 從所聚集的資源訪問(wèn)事件1 建立的一般資源訪問(wèn)模式1 隨后可以用于通過(guò)本文所述的方式預(yù)測(cè)執(zhí)行應(yīng)用程序104的任何計(jì)算機(jī)102上的錯(cuò)誤條件。例程從操作204前進(jìn)到操作206,其中虛擬化層116檢測(cè)到在虛擬應(yīng)用環(huán)境106中執(zhí)行的應(yīng)用程序104從所建立的資源訪問(wèn)模式1 的偏離。例如,虛擬化層116可以基于資源訪問(wèn)模式128的貝葉斯分析,檢測(cè)發(fā)生概率低于指定閾值的資源API調(diào)用的序列。類似地,虛擬化層116可以檢測(cè)具有如資源訪問(wèn)模式128中所建立的帶有已知錯(cuò)誤條件的高發(fā)生概率的資源API調(diào)用的序列。在一個(gè)實(shí)施例中,如果資源API調(diào)用的序列的概率不落在指定閾值之下,虛擬化層116記錄相應(yīng)的資源訪問(wèn)事件126,使得可以在如上所述的后臺(tái)進(jìn)程中用新概率來(lái)更新資源訪問(wèn)模式128。這樣,應(yīng)用程序104在虛擬應(yīng)用環(huán)境106中執(zhí)行期間,資源訪問(wèn)模式1 可以得到持續(xù)的更新。如果檢測(cè)到應(yīng)用程序104從所建立的資源訪問(wèn)模式1 偏離,例程200從操作206 前進(jìn)到操作208,其中虛擬化層116發(fā)出關(guān)于模式偏離的警報(bào)。該警報(bào)可被引導(dǎo)到應(yīng)用程序104的用戶或管理員。該警報(bào)可以經(jīng)由電子郵件、文本消息、或系統(tǒng)消息隊(duì)列發(fā)送;作為系統(tǒng)級(jí)事件發(fā)出;被記錄在應(yīng)用或系統(tǒng)事件日志中;或者以其它方式經(jīng)由計(jì)算機(jī)102可訪問(wèn)的消息系統(tǒng)發(fā)送給管理員。這種搶先警報(bào)可以向管理員給予快速采取診斷或校正動(dòng)作的機(jī)會(huì),從而減少或可能防止緊隨可能的、即將發(fā)生的錯(cuò)誤條件之后的停工期和數(shù)據(jù)丟失。從操作208,例程200結(jié)束。圖3示出根據(jù)本文所述實(shí)施例的用于將資源訪問(wèn)事件126與應(yīng)用程序104中已知錯(cuò)誤條件相關(guān)聯(lián)以允許錯(cuò)誤診斷的例程300。例程300可以由在計(jì)算機(jī)102上虛擬應(yīng)用環(huán)境106中執(zhí)行的虛擬化層116和/或在計(jì)算機(jī)上或在集中應(yīng)用服務(wù)器上執(zhí)行的其它模塊的組合來(lái)執(zhí)行。可以明白,例程300也可由在其它計(jì)算設(shè)備上執(zhí)行的其它模塊或組件執(zhí)行,或者由模塊、組件和計(jì)算設(shè)備的任何組合來(lái)執(zhí)行。例程300在操作302開(kāi)始,其中通過(guò)以上針對(duì)操作202所述的方式,虛擬化層116 監(jiān)視在虛擬應(yīng)用環(huán)境106中執(zhí)行的應(yīng)用程序104對(duì)本地和遠(yuǎn)程資源118的訪問(wèn),并將這些訪問(wèn)記錄到資源訪問(wèn)日志1 中。例程300前進(jìn)到操作304,其中應(yīng)用程序104中的錯(cuò)誤條件被檢測(cè)到。例如,可以由應(yīng)用的用戶或管理員通過(guò)常規(guī)手段(諸如彈出式錯(cuò)誤對(duì)話框、記錄在應(yīng)用或系統(tǒng)事件日志中的事件等)在應(yīng)用程序104中檢測(cè)到錯(cuò)誤條件。從操作304,例程300前進(jìn)到操作306,其中將資源訪問(wèn)日志124中的資源訪問(wèn)事件1 與檢測(cè)到的錯(cuò)誤條件相關(guān)聯(lián)。管理員可以提供錯(cuò)誤條件的發(fā)生時(shí)間,或者錯(cuò)誤條件的發(fā)生時(shí)間可以從記錄在資源訪問(wèn)事件126中的對(duì)資源API 120的特定調(diào)用來(lái)標(biāo)識(shí)。虛擬化層116或其它模塊然后可以標(biāo)識(shí)資源訪問(wèn)日志IM中在錯(cuò)誤條件發(fā)生時(shí)間的一時(shí)間接近度內(nèi)的資源訪問(wèn)事件126的子集。例如,可以將在錯(cuò)誤條件之前10秒窗口內(nèi)發(fā)生的所有資源訪問(wèn)事件126與該錯(cuò)誤條件相關(guān)聯(lián)。在一個(gè)實(shí)施例中,僅將在錯(cuò)誤條件的一時(shí)間接近度內(nèi)從所建立的資源訪問(wèn)模式 128偏離的資源訪問(wèn)事件126中記錄的資源API調(diào)用的序列與錯(cuò)誤條件相關(guān)聯(lián)。例如,虛擬化層116或其它模塊可以基于對(duì)資源訪問(wèn)日志124中資源訪問(wèn)模式128的貝葉斯分析, 標(biāo)識(shí)在錯(cuò)誤條件發(fā)生時(shí)間10秒內(nèi)、發(fā)生概率低于指定閾值的資源訪問(wèn)事件1 中記錄的資源API調(diào)用的序列。應(yīng)該明白,用于將資源訪問(wèn)模式128中的偏離與錯(cuò)誤條件相關(guān)聯(lián)的指定概率閾值可以高于如上針對(duì)操作206所述的用于基于資源訪問(wèn)模式中的偏離來(lái)預(yù)測(cè)錯(cuò)誤條件的概率閾值。例程從操作306前進(jìn)到操作308,其中向應(yīng)用程序104的用戶或管理員示出與錯(cuò)誤條件相關(guān)聯(lián)的資源訪問(wèn)事件126。所關(guān)聯(lián)的資源訪問(wèn)事件1 可以通過(guò)用戶界面對(duì)話框示出或者在經(jīng)由電子郵件、文本消息、系統(tǒng)消息序列等發(fā)送的報(bào)告中示出。從資源訪問(wèn)日志 124提供在時(shí)間上與特定錯(cuò)誤條件相關(guān)聯(lián)的資源訪問(wèn)事件1 可以允許用戶或管理員快速診斷錯(cuò)誤條件的起因并且實(shí)現(xiàn)適當(dāng)?shù)幕謴?fù)動(dòng)作以便減少停工期和數(shù)據(jù)丟失。從操作308,例程300結(jié)束。圖4示出根據(jù)本文所述實(shí)施例的用于從應(yīng)用程序104中的錯(cuò)誤條件恢復(fù)的例程 400。例程400可以由在計(jì)算機(jī)102上虛擬應(yīng)用環(huán)境106中執(zhí)行的虛擬化層116和/或在計(jì)算機(jī)上或在集中應(yīng)用服務(wù)器上執(zhí)行的其它模塊的組合來(lái)執(zhí)行。可以明白,例程400也可由在其它計(jì)算設(shè)備上執(zhí)行的其它模塊或組件執(zhí)行,或者由模塊、組件和計(jì)算設(shè)備的任何組合來(lái)執(zhí)行。例程400在操作402開(kāi)始,其中通過(guò)以上針對(duì)操作202所述的方式,虛擬化層116 監(jiān)視在虛擬應(yīng)用環(huán)境106中執(zhí)行的應(yīng)用程序104對(duì)本地和遠(yuǎn)程資源118的訪問(wèn),并將這些訪問(wèn)記錄到資源訪問(wèn)日志124。此外,如以上參照?qǐng)D1所述,虛擬化層116對(duì)于應(yīng)用程序104 對(duì)添加、修改或刪除數(shù)據(jù)的的資源API120的調(diào)用,記錄資源寫入數(shù)據(jù)130。資源寫入數(shù)據(jù) 130可以包括來(lái)自API調(diào)用中指定的指針或結(jié)構(gòu)-類型參數(shù)的深副本,并且可以使用執(zhí)行應(yīng)用程序104的當(dāng)前上下文對(duì)該數(shù)據(jù)進(jìn)一步處理以泛化資源寫入數(shù)據(jù)130中的文件名、鍵名、 地址、或其它位置參數(shù)。從操作402,例程400前進(jìn)到操作404,其中應(yīng)用程序104因錯(cuò)誤條件而發(fā)生故障。 例如,應(yīng)用程序可能由于軟件隱錯(cuò)(bug)、用戶錯(cuò)誤、不正確的輸入數(shù)據(jù)、不可用資源、計(jì)算機(jī)102中的硬件故障等而發(fā)生故障。在應(yīng)用程序104故障時(shí),例程400移動(dòng)到操作406,其中應(yīng)用程序104重啟。應(yīng)用程序104可以由虛擬化層116或在計(jì)算機(jī)102上執(zhí)行的另一模塊自動(dòng)重啟,或者它可以由相同計(jì)算機(jī)或具有類似配置的另一計(jì)算機(jī)系統(tǒng)上的系統(tǒng)管理員手動(dòng)重啟。例程從操作406前進(jìn)到操作408,其中在計(jì)算機(jī)102上虛擬應(yīng)用環(huán)境106(其中重啟應(yīng)用程序104)中執(zhí)行的虛擬化層116重放記錄在資源訪問(wèn)日志124中的特定資源訪問(wèn)事件126,以便將應(yīng)用狀態(tài)還原到故障發(fā)生之前的點(diǎn)。例如,虛擬化層116可以重放與對(duì)寫入到諸如系統(tǒng)存儲(chǔ)器地址、I/O緩沖器、高速緩存文件等的非易失性或高速緩存存儲(chǔ)位置的資源API 120的調(diào)用相對(duì)應(yīng)的所有資源訪問(wèn)事件126。在另一實(shí)施例中,虛擬化層116可以重放與自應(yīng)用故障之前由虛擬化層和/或應(yīng)用程序104采取并存儲(chǔ)應(yīng)用狀態(tài)的最后快照或“檢查點(diǎn)”以來(lái)發(fā)生的數(shù)據(jù)寫入相對(duì)應(yīng)的所有資源訪問(wèn)事件126。虛擬化層116可以利用資源訪問(wèn)日志IM中的資源寫入數(shù)據(jù)130來(lái)重放所選資源訪問(wèn)事件126,以便于確保在還原應(yīng)用狀態(tài)時(shí)寫入正確數(shù)據(jù)。記錄添加、修改或刪除數(shù)據(jù)的資源訪問(wèn)事件126以及相應(yīng)的資源寫入數(shù)據(jù)130以便重放寫入來(lái)還原應(yīng)用狀態(tài),可以允許從應(yīng)用故障更快恢復(fù),從而減少應(yīng)用停工期。從操作408,例程400結(jié)束。雖然在虛擬化應(yīng)用環(huán)境106的上下文中描述本公開(kāi),但是應(yīng)該明白,本文所呈現(xiàn)的用于區(qū)分應(yīng)用程序的正常操作與錯(cuò)誤條件以預(yù)測(cè)、診斷應(yīng)用故障并從其恢復(fù)的方法可以在其中可以監(jiān)視應(yīng)用程序104對(duì)本地和遠(yuǎn)程資源118的訪問(wèn)的任何其它應(yīng)用環(huán)境中實(shí)現(xiàn)。 例如,與虛擬化層116類似的模塊可被實(shí)現(xiàn)成利用本領(lǐng)域已知方法來(lái)勾連由操作系統(tǒng)122 實(shí)現(xiàn)的資源API 120,以便監(jiān)視由在虛擬應(yīng)用環(huán)境106外的本地執(zhí)行的應(yīng)用程序104對(duì)本地和遠(yuǎn)程資源118的請(qǐng)求。該模塊可記錄對(duì)資源的訪問(wèn)并且建立應(yīng)用程序104的資源使用的公共模式。一旦這種資源訪問(wèn)模式被建立,該模塊可以通過(guò)本文所述的方式繼續(xù)監(jiān)視應(yīng)用程序104對(duì)資源的使用并在模式改變時(shí)提供警告或警報(bào)。圖5示出計(jì)算機(jī)500的示例計(jì)算機(jī)體系結(jié)構(gòu),該計(jì)算機(jī)能夠執(zhí)行本文所述的用于通過(guò)以上呈現(xiàn)的方式區(qū)分應(yīng)用程序的正常操作與錯(cuò)誤條件相以預(yù)測(cè)、診斷應(yīng)用故障并從其恢復(fù)的軟件組件。圖5所示的計(jì)算機(jī)體系結(jié)構(gòu)示出常規(guī)服務(wù)器計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、PDA、無(wú)線電話或其它計(jì)算設(shè)備,并可以用來(lái)執(zhí)行本文呈現(xiàn)的被描述為在計(jì)算設(shè)備102或其它計(jì)算設(shè)備上執(zhí)行的軟件組件的任何方面。圖5所示的計(jì)算機(jī)體系結(jié)構(gòu)包括一個(gè)或多個(gè)中央處理單元(“CPU”) 502。CPU 502 可以是執(zhí)行計(jì)算機(jī)500的操作所需的算術(shù)和邏輯操作的標(biāo)準(zhǔn)處理器。CPU 502通過(guò)從一個(gè)分立的物理狀態(tài)轉(zhuǎn)換到下一狀態(tài)來(lái)執(zhí)行必要的操作,該轉(zhuǎn)換是通過(guò)操縱在各狀態(tài)之間進(jìn)行區(qū)別并改變這些狀態(tài)的切換元件來(lái)實(shí)現(xiàn)的。切換元件一般可包括維持兩個(gè)二進(jìn)制狀態(tài)之一的電子電路,諸如觸發(fā)電路,以及基于一個(gè)或多個(gè)其它切換元件的狀態(tài)的邏輯組合來(lái)提供輸出狀態(tài)的電子電路,諸如邏輯門。這些基本切換元件可被組合以創(chuàng)建更復(fù)雜的邏輯電路, 包括寄存器、加減器、算術(shù)邏輯單元、浮點(diǎn)單元和其它邏輯元件。該計(jì)算機(jī)體系結(jié)構(gòu)還包括含有隨機(jī)存取存儲(chǔ)器(“RAM”)514和只讀存儲(chǔ)器 516( “ROM”)的系統(tǒng)存儲(chǔ)器508、以及將存儲(chǔ)器耦合至CPU 502的系統(tǒng)總線504?;据斎?/輸出系統(tǒng)被存儲(chǔ)在ROM 516中,該系統(tǒng)包含幫助諸如在啟動(dòng)期間在計(jì)算機(jī)500中的元件之間傳遞信息的基本例程。計(jì)算機(jī)500還包括用于存儲(chǔ)操作系統(tǒng)122、應(yīng)用程序和其它程序模塊的大容量存儲(chǔ)設(shè)備510,這將在本文中更為詳盡地描述。大容量存儲(chǔ)設(shè)備510通過(guò)連接至總線504的大容量存儲(chǔ)控制器(未示出)連接到 CPU 502。大容量存儲(chǔ)設(shè)備510為計(jì)算機(jī)500提供非易失性存儲(chǔ)。計(jì)算機(jī)500可通過(guò)變換大容量存儲(chǔ)設(shè)備510的物理狀態(tài)來(lái)反映被存儲(chǔ)的信息來(lái)將信息存儲(chǔ)在該設(shè)備上。在本說(shuō)明書的不同實(shí)現(xiàn)中,物理狀態(tài)的具體變換可取決于各種因素。這些因素的示例可以包括,但不僅限于用于實(shí)現(xiàn)大容量存儲(chǔ)設(shè)備的技術(shù),大容量存儲(chǔ)設(shè)備被表征為主存儲(chǔ)還是輔存儲(chǔ)等等。例如,計(jì)算機(jī)500可通過(guò)向大容量存儲(chǔ)控制器發(fā)出以下指令來(lái)將信息存儲(chǔ)到大容量存儲(chǔ)設(shè)備510 變更磁盤驅(qū)動(dòng)器內(nèi)的特定位置的磁特性;變更光存儲(chǔ)設(shè)備中的特定位置的反射或折射特性;或變更固態(tài)存儲(chǔ)設(shè)備中的特定電容、晶體管或其它分立元件的電特性。 在不背離本發(fā)明的范圍和精神的情況下,物理介質(zhì)的其它變換是可能的。計(jì)算機(jī)500還可通過(guò)檢測(cè)大容量存儲(chǔ)設(shè)備內(nèi)的一個(gè)或多個(gè)特定位置的物理狀態(tài)或特性來(lái)從大容量存儲(chǔ)設(shè)備510讀取信息。如上簡(jiǎn)述,多個(gè)程序模塊和數(shù)據(jù)文件可存儲(chǔ)在計(jì)算機(jī)500的大容量存儲(chǔ)設(shè)備510 和RAM 514中,包括適用于控制計(jì)算機(jī)的操作的操作系統(tǒng)518。大容量存儲(chǔ)設(shè)備510和RAM 514還可存儲(chǔ)一個(gè)或多個(gè)程序模塊。具體而言,大容量存儲(chǔ)設(shè)備510和RAM 514可存儲(chǔ)虛擬化層116,這曾在上文中參照?qǐng)D1更詳細(xì)地描述過(guò)。大容量存儲(chǔ)設(shè)備510和RAM 514還可存儲(chǔ)其它類型的程序模塊或數(shù)據(jù)。除了上述大容量存儲(chǔ)設(shè)備510之外,計(jì)算機(jī)500能夠訪問(wèn)其它計(jì)算機(jī)可讀介質(zhì)以存儲(chǔ)和檢索信息,諸如程序模塊、數(shù)據(jù)結(jié)構(gòu)或其它數(shù)據(jù)。本領(lǐng)域技術(shù)人員應(yīng)該明白,計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)500可訪問(wèn)的任何可用介質(zhì),包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和通信介質(zhì)。通信介質(zhì)包括瞬時(shí)信號(hào)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括以存儲(chǔ)如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括但不限于,RAM、R0M、EPR0M、EEPR0M、閃存或其它固態(tài)存儲(chǔ)器技術(shù),⑶-ROM、數(shù)字多功能盤(DVD)、HD-DVD、藍(lán)光、或其它光學(xué)存儲(chǔ)、磁帶盒、 磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備,或可以用來(lái)存儲(chǔ)所需信息并可由計(jì)算機(jī)500訪問(wèn)的任何其它介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以用在被加載到計(jì)算機(jī)500中時(shí)可將計(jì)算機(jī)系統(tǒng)從通用計(jì)算系統(tǒng)變換成能夠?qū)崿F(xiàn)本文描述的實(shí)施例的專用計(jì)算機(jī)的計(jì)算機(jī)可執(zhí)行指令來(lái)編碼。計(jì)算機(jī)可執(zhí)行指令可通過(guò)變更計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的特定位置的電、光、磁或其它物理特性來(lái)在該介質(zhì)上編碼。這些計(jì)算機(jī)可執(zhí)行指令通過(guò)如上所述地指定CPU 502如何在各狀態(tài)之間轉(zhuǎn)換來(lái)變換計(jì)算機(jī)500。根據(jù)一個(gè)實(shí)施例,計(jì)算機(jī)500可以訪問(wèn)存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)由計(jì)算機(jī)執(zhí)行時(shí),該指令執(zhí)行如上參照?qǐng)D2-4所述的用于將應(yīng)用程序的正常操作與錯(cuò)誤條件相區(qū)別以預(yù)測(cè)、診斷應(yīng)用故障并重啟恢復(fù)的例程200、300和 / 或 400。根據(jù)各種實(shí)施例,計(jì)算機(jī)500可使用通過(guò)網(wǎng)絡(luò)110到遠(yuǎn)程計(jì)算設(shè)備和計(jì)算機(jī)系統(tǒng)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作,所述網(wǎng)絡(luò)諸如LAN、WAN、因特網(wǎng)或本領(lǐng)域已知的任何拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)。計(jì)算機(jī)500可以通過(guò)連接到總線504的網(wǎng)絡(luò)接口單元506連接到網(wǎng)絡(luò)110。應(yīng)當(dāng)理解,網(wǎng)絡(luò)接口單元506還可以被用來(lái)連接到其它類型的網(wǎng)絡(luò)和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)500還可包括用于接收和處理來(lái)自包括鍵盤、鼠標(biāo)、觸摸墊、觸摸屏、電子指示筆、或其它類型的輸入設(shè)備等多個(gè)輸入設(shè)備的輸入的輸入/輸出控制器512。類似地, 輸入/輸出控制器512可向諸如計(jì)算機(jī)監(jiān)視器、平板顯示器、數(shù)字投影儀、打印機(jī)、繪圖儀或其它類型的輸出設(shè)備等顯示設(shè)備提供輸出??梢悦靼祝?jì)算機(jī)500可以不包括圖5所示的全部組件,可以包括未在圖5中明確示出的其它組件,或者可使用完全不同于圖5所示的體系結(jié)構(gòu)。基于上文,應(yīng)該明白,本文提供用于將應(yīng)用程序的正常操作與錯(cuò)誤條件相區(qū)別以預(yù)測(cè)、診斷應(yīng)用故障并從其恢復(fù)的技術(shù)。雖然以計(jì)算機(jī)結(jié)構(gòu)特征、方法動(dòng)作、以及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)專用的語(yǔ)言描述了本文呈現(xiàn)的主題,但是應(yīng)該理解,在所附權(quán)利要求書中所限定的本發(fā)明不一定僅限于本文描述的具體特征、動(dòng)作、或介質(zhì)。相反,這些具體特征、動(dòng)作和介質(zhì)是作為實(shí)現(xiàn)權(quán)利要求的示例形式來(lái)公開(kāi)的。
上述主題僅作為說(shuō)明提供,并且不應(yīng)被解釋為限制。可對(duì)本文所述的主題作出各種修改和改變,而不必遵循所示和所述的示例實(shí)施例和應(yīng)用,且不背離所附權(quán)利要求書中所述的本發(fā)明的真正精神和范圍。
權(quán)利要求
1.一種用于預(yù)測(cè)應(yīng)用程序(104)中可能的錯(cuò)誤條件的計(jì)算機(jī)實(shí)現(xiàn)方法,所述方法包括在一個(gè)或多個(gè)計(jì)算機(jī)(10 上執(zhí)行指令以執(zhí)行以下操作記錄由所述應(yīng)用程序(104)發(fā)起的資源訪問(wèn)事件(126); 從所記錄的資源訪問(wèn)事件(126)建立資源訪問(wèn)模式(128); 檢測(cè)由所述應(yīng)用程序(104)從所建立的資源訪問(wèn)模式(128)的偏離;以及基于所檢測(cè)的偏離,向所述應(yīng)用程序(104)的用戶或管理員警報(bào)可能的錯(cuò)誤條件。
2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其特征在于,還包括記錄來(lái)自在由所述應(yīng)用程序?qū)τ糜谔砑?、修改或刪除數(shù)據(jù)的資源API的調(diào)用中指定的參數(shù)值的數(shù)據(jù)。
3.如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其特征在于,還包括利用所記錄的、來(lái)自在對(duì)所述資源API的調(diào)用中指定的參數(shù)值的數(shù)據(jù),來(lái)重放用于添加、修改或刪除數(shù)據(jù)的相應(yīng)資源訪問(wèn)事件,以便在應(yīng)用故障之后還原所述應(yīng)用程序的應(yīng)用狀態(tài)。
4.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其特征在于,所述資源訪問(wèn)模式是使用貝葉斯學(xué)習(xí)技術(shù)從所記錄的資源訪問(wèn)事件建立的。
5.如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其特征在于,所述資源訪問(wèn)模式被存儲(chǔ)為指示所述資源訪問(wèn)事件之間的相對(duì)發(fā)生概率的馬爾可夫鏈或概率樹(shù)。
6.如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其特征在于,檢測(cè)從所建立的資源訪問(wèn)模式的偏離包括基于對(duì)所述資源訪問(wèn)模式的貝葉斯分析,檢測(cè)發(fā)生概率低于指定閾值概率的資源訪問(wèn)事件的序列。
7.如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其特征在于,基于對(duì)檢測(cè)到的所述應(yīng)用程序的錯(cuò)誤條件發(fā)生時(shí)間的一時(shí)間接近度,將基于對(duì)所述資源訪問(wèn)模式的貝葉斯分析而發(fā)生概率低于閾值概率的資源訪問(wèn)事件的序列與所述錯(cuò)誤條件相關(guān)聯(lián)。
8.一種用計(jì)算機(jī)可執(zhí)行指令編碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令在由計(jì)算機(jī)(102) 執(zhí)行時(shí)使得所述計(jì)算機(jī)(10 執(zhí)行以下動(dòng)作監(jiān)視由在所述計(jì)算機(jī)(102)上執(zhí)行的應(yīng)用程序(104)對(duì)資源(118)的訪問(wèn); 將由所述應(yīng)用程序(104)發(fā)起的資源訪問(wèn)事件(126)記錄到資源訪問(wèn)日志(124); 使用計(jì)算機(jī)模式識(shí)別技術(shù)從所記錄的資源訪問(wèn)事件(126)建立資源訪問(wèn)模式(1 ); 檢測(cè)所述應(yīng)用程序從所建立的資源訪問(wèn)模式的偏離;以及基于所檢測(cè)的偏離,向所述應(yīng)用程序的用戶或管理員警報(bào)可能的錯(cuò)誤條件。
9.如權(quán)利要求8所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,進(jìn)一步用使計(jì)算機(jī)進(jìn)行如下動(dòng)作的計(jì)算機(jī)可執(zhí)行指令編碼檢測(cè)所述應(yīng)用程序中的錯(cuò)誤條件; 確定所述錯(cuò)誤條件的發(fā)生時(shí)間;基于對(duì)所述錯(cuò)誤條件的發(fā)生時(shí)間的時(shí)間接近度,關(guān)聯(lián)所述資源訪問(wèn)日志中所記錄的資源訪問(wèn)事件的一個(gè)或多個(gè);以及向所述應(yīng)用程序的用戶或管理員顯示所述一個(gè)或多個(gè)已關(guān)聯(lián)的資源訪問(wèn)事件。
10.如權(quán)利要求8所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述一個(gè)或多個(gè)已關(guān)聯(lián)的資源訪問(wèn)事件包括基于對(duì)所建立的資源訪問(wèn)模式的貝葉斯分析而發(fā)生概率低于閾值概率的資源訪問(wèn)事件的序列。
全文摘要
本發(fā)明涉及基于資源訪問(wèn)模式預(yù)測(cè)、診斷應(yīng)用故障并從其恢復(fù)。本文描述了用于區(qū)分應(yīng)用程序的正常操作與錯(cuò)誤條件以預(yù)測(cè)、診斷應(yīng)用故障并從其恢復(fù)的技術(shù)。監(jiān)視應(yīng)用程序?qū)Y源的訪問(wèn),并且記錄資源訪問(wèn)事件。利用計(jì)算機(jī)模式識(shí)別技術(shù),從所記錄的資源訪問(wèn)事件建立資源訪問(wèn)模式。如果應(yīng)用程序?qū)Y源的后續(xù)訪問(wèn)偏離所建立的模式,則基于檢測(cè)到的偏離向應(yīng)用程序的用戶和/或管理員通知可能錯(cuò)誤條件。此外,可以基于對(duì)錯(cuò)誤的發(fā)生時(shí)間的時(shí)間接近度,將從所建立的資源訪問(wèn)模式偏離的資源訪問(wèn)事件的序列與錯(cuò)誤條件相關(guān)聯(lián),以提供關(guān)于錯(cuò)誤的診斷信息。
文檔編號(hào)G06F11/34GK102567181SQ20111044203
公開(kāi)日2012年7月11日 申請(qǐng)日期2011年12月26日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者E·杰瓦特, K·H·雷厄森, M·D·揚(yáng) 申請(qǐng)人:微軟公司