專利名稱::維護(hù)軟件組件的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本公開一般涉及用于重復(fù)利用(recycle)軟件組件的方法、裝置和計(jì)算機(jī)可使用的代碼。更具體地,本公開涉及基于使用水平自動停用(retire)軟件組件。
背景技術(shù):
:傳統(tǒng)的軟件架構(gòu)趨于提前計(jì)劃和剛性,不夠靈活和有彈性來適應(yīng)快速需求改變。除了預(yù)先確定的IF-THEN條件集,它們沒有被制作來處理改變。軟件設(shè)計(jì)假設(shè)所有變量將在部署系統(tǒng)之前已被考慮。實(shí)際上,因?yàn)楦淖儾皇?00%可預(yù)測的,所以軟件必須被周期性地修訂和更新。因此,軟件經(jīng)常用新的版本更新或打補(bǔ)丁,以處理改變。補(bǔ)丁是被設(shè)計(jì)來更新或改正計(jì)算機(jī)程序的問題的小塊軟件。這包括改正程序缺陷(bug)、替換圖形和改進(jìn)可使用性或性能。盡管打算改正問題,但是拙劣設(shè)計(jì)的補(bǔ)丁有時候可引入新的問題(aka,軟件退化)。存在幾種更新軟件的方法。舊的軟件能夠被卸載或移除,并且新的軟件安裝在它的位置。這消耗時間并涉及停機(jī)時間(downtime)??商娲?,軟件能夠被升級,其涉及添加到已經(jīng)存在的框架上。新的軟件版本的部署趨于導(dǎo)致系統(tǒng)停機(jī)時間以及服務(wù)中斷。版本周期也導(dǎo)致對軟件開發(fā)過程的壓力,如示于接近每個版本結(jié)束時處理缺陷的壓力、以及在版本周期的開始時重新發(fā)明車輪的空閑。軟件需要更恒定、平滑并且具有更少中斷地改變。組件化和插件框架基礎(chǔ)結(jié)構(gòu)使得可以用按需求增加更新軟件,如Ecilpse上的軟件更新器和微軟Windows自動更新。(微軟(Microsoft)、Windows、WindowsNT、以及Windows標(biāo)志是微軟公司在美國、其它國家或兩者中的商標(biāo)。)盡管如此,這樣的增加的結(jié)果是不但在軟件覆蓋區(qū)(footprint)的意義上,而且在復(fù)雜性的意義上,用戶的系統(tǒng)隨時間變得越來越大。我們稱該問題為軟件肥胖癥.(obesity)。
發(fā)明內(nèi)容在本公開的一個方面,公開了一種用于維護(hù)軟件組件的方法。該方法包括記錄用于一個或更多軟件組件的第一組使用數(shù)據(jù)。如果用于多個軟件組件的至少一個的第一組使用數(shù)據(jù)符合在使用過期策略中指定的使用標(biāo)準(zhǔn),則自動移除該至少一個軟件組件。此外通過遠(yuǎn)程服務(wù)器提供對移除的軟件組件的訪問。該方法還包括記錄用于移除的軟件組件的第二組使用數(shù)據(jù)。如果第二組使用數(shù)據(jù)符合在重新安置策略中指定的使用標(biāo)準(zhǔn),則重新安置該移除的軟件組件。在本公開的另一個方面,公開了一種用于維護(hù)軟件組件的方法。該方法包括記錄用于一個或更多軟件組件的使用數(shù)據(jù)。如果用于多個軟件組件的至少一個的使用數(shù)據(jù)符合在過期策略中指定的使用標(biāo)準(zhǔn),則自動移除該至少一個軟件組件。該方法還包括通過遠(yuǎn)程服務(wù)器提供對移除的軟件組件的訪問。在本公開的另一個方面,公開了一種用于維護(hù)軟件組件的系統(tǒng)。該系統(tǒng)包括使用數(shù)據(jù)記錄模塊,用于記錄關(guān)于安裝在本地環(huán)境內(nèi)的多個軟件組件的使用的數(shù)據(jù),并將數(shù)據(jù)存儲為使用數(shù)據(jù)。該系統(tǒng)還包括刪除模塊,用于比較使用數(shù)據(jù)和過期策略,并且如果確定多個軟件組件的至少一個的使用低于在過期策略中指定的水平,則自動將該至少一個軟件組件從本地環(huán)境中移除。該系統(tǒng)還包括遠(yuǎn)程訪問模塊,用于將移除的組件重新定位到遠(yuǎn)離本地環(huán)境的位置,并提供對移除的組件的未來訪問。在本公開的另一個方面,公開了一種用于維護(hù)軟件組件的方法。該方法包括記錄用于一個或更多軟件組件的第一組使用數(shù)據(jù)。該方法還包括如果用于多個軟件組件的至少一個的使用數(shù)據(jù)符合在過期策略中指定的標(biāo)準(zhǔn),則自動移除該至少一個軟件組件。該方法還通過遠(yuǎn)程服務(wù)器提供對移除的軟件組件的訪問。該維護(hù)軟件組件的方法還涉及記錄用于移除的軟件組件的第二組使用數(shù)據(jù)。該方法還包括如果第二組使用數(shù)據(jù)符合在重新安置策略中指定的使用標(biāo)準(zhǔn),則重新安置該移除的軟件組件。在一個方面,使用數(shù)據(jù)包括自從軟件組件的上次使用以來的時間長度。在另一方面,使用數(shù)據(jù)包括軟件組件已經(jīng)被訪問的次數(shù)。在另一方面,使用數(shù)據(jù)包括關(guān)于由軟件組件使用硬件資源的信息。在一個方面,使用數(shù)據(jù)存儲為元數(shù)據(jù)。過期策略能夠是全局過期策略,并且應(yīng)用于多個軟件組件的全部或一組??商娲?,過期策略是單獨(dú)的過期策略,并且應(yīng)用于單獨(dú)的軟件組件。在一個方面,過期策略由用戶設(shè)置。在一個方面,在過期策略中指定的使用標(biāo)準(zhǔn)是時間長度,并且如果自從軟件組件的上次使用以來的時間長度大于使用標(biāo)準(zhǔn)中的時間長度,則使用數(shù)據(jù)符合使用標(biāo)準(zhǔn)。在另一個方面,在過期策略中指定的使用標(biāo)準(zhǔn)是次數(shù),并且如果軟件組件已經(jīng)被訪問的次數(shù)小于使用標(biāo)準(zhǔn)中的次數(shù),則使用數(shù)據(jù)符合使用標(biāo)準(zhǔn)。在一個方面,移除軟件組件包括卸載軟件組件。在一個方面,訪問移除的軟件組件通過遠(yuǎn)程運(yùn)行在環(huán)球網(wǎng)(Web)服務(wù)器上的運(yùn)行Web服務(wù)提供。在一個方面,重新安置移除的軟件組件包括重新安裝該軟件組件。參照下面結(jié)合附圖進(jìn)行的描述,本公開的上述特征和目標(biāo)將變得更加明顯,其中相同的標(biāo)號表示相同的元件,并且在附圖中圖1圖示包括賣主(vendor)組件庫和客戶組件庫、以及多個客戶機(jī)的系統(tǒng)的方塊圖,在該系統(tǒng)中能夠?qū)崿F(xiàn)基于使用的軟件組件維護(hù);圖2是基于使用的軟件組件的自動維護(hù)由客戶組件庫和多個客戶機(jī)使用的配置;圖3是通過提供對停用的軟件組件的遠(yuǎn)程訪問、實(shí)現(xiàn)基于使用的軟件組件的自動維護(hù)的配置;圓4是用于根據(jù)本公開維護(hù)軟件組件的過程的流程圖5是使用如以硬件實(shí)現(xiàn)的、基于使用的軟件組件的自動維護(hù)的系統(tǒng)的方塊圖6是用于基于在本地環(huán)境內(nèi)的使用、自動維護(hù)軟件組件的系統(tǒng)的功能方塊圖。具體實(shí)施例方式能夠?qū)崿F(xiàn)用于基于使用維護(hù)軟件組件的自動方法。因?yàn)橛脩舻能浖到y(tǒng)由于不斷增長的功能需求而不能置于"規(guī)定食量"("diet"),所以解決方案是基于需求和使用主動地刪除(pmne)或存檔各組件。軟件系統(tǒng)能夠依賴于需求的改變,通過增加或替換組件、以及刪除不需要的組件逐步改變。圖1圖示其中可以實(shí)現(xiàn)根據(jù)本公開的一個方面自動維護(hù)和重復(fù)利用組件的系統(tǒng)的方塊圖。賣主組件庫102存儲多個軟件組件104,其能夠插入/參與已知的基礎(chǔ)結(jié)構(gòu),優(yōu)選地為工業(yè)標(biāo)準(zhǔn)基礎(chǔ)結(jié)構(gòu)(例如,Windows、Eclipse、.NET等)。例如,賣主103是軟件公司、或工作以生產(chǎn)新軟件組件并隨時間更新現(xiàn)有組件的提供者。如塊104中的各單元所示,在該示例中,賣主103維護(hù)包括^:件組件Q到Z的軟件組件庫102??蛻?05利用由賣主103生產(chǎn)的軟件組件。例如,客戶105可以是銷售產(chǎn)品并使用賣主的軟件以便于銷售他們的產(chǎn)品的公司??蛻?05類似地維護(hù)它自己的軟件組件庫,客戶組件庫106??蛻?05能夠從賣主的庫102中選擇它需要的組件,并將它們存儲在它自己的公司組件庫106中??蛻舻能浖M件由塊108中的單元指示。在該示例中,客戶從賣主的庫102中僅選4奪組件W、X、Y和Z。賣主組件庫102優(yōu)選地由客戶組件庫104通過網(wǎng)絡(luò)連接110或因特網(wǎng)訪問。在一個方面,隨著賣主103更新它的賣主組件庫102中的組件104,相應(yīng)的軟件組件108在客戶組件庫106中被更新。例如,考慮組件Y由賣主更新以處理性能問題。更新的組件Y存儲在賣主的庫102中,并且客戶的庫108中的組件Y被自動更新以反映做出的變化。這能夠通過客戶組件庫102和賣主組件庫106之間的因特網(wǎng)連接110,通過下載新近更新的組件完成。此外,每個客戶可以包括多個客戶機(jī),其利用來自軟件組件庫的各種軟件組件。公司中的每個單獨(dú)的客戶機(jī)系統(tǒng)能夠?qū)⑵谕慕M件下載到能夠主管(host)各組件的基礎(chǔ)結(jié)構(gòu),例如,下載插件到Eclipse或Windows組件。例如,在圖1中圖示了三個客戶機(jī)120、122和124,每個利用不同的軟件組件組。客戶機(jī)120已經(jīng)從軟件組件庫選擇并安裝了組件W、X、Y和Z。客戶機(jī)122已經(jīng)選擇了組件X和Y??蛻魴C(jī)124已經(jīng)選擇了X、Y和Z。在該示例中,客戶機(jī)120、122和124可以是由公司雇員使用的單獨(dú)的桌面型或膝上型計(jì)算機(jī)。在另一個實(shí)施例中,客戶機(jī)(120、122和124)能夠從賣主組件庫102中直接檢索軟件組件,消除對中間客戶組件庫106的需要。例如,客戶機(jī)可以是個人家用計(jì)算機(jī),并且從多個通過因特網(wǎng)連接訪問的各種軟件組件庫直接下載并安裝軟件組件??蛻魴C(jī)可以是任何計(jì)算設(shè)備,包括但不限于桌面型/膝上型計(jì)算機(jī)、蜂窩式電話、手持式設(shè)備或PDA、機(jī)頂盒、服務(wù)器等。隨著時間公司的庫和客戶機(jī)系統(tǒng)將增長并變得越來越大。該增長將給覆蓋區(qū)和組件管理增加開銷。系統(tǒng)如何能清理自身并移除較少使用的組件?換句話說,防止系統(tǒng)肥胖的刪除機(jī)制是什么?由本公開提出的解決方案涉及基于使用水平和/或使用模式,如果確定現(xiàn)有的軟件組件較少需要,則自動地停用它們。在一個實(shí)施例中,這通過簡單的機(jī)制(如將過期策略與一個或更多軟件組件相關(guān)聯(lián))完成。例如,已經(jīng)長時間沒有使用.的軟件組件能夠被設(shè)為自動停用。因此,過期策略能夠指定組件在被停用前能夠持續(xù)而沒有使用的時間長度。作為另一個示例,僅僅已被調(diào)用或使用幾次的軟件組件能夠設(shè)為自動停用。在這種情況下,過期策略可以指定組件被訪問的次數(shù),低于該次數(shù)軟件組件應(yīng)當(dāng)被停用。參照圖2,解釋了用于基于使用自動維護(hù)軟件組件的系統(tǒng)和方法的幾個示例。如上面參照圖1提到的,為了示例性目的,圖示了三個客戶機(jī)120、122和124,每個客戶機(jī)已經(jīng)從客戶組件庫106下載并安裝了各種組件108。為了實(shí)現(xiàn)這樣的基于使用自動維護(hù)軟件組件的系統(tǒng)和方法,記錄了關(guān)于每個軟件組件的使用數(shù)據(jù)。例如,在客戶機(jī)上運(yùn)行的過程監(jiān)視安裝在客戶機(jī)上的軟件組件的使用、以及作為使用數(shù)據(jù)的關(guān)于每個軟件組件使用的數(shù)據(jù)。在該示例中,客戶機(jī)120、122和124分別記錄如在塊210、212和214指示的使用數(shù)據(jù)。在一個方面,使用數(shù)據(jù)存儲為元數(shù)據(jù)。如在塊210、212和214指示的使用數(shù)據(jù)可以存儲為單個文件或多個文件,并且數(shù)據(jù)文件能夠是任何類型。使用能夠以若干方式測量。使用可記錄為自從軟件組件上次使用以來的時間長度。因此,根據(jù)過期策略,已經(jīng)長時間沒有使用的軟件組件可被設(shè)置為停用。使用可簡單地通過軟件組件被調(diào)用或訪問的次數(shù)來測量。使用還可通過訪問軟件組件的客戶機(jī)或用戶的數(shù)量來測量。例如,軟件組件可僅由一個人使用多次,或由許多不同的人使用但不常訪問??商娲?,使用可由被軟件組件利用的硬件資源測量,如存儲器使用、硬盤空間、處理器使用或帶寬使用。如上所述,指定了過期策略。該過期策略包括關(guān)于使用水平的規(guī)則或標(biāo)準(zhǔn),高于或低于它軟件組件可被設(shè)置為停用。在圖2中,客戶機(jī)210、212和214每個分別具有它們自己的過期策略220、222和224。在一個實(shí)施例中,過期策略可以指定如果軟件組件已經(jīng)有預(yù)定的時間段(例如,天數(shù))沒有使用,則它應(yīng)當(dāng)停用。在另一個實(shí)施例中,過期策略能夠指定使用低于一定的水平導(dǎo)致軟件組件被停用。過期策略可以使用不同的使用測量的組合來確定是否軟件組件應(yīng)當(dāng)停用。例如,過期策略可能指定自從上次使用以來的時間長度和被訪問的次數(shù)的組合。過期策略能夠是全局過期策略、單獨(dú)過期策略或其二者的組合。例如,全局過期策略能夠應(yīng)用到各軟件組件的全部或一組。也可設(shè)置單獨(dú)的過期策略以應(yīng)用到單獨(dú)的軟件組件。也可以使用過期策略和單獨(dú)過期策略的組合。例如,全局過期策略可以應(yīng)用到除了指定了單獨(dú)過期策略的那些組件外的全部軟件組件,在該情況下,單獨(dú)過期策略優(yōu)先。過期策略能夠由賣主、客戶、客戶機(jī)或由用戶設(shè)置。因此,在一個方面,每個客戶機(jī)用戶能夠設(shè)置他或她自己的、關(guān)于何時軟件組件應(yīng)當(dāng)被自動設(shè)置為停用的偏好。例如,一個用戶可能要軟件組件在幾個月沒有使用后自動停用,而另一個用戶可能更喜歡將時間期限設(shè)置為幾星期。除了過期策略外,還能夠設(shè)置其它類型的管理各組件的停用的策略。例如,單獨(dú)過期策略可指定不管核心基礎(chǔ)結(jié)構(gòu)組件使用多么少、它將永不過期。在一個方面,每個客戶機(jī)記錄它自己的使用數(shù)據(jù)并設(shè)置它自己的過期策略。例如,客戶機(jī)120已經(jīng)從軟件組件庫106下載并安裝了軟件組件W、X、Y和Z。客戶機(jī)120被配置為監(jiān)視安裝在它的系統(tǒng)上的各軟件組件,并記錄涉及每個它的安裝的軟件組件的使用的使用數(shù)據(jù)210。此外,客戶機(jī)120被配置有關(guān)于安裝的各軟件組件的過期策略220。該過期策略最初可以設(shè)置為一般過期策略,并且以后由用戶根據(jù)他的或她的偏好修訂??紤]如由客戶機(jī)120記錄的使用數(shù)據(jù)210的示例指示以下<table><row><column>軟件組件</column><column>自從上次使用以來的時間</column><column>上個月被調(diào)用的次數(shù)</column><column>平均處理器使用</column></row><row><column></column><column>w</column><column>1天3小時</column><column>12</column><column>n/a</column></row><row><column></column><column>X</column><column>93天</column><column>0</column><column>n/a</column></row><row><column></column><column>Y</column><column>2小時</column><column>53</column><column>高</column></row><row><column></column><column>z</column><column>2天4小時</column><column>5</column><column>低</column></row><table>該使用數(shù)據(jù)指示軟件組件X上次在三個多月前使用,而其它軟件組件最近被使用。因此可以設(shè)置過期策略以自動使組件X過期。在另一個方面,以與每個客戶機(jī)類似的方式,軟件組件庫自身能夠維護(hù)和重復(fù)利用它自己的軟件組件。因此,在一個方面,客戶組件庫記錄它自己的使用數(shù)據(jù)230,并且具有它自己的過期策略232。例如,由多個客戶機(jī)的每個收集的使用數(shù)據(jù)220、222和224能夠由客戶庫收集,并作為整體分析。例如,假設(shè)使用數(shù)據(jù)230指示特定的組件(組件W),已經(jīng)有一段時間沒有由作為整體的組(客戶機(jī)120、122和124共同地)使用。例如,在圖2中,組件W只由客戶機(jī)120而不由客戶機(jī)122和124利用。因此,可以確定該軟件組件應(yīng)該從軟件組件庫中一起停用??蛻艚M件庫106可從多個客戶機(jī)(在該示例中',客戶機(jī)120、122和124)中收集使用數(shù)據(jù),并且確定組件W沒有被充分使用以證明將其保持在該庫中是正當(dāng)?shù)?。此外,使用?shù)據(jù)能夠被傳送回賣主。在一個方面,停用軟件組件的動作涉及移除或卸載該組件。然而,因?yàn)闆]有保證停用的組件將永不再被調(diào)用,所以優(yōu)選仍然提供對該組件的訪問。因此,在一個實(shí)施例中,該組件被打包(wrap)為Web服務(wù),并且使得從遠(yuǎn)程位置(如內(nèi)部網(wǎng)絡(luò)服務(wù)器)可訪問。在未必有的情況下,由客戶機(jī)再次調(diào)用該停用的服務(wù),該組件僅僅遠(yuǎn)程地運(yùn)行為Web服務(wù),具有更慢的性能。圖3圖示如何能夠通過遠(yuǎn)程服務(wù)器310的使用仍提供對停用的組件的訪問。在一個方面,通過Web服務(wù)器提供訪問。遠(yuǎn)程服務(wù)器310可以例如運(yùn)行在與客戶和/或客戶機(jī)相關(guān)聯(lián)的局域網(wǎng)上。可替代地,遠(yuǎn)程服務(wù)器310可以位于局域網(wǎng)外部,但通過因特網(wǎng)仍然可訪問。例如,賣主可以通過遠(yuǎn)程服務(wù)器310提供對軟件組件的遠(yuǎn)程訪問。通常,組件具有表現(xiàn)其行為的接口或應(yīng)用程序接口(API)。其它組件能夠使用其接口而不必知道該組件的詳細(xì)實(shí)現(xiàn)來調(diào)用該組件。該接口能夠由Web服務(wù)打包機(jī)(wrapper)使用來將該組件打包到Web服務(wù)中。例如,基于協(xié)議(如簡單目標(biāo)訪問協(xié)議(SOAP))的可擴(kuò)展標(biāo)記語言(XML),能夠用于通過超文本傳輸協(xié)議(HTTP)提供對各組件的訪問。SOAP提供了在運(yùn)行在不同操作系統(tǒng)上、具有不同技術(shù)和編程語言的各應(yīng)用之間通信的方法。因此,Web服務(wù)打包機(jī)將SOAP封裝(envelop)放置在接口周圍,以將對組件的請求/來自組件的響應(yīng)變換為XML消息。可替代地,Web服務(wù)定義能夠以WSDL(Web服務(wù)定義語言)產(chǎn)生,該WSDL能夠用于生成調(diào)用服務(wù)/組件的代理客戶機(jī)。各種傳輸協(xié)議由具有最流行的http的Web服務(wù)支持。其它技術(shù)當(dāng)然能夠用于將各組件(如數(shù)據(jù)庫存儲的程序)轉(zhuǎn)換為Web服務(wù)。除Web服務(wù)調(diào)用以外的替代調(diào)用方法包括遠(yuǎn)程程序調(diào)用(RPC)或CORBA組件模型調(diào)用。更復(fù)雜的機(jī)制也能用于確定何時軟件組件應(yīng)當(dāng)被停用。一種更復(fù)雜的機(jī)制涉及將組件的使用歷史動態(tài)地記錄在它的使用數(shù)據(jù)中,并且使用該使用歷史來計(jì)算統(tǒng)計(jì)模式。例如,名為打折的軟件組件可能趨于在圣誕節(jié)之后以及在每個季度末被大量地使用。該系統(tǒng)使用該歷史模式統(tǒng)計(jì)來動態(tài)地將該組件移入和移出系統(tǒng)。當(dāng)打折季節(jié)結(jié)束時,該軟件組件停用并放入儲備作為服務(wù)器上的Web服務(wù)。該元數(shù)據(jù)能夠位于本地系統(tǒng)或遠(yuǎn)程庫或兩者中。當(dāng)打折季節(jié)再次來到時,該軟件組件能夠帶回到本地環(huán)境并重新安裝。相同的機(jī)制能夠用于刪除公司的組件庫中的各共享組件。這些機(jī)制保證軟件系統(tǒng)"記得"它的各組件的使用歷史,并能夠根據(jù)需要反向恢復(fù)各組件的版本。因此,能夠解決反向兼容性。調(diào)用儲備的組件將耗費(fèi)額外時間并影響系統(tǒng)性能,但將減少系統(tǒng)破損(breakage),并防止許多"空指針"錯誤。歷史元數(shù)據(jù)也能夠使用與上述相同的機(jī)制刪除,該機(jī)制要求創(chuàng)建該歷史元數(shù)據(jù)的另一層元數(shù)據(jù)。創(chuàng)建元lt據(jù)層的該循環(huán)提升了上述機(jī)制的可測量性;然而,實(shí)際上,元數(shù)據(jù)的額外層將不可避免地減慢系統(tǒng)性能。自動維護(hù)軟件組件的系統(tǒng)和方法的另一個方面是重新安置之前已經(jīng)被停用的軟件組件的能力。例如,一旦組件已經(jīng)從使用中停用,如果使用足夠頻繁或大量(依賴于用戶的策略),則該組件應(yīng)當(dāng)被帶回或重新安裝。軟件系統(tǒng)因此能夠通過重復(fù)利用軟件組件的概念適合它的使用環(huán)境,該軟件組件重復(fù)利用的概念是當(dāng)它們使用不夠頻繁時將其放入存儲,而當(dāng)它們再次變得有用時從存儲中檢索它們。例如,通過Web服務(wù)被使得可遠(yuǎn)程訪問的停用的組件能夠轉(zhuǎn)換回到"本地"組件一僅僅是上述組件的Web服務(wù)打包過程的相反過程。這不意味著該Web服務(wù)將被刪除。組件的兩種表示都能存在于不同位置一作為遠(yuǎn)程Web服務(wù)或作為本地的本地組件。是由用戶的策略決定是否保持兩種表示。這可以是較小的便攜式計(jì)算機(jī)設(shè)備的特定的優(yōu)勢。只有被頻繁使用的組件將留在本地,不經(jīng)常使用的額外的組件將被向遠(yuǎn)程推。這樣,無線設(shè)備能夠小而輕,但又強(qiáng)大。不同用戶的設(shè)備基于該用戶的使用模式也能夠表現(xiàn)非常不同。圖4是圖示在基于使用自動維護(hù)軟件組件中涉及的基本步驟的流程圖。監(jiān)視了安裝在系統(tǒng)上的多個軟件組件的使用,并且記錄了關(guān)于每個軟件組件的使用的數(shù)據(jù)。在塊410指示了監(jiān)視系統(tǒng)內(nèi)的各種軟件組件使用的步驟。如在塊420所示,然后使用數(shù)據(jù)被存儲。在一個方面,使用數(shù)據(jù)被存儲為元數(shù)據(jù),并且與一個或更多軟件組件相關(guān)聯(lián)。如在步驟430所示,然后鑒于過期策略分析使用數(shù)據(jù)。過期策略可以是應(yīng)用于軟件組件的全部或一組的全局過期策略,或應(yīng)用于單獨(dú)的軟件組件的單獨(dú)的過期策略。每個單獨(dú)的組件的使用數(shù)據(jù)與應(yīng)用于該組件的可應(yīng)用的過期策略比較。這可以涉及比較超過一個過期策略,例如全局和單獨(dú)的過期策略。在塊435進(jìn)行關(guān)于在一個或更多過期策略中指定的標(biāo)準(zhǔn)是否由使用數(shù)據(jù)符合的確定。如在塊440所示,如果確定在過期策略中指定的標(biāo)準(zhǔn)已經(jīng)符合,則停用該組件。在一個方面,停用組件涉及將該組件從系統(tǒng)移除或卸載。為了在該組件再次被調(diào)用的情況下提供對其繼續(xù)的訪問,于是通過一些其它資源使得該組件可用。例如,在一個方面,該組件被移到遠(yuǎn)程位置如Web服務(wù)器,并且通過Web服務(wù)提供訪問。在塊450指示了對停用后的組件提供遠(yuǎn)程訪問的步驟。然而,停用的組件的使用仍然能夠被監(jiān)視,并且如果保證停用的組件的使用,則軟件組件能夠潛在地被重新安置。因此,經(jīng)由遠(yuǎn)程訪問監(jiān)視了停用的組件的使用(460),并且存儲了涉及停用的組件的使用數(shù)據(jù)(470)。重新安置策略用于確定是否該使用保證停用的組件的重新安置。重新安置策略類似于過期策略。因此,鑒于重新安置策略分析使用數(shù)據(jù)(480),并且如果使用數(shù)據(jù)符合在重新安置策略中指定的標(biāo)準(zhǔn),則停用的組件能夠重新安置,如塊4卯所示。在一個方面,重新安置涉及在本地環(huán)境重新安裝軟件組件。一旦組件已經(jīng)被重新安置,該循環(huán)就再次啟動。圖5圖示基于使用自動維護(hù)和重復(fù)利用軟件組件的系統(tǒng)500的方塊圖。在一個實(shí)施例中,系統(tǒng)500適于存儲和/或執(zhí)行程序代碼,并且使用通用計(jì)算機(jī)或任何其它硬件等價物實(shí)現(xiàn)。因此,系統(tǒng)500包括處理器502、存儲器506(例如隨機(jī)存取存儲器("RAM")和/或只讀存儲器("ROM"))、組件重復(fù)利用模塊508和各種I/O設(shè)備504。處理器502通過系統(tǒng)總線直接或間接地耦合到存儲器506。存儲器506能夠包括在程序代碼的實(shí)際執(zhí)行期間采用的本地存儲器、大容量存儲、和/或高速緩沖存儲器,其提供至少一些程序代碼的暫時存儲,為了減少在執(zhí)行期間代碼必須從大容量存儲中檢索的次數(shù)。I/O設(shè)備504能夠直接、或通過中間的輸入/輸出控制器耦合到系統(tǒng)500。此外,1/0設(shè)備504能夠包括4建盤、鍵區(qū)(keypad)、鼠標(biāo)、用于捕獲語音命令的麥克風(fēng)、指示設(shè)備、以及其它將由本領(lǐng)域普通技術(shù)人員之一識別的用戶輸入設(shè)備。此外,1/O設(shè)備504能夠包括接收機(jī)、發(fā)送機(jī)、揚(yáng)聲器、顯示器、圖像捕獲傳感器、生物傳感器等。此外,1/O設(shè)備504能夠包括存儲設(shè)備如帶驅(qū)動器、軟盤驅(qū)動器、硬盤驅(qū)動器、致密盤("CD")驅(qū)動器等。.網(wǎng)絡(luò)適配器也可以耦合到系統(tǒng)500,以使得系統(tǒng)500能夠通過中間的私有或公共網(wǎng)絡(luò)變?yōu)轳詈系狡渌到y(tǒng)、遠(yuǎn)程打印機(jī)或存儲設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是幾種當(dāng)前可用的網(wǎng)絡(luò)適配器的類型。應(yīng)當(dāng)理解的是,在此描述的方法和系統(tǒng)能夠采用全硬件實(shí)施例、全軟件實(shí)施例、或包括硬件和軟件元件的實(shí)施例的形式。如果軟件被用于實(shí)現(xiàn)該方法或系統(tǒng),則該軟件能夠包括但不限于固件、駐留軟件、微代碼等。此外,該方法和/或系統(tǒng)能夠采用計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)產(chǎn)品從提供程序代碼用于由或結(jié)合計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用的、計(jì)算機(jī)可使用或計(jì)算機(jī)可讀的介質(zhì)可訪問。為了該描述的目的,計(jì)算機(jī)可使用或計(jì)算機(jī)可讀的介質(zhì)能夠是任何裝置,其能夠包括、存儲、通信、傳播或傳送用于由或結(jié)合指令執(zhí)行系統(tǒng)、裝置、或設(shè)備使用的程序。該介質(zhì)能夠是電、磁、光、電磁、紅外、或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲器、磁帶、可移除計(jì)算才幾盤、RAM、ROM、剛性/磁盤和光盤。當(dāng)前的光盤示例包括CD-只讀存儲器("CD-ROM")、CD-讀/寫("CD-R/W")和DVD。圖6更詳細(xì)地圖示圖5的組件維護(hù)模塊。多個軟件組件602存在于本地環(huán)境中。各軟件組件可以例如安裝在如之前圖中所示的客戶機(jī)計(jì)算機(jī)120、122或124之一上??商娲兀鬈浖M件能夠是在客戶組件庫106中發(fā)現(xiàn)的軟件組件。使用記錄模塊604能夠監(jiān)視多個軟件組件602的使用。如上所述,能夠使用許多測量包括但不限于組件被調(diào)用次數(shù)、用戶訪問該組件次數(shù)、自從上次被使用以來的時間長度、以及資源消耗(如盤空間、存儲器、處理器利用等)來監(jiān)視使用。然后關(guān)于每個軟件組件的使用數(shù)據(jù)606被存儲。過期策略608也被存儲。組件刪除模塊610訪問使用數(shù)據(jù)606和過期策略608,以確定軟件組件的使用是否符合在過期策略中指定的標(biāo)準(zhǔn)。這可以通過簡單的比較(如是否使用水平高于或低于在過期正常中指定的值)完成??商娲?,在使用模式的情況下,這可以涉及如在上面已經(jīng)描述的更復(fù)雜的統(tǒng)計(jì)分析。如果已經(jīng)確定軟件組件的使用數(shù)據(jù)符合在過期策略中指定的標(biāo)準(zhǔn),則組件刪除組件停用該組件。這能夠通過將軟件組件從環(huán)境中移除或卸載完成。在本公開的一個方面,遠(yuǎn)程訪問打包機(jī)被用來從遠(yuǎn)程位置提供將來對停用的組件的訪問。盡管設(shè)備和方法已經(jīng)根據(jù)目前認(rèn)為是最實(shí)用和優(yōu)選的實(shí)施例描述,但是要理解的是,本公開不需要限于公開的實(shí)施例。意圖在于覆蓋包括在權(quán)利要求的精神和范圍內(nèi)的各種修改和類似安排,該權(quán)利要求的范圍應(yīng)當(dāng)符合最廣的解釋以便包含所有這樣的修改和類似結(jié)構(gòu)。本公開包括權(quán)利要求的任何和全部實(shí)施例。權(quán)利要求1.一種用于維護(hù)軟件組件的方法,包括記錄用于多個軟件組件的一個或更多的使用數(shù)據(jù);如果用于多個軟件組件的至少一個的使用數(shù)據(jù)符合在過期策略中指定的使用標(biāo)準(zhǔn),則自動移除該至少一個軟件組件;以及通過遠(yuǎn)程服務(wù)器提供對移除的軟件組件的訪問。2.如權(quán)利要求1所述的用于維護(hù)軟件組件的方法,其中使用數(shù)據(jù)存儲為元數(shù)據(jù)。3.如權(quán)利要求1所述的用于維護(hù)軟件組件的方法,其中移除軟件組件包括卸載。4.如權(quán)利要求1所述的用于維護(hù)軟件組件的方法,其中使用數(shù)據(jù)包括自從軟件組件上次使用以來的時間長度。5.如權(quán)利要求1所述的用于維護(hù)軟件組件的方法,其中使用數(shù)據(jù)包括軟件組件已經(jīng)被訪問的次數(shù)。6.如權(quán)利要求1所述的用于維護(hù)軟件組件的方法,其中使用數(shù)據(jù)包括關(guān)于通過軟件組件的硬件資源的利用的信息。7.如權(quán)利要求1所述的用于維護(hù)軟件組件的方法,其中過期策略是全局過期策略,并且應(yīng)用于多個軟件組件的全部或一組。8.如權(quán)利要求1所述的用于維護(hù)軟件組件的方法,其中過期策略是單獨(dú)的過期策略,并且應(yīng)用于單獨(dú)的軟件組件。9.一種用于維護(hù)軟件組件的系統(tǒng),包括使用數(shù)據(jù)記錄模塊,用于記錄關(guān)于安裝在本地環(huán)境內(nèi)的多個軟件組件的使用的數(shù)據(jù),并存儲該數(shù)據(jù)作為使用數(shù)據(jù);刪除模塊,用于將使用數(shù)據(jù)與過期策略比較,并且如果確定多個軟件組件的至少一個的使用低于在過期策略中指定的水平,則自動將該至少一個軟件組件從本地環(huán)境中移除;以及遠(yuǎn)程訪問模塊,用于將移除的組件重新定位到遠(yuǎn)離本地環(huán)境的位置,并才是供對移除的組件的未來訪問。10.如權(quán)利要求9所述的系統(tǒng),其中遠(yuǎn)離本地環(huán)境的位置是環(huán)球網(wǎng)服務(wù)器。11.如權(quán)利要求9所述的系統(tǒng),其中通過環(huán)球網(wǎng)服務(wù)提供對移除的組件的i方問。12.—種用于維護(hù)軟件組件的方法,包括記錄用于多個軟件組件的一個或更多的第一組使用數(shù)據(jù);以及如果用于多個軟件組件的至少一個的第一組使用數(shù)據(jù)符合在過期策略中指定的標(biāo)準(zhǔn),則自動移除該至少一個軟件組件;通過遠(yuǎn)程服務(wù)器提供對移除的組件的訪問;記錄用于移除的軟件組件的第二組使用數(shù)據(jù);以及如果第二組使用數(shù)據(jù)符合在重新安置策略中指定的使用標(biāo)準(zhǔn),則自動重新安置該移除的軟件組件。13.如權(quán)利要求12所述的用于維護(hù)軟件組件的方法,其中使用數(shù)據(jù)包括自從軟件組件上次使用以來的時間長度。14.如權(quán)利要求12所述的用于維護(hù)軟件組件的方法,其中使用數(shù)據(jù)包括軟件組件已經(jīng)被訪問的次數(shù)。15.如權(quán)利要求12所述的用于維護(hù)軟件組件的方法,其中使用數(shù)據(jù)包括關(guān)于通過軟件組件的硬件資源的利用的信息。16.如權(quán)利要求12所述的用于維護(hù)軟件組件的方法,其中過期策略是全局過期策略,并且應(yīng)用于多個軟件組件的全部或一組。17.如權(quán)利要求12所述的用于維4>軟件組件的方法,其中過期策略是單獨(dú)的過期策略,并且應(yīng)用于單獨(dú)的軟件組件。18.如權(quán)利要求12所述的用于維護(hù)軟件組件的方法,其中過期策略由軟件組件的用戶設(shè)置。19.如權(quán)利要求13所述的用于維護(hù)軟件組件的方法,其中在過期策略中指定的使用標(biāo)準(zhǔn)是時間長度,并且如果自從軟件組件的上次使用以來的時間長度大于使用標(biāo)準(zhǔn)中的時間長度,則使用數(shù)據(jù)符合使用標(biāo)準(zhǔn)。20.如權(quán)利要求14所述的用于維護(hù)軟件組件的方法,其中在過期策略中指定的使用標(biāo)準(zhǔn)是數(shù)目,并且如果軟件組件已經(jīng)被訪問的次數(shù)小于使用標(biāo)準(zhǔn)中的數(shù)目,則使用數(shù)據(jù)符合使用標(biāo)準(zhǔn)。21.如權(quán)利要求12所述的用于維護(hù)軟件組件的方法,其中對移除的軟件組件的訪問通過遠(yuǎn)程運(yùn)行的環(huán)球網(wǎng)服務(wù)提供。22.如權(quán)利要求12所述的用于維護(hù)軟件組件的方法,其中重新安置移除的軟件組件包括重新安裝該軟件組件。23.—種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可使用的介質(zhì),其具有計(jì)算機(jī)可讀的程序,其中該計(jì)算機(jī)可讀的程序當(dāng)在計(jì)算機(jī)上被執(zhí)行時導(dǎo)致計(jì)算機(jī)執(zhí)行之前的各方法權(quán)利要求所述的任一種方法。全文摘要在本公開的一個方面,公開了一種用于維護(hù)和重復(fù)利用軟件組件的計(jì)算機(jī)程序產(chǎn)品、系統(tǒng)和方法。記錄用于一個或多個軟件的第一組使用數(shù)據(jù)。如果用于多個軟件組件的至少一個的第一組使用數(shù)據(jù)符合在過期策略中指定的標(biāo)準(zhǔn),則自動移除該至少一個軟件組件。然后通過遠(yuǎn)程服務(wù)器提供對移除的組件的訪問?,F(xiàn)在記錄用于移除的軟件組件的第二組使用數(shù)據(jù)。如果第二組使用數(shù)據(jù)符合在重新安置策略中指定的使用標(biāo)準(zhǔn),則自動重新安置該移除的軟件組件。文檔編號G06F9/44GK101206573SQ20071018795公開日2008年6月25日申請日期2007年11月16日優(yōu)先權(quán)日2006年12月22日發(fā)明者勞倫斯·E·英格蘭,夏晨紅申請人:國際商業(yè)機(jī)器公司