專利名稱:在計算環(huán)境中進(jìn)行存儲器管理的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及計算環(huán)境中的存儲器管理,更具體地說,涉及根據(jù) 任務(wù)的執(zhí)行范圍確定地為計算環(huán)境中執(zhí)行的任務(wù)分配和解除分配存儲器空 間的系統(tǒng)和方法。
背景技術(shù):
計算環(huán)境中的存儲器管理涉及保留計算機存儲器的各部分以加栽可執(zhí) 行邏輯代碼(即軟件程序)并在以后根據(jù)特定的存儲器管理方案釋放存儲 器以重復(fù)使用。保留存儲器的過程通常稱為向邏輯對象"分配"存儲器空間;而釋放存儲器的過程通常稱為"解除分配"存儲器空間。根據(jù)所使用的編程語言的類型,解除分配方案有時包括"垃圾收集" 過程。本文中的術(shù)語"垃圾"指分配給正確執(zhí)行程序時不再需要的邏輯對 象的存儲器空間。通常,當(dāng)收集所謂的垃圾對象時,意味著解除分配相應(yīng) 的存儲器空間。已經(jīng)實現(xiàn)了手動和自動存儲器管理方案。在手動方案中,程序設(shè)計員 必須主動將指令插入邏輯代碼以便標(biāo)識和解除分配與不使用的對象關(guān)聯(lián)的 存儲器空間。自動方案只在編程語言級別使用,并且僅在檢測到系統(tǒng)存儲 器不足時才使垃圾收集周期開始。不幸的是,上述兩種方案未在存儲器密集的軟件應(yīng)用(如支持在Web 服務(wù)器與一個或多個客戶機之間建立的大量會話的基于因特網(wǎng)的應(yīng)用(即 Web應(yīng)用))中提供最佳結(jié)果。例如,當(dāng)使用多個Servlet為在Web^ 期間從一個或多個客戶機提交到Web服務(wù)器的多個請求服務(wù)時,存儲器管 理變得非常繁瑣和復(fù)雜。通常,在將存儲器分配g話中的邏輯對象時,存儲器將保持已分配 直到會話終止,與對應(yīng)于所述邏輯對象的任務(wù)在整個會話期間處于活動狀態(tài)還是非活動狀態(tài)無關(guān)。復(fù)雜的Web應(yīng)用可能在每個會話期間支持和要求 執(zhí)行多種邏輯任務(wù)和Servlet。如果垃圾收集過程延遲到每個會話結(jié)束或 延遲到系統(tǒng)存儲器不足,便會對Web服務(wù)器的性能產(chǎn)生負(fù)面影響,因為Web 服務(wù)器可能很快會耗盡存儲器并無法恢復(fù)。因此,需要可以克服上述缺點的存儲器管理方法和系統(tǒng)。發(fā)明內(nèi)容本披露涉及一種通過為計算環(huán)境中的活動任務(wù)定義一個或多個執(zhí)行范 圍來促進(jìn)計算環(huán)境中的存儲器管理的系統(tǒng)和相應(yīng)的方法。出于概述的目的,此處描述了本發(fā)明的特定方面、優(yōu)點和新穎特性。 將理解的是,并非所有此類優(yōu)點都可以根據(jù)本發(fā)明的任一特定實施例來實 現(xiàn)。因此,可以使用實現(xiàn)或優(yōu)化一種優(yōu)點或一組優(yōu)點而未實現(xiàn)此處所教導(dǎo) 或建議的全部優(yōu)點的方式來實現(xiàn)或執(zhí)行本發(fā)明。根據(jù)一個實施例,一種用于在計算環(huán)境中進(jìn)行存儲器管理的方法包括 唯一地標(biāo)識與計算環(huán)境中執(zhí)行的應(yīng)用的第一任務(wù)關(guān)聯(lián)的第一對象,其中將 存儲器的第 一 區(qū)域分配給所述第 一對象;才艮據(jù)與所述第 一任務(wù)關(guān)聯(lián)的第一 執(zhí)行上下文來確定所述第一任務(wù)的第 一執(zhí)行范圍,其中所述第一上下文定 義了所述第 一任務(wù)在執(zhí)行環(huán)境層次內(nèi)的第 一預(yù)期壽命;確定所述第 一任務(wù) 的執(zhí)行范圍的變化,以響應(yīng)監(jiān)視所述第一執(zhí)行上下文;以及解除分配存儲 器的所述第一區(qū)域,以響應(yīng)確定不再在所述第一執(zhí)行范圍內(nèi)執(zhí)行所述第一 任務(wù)。在一個實施例中,所述方法還包括唯一地標(biāo)識與作為所述第一任務(wù)的 子任務(wù)的第二任務(wù)關(guān)聯(lián)的第二對象,其中將存儲器的第二區(qū)域分配給所述 第二對象;根據(jù)與所述第二任務(wù)關(guān)聯(lián)的第二執(zhí)行上下文來確定所述第二任 務(wù)的第二執(zhí)行范圍,其中所述第二上下文定義了所述第二任務(wù)在所述執(zhí)行 環(huán)境層次內(nèi)相對于所述第一任務(wù)的第二預(yù)期壽命;確定所述第二任務(wù)的執(zhí)行范圍的變化,以響應(yīng)監(jiān)視所述第二執(zhí)行上下文;以及解除分配存儲器的 所述第二區(qū)域,以響應(yīng)確定不再在所述第二執(zhí)行范圍內(nèi)執(zhí)行所述第二任務(wù)。還可以唯一地標(biāo)識與作為所述第二任務(wù)的子任務(wù)的第三任務(wù)關(guān)聯(lián)的第 三對象,其中將存儲器的第三區(qū)域分配給所述第三對象;以及解除分配存 儲器的所述第三區(qū)域,以響應(yīng)確定所述第三任務(wù)不再主動為請求服務(wù)。也就是說,可以終止所述第二執(zhí)行上下文以響應(yīng)確定所述第二任務(wù)的 子任務(wù)都沒有主動為請求服務(wù);并且還可以終止所述第一執(zhí)行上下文以響 應(yīng)確定所述第 一任務(wù)的子任務(wù)都沒有主動為請求服務(wù)。在一個實施例中,所述第一、第二和第三任務(wù)在通過通信網(wǎng)絡(luò)而在服 務(wù)器系統(tǒng)與客戶機系統(tǒng)之間建立的會話中執(zhí)行。某些實施例中的所述通信 網(wǎng)絡(luò)包括因特網(wǎng)??梢越獬峙浯鎯ζ鞯乃龅谝?、第二和第三區(qū)域以響 應(yīng)確定所述會話已終止。根據(jù)另一個實施例,提供了 一種用于在計算環(huán)境中進(jìn)行存儲器管理的 系統(tǒng)。所述系統(tǒng)可以包括用于唯一地標(biāo)識與計算環(huán)境中執(zhí)行的應(yīng)用的第 一任務(wù)關(guān)聯(lián)的第 一對象的邏輯單元,其中將存儲器的第 一 區(qū)域分配給所述 第一對象;用于根據(jù)與所述第一任務(wù)關(guān)聯(lián)的第一執(zhí)行上下文來確定所述第 一任務(wù)的第一執(zhí)行范圍的邏輯單元,其中所述第一上下文定義了所迷第一 任務(wù)在執(zhí)行環(huán)境層次內(nèi)的第一預(yù)期壽命;用于確定所述第一任務(wù)的執(zhí)行范 圍的變化,以響應(yīng)監(jiān)視所述第一執(zhí)行上下文的邏輯單元;以及用于解除分 配存儲器的所述第一區(qū)域,以響應(yīng)確定不再在所述第一執(zhí)行范圍內(nèi)執(zhí)行所 述笫一任務(wù)的邏輯單元。所述系統(tǒng)還可以包括用于唯一地標(biāo)識與作為所述第一任務(wù)的子任務(wù) 的第二任務(wù)關(guān)聯(lián)的第二對象的邏輯單元,其中將存儲器的第二區(qū)域分配給 所述第二對象;用于才艮據(jù)與所述第二任務(wù)關(guān)聯(lián)的第二執(zhí)行上下文來確定所 述第二任務(wù)的第二執(zhí)行范圍的邏輯單元,其中所述第二上下文定義了所述 第二任務(wù)相對于所述第一任務(wù)的第二預(yù)期壽命;用于確定所述第二任務(wù)的 執(zhí)行范圍的變化,以響應(yīng)監(jiān)視所述第二執(zhí)行上下文的邏輯單元;以及用于 解除分配存儲器的所述第二區(qū)域,以響應(yīng)確定不再在所述第二執(zhí)行范圍內(nèi)執(zhí)行所述第二任務(wù)的邏輯單元。在一個實施例中,所述系統(tǒng)還包括用于唯一地標(biāo)識與作為所述第二 任務(wù)的子任務(wù)的第三任務(wù)關(guān)聯(lián)的第三對象的邏輯單元,其中將存儲器的第 三區(qū)域分配給所述第三對象;以及用于解除分配存儲器的所述第三區(qū)域, 以響應(yīng)確定所述第三任務(wù)不再主動為請求服務(wù)的邏輯單元。在另一個實施例中,提供了一種包括具有計算機可讀程序的計算機可 用介質(zhì)的計算機程序產(chǎn)品。當(dāng)所述計算機可讀程序在計算機上執(zhí)行時,將 導(dǎo)致所述計算機執(zhí)行根據(jù)上述系統(tǒng)和方法披露的過程和功能。下面參考附圖進(jìn)一步詳細(xì)地提供了一個或多個上面披露的實施例以及 特定的備選實施例。但是,本發(fā)明不限于所披露的任何特定實施例。
通過參考附圖中的圖形,可以理解本發(fā)明的各實施例,這些附圖是 圖1示出了根據(jù)一個或多個實施例的Web服務(wù)器的示例性軟件環(huán)境,其中服務(wù)器系統(tǒng)通過通信網(wǎng)絡(luò)與客戶機系統(tǒng)進(jìn)行通信;圖2是根據(jù)一個實施例的用于確定在圖1的客戶機系統(tǒng)與服務(wù)器系統(tǒng)之間建立的通信會話中的 一個或多個任務(wù)的執(zhí)行范圍的示例性方法的流程圖;圖3是根據(jù)一個實施例的用于管理分配給具有定義執(zhí)行范圍的一個或多個對象的存儲器的示例性方法的流程圖;以及圖4A和4B是才艮據(jù)一個或多個實施例的可以在其中運行本發(fā)明的系統(tǒng) 的硬件和軟件環(huán)境的方塊圖。根據(jù)一個或多個實施例,不同圖形中的相同數(shù)字所標(biāo)示的本發(fā)明的特 性、元素和方法代表相同、等價或類似的特性、元素或方面。
具體實施方式
本披露涉及促進(jìn)其中執(zhí)行多個邏輯任務(wù)和子任務(wù)的應(yīng)用環(huán)境中的存儲 器管理的系統(tǒng)和相應(yīng)方法。實現(xiàn)存儲器管理方法以為一個或多個任務(wù)和子任務(wù)定義和監(jiān)視各種執(zhí)行范圍(例如,會話范圍、任務(wù)/子任務(wù)范圍以及當(dāng) 前范圍),以便根據(jù)所述定義的執(zhí)行范圍從存儲器中移除與所述任務(wù)和子 任務(wù)關(guān)聯(lián)的對象。在下文中,將說明大量特定細(xì)節(jié)來全面描述本發(fā)明的各種實施例??尚嵤├?。在某些情況下,將不會過于詳細(xì)地描述某些功能,以免使本發(fā) 明的其他方面變得模糊不清。與每個元素或特性關(guān)聯(lián)的詳細(xì)程度不應(yīng)理解 為將某一功能的新穎性或重要性限定為高于其他功能的新穎性或重要性。例如,在下文中,將本發(fā)明的某些方面披露為適用于在基于Web的環(huán) 境中執(zhí)行的Servlet。但值得注意的是,此類應(yīng)用只是作為示例。因此, 本發(fā)明的范圍不應(yīng)被理解為限于此類示例性實施例。在備選實施例中,所 ^L露的系統(tǒng)和方法可適用于在任何計算環(huán)境中管理存儲器?,F(xiàn)在參考圖1,其中示出了示例性計算環(huán)境,其中服務(wù)器系統(tǒng)(此后 稱為"服務(wù)器")110通過通信網(wǎng)絡(luò)("網(wǎng)絡(luò),,)130與客戶機系統(tǒng)(此后 稱為"客戶機")120通信。在此示例性實施例中,網(wǎng)絡(luò)130通過因特網(wǎng) (即萬維網(wǎng)WW)實現(xiàn),其中包括服務(wù)器110和客戶機120的大量計算系 統(tǒng)相互連接以便相互通信。但是,取決于實施方式,在備選實施例中網(wǎng)絡(luò) 130可以根據(jù)本地、遠(yuǎn)程或分布式框架來構(gòu)建。優(yōu)選地,服務(wù)器110為Web服務(wù)器并且客戶機12 0為具有通過網(wǎng)絡(luò)13 0 將請求提交給服務(wù)器110的客戶機軟件環(huán)境125的計算機。如圖所示,服 務(wù)器110包括被配置為答復(fù)由客戶機120提交的請求的服務(wù)器軟件環(huán)境 115。通過網(wǎng)絡(luò)130進(jìn)行的請求和答復(fù)的交換在服務(wù)器110與客戶機120 之間建立的一個或多個會話的上下文內(nèi)進(jìn)行以為客戶機120請求服務(wù)。所提交的請求可以由在服務(wù)器軟件環(huán)境115中執(zhí)行的應(yīng)用150來服務(wù)。 例如,應(yīng)用150可以是位于基于Web的環(huán)境中的邏輯代碼(例如,Java Applet、 Java Servlet或其他功能上等同的模塊)。也就是說, 一旦調(diào)用 應(yīng)用150以響應(yīng)會話中接收的第一請求,應(yīng)用150就優(yōu)選地在存儲器中保 持活動狀態(tài)以滿足在會話的其余時間內(nèi)提交的一個或多個后續(xù)請求。應(yīng)用150在存儲器中的駐留使其能夠快速地對客戶機120的請求做出 響應(yīng)。因此,有利地,相比于在滿足請求后從服務(wù)器110的執(zhí)行環(huán)境移除 的其他應(yīng)用(例如,通用網(wǎng)關(guān)接口 (CGI)程序),應(yīng)用150優(yōu)選地駐留在 存儲器中以避免與建立和消除每次為請求服務(wù)所需的過程關(guān)聯(lián)的時間延遲?,F(xiàn)在參考圖l和2,在一個實施例中,例如由服務(wù)器IIO啟動應(yīng)用150 以響應(yīng)客戶機120提交的一個或多個請求(S210)。取決于客戶機數(shù)或所 提交的請求數(shù),應(yīng)用150可以管理一個或多個會話(S220 )。在每個M 中,可以執(zhí)4亍應(yīng)用150以打開如圖1所示的一個或多個4壬務(wù)和子任務(wù)(例 如任務(wù)1至3以及子任務(wù)1至6等)。所述任務(wù)和子任務(wù)例如與由配置為服務(wù)客戶機請求的Servlet、 Java Server Pages (JSP)或其他編程應(yīng)用(例如應(yīng)用編程接口 API)執(zhí)行或管 理的一個或多個操作關(guān)聯(lián)。如圖所示,根據(jù)一個實施例,某個任務(wù)(例如 任務(wù)2)可以具有一個或多個能夠在同一會話中打開的子任務(wù)(例如子任 務(wù)3、 4、 5)。每個子任務(wù)還可以具有一個或多個其他子任務(wù)。一旦打開,每個任務(wù)或子任務(wù)就與向其分配了存儲器空間的至少一個 邏輯對象關(guān)聯(lián)。將執(zhí)行每個對象以便為任務(wù)或子任務(wù)執(zhí)行相關(guān)的操作。取 決于實施方式,在每個會話中,可以使用各種方案來管理每個任務(wù)/子任務(wù) 以及與之關(guān)聯(lián)的已分配存儲器空間。例如,可以使用邏輯模塊(例如,會 話管理器API)添加或移除與每個任務(wù)/子任務(wù)關(guān)聯(lián)的會話對象。例如,在一個實施例中,會話管理器判定應(yīng)用150是否打開了新的任 務(wù)/子任務(wù)以便為請求服務(wù)(S230 )。當(dāng)打開了新的任務(wù)/子任務(wù)時, 管理器將監(jiān)視或編輯數(shù)據(jù)結(jié)構(gòu)(例如描述符文件)以跟蹤執(zhí)行層次中的任 務(wù)及關(guān)聯(lián)的子任務(wù)。優(yōu)選地,會話管理器根據(jù)任務(wù)的執(zhí)行范圍為應(yīng)用150 所打開的每個任務(wù)分配唯一標(biāo)識符??梢允褂么宋ㄒ粯?biāo)識符來定義任務(wù)類 型并進(jìn)一步對每個任務(wù)/子任務(wù)進(jìn)行分類,如以下進(jìn)一步詳細(xì)描述的。在一個實施例中,描述符文件包括諸如可擴展標(biāo)記語言(XML)之類的 編程語言語法來為每個任務(wù)類型定義描述。例如,描述符文件的元素可以定義每個任務(wù)的組件。對于每個已定義的任務(wù)類型,可以在任務(wù)類型定義 中將默認(rèn)特定組件標(biāo)識為任務(wù)初始的默認(rèn)組件。相應(yīng)地,開發(fā)人員可以定 義一組可由用戶執(zhí)行的任務(wù),以便為每個任務(wù)類型定義一個或多個特定的組件(例如,替代的JSP頁)。根據(jù)一個實施例,當(dāng)打開新的任務(wù)/子任務(wù)時,將使用邏輯模塊(例如,范圍管理器API)來確定所述新任務(wù)/子任務(wù)的執(zhí)行范圍(S240 )。在一個 實施例中,使用范圍管理器監(jiān)視與會話中共享的每個任務(wù)/子任務(wù)關(guān)聯(lián)的對 象。相應(yīng)地,范圍管理器將管理會活對象的創(chuàng)建(即分配)和移除(即解 除分配)并支持請求將對象添加到^"或請求從^"移除對象的功能?,F(xiàn)在參考圖3,其中根據(jù)一個實施例實現(xiàn)范圍管理器以便還定義M 中打開的任務(wù)/子任務(wù)的允許執(zhí)行范圍(S310)。也就是說,實現(xiàn)范圍管理 器以指定與當(dāng)前應(yīng)用流相關(guān)的每個任務(wù)對應(yīng)的一個或多個對象的壽命粒 度,并且更新對象的允許執(zhí)行范圍。定義允許的執(zhí)行范圍(即,為會話中 的任務(wù)/子任務(wù)定義多層壽命粒度)提供了這樣的可能性優(yōu)選地在服務(wù)器 110的存儲器空間達(dá)到最低臨界閾值之前,以及優(yōu)選地在對象存在于其中 的會話終止之前,釋放分配給與處于各個執(zhí)行上下文或級別的任務(wù)/子任務(wù) 對應(yīng)的一個或多個對象的存儲器。在一個實施例中,例如,由范圍管理器優(yōu)選地在任務(wù)/子任務(wù)被添加到范圍。可以才艮據(jù)以下三個范圍或上下文來定義執(zhí)^f亍范圍(l)應(yīng)用上下文, (2 )任務(wù)/子任務(wù)上下文,以及(3)當(dāng)前上下文。但值得注意的是,取決 于實施方式,可以指定或分配其他上下文或準(zhǔn)則。出于示例和簡要的目的, 在下文中,我們將討論限于上述三種執(zhí)行上下文。在應(yīng)用上下文中,與應(yīng)用150關(guān)聯(lián)的對象在會話的持續(xù)期間內(nèi)保持活 動。也就是說,在會話終止之前,不會將控制應(yīng)用150操作的相應(yīng)對象從 執(zhí)行環(huán)境移除??梢允褂脩?yīng)用上下文來定義不同任務(wù)/子任務(wù)之間共享的和 潛在更新的狀態(tài)信息的執(zhí)行范圍。例如,列出服務(wù)器上定義的節(jié)點和安排 的服務(wù)器狀態(tài)結(jié)構(gòu)可以通過多個任務(wù)、計算機、應(yīng)用、節(jié)點組和安排進(jìn)行更新并優(yōu)選地在會話的壽命期間保持不變。在任務(wù)/子任務(wù)上下文中,將在打開的任務(wù)/子任務(wù)的執(zhí)行持續(xù)時間內(nèi) (即,在任務(wù)/子任務(wù)處于活動狀態(tài)以響應(yīng)提交的請求時) 一直保留與該任務(wù)/子任務(wù)關(guān)聯(lián)的對象。例如,在IBM Tivoli Storage Manager (ITSM) 的節(jié)點組任務(wù)中,將一直保留與定義到ITSM服務(wù)器的節(jié)點組有關(guān)的相關(guān)信 息和任務(wù)組件(例如,在節(jié)點組任務(wù)中啟動的向?qū)?、記事本和表?的當(dāng) 前狀態(tài)和信息數(shù)據(jù),直到相應(yīng)的任務(wù)終止。在當(dāng)前上下文中,將在活動任務(wù)/子任務(wù)的組件的活動期間保留與該任 務(wù)/子任務(wù)關(guān)聯(lián)的對象。例如,在ITSM的節(jié)點組任務(wù)中,文件空間表數(shù)據(jù) 可能與特定的計算機或應(yīng)用記事^目關(guān),其中在向用戶顯示該記事本之前 選擇所述計算機或應(yīng)用。在此類情況下,當(dāng)前上下文例如與唯一的JSP頁 關(guān)聯(lián)。因此,范圍管理器根據(jù)預(yù)定的執(zhí)行上下文來監(jiān)視會話中每個任務(wù)/子任 務(wù)的執(zhí)行范圍(S320 )。當(dāng)任務(wù)/子任務(wù)在允許的范圍內(nèi)完成執(zhí)行時(S330 ), 范圍管理器從執(zhí)行環(huán)境移除與該任務(wù)/子任務(wù)關(guān)聯(lián)的對象(S340 )。同時, 當(dāng)會話終止時(S350 ),會話管理器優(yōu)選地移除某些或全部應(yīng)用相關(guān)的會 話對象(S360 )。在下文中,提供了根據(jù)Java對象類實現(xiàn)的示例性范圍管理器接口。值 得注意的是,本發(fā)明的范圍不應(yīng)被理解為限于此示例性實施例,因為可以 以不同的編程語言對所披露主要內(nèi)容做出其他實現(xiàn)和修改。p油lic class DsraScopeManagerpublic, static find byte .COMP—SCOPE; public static final byte TASK_SCOPE; public static final byte CCT—SCOPE;public static final void, add (byte scope, String scopeDD, Object value^ Ht^Session sessi加):;public static final void add (byte scope, final Object[Jattrs, H鄉(xiāng)Session session);public static fmal void addPersistem (String scopeID, Object value, byte scope, HttpSession session);public static find void makePersistent (Sbing scope〖D, byte scope, 韭鄰Sesskin session);public static final HashSet getScopeAttrSet (byte scope, H鄉(xiāng)Sessiori session);public static final void cleanll'p (byte scope, H鄰Session session);public static ftoal void cdeanllpTask (WccCoatext, wccContext, HttpSession session);}…根據(jù)一個實施例,下面的示例性框架支持上述范圍管理器的功能。所 述框架是管理應(yīng)用150的運行時流的軟件應(yīng)用并才艮據(jù)一個實施例,優(yōu)選地 在Web容器中實現(xiàn),以檢測應(yīng)用、任務(wù)和任務(wù)特定的組件。所述框架可以 進(jìn)一步檢測用戶流狀態(tài)和對象執(zhí)行范圍并幫助確定適當(dāng)?shù)拇鎯ζ鞴芾砗蛯?象清除方案。在一個實施例中,所述框架包括一組相關(guān)的用于檢測應(yīng)用流和用于監(jiān) 視活動任務(wù)及其關(guān)聯(lián)組件的類。使用此框架,可以監(jiān)視和確定當(dāng)前活動的 任務(wù)、當(dāng)前向用戶顯示的任務(wù)、每個任務(wù)的當(dāng)前活動的組件,以及用戶在 其中查看這些組件的流??梢詫崿F(xiàn)特定的類(例如DsmTasksFactory類)以標(biāo)識相關(guān)的^f壬務(wù)及 關(guān)聯(lián)的組件。例如,在一個實施例中,這種類被實現(xiàn)為單態(tài)類(singleton class)。單態(tài)類是為其創(chuàng)建單個實例的類。優(yōu)選地,所述類可以提供信息以支持給定的DSM任務(wù)類型并將描述每 個DSM任務(wù)類型的XML應(yīng)用描述符文件作為輸入。XML文件的元素可以提 供啟動任務(wù)或任務(wù)特定組件映射到其的嵌套組件(例如,任務(wù)JSP頁以及 替代的JSP頁)所需的預(yù)定信息項。在一個實施例中,方法接口支持訪問任務(wù)范圍屬性設(shè)置。控制器(例 如DsmTaskController )類可以負(fù)責(zé)處理與任務(wù)相關(guān)的事件以及支持創(chuàng)建和管理邏輯任務(wù)及應(yīng)用150中的每個任務(wù)的內(nèi)容。此控制器將管理諸如激 活、取消激活或關(guān)閉一個或多個任務(wù)之類的特定任務(wù)事件的責(zé)任委托給應(yīng) 用模塊(例如,任務(wù)事件偵聽器)。相應(yīng)地,所述框架監(jiān)視和控制會話中的一個或多個任務(wù)及相關(guān)事件的 設(shè)置、狀態(tài)、執(zhí)行層次以及范圍。因此,在一個實施例中,所述框架負(fù)責(zé) 創(chuàng)建包括任務(wù)視圖(例如JSP)的任務(wù)框架并優(yōu)選地標(biāo)識其他任務(wù)特定的 特征(如任務(wù)幫助)。處理模塊生成將發(fā)送到用戶瀏覽器的響應(yīng)以顯示應(yīng) 用用戶接口的給定任務(wù)部分以及在任務(wù)已存在的情況下更新所述部分。在任務(wù)/子任務(wù)完成時,關(guān)聯(lián)的范圍屬性將被清除并從會話執(zhí)行環(huán)境中 移除。還優(yōu)選地忽略跟蹤范圍上下文的由框架創(chuàng)建的對象結(jié)構(gòu)。在一個實 施例中,定義了從支持框架的角度看來,包括與應(yīng)用150狀態(tài)有關(guān)的信息 的類(例如DsmConsoleContext)。所述類積累在當(dāng)前應(yīng)用^的壽命期 間保留的所有會話范圍名稱。在一個實施例中,servlet或portlet軟件包提供接口和類(例如, HttpSessionBindingListener接口和HttpSessionBindingEvent類)來幫 助管理會話中的資源。例如,可以將對象(如DsmConsoleContext對象) 與會話(如HttpSession)關(guān)聯(lián)(例如結(jié)合)。通過此關(guān)聯(lián),框架可以檢 測會話的終止,以便可以從執(zhí)行環(huán)境移除相應(yīng)的對象。在示例性實施例中,定義的上下文類(例如DsmConsoleContext)引 用會話(例如HttpSession)并且反之亦然。當(dāng)解除定義的上下文類與會 話的關(guān)聯(lián)(解除結(jié)合)時,將丟棄會話與上下文之間的雙重引用。在M 或上下文可用時,這種雙重引用允許框架訪問會話。還可以實現(xiàn)另 一個上下文類(例如WccContext類)以監(jiān)視任務(wù)導(dǎo)航的 當(dāng)前狀態(tài)和屬性范圍。該類監(jiān)視各種執(zhí)行范圍內(nèi)的當(dāng)前被查看的或活動的 任務(wù)并跟蹤按照需要創(chuàng)建或移除的相應(yīng)對象實例(例如DsmTask實例)以 響應(yīng)接收到的請求。根據(jù)一個實施例,當(dāng)啟動應(yīng)用150時,將創(chuàng)建默認(rèn)的任務(wù)并假定此任 務(wù)代表當(dāng)前被查看的任務(wù)。對象類(例如DsmTask類)定義了任務(wù)的屬性存儲器管理信息,并優(yōu)選地維護(hù)與任務(wù)的唯一標(biāo)識符以及在任務(wù)壽命期間 保留在會話范圍中的 一組永久屬性相關(guān)的信息。由于在各種執(zhí)^f亍范圍期間累積任務(wù)的其他信息,因此所述對象類(例如DsmTask類)監(jiān)視任務(wù)組件 的顯示流。因此,該類將監(jiān)視當(dāng)前任務(wù)組件。在某些實施例中,當(dāng)初始打開任務(wù)時,將假定任務(wù)的主要組件代表當(dāng) 前上下文,如相應(yīng)任務(wù)類型的描述符文件中所定義的那樣。所述框架優(yōu)選 地提供給定任務(wù)類型可以根據(jù)事件顯示的主要視圖頁以及零個或多個替代 視圖(例如JSP頁)的定義。在示例性實施例中,默認(rèn)顯示主要頁。根據(jù)一個或多個實施例,可以使用另一個上下文類(例如 DsmContextSwitch類)來切換顯示的當(dāng)前上下文以響應(yīng)預(yù)定的事件或更改 應(yīng)用控制臺的內(nèi)容。例如,瀏覽器視圖可以最初顯示示出了媒體副本表的 頁。該表所支持的操作可以允許用戶例如使用向?qū)韯?chuàng)建媒體組。在一個示例性實施例中,例如,服務(wù)器110創(chuàng)建i某體組表單來代替表 頁以響應(yīng)創(chuàng)建媒體組請求,以便從第一上下文切換到第二上下文。在兩個 上下文之間傳遞的所有信息都可以作為屬性放置在會話中。例如,在新啟 動的組件的壽命期間需要此類屬性來定義初始設(shè)置或?qū)Ш街笇?dǎo)。例如,可 以在自包含的對象實例(例如DsmComponentContext類實例)中累積此類 屬性。當(dāng)框架檢測到切換回啟動組件時,將優(yōu)選地從會話執(zhí)行環(huán)境移除最 低的粒度級別屬性。在其他實施例中,本發(fā)明可以完全以硬件的形式或完全以軟件的形式, 或同時以硬件及軟件元素組合的形式實現(xiàn)。例如,客戶機120和服務(wù)器110 可以包括主要包含硬件組件和軟件代碼的受控計算系統(tǒng)環(huán)境,執(zhí)行所述代 碼以便執(zhí)行實現(xiàn)由本發(fā)明的系統(tǒng)所構(gòu)想的結(jié)果的過程?,F(xiàn)在參考圖4A和4B,其中才艮據(jù)示例性實施例的計算系統(tǒng)環(huán)境包括石更 件環(huán)境1110和軟件環(huán)境1120。硬件環(huán)境1110包括提供軟件執(zhí)行環(huán)境的機 器和設(shè)備;并且軟件提供硬件的執(zhí)行指令,如下文所述。如此處所述,根據(jù)特定的邏輯/功能關(guān)系描述了在所示的硬件元素上執(zhí) 行的軟件元素。但是應(yīng)指出,在軟件中實現(xiàn)的相應(yīng)方法也可以借助經(jīng)過配置和編程的處理器、ASIC (專用集成電路)、FPGA (現(xiàn)場可編程門陣列) 以及DSP (數(shù)字信號處理器)等在硬件中實現(xiàn)。軟件環(huán)境1120分為兩個包括系統(tǒng)軟件1121和應(yīng)用軟件1122的主要 類。系統(tǒng)軟件1121包括控制程序,例如操作系統(tǒng)(OS)和指示硬件如何使 用和處理信息的信息管理系統(tǒng)。在優(yōu)選實施例中,將應(yīng)用150實現(xiàn)為在一個或多個硬件環(huán)境中執(zhí)行以 為客戶機120提交的一個或多個請求服務(wù)的應(yīng)用軟件1122。應(yīng)用軟件1122 可以包括但不限于程序代碼、數(shù)據(jù)結(jié)構(gòu)、周件、駐留軟件、微代碼或任何 其他形式的信息或可以由微控制器讀取、分析或執(zhí)行的例程。在備選實施例中,本發(fā)明可以實現(xiàn)為可從計算機可用或計算機可讀介 質(zhì)訪問的計算機程序產(chǎn)品,所述計算機可用或計算機可讀介質(zhì)提供了可以 被計算機或任何指令執(zhí)行系統(tǒng)使用或與計算機或任何指令執(zhí)行系統(tǒng)結(jié)合的程序代碼。出于在此說明的目的,計算機可用或計算機可讀介質(zhì)可以是任 何能夠包含、存儲、傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)務(wù)使用 或與所述指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合的程序的裝置。所述計算機可讀介質(zhì)可以是電、磁、光、電磁、紅外線或半導(dǎo)體系統(tǒng) (或裝置或設(shè)備)或傳播介質(zhì)。計算機可讀介質(zhì)的實例包括半導(dǎo)體或固態(tài) 存儲器、磁帶、可移動計算機盤、隨M取存儲器(RAM)、只讀存儲器(ROM)、 硬磁盤和光盤。光盤的當(dāng)前實例包括光盤-只讀存儲器(CD-R0M)、光盤-讀/ 寫(CR-R/W)和數(shù)字^L頻盤(DVD)。參考圖4A,應(yīng)用軟件1122的實施例可以實現(xiàn)為計算機軟件,所述計 算機軟件的形式為在數(shù)據(jù)處理系統(tǒng)上執(zhí)行的計算機可讀代碼,所述數(shù)據(jù)處 理系統(tǒng)例如包括通過系統(tǒng)總線1100與一個或多個存儲元件相連的處理器 1101的硬件環(huán)境1110。所述存儲元件可以例如包括本地存儲器1102、存 儲介質(zhì)1106以及高速緩沖存儲器1104。處理器1101將可執(zhí)行代碼從存儲 介質(zhì)1106加栽到本地存儲器1102。高速緩沖存儲器1104提供臨時存儲以 減少從存儲介質(zhì)1106加載要執(zhí)行的代碼的次數(shù)。用戶接口設(shè)備1105 (例如鍵盤、指點設(shè)備等)以及顯示屏1107可以例如直接與計算系統(tǒng)相連,也可以通過中間I/0控制器1103與計算系統(tǒng)相 連。還可以將諸如網(wǎng)絡(luò)適配器之類的通信接口單元1108連接到計算系統(tǒng), 以使得數(shù)據(jù)處理系統(tǒng)能夠通過中間專用網(wǎng)絡(luò)或公共網(wǎng)絡(luò)與其他數(shù)據(jù)處理系 統(tǒng)或遠(yuǎn)程打印機或存儲設(shè)備進(jìn)行通信。有線或無線調(diào)制解調(diào)器和以太網(wǎng)卡 是一些示例性的網(wǎng)絡(luò)適配器類型。在一個或多個實施例中,石更件環(huán)境1110可以不包括上述所有組件,或 者可以包括執(zhí)行其他功能或?qū)嵱贸绦虻慕M件。例如,硬件環(huán)境1110可以是 膝上型計算機或包含在嵌入式系統(tǒng)中的其他便攜式計算設(shè)備,例如機頂盒、 個人數(shù)字助理(PDA)、移動通信裝置(例如無線電話)或其他具有信息處 理和/或數(shù)據(jù)存儲以及通信能力的類似硬件平臺。在某些系統(tǒng)實施例中,通信接口 1108通過發(fā)送和接收電、電磁或光信 號(承載代表包括程序代碼的各種類型信息的數(shù)字?jǐn)?shù)據(jù)流)與其他系統(tǒng)通 信??梢酝ㄟ^遠(yuǎn)程網(wǎng)絡(luò)(例如因特網(wǎng))或備選地通過栽波傳輸來建立所述 通信。參考圖4B,應(yīng)用軟件1122可以包括一個或多個從存儲介質(zhì)1106加栽 到本地存儲器1102之后在系統(tǒng)軟件1121之上執(zhí)行的計算機程序。在客戶 機-服務(wù)器體系結(jié)構(gòu)中,應(yīng)用軟件112 2可以包括客戶機軟件和服務(wù)器軟件。 例如,在本發(fā)明的一個實施例中,客戶機軟件在計算系統(tǒng)IOO上執(zhí)行,而 服務(wù)器軟件在服務(wù)器系統(tǒng)(未示出)上執(zhí)行。軟件環(huán)境1120還可以包括用于訪問通過本地計算網(wǎng)絡(luò)或遠(yuǎn)程計算網(wǎng) 絡(luò)提供的數(shù)據(jù)的瀏覽器軟件1126。進(jìn)而,軟件環(huán)境1120可以包括用于接 收用戶命令和數(shù)據(jù)的用戶接口 1124 (例如,圖形用戶接口 GUI)。要指出 的是,上述硬件和軟件體系結(jié)構(gòu)和環(huán)境僅作為示例,并且可以通過任意類 型的系統(tǒng)體系結(jié)構(gòu)或處理環(huán)境實現(xiàn)本發(fā)明的一個或多個實施例。應(yīng)當(dāng)理解,所述邏輯代碼、程序、模塊、過程、方法以及執(zhí)行每個方 法的各個步驟的順序只是示例性的。取決于實施方式,可以按照任意順序 或并行執(zhí)行各步驟,除非本披露中另行指出。進(jìn)而,所述邏輯代碼并不與 任何特定編程語言相關(guān)或限于特定編程語言,并且可以包括在分布式、非說分布式或多處理環(huán)境中的一個或多個處理器上執(zhí)4亍的一個或多個才莫塊。因此,應(yīng)當(dāng)理解,本發(fā)明可以在所附權(quán)利要求的精神和范圍內(nèi)進(jìn)行任 何修改和改變。所述說明并非旨在是窮舉的或?qū)⒈景l(fā)明限于所披露的精確 形式。所披露的實施例的上述以及其他修改和組合都在本發(fā)明的范圍內(nèi)并 進(jìn)一步由權(quán)利要求及其等同物的完整范圍來限定。
權(quán)利要求
1.一種用于在計算環(huán)境中進(jìn)行存儲器管理的方法,所述方法包括唯一地標(biāo)識與計算環(huán)境中執(zhí)行的應(yīng)用的第一任務(wù)關(guān)聯(lián)的第一對象,其中將存儲器的第一區(qū)域分配給所述第一對象;根據(jù)與所述第一任務(wù)關(guān)聯(lián)的第一執(zhí)行上下文來確定所述第一任務(wù)的第一執(zhí)行范圍,其中所述第一上下文定義了所述第一任務(wù)在執(zhí)行環(huán)境層次內(nèi)的第一預(yù)期壽命;確定所述第一任務(wù)的執(zhí)行范圍的變化,以響應(yīng)監(jiān)視所述第一執(zhí)行上下文;以及解除分配存儲器的所述第一區(qū)域,以響應(yīng)確定不再在所述第一執(zhí)行范圍內(nèi)執(zhí)行所述第一任務(wù)。
2. 如權(quán)利要求1中所述的方法,還包括唯一地標(biāo)識與作為所述第 一任務(wù)的子任務(wù)的第二任務(wù)關(guān)聯(lián)的第二對象,其中將存儲器的第二區(qū)域分配給所述第二對象;根據(jù)與所述第二任務(wù)關(guān)聯(lián)的第二執(zhí)行上下文來確定所述第二任務(wù)的第 二執(zhí)行范圍,其中所述第二上下文定義了所述第二任務(wù)在所述執(zhí)行環(huán)境層次內(nèi)相對于所述第一任務(wù)的第二預(yù)期壽命;確定所述第二任務(wù)的執(zhí)行范圍的變化,以響應(yīng)監(jiān)視所述第二執(zhí)行上下文;以及解除分配存儲器的所述第二區(qū)域,以響應(yīng)確定不再在所述第二執(zhí)行范 圍內(nèi)執(zhí)行所述第二^f壬務(wù)。
3. 如權(quán)利要求2中所述的方法,還包括唯一地標(biāo)識與作為所述第二任務(wù)的子任務(wù)的第三任務(wù)關(guān)聯(lián)的第三對 象,其中將存儲器的第三區(qū)域分配給所述第三對象;以及解除分配存儲器的所述第三區(qū)域,以響應(yīng)確定所述第三任務(wù)不再主動 為請求服務(wù)。
4. 如權(quán)利要求2中所述的方法,其中終止所述第二執(zhí)行上下文以響應(yīng)確定所述第三任務(wù)不再主動為請求服務(wù)。
5. 如權(quán)利要求l中所述的方法,其中終止所述第一執(zhí)行上下文以響應(yīng) 確定所述第二任務(wù)不再主動為請求服務(wù)。
6. 如權(quán)利要求2中所述的方法,其中終止所述第二執(zhí)行上下文以響應(yīng) 確定所述第二任務(wù)的子任務(wù)都沒有主動為請求服務(wù)。
7. 如權(quán)利要求l中所述的方法,其中所述第一任務(wù)在服務(wù)器系統(tǒng)與客 戶機系統(tǒng)之間建立的會話中執(zhí)行,其中終止所述第一執(zhí)行上下文以響應(yīng)確 定所述^"被終止。
8. 如權(quán)利要求3中所述的方法,其中所述第一、第二和第三任務(wù)在通 過通信網(wǎng)絡(luò)而在服務(wù)器系統(tǒng)與客戶機系統(tǒng)之間建立的M中執(zhí)行。
9. 如權(quán)利要求8中所述的方法,其中所述通信網(wǎng)絡(luò)包括因特網(wǎng)。
10. 如權(quán)利要求8中所述的方法,其中解除分配存儲器的所述第一、 第二和第三區(qū)域以響應(yīng)確定所述會話已終止。
11. 一種用于在計算環(huán)境中進(jìn)行存儲器管理的系統(tǒng),所述系統(tǒng)包括 用于唯一地標(biāo)識與計算環(huán)境中執(zhí)行的應(yīng)用的第一任務(wù)關(guān)聯(lián)的第一對象的邏輯單元,其中將存儲器的第一區(qū)域分配給所述第一對象;用于根據(jù)與所述第一任務(wù)關(guān)聯(lián)的第一執(zhí)行上下文來確定所述第一任務(wù)的第一執(zhí)行范圍的邏輯單元,其中所述笫一上下文定義了所述第一任務(wù)在 執(zhí)行環(huán)境層次內(nèi)的第一預(yù)期壽命;用于確定所述第 一任務(wù)的執(zhí)行范圍的變化,以響應(yīng)監(jiān)視所述第 一執(zhí)行 上下文的邏輯單元;以及用于解除分配存儲器的所述第一區(qū)域,以響應(yīng)確定不再在所述第一執(zhí) 行范圍內(nèi)執(zhí)行所述第 一任務(wù)的邏輯單元。
12. 如權(quán)利要求11中所述的系統(tǒng),還包括用于唯一地標(biāo)識與作為所述第 一任務(wù)的子任務(wù)的第二任務(wù)關(guān)聯(lián)的第二 對象的邏輯單元,其中將存儲器的第二區(qū)域分配給所述第二對象;用于才艮據(jù)與所述第二任務(wù)關(guān)聯(lián)的第二執(zhí)行上下文來確定所述第二任務(wù) 的第二執(zhí)行范圍的邏輯單元,其中所述第二上下文定義了所述第二任務(wù)相對于所述第一任務(wù)的第二預(yù)期壽命;用于確定所述第二任務(wù)的執(zhí)行范圍的變化,以響應(yīng)監(jiān)視所述第二執(zhí)行 上下文的邏輯單元;以及用于解除分配存儲器的所述第二區(qū)域,以響應(yīng)確定不再在所述第二執(zhí) 行范圍內(nèi)執(zhí)行所述第二任務(wù)的邏輯單元。
13. 如權(quán)利要求12中所述的系統(tǒng),還包括用于唯一地標(biāo)識與作為所述第二任務(wù)的子任務(wù)的第三任務(wù)關(guān)聯(lián)的第三 對象的邏輯單元,其中將存儲器的第三區(qū)域分配給所述第三對象;以及 用于解除分配存儲器的所述第三區(qū)域,以響應(yīng)確定所述第三任務(wù)不再主動為請求服務(wù)的邏輯單元。
14. 如權(quán)利要求12中所述的系統(tǒng),其中終止所述第二執(zhí)行上下文以響 應(yīng)確定所述第三任務(wù)不再主動為請求服務(wù)。
15. 如權(quán)利要求ll中所述的系統(tǒng),其中終止所述第一執(zhí)行上下文以響 應(yīng)確定所述第二任務(wù)不再主動為請求Ji艮務(wù)。
16. 如權(quán)利要求12中所述的系統(tǒng),其中終止所述第二執(zhí)行上下文以響 應(yīng)確定所述第二任務(wù)的子任務(wù)都沒有主動為請求服務(wù)。
17. 如權(quán)利要求ll中所述的方法,其中所述第一任務(wù)在服務(wù)器系統(tǒng)與 客戶機系統(tǒng)之間建立的會話中執(zhí)行,其中終止所述第一執(zhí)行上下文以響應(yīng) 確定所述4^舌#皮終止。
18. 如權(quán)利要求13中所述的方法,其中所述第一、第二和第三任務(wù)在 通過通信網(wǎng)絡(luò)而在服務(wù)器系統(tǒng)與客戶機系統(tǒng)之間建立的會話中執(zhí)行。
全文摘要
本發(fā)明涉及一種用于在計算環(huán)境中進(jìn)行存儲器管理的方法和系統(tǒng)。所述方法包括唯一地標(biāo)識與計算環(huán)境中執(zhí)行的應(yīng)用的第一任務(wù)關(guān)聯(lián)的第一對象,其中將存儲器的第一區(qū)域分配給所述第一對象;根據(jù)與所述第一任務(wù)關(guān)聯(lián)的第一執(zhí)行上下文來確定所述第一任務(wù)的第一執(zhí)行范圍,其中所述第一上下文定義了所述第一任務(wù)在執(zhí)行環(huán)境層次內(nèi)的第一預(yù)期壽命;確定所述第一任務(wù)的執(zhí)行范圍的變化,以響應(yīng)監(jiān)視所述第一執(zhí)行上下文;以及解除分配存儲器的所述第一區(qū)域,以響應(yīng)確定不再在所述第一執(zhí)行范圍內(nèi)執(zhí)行所述第一任務(wù)。
文檔編號G06F12/02GK101256533SQ20081008092
公開日2008年9月3日 申請日期2008年2月29日 優(yōu)先權(quán)日2007年3月2日
發(fā)明者G·V·馬爾科瓦, H·C·小胡斯費爾特 申請人:國際商業(yè)機器公司