最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

關(guān)于對訪問請求的意外響應驗證計算機程序的方法和裝置的制作方法

文檔序號:6438224閱讀:156來源:國知局
專利名稱:關(guān)于對訪問請求的意外響應驗證計算機程序的方法和裝置的制作方法
技術(shù)領(lǐng)域
本公開一般涉及計算機程序的驗證,并且特別涉及可在計算機程序的操作期間從第一主機遷移到第二主機的計算機程序的測試。
背景技術(shù)
計算機化設備控制幾乎我們生活的每個方面-從寫入文檔到控制交通信號燈。然而,計算機化設備是易于出現(xiàn)故障的,因此需要應當發(fā)現(xiàn)故障的測試階段。在設計計算機化設備時,測試階段被視為最困難的任務之一。由于故障的結(jié)果可能是災難性的,因此不發(fā)現(xiàn)故障的成本可能是巨大的。例如,故障會導致依賴于計算機化設備的指定行為的人受傷。另外,硬件或固件中的故障修理起來是成本昂貴的,因為維修它需要召回計算機化設備。由此,計算機化設備的許多開發(fā)者投入相當一部分開發(fā)周期來發(fā)現(xiàn)計算機化設備的錯誤行為。計算機程序可由諸如計算機服務器的主機操作。當今,云計算是被很好地建立和利用的計算范例。在云計算中,計算機程序可由諸如服務器和類似計算機器的網(wǎng)絡的處理設備的“云”來執(zhí)行。在通過云執(zhí)行計算機程序期間,計算機程序可從第一主機遷移到第二主機。例如,計算機程序可由虛擬機執(zhí)行。虛擬機可首先由第一服務器處理,然后虛擬機可被遷移到第二服務器以繼續(xù)執(zhí)行計算機程序。服務器和其它計算機器被視為主機。主機可負責向虛擬機并因此向計算機程序提供資源。資源可以是例如空閑存儲器、共享存儲器、存儲空間、對偽隨機發(fā)生器的訪問或?qū)r鐘的訪問等。

發(fā)明內(nèi)容
公開的主題的一個示例性實施例是一種計算機實現(xiàn)的方法,該方法包括通過由計算機化設備操作計算機程序來測試計算機程序,其中,計算機化設備操作用于向計算機程序提供對資源的訪問;截取計算機程序?qū)Y源的訪問請求,其中,所述截取包含確定要向計算機程序提供的響應;和向計算機程序提供確定的響應,而不是來自資源的對所述請求的響應。公開的主題的一個示例性實施例是一種具有處理器的計算機化裝置,該裝置包括操作用于操作計算機程序的測試模塊,其中,測試模塊被配置成向計算機程序提供對資源的訪問;操作用于截取計算機程序?qū)Y源的訪問請求的截取器,其中,截取器包含操作用于確定要向計算機程序提供的響應的響應確定器,并且,截取器進一步操作用于向計算機程序提供確定的響應,而不是來自資源的對所述請求的響應。公開的主題的一個示例性實施例是一種計算機程序產(chǎn)品,該產(chǎn)品包含計算機可讀介質(zhì);用于通過由計算機化設備操作計算機程序來測試計算機程序的第一程序指令,其中,計算機化設備操作用于向計算機程序提供對資源的訪問;用于截取計算機程序?qū)Y源的訪問請求的第二程序指令,其中,第二程序指令包含用于確定要向計算機程序提供的響應的第三程序指令;和用于向計算機程序提供確定的響應,而不是來自資源的對所述請求的響應的第四程序指令;其中,第一、第二、第三和第四程序指令被存儲在所述計算機可讀介質(zhì)上。


結(jié)合相應或類似附圖標記表示相應或類似部件的附圖閱讀以下詳細描述,將更完全地理解和認識本公開的主題。除非另外指出,附圖提供公開的各示例性實施例或方面并且不限制公開的范圍。在這些附圖中,圖I示出根據(jù)主題的一些示例性實施例,使用公開的主題的計算機化環(huán)境。圖2示出根據(jù)公開的主題的一些示例性實施例的裝置的框圖。圖3示出根據(jù)公開的主題的一些示例性實施例的方法的流程圖。圖4示出根據(jù)公開的主題的一些示例性實施例的云計算環(huán)境。圖5示出根據(jù)公開的主題的一些示例性實施例的抽象模型層。
具體實施例方式以下參照根據(jù)主題的實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/ 或框圖描述公開的主題??梢岳斫猓赏ㄟ^計算機程序指令實現(xiàn)流程圖和/或框圖的各塊和流程圖和/或框圖中的塊的組合。這些計算機程序指令可被提供給通用計算機、特殊用途計算機或其它可編程數(shù)據(jù)處理裝置的處理器以制造機器,使得通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖和/或框圖塊中規(guī)定的功能/作用的部件。這些計算機程序指令也可被存儲在計算機可讀介質(zhì)中,該計算機可讀介質(zhì)可引導計算機或其它可編程數(shù)據(jù)處理裝置以特定方式起作用,使得存儲在計算機可讀介質(zhì)中的指令產(chǎn)生包含實現(xiàn)在流程圖和/或框圖塊中規(guī)定的功能/作用的指令部件的制造物品。計算機程序指令也可被加載到計算機或其它可編程數(shù)據(jù)處理裝置,以引起在計算機或其它可編程裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的處理,使得在計算機或其它可編程裝置上執(zhí)行的指令提供用于實現(xiàn)在流程圖和/或框圖塊中規(guī)定的功能/作用的處理。公開的主題應對的一種技術(shù)問題是測試由云操作時的計算機程序。另一技術(shù)問題是測試主機之間的遷移是否會使計算機程序的操作無效。另一技術(shù)問題是通過在單個主機上執(zhí)行計算機程序或由另一非云處理系統(tǒng)執(zhí)行計算機程序,關(guān)于云處理模式測試計算機程序。另一技術(shù)問題是關(guān)于不與云計算環(huán)境特別有關(guān)的可能遷移測試計算機程序。一種技術(shù)方案是模擬來自主機的對計算機程序的請求的資源響應。模擬的響應可被配置成模擬會在發(fā)生遷移的情況下發(fā)生的響應。另一技術(shù)方案是截取資源請求并提供替代的模擬響應。再一技術(shù)方案是截取引向主機的時鐘的時間請求,并且模擬替代的響應。再一技術(shù)方案是通過隨機地選擇事先提供的響應的預定范圍內(nèi)的響應來模擬替代的響應。例如,在事先提供時間06:32:16的情況下,模擬響應可以是距離事先提供的時間在I分鐘范圍內(nèi)的隨機時間(即,06:31:16和06:33:16之間的時間)。利用公開的主題的一種技術(shù)效果是模擬遷移的技術(shù)效果,而不必在測試階段執(zhí)行實際遷移。測試環(huán)境可以是相對簡單的處理環(huán)境,并且不需要是云處理環(huán)境。另一技術(shù)效果是模擬在單個主機環(huán)境中預料不到但可能在云處理環(huán)境中發(fā)生的資源響應。例如,當時間是嚴格單調(diào)增加的函數(shù)時,第一提供時間必須早于在后面提供的第二提供時間。然而,在云計算環(huán)境中,由于可能基于第一時鐘來提供第一時間并且可能基于第二時鐘來提供第二時間,因此,可能會違反該提供的時間的固有特征。當通過單個主機執(zhí)行計算機程序時,公開的主題提供了模擬這種情形的技術(shù)效果。另一技術(shù)效果是模擬其中返回的時間不由嚴格單調(diào)增加的函數(shù)表示的計算機程序的執(zhí)行。另一技術(shù)效果是關(guān)于時鐘前跳,測試計算機程序的操作。在一些示例性實施例中,由于時鐘前跳,超時操作可被調(diào)用,并且可以測試計算機程序?qū)τ诔瑫r值的敏感性?,F(xiàn)在參照示出根據(jù)主題的一些示例性實施例的使用公開的主題的計算機化環(huán)境的圖I。計算機化環(huán)境100可包含計算機程序110。計算機程序110可以是操作用于操作也被稱為主機的諸如處理器的處理機器的一組指令??梢栽谟嬎銠C可讀介質(zhì)上嵌入計算機程序110??赏ㄟ^云105來操作計算機程序110。云105可包含多個諸如主機106的主機。 可以在諸如LAN、WAN、WiFi、WiMax、Intetnet、intranet、它們的組合或其它通信網(wǎng)絡的計算機網(wǎng)絡中連接云105的主機。在一些示例性實施例中,計算機程序110可與云105的特定實現(xiàn)細節(jié)無關(guān)。例如,計算機程序110可與云105的主機的數(shù)量、它們的使用硬件的類型、 或連接主機的方式等無關(guān)。在一些示例性實施例中,可通過使用虛擬機(VM)(未示出)來執(zhí)行計算機程序110。VM可被用于從計算機程序110提取實現(xiàn)細節(jié)。VM可能能夠被云105 執(zhí)行。在計算機程序110的執(zhí)行期間,云可從一個主機向另一個主機遷移VM。計算機程序 110可能不知道發(fā)生這種事件。在一些示例性實施例中,在不使用VM的示例性實施例中也會發(fā)生遷移。在一些示例性實施例中,遷移可包含取得分配用于VM的存儲器的快照、用所述快照設定另一主機的存儲器并釋放分配的存儲器。當存儲器保持計算機程序110的當前狀態(tài)時,復制它可被視為將計算機程序110從一個主機移動到另一個主機。注意,在特定狀態(tài) (例如,文件處理器或信號量等)下,可能需要諸如設定操作系統(tǒng)(OS)實體的附加操作。本領(lǐng)域技術(shù)人員能夠?qū)⒂嬎銠C程序110(通過或不通過虛擬機)從云中的一個主機遷移到云中的另一個主機。注意,也可在非云計算環(huán)境中發(fā)生遷移。例如,程序的快照可被取得并在后面被用于在重新啟動之后在同一機器中繼續(xù)計算機程序。作為另一例子,快照可被用于在另一機器(未必是云的一部分)上繼續(xù)計算機程序的操作。在一些示例性實施例中,驗證裝置120可被配置成測試計算機程序110的執(zhí)行。驗證裝置120可被配置成執(zhí)行諸如保持在測試基準中的計算機程序110的測試。測試可定義諸如來自用戶的輸入或來自執(zhí)行計算機程序110的環(huán)境的輸入等的對計算機程序110的激勵事件。驗證裝置120可包含向執(zhí)行的計算機程序110提供計算能力和/或其它資源的執(zhí)行主機130。在一些示例性實施例中,執(zhí)行主機130可以是諸如106的單個主機。在其它示例性實施例中,執(zhí)行主機130可以是諸如105的云。對于公開主題的目的,執(zhí)行主機130的實現(xiàn)細節(jié)一般不是特別重要的。在一些示例性實施例中,用戶140可通過諸如終端、顯示器、鍵盤或輸入設備等的人機界面(MMI) 145與驗證裝置120進行交互。用戶140可關(guān)于計算機程序110定義使用的測試。用戶140可向驗證裝置120提供規(guī)則、命令、偏好和參數(shù)。用戶140可觀察驗證裝置120的輸出。基于所述輸出,用戶140可確定設計新的測試或修改測試(或者,在基于生成的測試的情況下,修改用于生成測試的測試模板)等。用戶140可進一步識別故障、報告識別的故障和/或校正識別的故障?,F(xiàn)在參照示出根據(jù)公開的主題的一些示例性實施例的裝置的圖2。諸如圖I的120 的裝置200可被配置成測試諸如圖I的110的計算機程序的功能操作。在一些示例性實施例中,測試模塊210可被配置成操作諸如圖I的110的計算機程序。測試模塊210可被配置成通過執(zhí)行程序來便利計算機程序的測試。在一些示例性實施例中,測試程序被配置成訪問執(zhí)行計算機程序的主機的資源。一些示例性資源可以是性能統(tǒng)計(例如,空閑存儲空間、執(zhí)行的處理的數(shù)量或CPU使用率等)、與主機相關(guān)聯(lián)的存儲器的存儲位置或時鐘等。在一些示例性實施例中,測試模塊210操作用于測試當計算機程序在云處理環(huán)境中執(zhí)行時的操作。在一些示例性實施例中,測試模塊210可操作用于在主機(或多個主機)上執(zhí)行測試程序并向主機提供與測試計算機程序相關(guān)聯(lián)的適當激勵。激勵的非詳盡列表可包含 對計算機程序提供的輸入或諸如線程的并行實體的調(diào)度等。在一些示例性實施例中,訪問識別器220可被配置成識別計算機程序?qū)Y源的訪問請求。訪問識別器220可通過向資源請求添加掛鉤,諸如例如掛到系統(tǒng)呼叫請求上,來識別訪問。在一些示例性實施例中,訪問識別器220可通過回顧計算機程序的程序代碼并且識別有關(guān)功能呼叫的調(diào)用來識別訪問。在一些示例性實施例中,訪問識別器220可被配置成在通過測試模塊210執(zhí)行計算機程序之前預處理計算機程序。在預處理期間,可以識別操作用于訪問資源的功能呼叫,并且,可使用其在執(zhí)行過程中的調(diào)用來識別訪問請求。在一些示例性實施例中,代碼插裝器225可被用于插裝(instrument)操作用于與函數(shù)的調(diào)用相關(guān)地被調(diào)用的代碼。例如,代碼可被插裝在函數(shù)的開頭。作為另一例子,可以使用宏定義(例如,C語言中的#定義命令)來用插裝的代碼的調(diào)用替代函數(shù)引用。在一些示例性實施例中,諸如在源代碼不可用(即,“黑箱”的測試)的情況下,可關(guān)于計算機程序的二進制表示來執(zhí)行插裝。可在與執(zhí)行諸如例如調(diào)用系統(tǒng)引用或應用編程界面(API)等的訪問請求相關(guān)聯(lián)的部分中插裝二進制碼。本領(lǐng)域技術(shù)人員能夠以另外和替代的方式來實現(xiàn)訪問識別器220的識別。在一些示例性實施例中,可由訪問識別器220識別調(diào)用諸如C時間庫的函數(shù)的操作用于訪問時鐘并返回時間的函數(shù)。在一些示例性實施例中,代碼插裝器225可操作用于用諸如與截取器230相關(guān)聯(lián)的替代函數(shù)來替代對函數(shù)的函數(shù)引用,將在下面進一步描述這一點。在一些示例性實施例中,截取器230可操作用于截取諸如由訪問識別器220識別的訪問請求,并且提供其確定的響應。響應可由響應確定器240來確定??赏ㄟ^使用由代碼插裝器225插裝的插裝代碼來執(zhí)行訪問請求的截取。截取器230可操作用于在訪問或不訪問執(zhí)行主機的資源的情況下提供響應。例如,在針對機器的時鐘的訪問請求的情況下,可以在訪問或不訪問時鐘本身的情況下返回時間。確定的響應可以是與時鐘返回的時間不同的時間。在一些示例性實施例中,響應確定器240可被配置成確定對訪問請求的響應。在一些示例性實施例中,響應確定器240可確定隨機響應。在一些示例性實施例中,響應確定器240可基于先前提供的響應來確定響應。在一些示例性實施例中,響應確定器240可操作用于保持提供的響應并利用它們用于將來的響應確定。在一些示例性實施例中,先前提供的響應可被用作基準值,并且,確定的響應可以是處于基準值的預定范圍內(nèi)的值。所述范圍可由諸如圖I的140的用戶確定,并且可選地使用諸如205的輸入模塊被提供給裝置200。 所述范圍會受到各種附加因素的影響。作為例子,考慮提供響應“時間”的資源“時鐘”。確定的時間可基于作為基準點的先前提供的時間。確定的時間可在距離先前的響應兩分鐘的范圍內(nèi)。在一個示例性實施例中,所述范圍會受到自先前的響應經(jīng)過的時間的影響。在一些示例性實施例中,可通過訪問實際資源(例如,主機的時鐘)來確定諸如例如第一響應的一些確定的響應。在一些示例性實施例中,響應確定器240可操作用于提供在先前提供的時間之前的時間。由于時間是嚴格單調(diào)增加的函數(shù),因此,在非云計算環(huán)境中,這種響應一般不是有效響應。然而,由于可由第一主機的第一時鐘提供第一響應,而可由第二主機的第二時鐘提供第二響應,因此,可在云計算環(huán)境中發(fā)生這種響應。在一些示例性實施例中,響應確定器240可操作用于提供時間,使得該時間和先前提供的時間之間的時間差長于提供先前提供的時間和該時間之間的實際時間差。以這種方式,可模擬時鐘的前跳。作為替代方案,這可被用于模擬執(zhí)行計算機程序的計算機的操作的緩慢執(zhí)行的一些方面。在一些示例性實施例中,計算機程序可響應于超時值,并且,提供的時間可被用于測試當達到超時值時計算機程序的操作。在一些示例性實施例中,計算機程序可固有地假定操作的近似定時。例如,由于計算機程序的程序編制員假定在預定時間量內(nèi)將完成一些并行操作,因此,可在所述預定時間量內(nèi)調(diào)用睡眠命令。在一些示例性實施例中,響應確定器240可訪問時鐘以確定當前時間。確定的時間可以是從當前時間在至少預定持續(xù)時間之后的時間。例如,在當前時間為09:10:20并且預定持續(xù)時間為I分鐘的情況下,確定的時間可以為09:11:22,09:20:00,10:00:00或 23:00:00等。在一些示例性實施例中,除了最小偏移時間或者作為其替代,可預定最大偏移時間。例如,時間可被偏移2分鐘的最小偏移和10分鐘的最大偏移。在一些示例性實施例中,裝置200可被配置成響應于第一請求而提供當前時間,并且響應于連續(xù)請求而提供根據(jù)本段的時間,由此提供具有快速時鐘的模擬。快速時鐘可被明顯變快(例如,每秒快速時鐘跳過十秒)。在一些示例性實施例中,由于兩個連續(xù)時間請求之間的報告的時間間隔被報告比實際的更長/更短,因此,響應提供了通過慢或快處理裝置執(zhí)行計算機程序的模擬。 換句話說,在一個時間周期內(nèi)實際執(zhí)行的若干指令被報告為在更短/更長的時間周期內(nèi)執(zhí)行。在一些示例性實施例中,隨機化模塊245可被用于以隨機或偽隨機方式來確定響應。隨機化模塊245可被用于確定基準值的預定范圍內(nèi)的響應。在一些示例性實施例中,裝置200可包括處理器202。處理器202可以是中央處理單元(CPU)、微處理器、電子電路或集成電路(IC)等。處理器202可被用于執(zhí)行裝置200 或其任意子部件所需的計算。在公開的主題的一些示例性實施例中,裝置200可包括輸入/輸出模塊(1/0)205。 I/O模塊205可被用于向諸如圖I的140的用戶提供輸出并從其接收輸入。
在一些示例性實施例中,裝置200可包括存儲設備207。存儲設備207可以是硬盤驅(qū)動、閃存盤、隨機存取存儲器(ROM)或存儲器芯片等。在一些示例性實施例中,存儲設備207可保持操作用于使處理器202執(zhí)行與裝置200的任意子部件相關(guān)聯(lián)的動作的程序代碼。在一些示例性實施例中,存儲設備207可保持先前提供的響應。現(xiàn)在參照示出根據(jù)公開的主題的一些示例性實施例的方法的流程圖的圖3。雖然圖3特別地參照其中訪問的資源是返回時間的時鐘的例子,但公開的主題不限于該例子。在步驟300中,獲得要測試的計算機程序。可獲得計算機程序的二進制表示??色@得源代碼表示??赏ㄟ^諸如圖2的205的輸入模塊獲得計算機程序。在步驟310中,可由計算機化設備執(zhí)行所述計算機程序。所述計算機程序可出于測試其操作的目的而被執(zhí)行。所述計算機程序可由諸如圖2的210的測試模塊來執(zhí)行和測試。在步驟320中,可識別對時鐘的訪問請求??捎芍T如圖2的220的訪問識別器執(zhí)行識別。在一些示例性實施例中,可通過預處理計算機程序或通過在執(zhí)行計算機程序之前用有關(guān)代碼插裝計算機程序等來實現(xiàn)識別。在步驟330中,可以截取訪問請求。在一些示例性實施例中,可截取訪問請求并可能或者可不訪問時鐘。在一些示例性實施例中,可通過執(zhí)行由諸如圖2的225的代碼插裝器插裝的代碼來截取訪問請求??捎芍T如圖2的230的截取器執(zhí)行截取。在步驟340中,可確定響應于訪問將被提供的時間??捎芍T如圖2的240的響應確定器確定時間??蓪r間提供給計算機程序。在執(zhí)行確定并提供確定的時間之后,根據(jù)公開的主題,可識別并響應于附加訪問請求。在一些示例性實施例中,確定要提供的時間包含步驟342和344。在步驟342中,可獲得先前提供的時間。可從諸如圖2的207的存儲設備獲得所述時間。在步驟344中,可隨機地確定先前提供的時間之前的時間??赏ㄟ^使用諸如圖2 的245的隨機化模塊來執(zhí)行確定。確定的時間可早于先前提供的時間,并因此可使返回時間是嚴格單調(diào)增加的函數(shù)的假定無效,這種假定在云計算環(huán)境中可能是不正確的。確定的時間可被確定,以便提供長于在提供兩個時間值之間實際經(jīng)過的時間的該時間和先前提供的時間之間的時間差。在一些示例性實施例中,確定要提供的時間包含步驟346和348。在步驟346中,可以與步驟342類似的方式獲得先前提供的時間。在步驟348中,可確定先前提供的時間的預定范圍內(nèi)的隨機時間。可通過使用諸如圖2的245的隨機化模塊來確定隨機時間。預定范圍可以是由諸如圖I的140的用戶確定的范圍。在一些示例性實施例中,在執(zhí)行計算機程序的充分測試之后(例如,基于覆蓋度量或QA成員的確定等),計算機程序可被視為“是安全的”以被加載到云上以在其上運行。 在一些示例性實施例中,云的管理權(quán)可能禁止加載沒有經(jīng)過充分測試的計算機程序。公開的主題可被用作在將計算機程序加載到云上之前執(zhí)行的單獨測試或附加測試。僅為了闡明公開提供了以下例子,并且,該例子不應被解釋為限制公開的主題的范圍??紤]以下代碼片段
time I = gettime ();time2 = gettime ();timersub (timel, time2, &diff);assert (diff. tv_sec > = 0);這里,timersub是操作用于通過從“time2”減去“timel”來確定“timel”和 “time2”之間的時間差并將時間差賦予“diff”的函數(shù)。由于“timel”基于在與設定“time2” 相關(guān)聯(lián)的時鐘讀取之前執(zhí)行的時鐘讀取被設定,因此,當在非云計算環(huán)境中測試時,該代碼片段是穩(wěn)定的。然而,在云計算環(huán)境中,“timel”可包含“time2”之后的時間,因此斷言可能失敗。公開的主題可被用于測試該代碼片段,并且確定在一些情形中,在云計算環(huán)境中, “time2”即使在后面被設定也可以是“timel”之前的時間。公開的主題可被用于通過執(zhí)行計算機程序、識別對資源的訪問請求(例如,調(diào)用函數(shù)“gettime”)、截取訪問請求并確定要依次提供的響應,來測試包含該代碼片段的計算機程序??梢岳斫?,雖然本公開包括云計算的詳細描述,但是這里引用的教導的實現(xiàn)不限于云計算環(huán)境。而是本發(fā)明的實施例能夠結(jié)合現(xiàn)在已知或者以后開發(fā)的任何其它類型的計算環(huán)境被實現(xiàn)。為了方便,公開以下的定義,以提供云計算環(huán)境的徹底理解。所述定義源自Peter Mell 和 Tim Grance 在 2009 年 10 月 7 日提交的“Draft NIST Working Definition of Cloud Computing”,該文件在這里提交的IDS中被引用并且其復本作為附件提交。云計算是對可配置計算資源(例如,網(wǎng)絡、網(wǎng)絡帶寬、服務器、處理、存儲器、存儲、 應用、虛擬機和服務)的共享池,實現(xiàn)方便的按需網(wǎng)絡訪問的服務傳輸模型,所述可配置計算資源可以通過最小管理工作或與服務提供者的交互被迅速提供和釋放。該云模型可包含至少五種特性、至少三種服務模型和至少四種部署模型。特性如下按需自服務云消費者可以在不需要與服務提供者進行人員交互的情況下,根據(jù)需要自動地單方面地提供諸如服務器時間和網(wǎng)絡存儲的計算能力。寬網(wǎng)絡訪問在網(wǎng)絡上可用,并且通過促進異構(gòu)薄或厚客戶機平臺(例如,移動電話、膝上型計算機和PDA)的使用的標準機構(gòu)被訪問。資源成池提供者的計算資源被成池以使用多占用者模型來服務多個消費者,根據(jù)需要動態(tài)地分配和再分配不同的物理和虛擬資源。存在這樣一種位置獨立性的感覺,即, 消費者一般在提供的資源的確切位置上沒有控制或知識,但是能夠在更高的抽象水平上規(guī)定位置(例如,國家、州或數(shù)據(jù)中心)。迅速彈性在一些情況下可以自動地、迅速地并且彈性地提供能力,以迅速地標出并且迅速地釋放以迅速地標入。對于消費者,可用于提供的能力常??雌饋硎遣皇芟拗频?, 并且,并且可以在任何時間以任意的量被購買。測量服務云系統(tǒng)通過在適于服務類型(例如,存儲、處理、帶寬和活動用戶帳戶) 的一些抽象水平上平衡計量能力,自動地控制和優(yōu)化資源使用??梢员O(jiān)視、控制和報告資源使用,從而對于利用服務的提供者和消費者兩者提供透明性。服務模型如下
作為服務的軟件(SaaS):提供給消費者的能力是使用在云基礎結(jié)構(gòu)上運行的提供者的應用。可通過諸如網(wǎng)絡瀏覽器(例如,基于web的電子郵件)的薄客戶機界面從各種客戶機設備訪問所述應用。消費者不管理或控制包含網(wǎng)絡、服務器、操作系統(tǒng)、存儲器或者甚至單個應用能力的底層云基礎結(jié)構(gòu),有限的用戶特殊應用配置設定可能是例外。作為服務的平臺(PaaS):提供給消費者的能力是將消費者創(chuàng)建的或使用由提供者支持的編程語言和工具創(chuàng)建的獲取應用部署到云基礎結(jié)構(gòu)上。消費者不管理或控制包含網(wǎng)絡、服務器、操作系統(tǒng)或存儲器的底層云基礎結(jié)構(gòu),但對于部署的應用和宿主環(huán)境配置的應用具有控制。作為服務的基礎結(jié)構(gòu)(IaaS):提供給消費者的能力是提供消費者能夠部署和運行可包含操作系統(tǒng)和應用的任意軟件的處理、存儲、網(wǎng)絡和其它基礎計算資源。消費者不管理或控制底層云基礎結(jié)構(gòu),但對于操作系統(tǒng)、存儲、部署的應用具有控制,并可能對于選擇聯(lián)網(wǎng)部件(例如,主機防火墻)具有有限控制。部署模型如下私人云云基礎結(jié)構(gòu)被操作單獨用于一個組織??捎山M織或第三方管理它,并且可存在應急或備用設備。社區(qū)云云基礎結(jié)構(gòu)由幾個組織共享,并且支持具有共享關(guān)注(例如,任務、安全需要、政策和符合性考慮)的特定社區(qū)??捎山M織或第三方管理它,并且可存在應急或備用設備。公共云使得云基礎結(jié)構(gòu)可用于一般公共或大的工業(yè)組并且由出售云服務的組織擁有?;旌显圃苹A結(jié)構(gòu)是保持唯一實體但通過實現(xiàn)數(shù)據(jù)和應用便攜性的標準化或私有技術(shù)接合在一起的兩個或更多個云(私人、社區(qū)或公共)的合成物(例如,用于云之間的負載均衡的云突發(fā))。云計算環(huán)境是通過關(guān)注無國籍、低耦合、模塊性和語義互用性取向的服務。本質(zhì)上,云計算環(huán)境是包含互連節(jié)點的網(wǎng)絡的基礎結(jié)構(gòu)?,F(xiàn)在參照示出諸如圖I的105的示意性云計算環(huán)境50的圖4。如所示的那樣,云計算環(huán)境50包含一個或更多個云計算節(jié)點10,通過所述云計算節(jié)點,諸如例如個人數(shù)字助理(PDA)或蜂窩式電話54A、臺式計算機54B、膝上型計算機54C和/或車載計算機系統(tǒng)54N 的由云消費者使用的本地計算設備可相互通信。節(jié)點10可相互通信。在一個或更多個諸如以上描述的私人、社區(qū)、公共或混合云的網(wǎng)絡或者它們的組合中,它們可以在物理上或在虛擬上被分組(未示出)。這允許云計算環(huán)境50提供基礎結(jié)構(gòu)、平臺和/或軟件作為云消費者不需要在本地計算設備上保持資源的服務。可以理解,圖4所示的計算設備54A N 的類型僅出于解釋的目的,并且,計算節(jié)點10和云計算環(huán)境50可在任意類型的網(wǎng)絡和/或網(wǎng)絡可尋址連接(例如,通過使用web瀏覽器)上與任意類型的計算機化設備通信?,F(xiàn)在參照圖5,示出由云計算環(huán)境50(圖4)提供的一組功能抽象層。應當事先理解,圖5所示的部件、層和功能僅出于解釋的目的,并且,本發(fā)明的實施例不限于此。如所示的那樣,提供以下的層和相應的功能硬件和軟件層60包含硬件和軟件部件。硬件部件的例子包含主計算機,一個例子是IBM zSeries 系統(tǒng);基于Rise(精簡指令集計算機)體系結(jié)構(gòu)的服務器,一個例子是IBM pSeries 系統(tǒng);ibm xSeries 系統(tǒng);iBMBladeCenter 系統(tǒng);
存儲設備;網(wǎng)絡和聯(lián)網(wǎng)部件。軟件部件的例子包含網(wǎng)絡應用服務器軟件,一個例子是 IBM WebSphere 應用服務器軟件;和數(shù)據(jù)庫軟件,一個例子是IBMDB2 數(shù)據(jù)庫軟件。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere 和 DB2 是在世界范圍內(nèi)的許多司法地域中注冊的國際商業(yè)機器公司的商標)。虛擬化層62提供可從中提供以下例子的虛擬實體的抽象層虛擬服務器虛擬存儲器;虛擬網(wǎng)絡,包含虛擬私人網(wǎng)絡;虛擬應用和操作系統(tǒng);以及虛擬客戶機。在一個例子中,管理層64可提供以下描述的功能。資源提供提供用于在云計算環(huán)境內(nèi)執(zhí)行任務的計算資源和其它資源的動態(tài)供應。計量和定價提供當在云計算環(huán)境內(nèi)利用資源時的成本跟蹤,以及消費這些資源的結(jié)算或計價。在一個例子中,這些資源可包含應用軟件許可。安全提供對于云消費者和任務的身份驗證以及對于數(shù)據(jù)和其它資源的保護。用戶門戶向消費者和系統(tǒng)管理員提供對云計算環(huán)境的訪問。服務水平管理提供云計算資源分配和管理,使得滿足需要的服務水平。服務水平協(xié)定(SLA)計劃和實現(xiàn)根據(jù)SLA提供預期未來需要的云計算資源的預安排和供應。工作負載層66提供可利用云計算環(huán)境的功能的例子??蓮脑搶犹峁┑墓ぷ髫撦d和功能的例子包含地圖和導航;軟件開發(fā)和生命周期管理;虛擬教室教育傳輸;數(shù)據(jù)分析
處理;事務處理等。圖中的流程和框圖示出根據(jù)本發(fā)明的各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系結(jié)構(gòu)、功能和操作。在這一點上,流程圖或框圖中的各塊可表示包含用于實現(xiàn)規(guī)定的邏輯功能的一個或更多個可執(zhí)行指令的模塊、段或代碼部分。還應注意,在一些替代性實現(xiàn)中,在塊中注明的功能的次序可以與在圖中注明的次序不同。例如,根據(jù)包含的功能,連續(xù)表示的兩個塊事實上可被基本上同時執(zhí)行,或者,各塊有時可以以相反的次序被執(zhí)行。還應注意,可通過執(zhí)行規(guī)定的功能或作用的基于特殊用途硬件的系統(tǒng)或特殊用途硬件和計算機指令的組合,實現(xiàn)框圖和/或流程圖的各塊和框圖和/或流程圖的各塊的組合。這里使用的術(shù)語僅出于描述特定的實施例的目的,并且不是要限制本發(fā)明。如這里使用的那樣,除非上下文清楚地另外表示,否則,單數(shù)形式“一個”、“一種”和“該”也要包含多數(shù)形式。還應理解,在本說明書中使用的術(shù)語“包括”和/或“包含”規(guī)定陳述的特征、 整數(shù)、步驟、動作、要素和/或部件的存在,但不排除一個或更多個其它的特征、整數(shù)、步驟、 動作、要素、部件和/或它們的組的存在或添加。本領(lǐng)域技術(shù)人員可以理解,公開的主題可體現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,公開的主題可采取完全硬件實施例、完全軟件實施例(包含固件、駐留軟件、微代碼等) 或組合軟件和硬件方面的實施例,它們在這里均可被統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。并且,本發(fā)明的方面可采取在具有在介質(zhì)中體現(xiàn)的計算機可用程序代碼的表現(xiàn)的任何可接觸知介質(zhì)中體現(xiàn)的計算機程序產(chǎn)品的形式??梢岳靡粋€或更多個計算機可用或計算機可讀介質(zhì)的任意組合。計算機可用或計算機可讀介質(zhì)可例如為但不限于電子、磁、光學、電磁、紅外或半導體系統(tǒng)、裝置或設備或傳播介質(zhì)。計算機可讀存儲介質(zhì)的更具體的例子(非詳盡的列表)會包含以下方面具有一個或更多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦可編程只讀存儲器(EPR0M或快擦寫存儲器)、光纖、便攜式光盤只讀存儲器(CD-ROM)、光學存儲設備、諸如支持因特網(wǎng)或內(nèi)聯(lián)網(wǎng)的傳輸介質(zhì)或磁存儲設備。注意,由于程序可通過例如紙或其它的介質(zhì)的光學掃描以電子的方式被捕獲、然后如果必要的話以適當?shù)姆绞奖痪庉嫛⒔忉尰蛞粤硗獾姆绞奖惶幚聿⒈蝗缓蟊淮鎯τ谟嬎銠C存儲器中,因此,計算機可用或計算機可讀介質(zhì)甚至可以為上面打印程序的紙或另一適當?shù)慕橘|(zhì)。在本文件的上下文中,計算機可用或計算機可讀存儲介質(zhì)可以是可包含、存儲、通信、傳播或傳輸供指令執(zhí)行系統(tǒng)、裝置或設備使用或與其組合的程序的任何介質(zhì)。計算機可用介質(zhì)可例如在基帶中或作為載波的一部分包含具有在其中體現(xiàn)的計算機可讀程序代碼的傳播的數(shù)據(jù)信號。 可通過使用包含但不限于無線、有線、光纖電纜、RF等或以上的任意適當?shù)慕M合的任意適當?shù)慕橘|(zhì)傳送在計算機可用程序代碼??梢砸园ㄖT如Java、Smalltalk、C++等的面向?qū)ο蟮木幊陶Z目和諸如“C”編程語言或類似的編程語言的常規(guī)的過程編程語言的一個或更多個編程語言的任意組合書寫用于實施本發(fā)明的操作的計算機程序代碼。程序代碼可整體在用戶的計算機上、作為獨立軟件封裝部分地在用戶的計算機上、部分地在用戶的計算機上并且部分地在遠程計算機上或者完全在遠程計算機或服務器上執(zhí)行。在后一種方案中,遠程計算機可通過包含局域網(wǎng)絡(LAN)或廣域網(wǎng)絡(WAN)的任意類型的網(wǎng)絡與用戶的計算機連接,或者,可與外部計算機連接(例如,通過使用Internet Service Provider的因特網(wǎng))。以下的權(quán)利要求中的相應的結(jié)構(gòu)、材料、動作和所有手段或步驟加功能要素的等同物要包含用于與特別要求權(quán)利的其它的要求權(quán)利的要素結(jié)合執(zhí)行功能的任何結(jié)構(gòu)、材料和動作。本發(fā)明的描述的給出是出于解釋和描述的目的,不是詳盡的,或者不是將本發(fā)明限于公開的形式。在不背離本發(fā)明的范圍和精神的情況下,許多的修改和變更對于本領(lǐng)域技術(shù)人員來說是十分明顯的。實施例的選擇和描述是為了最好地解釋本發(fā)明的原理和實際的應用并且為了使得其它的本領(lǐng)域技術(shù)人員能夠理解本發(fā)明的具有適于設想的實際用途的各種修改的各種實施例。
權(quán)利要求
1.一種計算機實現(xiàn)的方法,該方法包括通過由計算機化設備操作計算機程序來測試計算機程序,其中,計算機化設備操作用于向計算機程序提供對資源的訪問;由計算機程序截取對資源的訪問請求,其中,所述截取包含確定要向計算機程序提供的響應;和向計算機程序提供確定的響應而不是來自資源的對請求的響應。
2.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,其中,所述資源是時鐘;并且,所述響應是時鐘的時間。
3.根據(jù)權(quán)利要求2的計算機實現(xiàn)的方法,其中,所述確定包含檢索先前提供的時間;和隨機化在先前提供的時間的預定范圍內(nèi)的時間,其中,隨機化的時間是所述確定的響應。
4.根據(jù)權(quán)利要求3的計算機實現(xiàn)的方法,還包括從用戶接收所述預定范圍。
5.根據(jù)權(quán)利要求2的計算機實現(xiàn)的方法,其中,所述確定包含檢索先前提供的時間;和將所述時間確定為在先前提供的時間之前。
6.根據(jù)權(quán)利要求5的計算機實現(xiàn)的方法,其中,所述確定包含從所述時鐘檢索當前時間;和將時間確定為從當前時間至少在預定持續(xù)時間之后的時間。
7.根據(jù)權(quán)利要求I的計算機實現(xiàn)的方法,其中,關(guān)于對資源的多個訪問請求,所述截取被執(zhí)行多次。
8.根據(jù)權(quán)利要求I的計算機實現(xiàn)的方法,其中,所述測試包含測試所述計算機程序在云計算環(huán)境中的操作的有效性。
9.根據(jù)權(quán)利要求8的計算機實現(xiàn)的方法,還包括響應于所述測試操作的有效性的完成,將計算機程序加載到云計算環(huán)境上。
10.根據(jù)權(quán)利要求I的計算機實現(xiàn)的方法,還包括預處理所述計算機程序并且識別操作用于訪問資源的函數(shù)調(diào)用。
11.根據(jù)權(quán)利要求10的計算機實現(xiàn)的方法,還包括用操作用于替代函數(shù)調(diào)用的代碼來插裝所述計算機程序;并且,其中,所述截取包含執(zhí)行所述代碼。
12.一種具有處理器的計算機化設備,該設備包括操作用于操作計算機程序的測試模塊,其中,所述測試模塊被配置成向計算機程序提供對資源的訪問;操作用于截取計算機程序?qū)Y源的訪問請求的截取器,其中,所述截取器包含操作用于確定要向計算機程序提供的響應的響應確定器,并且,所述截取器進一步操作用于向計算機程序提供預定響應,而不是來自資源的對請求的響應。
13.根據(jù)權(quán)利要求12的計算機化設備,其中,其中,所述資源是時鐘;并且,所述響應是時鐘的時間。
14.根據(jù)權(quán)利要求13的計算機化設備,其中,所述響應確定器進一步操作用于檢索先前提供的時間;其中,所述響應確定器與操作用于隨機化先前提供的時間的預定范圍內(nèi)的時間的隨機化模塊在操作上耦合,并且,其中,隨機化的時間是確定的響應。
15.根據(jù)權(quán)利要求14的計算機化設備,其中,還包括操作用于從用戶接收所述預定范圍的輸入模塊。
16.根據(jù)權(quán)利要求13的計算機化設備,其中,所述響應確定器進一步操作用于檢索先前提供的時間;并且,其中,確定的響應是先前提供的時間之前的時間。
17.根據(jù)權(quán)利要求13的計算機化設備,其中,所述響應確定器進一步操作用于從時鐘檢索當前時間,并且,將所述時間確定為從當前時間至少在預定持續(xù)時間之后的時間。
18.根據(jù)權(quán)利要求12的計算機化設備,其中,所述測試模塊被配置成測試所述計算機程序在云計算環(huán)境中的操作的有效性。
19.根據(jù)權(quán)利要求12的計算機化設備,還包括操作用于預處理所述計算機程序并且識別操作用于訪問所述資源的函數(shù)調(diào)用的訪問識別器。
20.根據(jù)權(quán)利要求19的計算機化設備,其中,所述預處理所述計算機程序包含用操作用于替代所述函數(shù)調(diào)用的代碼來插裝所述計算機程序。
全文摘要
關(guān)于對訪問請求的意外響應驗證計算機程序的方法和裝置。測試計算機程序包含識別計算機程序?qū)Φ讓又鳈C所提供的資源的資源訪問請求。資源訪問請求可被截取,并且,確定的響應可被返回而不是底層主機的實際響應。在一些示例性實施例中,資源可以是底層主機的時鐘,并且,響應可以是時鐘的時間。在一些示例性實施例中,計算機程序可被測試以檢查在云計算環(huán)境上執(zhí)行期間的有效性,其中,對資源的訪問會產(chǎn)生在非云計算環(huán)境上一般不可預料到的結(jié)果。測試可以在非云計算環(huán)境上執(zhí)行并且模擬可應用于云計算環(huán)境的情形。
文檔編號G06F11/36GK102591771SQ201110360010
公開日2012年7月18日 申請日期2011年11月15日 優(yōu)先權(quán)日2010年11月18日
發(fā)明者A·茲羅特尼克, D·西特龍, Y·尼爾-布奇賓德 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1