專利名稱:使用共享高速緩存更新版本化軟件的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及例如在軟件更新過程中用版本化軟件的新版本來替換版本化軟件的現(xiàn)有版本
背景技術(shù):
許多軟件組件具有相關(guān)聯(lián)的數(shù)據(jù)儲(chǔ)存,在其中存儲(chǔ)由軟件組件使用、產(chǎn)生或處理的數(shù)據(jù)。雖然技術(shù)人員也能設(shè)想出其他形式的數(shù)據(jù)儲(chǔ)存,但通常,數(shù)據(jù)儲(chǔ)存可以是數(shù)據(jù)庫。數(shù)據(jù)儲(chǔ)存具有邏輯結(jié)構(gòu)或模式(schema),其定義例如關(guān)于對象存儲(chǔ)哪些信息或?qū)傩?。每個(gè)對象都有按照模式存儲(chǔ)的相關(guān)聯(lián)的數(shù)據(jù)。當(dāng)要更新軟件時(shí),出現(xiàn)了ー種常見的情況。除了新的軟件外,典型地,還需要新數(shù)據(jù)儲(chǔ)存,并且新數(shù)據(jù)儲(chǔ)存可能具有與現(xiàn)有數(shù)據(jù)儲(chǔ)存不同的模式。一般而言,新版本軟件接管現(xiàn)有版本軟件的操作,并且作為結(jié)果,在新版本軟件能夠成為可操作的之前,現(xiàn)有數(shù)據(jù)儲(chǔ)存中的數(shù)據(jù)必須轉(zhuǎn)換為新數(shù)據(jù)儲(chǔ)存模式并存儲(chǔ)在新數(shù)據(jù)儲(chǔ)存中。目前有許多可用的軟件更新方法。在劃分集群(split cluster)的布置中,具有集群中間件的兩個(gè)服務(wù)器提供有被鏡像和共享的存儲(chǔ)盤。這種布置允許如果檢測到第一主服務(wù)器的硬件故障就啟動(dòng)在第二集群的服務(wù)器上的軟件。在升級(jí)軟件的過程的期間,必須劃分盤以轉(zhuǎn)換數(shù)據(jù),并且,在此時(shí)期內(nèi)數(shù)據(jù)不能被改變,否則,當(dāng)升級(jí)的主機(jī)被提升為集群中的主服務(wù)器時(shí),會(huì)出現(xiàn)不一致。數(shù)據(jù)改變凍結(jié)的這段時(shí)期可占用較長時(shí)間,甚至是幾個(gè)小時(shí),并且在此時(shí)期內(nèi)系統(tǒng)視為在功能上是不可用的。在另ー種升級(jí)方法中,安裝了另一臺(tái)主機(jī)。來自正在操作的主機(jī)的數(shù)據(jù)被備份。然后,數(shù)據(jù)被恢復(fù),并且開始轉(zhuǎn)換。在轉(zhuǎn)換后,原來的主機(jī)被關(guān)閉,并且另一臺(tái)提升為主要的主機(jī)。再一次,在數(shù)據(jù)轉(zhuǎn)換期間,在原來系統(tǒng)上的應(yīng)用不能改變數(shù)據(jù)。從上面的描述中可以看出,一般來說,現(xiàn)有軟件版本的軟件組件必須停止,并且新軟件版本的新實(shí)例必須啟動(dòng)。然后新版本軟件創(chuàng)建帶有相關(guān)聯(lián)的模式的新版本數(shù)據(jù)儲(chǔ)存,并用來自現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的數(shù)據(jù)填充新版本數(shù)據(jù)儲(chǔ)存。一旦新版本數(shù)據(jù)儲(chǔ)存已經(jīng)被來自現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的數(shù)據(jù)填充,新版本軟件就能開始操作,并且可以去除現(xiàn)有版本軟件。然而,在現(xiàn)有版本軟件組件被停止和新版本軟件的新實(shí)例被啟動(dòng)的這段時(shí)期內(nèi),軟件將不提供服務(wù)。此外,在將現(xiàn)有版本數(shù)據(jù)儲(chǔ)存轉(zhuǎn)換為新版本數(shù)據(jù)儲(chǔ)存時(shí)期內(nèi),在現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中的數(shù)據(jù)必須不改變。因此,改變數(shù)據(jù)儲(chǔ)存中的數(shù)據(jù)的軟件應(yīng)用在此時(shí)期內(nèi)無法訪問數(shù)據(jù)儲(chǔ)存,因此在功能上是不可用的。此外,在一些升級(jí)方法中,需要復(fù)雜的和昂貴的硬件基礎(chǔ)設(shè)施以方便升級(jí)過程,從而增加了系統(tǒng)成本。此外,在鏡像盤必須在升級(jí)過程期間劃分的系統(tǒng)(例如上文所述的劃分集群系統(tǒng))中,盤的劃分造成在升級(jí)過程中的増加的復(fù)雜性和出錯(cuò)的風(fēng)險(xiǎn)。本發(fā)明試圖緩解現(xiàn)有技術(shù)中的至少ー些問題,并提供用版本化軟件的新版本來替換版本化軟件的現(xiàn)有版本的新方法。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了ー種方法,其使用共享高速緩存以新版本軟件和相關(guān)聯(lián)的新版本數(shù)據(jù)儲(chǔ)存來替換現(xiàn)有版本軟件和相關(guān)聯(lián)的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存,其中,軟件被版本化,并且每ー個(gè)版本的軟件在共享高速緩存內(nèi)具有用于存儲(chǔ)至少包括軟件識(shí)別信息和版本信息的數(shù)據(jù)的相關(guān)聯(lián)的區(qū)域。在本方法的數(shù)據(jù)儲(chǔ)存改變過程的第一步驟中,創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存,該新版本數(shù)據(jù)儲(chǔ)存具有新版本數(shù)據(jù)儲(chǔ)存模式,并包含在數(shù)據(jù)遷移階段的開始的起始點(diǎn)處從現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中的數(shù)據(jù)導(dǎo)出的數(shù)據(jù)。在本方法的數(shù)據(jù)儲(chǔ)存改變過程的第二步驟中,將改變信息轉(zhuǎn)換為與對新版本數(shù)據(jù)儲(chǔ)存的相應(yīng)改變有關(guān)的重演(replay)信息,該改變信息由現(xiàn)有版本軟件存儲(chǔ)在共享高速緩存中,并且與在創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存的步驟期間由現(xiàn)有版本軟件做出的、對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的改變有夫。在本方法的數(shù)據(jù)改變過程的第三步驟中,在數(shù)據(jù)儲(chǔ)存改變過程的重演階段期間使用重演信息更新新版本數(shù)據(jù)儲(chǔ)存。 根據(jù)本發(fā)明的第二方面,提供了包括指令的可機(jī)讀介質(zhì),該指令引起處理器執(zhí)行ー種方法,其使用共享高速緩存以新版本軟件和相關(guān)聯(lián)的新版本數(shù)據(jù)儲(chǔ)存來替換現(xiàn)有版本軟件和相關(guān)聯(lián)的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存,其中,軟件被版本化,并且每ー個(gè)版本的軟件在共享高速緩存內(nèi)具有用于存儲(chǔ)至少包括軟件識(shí)別信息和版本信息的數(shù)據(jù)的相關(guān)聯(lián)的區(qū)域。在本方法的數(shù)據(jù)儲(chǔ)存更新過程的第一步驟中,創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存,該新版本數(shù)據(jù)儲(chǔ)存具有新版本數(shù)據(jù)儲(chǔ)存模式,包含在數(shù)據(jù)遷移階段的開始的起始點(diǎn)處從現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中的數(shù)據(jù)導(dǎo)出的數(shù)據(jù)。在本方法的數(shù)據(jù)儲(chǔ)存改變過程的第二步驟中,將改變信息轉(zhuǎn)換為與對新版本數(shù)據(jù)儲(chǔ)存的相應(yīng)改變有關(guān)的重演信息,該改變信息由現(xiàn)有版本軟件存儲(chǔ)在共享高速緩存中,并且與在創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存的步驟期間由現(xiàn)有版本軟件做出的、對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的改變有夫。在本方法的數(shù)據(jù)改變過程的第三步驟中,在數(shù)據(jù)儲(chǔ)存改變過程的重演階段期間使用重演信息更新新版本數(shù)據(jù)儲(chǔ)存。根據(jù)本發(fā)明的第三個(gè)方面,提供了具有存儲(chǔ)在可機(jī)讀介質(zhì)上的版本化軟件程序的網(wǎng)絡(luò)單元。網(wǎng)絡(luò)單元還具有與存儲(chǔ)在存儲(chǔ)介質(zhì)上的版本化軟件程序相關(guān)聯(lián)的數(shù)據(jù)儲(chǔ)存。網(wǎng)絡(luò)單元還具有與在高速緩存存儲(chǔ)介質(zhì)上形成的軟件程序相關(guān)聯(lián)的高速緩存區(qū),高速緩存區(qū)在其內(nèi)存儲(chǔ)有數(shù)據(jù),該數(shù)據(jù)至少包括相關(guān)聯(lián)的軟件程序的軟件識(shí)別信息和版本信息,并且高速緩存區(qū)是共享高速緩存的一部分。版本化軟件包括創(chuàng)建新數(shù)據(jù)儲(chǔ)存功能,其在ー種方法的數(shù)據(jù)儲(chǔ)存改變過程期間可操作成創(chuàng)建數(shù)據(jù)儲(chǔ)存,該方法以版本化軟件程序和與版本化軟件程序相關(guān)聯(lián)的數(shù)據(jù)儲(chǔ)存來替換現(xiàn)有版本軟件和相關(guān)聯(lián)的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存,數(shù)據(jù)儲(chǔ)存具有數(shù)據(jù)儲(chǔ)存模式,數(shù)據(jù)儲(chǔ)存包含在數(shù)據(jù)遷移階段的開始的起始點(diǎn)處從現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中的數(shù)據(jù)導(dǎo)出的數(shù)據(jù)。版本化軟件還包括創(chuàng)建重演信息功能,其在數(shù)據(jù)儲(chǔ)存改變過程期間可操作成將改變信息轉(zhuǎn)換為與對數(shù)據(jù)儲(chǔ)存的相應(yīng)改變有關(guān)的重演信息,該改變信息由現(xiàn)有版本軟件存儲(chǔ)在共享高速緩存中,并且與在創(chuàng)建數(shù)據(jù)儲(chǔ)存的步驟期間由現(xiàn)有版本軟件做出的、對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的改變有關(guān)。版本化軟件還包括更新數(shù)據(jù)儲(chǔ)存功能,其在數(shù)據(jù)儲(chǔ)存改變過程期間可操作成在數(shù)據(jù)儲(chǔ)存改變過程的重演階段期間使用重演信息來更新數(shù)據(jù)儲(chǔ)存。本發(fā)明的方法可使現(xiàn)有軟件在新版本軟件初始化期間能夠繼續(xù)為終端用戶提供現(xiàn)有軟件功能性,與在新版本軟件初始化時(shí)期內(nèi)軟件系統(tǒng)功能性暫停或?qū)ο到y(tǒng)數(shù)據(jù)的訪問暫停的系統(tǒng)相比,導(dǎo)致軟件功能性或?qū)ο到y(tǒng)數(shù)據(jù)的訪問不可用的時(shí)間減少。
現(xiàn)在將參照附圖通過舉例的方式來描述本發(fā)明
圖I是用于實(shí)現(xiàn)本發(fā)明的實(shí)施例的裝置的示意 圖2示出在本發(fā)明的實(shí)施例的方法期間的、軟件程序的不同軟件操作狀態(tài);
圖3是示出根據(jù)本發(fā)明的實(shí)施例的更新版本化軟件的示范性方法的流程 圖4示出本發(fā)明的實(shí)施例的操作。
具體實(shí)施例方式現(xiàn)在將參照附圖的圖廣圖4來描述本發(fā)明的實(shí)施例。在一個(gè)實(shí)施例中,本發(fā)明涉及使用共享高速緩存以新版本軟件程序替換現(xiàn)有版本軟件程序的方法。示范性描述的實(shí)施例在以新版本軟件替換現(xiàn)有版本軟件期間使用共享高速緩存。共享高速緩存功能性通常使得一些實(shí)體(在此情況下為現(xiàn)有版本軟件和新版本軟件)成為組或集群的ー個(gè)成員。組或集群的每ー個(gè)成員可接收由另ー個(gè)成員發(fā)送給它的消息,并且能夠與組的其他成員共享應(yīng)用數(shù)據(jù)。本文使用的術(shù)語“共享高速緩存(shared cache)”意于涵蓋允許在不同的軟件程序之間(在某些情況下是在不同的主機(jī)計(jì)算機(jī)上)進(jìn)行自動(dòng)數(shù)據(jù)共享和消息傳遞(messaging)的所有這樣的機(jī)制。如將對技術(shù)人員顯而易見的那樣,共享高速緩存功能性可以以不同的方式實(shí)現(xiàn)。目前有一些產(chǎn)品可用來實(shí)現(xiàn)這一功能性例如,開源產(chǎn)品Shoal (https://shoal. dev.java. net/)和 Memcached (http://www. danga. com/memcached/);以及商業(yè)上可得到的產(chǎn)品 Gigaspace XAP (http://www.gigaspaces.com/datagrid)。但是,本發(fā)明不限于使用這些產(chǎn)品,并且可使用提供共享高速緩存功能的任何布置。共享高速緩存功能性由新版本軟件中和現(xiàn)有版本軟件中的各自的共享高速緩存功能提供,它們互相通信來為共享高速緩存創(chuàng)建所描述的共享高速緩存功能性。 在本發(fā)明的實(shí)施例中,新版本軟件程序可安裝在與現(xiàn)有版本軟件程序相同的計(jì)算機(jī)主機(jī)上,或者可安裝在不同的計(jì)算機(jī)主機(jī)上。通常,在一些實(shí)施例中,可提供客戶端軟件以使用戶能夠與軟件程序進(jìn)行交互。再次,在本發(fā)明的不同實(shí)施例中,客戶端軟件可安裝在相同的計(jì)算機(jī)主機(jī)上或不同的計(jì)算機(jī)主機(jī)上。在示范性實(shí)施例中,當(dāng)安裝新版本軟件程序時(shí),現(xiàn)有版本軟件程序被安裝和操作。通常,新版本軟件將是現(xiàn)有版本軟件的新發(fā)行,并且在這種情況下,本發(fā)明提供了更新軟件的新方法。本發(fā)明廣泛適用于許多不同類型的軟件,并且特別適合于將在軟件程序升級(jí)期間軟件程序不可用的時(shí)間保持為最小的應(yīng)用。在一些實(shí)施例中,本發(fā)明可應(yīng)用于軟件單元的遠(yuǎn)程升級(jí)。一個(gè)這樣的應(yīng)用是在通信網(wǎng)絡(luò)中的軟件程序単元的升級(jí)。然而,將明確的是,本發(fā)明不限于這ー應(yīng)用,而是廣泛適用于許多軟件程序単元的替換或升級(jí)。
所公開的方法使現(xiàn)有版本軟件程序能夠繼續(xù)操作,并在從新版本軟件程序剛一安裝后到新版本軟件程序準(zhǔn)備好提供軟件程序功能性的時(shí)期內(nèi)提供軟件程序的功能性。因此,軟件程序的功能性是不可用的時(shí)間被最小化。圖1是用于實(shí)施本發(fā)明的一個(gè)實(shí)施例的裝置的示意圖。現(xiàn)有版本軟件程序(PROGvI. 0)2在計(jì)算機(jī)主機(jī)4上安裝和操作。本發(fā)明可應(yīng)用到的軟件程序的示例是通信網(wǎng)絡(luò)的網(wǎng)絡(luò)管理系統(tǒng)內(nèi)的網(wǎng)絡(luò)控制器。通常,網(wǎng)絡(luò)控制器安裝在網(wǎng)絡(luò)管理服務(wù)器上。然而,如技術(shù)人員將意識(shí)到的,本發(fā)明可應(yīng)用到其他軟件程序?,F(xiàn)有版本軟件程序2在操作上耦合到主機(jī)計(jì)算機(jī)4上的相關(guān)聯(lián)的現(xiàn)有版本(vl. 0)數(shù)據(jù)儲(chǔ)存6,以存儲(chǔ)由現(xiàn)有版本軟件程序2創(chuàng)建或使用的信息。將對技術(shù)人員顯而易見的是,現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6可以是數(shù)據(jù)庫,或可以是文件系統(tǒng)或任何其他數(shù)據(jù)儲(chǔ)存。在示范性實(shí)施例中,現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6是數(shù)據(jù)庫?,F(xiàn)有版本軟件程序2具有共享高速緩存功能2a,共享高速緩存功能2a可操作成附連到共享高速緩存8。如將在下文更詳細(xì)描述的那樣,共享高速緩存8是由共享高速緩存功能2a和新版本軟件程序14的共享高速緩存功能14d創(chuàng)建的邏輯架構(gòu)。如技術(shù)人員所知的那樣,現(xiàn)有軟件程序2能夠在共享高速緩存8中存儲(chǔ)信息。還在客戶端主機(jī)12上提供了在操作上耦合到現(xiàn)有版本軟件程序2的現(xiàn)有版本軟件程序客戶端(PROG Client vl. 0) 10。如技術(shù)人員所熟知的那樣,現(xiàn)有版本客戶端10進(jìn)行操作以控制現(xiàn)有版本軟件程序2并從現(xiàn)有版本軟件程序2接收信息,并使用戶能夠與現(xiàn)有版本軟件程序2交互和控制現(xiàn)有版本軟件程序2。客戶端主機(jī)12示出為與主機(jī)4分離,因?yàn)槿缂夹g(shù)人員將知道的那樣,客戶端主機(jī)12可以遠(yuǎn)離主機(jī)4,但在ー些實(shí)施例中,客戶端主機(jī)12可以是主機(jī)4的一部分。新版本軟件程序14安裝在計(jì)算機(jī)主機(jī)16上。新版本軟件程序14至少包括以下功能創(chuàng)建新數(shù)據(jù)儲(chǔ)存功能14a ;創(chuàng)建重演信息功能14b ;以及更新數(shù)據(jù)儲(chǔ)存功能14c ;以及共享高速緩存功能14c。如將對技術(shù)人員顯而易見的那樣,新版本軟件程序也將具有與軟件程序操作的詳細(xì)功能性有關(guān)的附加功能,該附加功能與本發(fā)明無關(guān)而因此被省略。此外,設(shè)想在一些實(shí)施例中,新版本軟件程序也將提供有主調(diào)度功能,該主調(diào)度功能至少在軟件安裝后的操作的初始時(shí)期內(nèi)是操作的,并負(fù)責(zé)調(diào)用功能14a 14d以執(zhí)行本發(fā)明的實(shí)施例的方法。然而,為清楚起見,主調(diào)度功能被省略了。如將對技術(shù)人員顯而易見的那樣,可以使用更多的或更少的功能模塊達(dá)到所描述的功能性,并且,在軟件內(nèi)的軟件功能模塊的內(nèi)部結(jié)構(gòu)或功能性布置是技術(shù)人員的設(shè)計(jì)選擇的問題。雖然計(jì)算機(jī)主機(jī)16示出和描述為與主機(jī)4分離,但顯而易見的是,在本發(fā)明的備選實(shí)施例中,新版本軟件程序14可同等地安裝在主機(jī)上4。新版本軟件程序14在操作上耦合到在計(jì)算機(jī)主機(jī)16上的相關(guān)聯(lián)的新版本數(shù)據(jù)儲(chǔ)存18,來存儲(chǔ)由新版本軟件程序14在操作期間、以與為現(xiàn)有版本軟件程序2提供的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6類似的方式創(chuàng)建或使用的信息。再一次,將對技術(shù)人員顯而易見的是,新版本數(shù)據(jù)儲(chǔ)存18可以是數(shù)據(jù)庫或文件系統(tǒng)或任何其他數(shù)據(jù)儲(chǔ)存。在示范性實(shí)施例中,新版本數(shù)據(jù)儲(chǔ)存18是數(shù)據(jù)庫。
如技術(shù)人員所知的那樣,共享高速緩存功能14d可操作成附連到共享高速緩存8,以及能夠在共享高速緩存8中存儲(chǔ)信息,并且從共享高速緩存8讀取信息。還在客戶端主機(jī)12上提供了新版本軟件程序客戶端(PROG Client v2.0)20,并且其在操作上耦合到新版本軟件程序14。如技術(shù)人員所熟知的那樣,新版本客戶端20進(jìn)行操作以控制新版本軟件程序14和從新版本軟件程序14接收信息,并使用戶能夠與新版本軟件程序14交互和控制新版本軟件程序14。
在共孚聞速緩存8內(nèi),現(xiàn)有版本軟件程序2提供有相關(guān)聯(lián)的現(xiàn)有版本共孚聞速緩存區(qū)22,其在示出的實(shí)施例中形成于計(jì)算機(jī)主機(jī)4的存儲(chǔ)器或存儲(chǔ)區(qū)域中?,F(xiàn)有版本共享高速緩存區(qū)22被用于存儲(chǔ)與現(xiàn)有版本軟件程序2有關(guān)的狀態(tài)信息和動(dòng)作信息兩者。因此,在現(xiàn)有版本共享高速緩存區(qū)22中至少存在區(qū)域24,包含與現(xiàn)有版本軟件程序2的標(biāo)識(shí)和版本有關(guān)的信息(狀態(tài)信息);以及區(qū)域26,包含現(xiàn)有數(shù)據(jù)儲(chǔ)存更新記錄信息(動(dòng)作信息)。此夕卜,諸如現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的地址(例如互聯(lián)網(wǎng)協(xié)議地址)的其它信息也可以被存儲(chǔ)在現(xiàn)有版本共享高速緩存區(qū)22中(在圖I中未示)。在共孚聞速緩存8內(nèi),新版本軟件程序14也提供有相關(guān)聯(lián)的新版本共孚聞速緩存區(qū)28,其在示出的實(shí)施例中形成于計(jì)算機(jī)主機(jī)16的存儲(chǔ)器或存儲(chǔ)區(qū)域中。新版本共享高速緩存區(qū)28被用于存儲(chǔ)與新版本軟件程序2有關(guān)的狀態(tài)信息和動(dòng)作信息兩者。因此,在新版本共享高速緩存區(qū)28中至少存在區(qū)域30,包含與相關(guān)聯(lián)的新版本軟件程序14的標(biāo)識(shí)和版本有關(guān)的信息;以及區(qū)域32,包含改變信息;以及區(qū)域34,包含重演信息。如上所述,由現(xiàn)有版本軟件程序和新版本軟件程序中的各自的共享高速緩存功能2a和14d實(shí)現(xiàn)的共享高速緩存功能性,使存儲(chǔ)在一個(gè)共享高速緩存區(qū)的數(shù)據(jù)被自動(dòng)復(fù)制到另ー個(gè)共享高速緩存區(qū)。如將在下面的描述中更詳細(xì)描述的那樣,這一功能性被應(yīng)用在描述的實(shí)施例中,以將存儲(chǔ)在現(xiàn)有版本共享高速緩存區(qū)的區(qū)域26中的現(xiàn)有數(shù)據(jù)儲(chǔ)存更新記錄信息復(fù)制到新版本共享高速緩存區(qū)的區(qū)域32。此外,如將在下面更詳細(xì)地解釋的那樣,可以使用共享高速緩存功能2a和14d在新版本軟件程序和現(xiàn)有版本軟件程序之間發(fā)送消息。最后,如將在以下更詳細(xì)地解釋的那樣,在主機(jī)16上提供作為現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的副本而形成的現(xiàn)有版本(vl. 0)數(shù)據(jù)儲(chǔ)存副本36。數(shù)據(jù)儲(chǔ)存副本36耦合到新版本軟件程序14以向其提供數(shù)據(jù)。從上面的描述將明確的是,使用本發(fā)明的方法的軟件程序是版本化的,并且可知道其程序標(biāo)識(shí)和版本標(biāo)識(shí)。因此,在描述的實(shí)施例中,現(xiàn)有版本共享高速緩存區(qū)22和新版本共享高速緩存區(qū)28具有各自的區(qū)域24、30來存儲(chǔ)程序及各自的版本標(biāo)識(shí)信息?,F(xiàn)在參照圖2解釋根據(jù)本發(fā)明的實(shí)施例的、在版本化軟件的替換期間的軟件程序的不同的軟件操作狀態(tài)。在圖2中,直到將相同軟件14的新版本安裝成備用(standby)狀態(tài)42,現(xiàn)有版本軟件程序2以在線狀態(tài)40操作。新版本軟件程序14確定現(xiàn)有版本軟件程序2的存在,因此新版本軟件程序14進(jìn)入數(shù)據(jù)儲(chǔ)存改變過程44(為清晰起見,在圖2中未示出沒有檢測到現(xiàn)有版本軟件程序的情況)?,F(xiàn)有版本軟件程序2繼續(xù)操作并提供軟件功能性。在數(shù)據(jù)儲(chǔ)存改變過程44期間,現(xiàn)有版本軟件程序2處于記錄數(shù)據(jù)儲(chǔ)存更新狀態(tài)46,在該狀態(tài)中記錄與現(xiàn)有數(shù)據(jù)儲(chǔ)存中的改變有關(guān)的信息。當(dāng)數(shù)據(jù)儲(chǔ)存是數(shù)據(jù)庫時(shí),能由現(xiàn)有版本軟件程序2記錄的動(dòng)作是創(chuàng)建(Create)、刪除(Delete)和更新(Update)。如將在以下更詳細(xì)地解釋的那樣,在本發(fā)明的實(shí)施例中,僅有必要在共享高速緩存中記錄最后的動(dòng)作,并且存儲(chǔ)的每ー個(gè)新的動(dòng)作可以覆蓋(overwrite)前ー動(dòng)作,而沒有必要在共享高速緩存中記錄所有更新的日志或歷史。在數(shù)據(jù)儲(chǔ)存改變過程44期間,新版本軟件程序14首先進(jìn)入數(shù)據(jù)遷移狀態(tài)48,在該狀態(tài)中,新版本數(shù)據(jù)儲(chǔ)存18被創(chuàng)建并被填充了在數(shù)據(jù)儲(chǔ)存改變過程開始時(shí)來自現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的數(shù)據(jù)。新版本軟件還確定要求對新版本數(shù)據(jù)儲(chǔ)存進(jìn)行什么更新,以反映自數(shù)據(jù)儲(chǔ)存改變過程的開始以來在現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6中的改變。
一旦數(shù)據(jù)遷移已經(jīng)結(jié)束,新版本軟件程序14就進(jìn)入重演狀態(tài)50,在該狀態(tài)中,與自數(shù)據(jù)儲(chǔ)存改變過程的開始以來對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的改變對應(yīng)地更新新版本數(shù)據(jù)儲(chǔ)存18。將參照圖3和圖4更詳細(xì)地描述在數(shù)據(jù)遷移狀態(tài)48和重演狀態(tài)50期間由新版本軟件程序14執(zhí)行的動(dòng)作。一旦在重演狀態(tài)50的終點(diǎn)新版本數(shù)據(jù)儲(chǔ)存完成和待用,新版本軟件程序14就過渡到在線狀態(tài)52,而現(xiàn)有版本軟件程序2就從記錄狀態(tài)46過渡到離線狀態(tài)54。因此,在安裝后,新版本軟件程序14以備用狀態(tài)42開始,并經(jīng)過數(shù)據(jù)遷移狀態(tài)48到重演狀態(tài)50并且然后到在線狀態(tài)52。同時(shí),最初處于在線狀態(tài)40的現(xiàn)有版本軟件程序2在數(shù)據(jù)儲(chǔ)存改變過程44期間處于記錄狀態(tài)46。一旦數(shù)據(jù)儲(chǔ)存改變過程44完成,當(dāng)新版本軟件程序14從重演狀態(tài)50過渡到在線狀態(tài)52時(shí),現(xiàn)有版本軟件程序2過渡到離線狀態(tài)54?,F(xiàn)在將參照示出了更新版本化軟件60的示范性方法的圖3來描述示范性實(shí)施例的方法。在更新版本化軟件的方法60的開始,新版本軟件程序14處于備用狀態(tài)42。正如圖3所示,新版本軟件程序14在步驟62檢測是否有軟件的現(xiàn)有版本存在。在示范性實(shí)施例中,這ー步驟使用由共享高速緩存功能14d提供的共享高速緩存功能性來執(zhí)行。因此,共享高速緩存功能在主機(jī)16中的合適存儲(chǔ)區(qū)域內(nèi)建立新版本共享高速緩存區(qū)28。然后共享高速緩存功能14d搜索具有相同的標(biāo)識(shí)信息(PROG)但是具有不同的版本號(hào)(版本I. 0而不是v2. 0)的另ー個(gè)共享高速緩存功能。如傳統(tǒng)上的那樣,如果軟件的現(xiàn)有版本不存在(未在圖2中示出),步驟62為否,則新版本軟件程序14就在步驟64中創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存18,并在方法60的步驟66將新版本狀態(tài)改變?yōu)樵诰€。然而,如在示出的實(shí)施例中的那樣,如果檢測到具有相同的識(shí)別信息(PROG)但是具有不同的版本號(hào)(版本I. 0而不是v2. 0)的共享高速緩存功能2a,則確定軟件的現(xiàn)有版本已存在,步驟62為是。當(dāng)確定軟件的現(xiàn)有版本已經(jīng)存在吋,步驟62為是,在步驟67,共享高速緩存功能14d建立與共享高速緩存功能2a的共享高速緩存8。共享高速緩存功能2a、14d能夠共享在其各自的共享高速緩存區(qū)22和28中的數(shù)據(jù)并訪問存儲(chǔ)在任何共享高速緩存區(qū)中的數(shù)據(jù)。此外,共享高速緩存功能能夠彼此發(fā)送指令。在描述的實(shí)施例中,共享高速緩存功能14d請求由共享高速緩存功能2a將數(shù)據(jù)復(fù)制到共享高速緩存功能14d,該數(shù)據(jù)存儲(chǔ)在用于存儲(chǔ)對現(xiàn)有數(shù)據(jù)儲(chǔ)存6的更新的區(qū)域26中,并存儲(chǔ)在新版本共享高速緩存區(qū)28的改變區(qū)域32中。
此后,新版本軟件程序14進(jìn)入在示出的實(shí)施例中同時(shí)執(zhí)行的數(shù)據(jù)遷移創(chuàng)建步驟68和數(shù)據(jù)遷移轉(zhuǎn)換步驟70。在數(shù)據(jù)遷移創(chuàng)建步驟68,創(chuàng)建新數(shù)據(jù)儲(chǔ)存功能14a創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存18。新版本數(shù)據(jù)儲(chǔ)存18可能具有與現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6不同的邏輯結(jié)構(gòu)或模式,但應(yīng)該用來自現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的數(shù)據(jù)填充。因此 ,在本實(shí)施例的數(shù)據(jù)遷移創(chuàng)建步驟68中,創(chuàng)建新數(shù)據(jù)儲(chǔ)存功能14a首先通過在數(shù)據(jù)遷移階段的開始時(shí)復(fù)制現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6來創(chuàng)建現(xiàn)有版本數(shù)據(jù)儲(chǔ)存副本36。在本發(fā)明的實(shí)施例中,復(fù)制可以由共享高速緩存功能14d以如下方式來完成,即經(jīng)由共享高速緩存功能2a訪問存儲(chǔ)在現(xiàn)有版本共享高速緩存區(qū)22 (未示出)中的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的地址信息,并且然后將地址傳給創(chuàng)建新數(shù)據(jù)儲(chǔ)存功能14a。創(chuàng)建新數(shù)據(jù)儲(chǔ)存功能14a也創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存18,并以來自現(xiàn)有版本數(shù)據(jù)儲(chǔ)存副本36的數(shù)據(jù)填充新版本數(shù)據(jù)儲(chǔ)存18。在本發(fā)明的一些實(shí)施例中,沒有必要建立現(xiàn)有版本數(shù)據(jù)儲(chǔ)存副本36,并且新版本數(shù)據(jù)儲(chǔ)存18可以用直接取自現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的數(shù)據(jù)來填充。在數(shù)據(jù)遷移創(chuàng)建步驟68期間,如上所述,當(dāng)創(chuàng)建新數(shù)據(jù)儲(chǔ)存功能14a在創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存18時(shí),現(xiàn)有版本軟件程序2在記錄更新信息,該更新信息與對現(xiàn)有版本共享高速緩存區(qū)22的區(qū)域26中的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的更新有夫。如上所述,由于由共享高速緩存功能2a和共享高速緩存功能14d提供的共享高速緩存功能性的操作,存儲(chǔ)在現(xiàn)有版本共享高速緩存區(qū)22的區(qū)域26中的更新信息被自動(dòng)復(fù)制到新版本共享高速緩存區(qū)28中的區(qū)域32,在那里它被記錄為改變信息。在數(shù)據(jù)遷移轉(zhuǎn)換步驟70期間,創(chuàng)建重演信息功能14b訪問在新版本共享高速緩存區(qū)28的區(qū)域32中的改變信息,并創(chuàng)建重演信息。重演信息考慮到兩個(gè)數(shù)據(jù)儲(chǔ)存的邏輯結(jié)構(gòu)或模式上的不同,限定對新版本數(shù)據(jù)儲(chǔ)存18的數(shù)據(jù)的改變,該改變要求與對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的數(shù)據(jù)做出的改變對應(yīng)。重演信息例如可作為對新版本數(shù)據(jù)儲(chǔ)存18做出的所有更新的日志而存儲(chǔ)。現(xiàn)在將給出在無線電通信網(wǎng)絡(luò)的情形下的轉(zhuǎn)化的示例,該轉(zhuǎn)化在數(shù)據(jù)遷移轉(zhuǎn)換步驟70期間由創(chuàng)建重演信息功能14b執(zhí)行,以將改變信息轉(zhuǎn)化為重演信息,該改變信息與通過共享高速緩存功能性而為新版本軟件程序14可得到的、現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6中的改變有關(guān),該重演信息對應(yīng)于對新版本數(shù)據(jù)儲(chǔ)存18的改變而發(fā)揮作用。在示例中,我們假設(shè)現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6是數(shù)據(jù)庫,該數(shù)據(jù)庫具有帶有屬性(列)“Id”、“頻率”、“地點(diǎn)”和“操作狀態(tài)”且名為UtranCell的表。新版本數(shù)據(jù)儲(chǔ)存18具有帶有屬性(列)“ID”、“低帶頻率”、“高帶頻率”、“功率級(jí)另IJ”、“地點(diǎn)”和”操作狀態(tài)”且名為UtranCell的表。因此,能看出,數(shù)據(jù)儲(chǔ)存模式已經(jīng)改變新版本數(shù)據(jù)存儲(chǔ)在頻率以及通過屬性“功率級(jí)別”増加的新功能性上具有不同的屬性。在數(shù)據(jù)遷移階段的開始,假設(shè)在表中有10個(gè)UtranCell。如上所述,在數(shù)據(jù)遷移階段期間,現(xiàn)有版本軟件程序14繼續(xù)工作,井能更新在現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6中的數(shù)據(jù)。這些改變被記錄在現(xiàn)有版本共享高速緩存區(qū)22的區(qū)域26中,并且由共享高速緩存功能性自動(dòng)復(fù)制到新版本共享高速緩存區(qū)28的區(qū)域32,并作為改變信息存儲(chǔ)在那里。然后創(chuàng)建重演信息功能14b從改變信息創(chuàng)建重演信息。示范性的三對改變信息及相應(yīng)的重演信息陳列如下
示例I :改變信息DELETE UtranCell Id=I
重演信息DELETE UtranCell Id=I
示例2
改變信息UPDATE UltranCell Id=2,
頻率=1231
重演信息UPDATE UltranCell Id=2,
低帶頻率=31,
高帶頻率=12
示例3
改變信息CREATE UtranCell I lFrequency=1443,
地點(diǎn)=London_l,
操作狀態(tài)=UP,
重演信息CREATEUtranCell 11 頻率=1443,
低帶頻率=43,
高帶頻率=14,
功率級(jí)別=23 (默認(rèn)值),
地點(diǎn)=London_l, 操作狀態(tài)=UP.
在一些實(shí)施例中,可以指定當(dāng)在現(xiàn)有版本數(shù)據(jù)儲(chǔ)存模式中沒有捕捉到相應(yīng)的信息時(shí)在生成重演信息中使用的默認(rèn)值。因此,在示例3中,在要被應(yīng)用到新版本數(shù)據(jù)儲(chǔ)存的重演信息中提供了功率級(jí)別的默認(rèn)值,因?yàn)檫@一信息沒有存儲(chǔ)在現(xiàn)有版本數(shù)據(jù)庫中。在示出的實(shí)施例中,重演信息被存儲(chǔ)在新版本共享高速緩存區(qū)28的區(qū)域34中,但將對技術(shù)人員顯而易見的是,沒有必要使重演信息存儲(chǔ)在高速緩存中,如將對技術(shù)人員顯而易見的那樣,取而代之,重演信息可被存儲(chǔ)在任何適當(dāng)?shù)膬?chǔ)存中。雖然在示范性實(shí)施例中數(shù)據(jù)遷移創(chuàng)建步驟68和數(shù)據(jù)遷移轉(zhuǎn)換步驟70是被示為同時(shí)執(zhí)行的,但這不是必要的,并且在一些實(shí)施例中,這些活動(dòng)可以依次執(zhí)行。在一些實(shí)施例中,改變信息的日志可在數(shù)據(jù)遷移期間累積,并且在改變信息的累積日志中的改變信息可在數(shù)據(jù)遷移已經(jīng)完成之后轉(zhuǎn)化成重演信息。一旦數(shù)據(jù)遷移步驟68和70已經(jīng)完成,創(chuàng)建新數(shù)據(jù)儲(chǔ)存功能14a就已創(chuàng)建了新版本數(shù)據(jù)儲(chǔ)存18,新版本數(shù)據(jù)儲(chǔ)存18具有新數(shù)據(jù)儲(chǔ)存模式并由在數(shù)據(jù)遷移階段的開始時(shí)來自現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的數(shù)據(jù)來填充。此外,創(chuàng)建重演信息功能14b已生成重演信息,該重演信息限定對新版本數(shù)據(jù)儲(chǔ)存18的改變,該改變要求與自數(shù)據(jù)遷移階段的開始以來對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6做出的改變對應(yīng)。此后,在方法60的步驟72中,更新功能14c使用重演信息更新新版本數(shù)據(jù)儲(chǔ)存18,在這ー實(shí)施例中,重演信息存儲(chǔ)在新版本共享高速緩存區(qū)28的區(qū)域34中。一旦新版本數(shù)據(jù)儲(chǔ)存18已經(jīng)被功能14c使用存儲(chǔ)的重演信息更新,則在新版本數(shù)據(jù)儲(chǔ)存18中的數(shù)據(jù)就完全是最新的?,F(xiàn)在軟件更新完成從而在方法60的步驟74中,新版本軟件程序14的狀態(tài)被改變?yōu)樵诰€,并且現(xiàn)有版本軟件程序2的狀態(tài)被改變?yōu)殡x線?,F(xiàn)有版本軟件程序2的狀態(tài)可以以多種方式改變?yōu)殡x線。在本發(fā)明的示范性實(shí)施例中,進(jìn)入離線的指令能經(jīng)由共享高速緩存功能14d和共享高速緩存功能2a來發(fā)送?,F(xiàn)在將參照圖4描述對圖I所示的發(fā)明的實(shí)施例的操作的詳解。最初,現(xiàn)有版本軟件程序2處于在線狀態(tài)40。在步驟81 “開始”中,將新版本軟件程序14安裝在主機(jī)16上并以備用狀態(tài)42開始。接著,在步驟82 “創(chuàng)建狀態(tài)(PROG,v2. 0,data)”中,新版本軟件程序14創(chuàng)建新版本共享高速緩存區(qū)28。如上所述,現(xiàn)有版本軟件程序的共享高速緩存區(qū)28包含與區(qū)域30中的程序標(biāo)識(shí)和版本號(hào)有關(guān)的信息。在步驟83 “獲取狀態(tài)”中,新版本軟件程序14詢問共享高速緩存8,以確定程序的先前版本是否存在。在本示例中,假定程序的先前版本存在以及因而以上所述的更新安裝方法60將是必要的。將記錄的更新動(dòng)作從現(xiàn)有版本共享高速緩存區(qū)22的區(qū)域26復(fù)制到新版本共享高速緩存區(qū)28的區(qū)域32是通過共享高速緩存機(jī)制來啟動(dòng)的。在一些實(shí)施例中,在步驟84 “在高速緩存中記錄動(dòng)作”中,共享高速緩存8發(fā)送消息給現(xiàn)有版本軟件程序2,以開始在更新記錄區(qū)域26中記錄對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的更新動(dòng)作。然而,在本發(fā)明的一些實(shí)施例中,設(shè)想現(xiàn)有版本軟件程序2將已經(jīng)在記錄動(dòng)作,以及因而可能不必要在所有的實(shí)施例中啟動(dòng)記錄。既然新版本軟件程序14已經(jīng)確立了程序的先前版本存在,則進(jìn)入數(shù)據(jù)遷移狀態(tài),并且新版本軟件程序14在步驟85 “備份”中創(chuàng)建數(shù)據(jù)儲(chǔ)存6的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存副本36。新版本軟件程序14還以步驟86 “創(chuàng)建消息”來創(chuàng)建帶有新模式的新版本數(shù)據(jù)儲(chǔ)存18。在這個(gè)階段,新版本數(shù)據(jù)儲(chǔ)存18沒有填充任何數(shù)據(jù)。新版本軟件程序14在步驟87 “遷移數(shù)據(jù)”中開始將來自現(xiàn)有版本數(shù)據(jù)儲(chǔ)存副本36的數(shù)據(jù)遷移到新版本數(shù)據(jù)儲(chǔ)存18。同時(shí),現(xiàn)有版本軟件程序2在步驟88“改變”中繼續(xù)進(jìn)行對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的更新,并將在步驟88 “改變”中對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的改變在步驟89 “更新狀態(tài)”中記錄到現(xiàn)有版本共享高速緩存區(qū)22的區(qū)域26。在一些實(shí)施例中,并不要求一個(gè)單獨(dú)的步驟,并且動(dòng)作的記錄可自動(dòng)發(fā)生。共享高速緩存功能性將在步驟89 “更新狀態(tài)”期間存儲(chǔ)在現(xiàn)有版本共享高速緩存區(qū)22的區(qū)域26中的信息復(fù)制到新版本共享高速緩存區(qū)28的區(qū)域32。如將對技術(shù)人員顯而易見的那樣,在一些實(shí)現(xiàn)中,步驟89可作為步驟88的一部分執(zhí)行。備選地,在數(shù)據(jù)儲(chǔ)存改變過程44期間,在步驟88 “改變”中更新在現(xiàn)有數(shù)據(jù)儲(chǔ)存6中的數(shù)據(jù)實(shí)際上并不是總是必要的,取而代之,動(dòng)作可以只在步驟89 “更新狀態(tài)”中被記錄。在步驟90 “通知改變”中,新版本軟件程序14被通知了改變信息被復(fù)制到新版本共享高速緩存區(qū)28的區(qū)域32,并且然后新版本軟件程序14創(chuàng)建重演信息并在步驟91 “存儲(chǔ)重演動(dòng)作”中將重演信息存儲(chǔ)在新版本共享高速緩存區(qū)28的區(qū)域34中。如上所述,在示范性實(shí)施例中,重復(fù)步驟88、1,直到步驟87“遷移數(shù)據(jù)”已經(jīng)完成并且存儲(chǔ)在數(shù)據(jù)儲(chǔ)存副本36中的所有數(shù)據(jù)都已轉(zhuǎn)移到新版本數(shù)據(jù)儲(chǔ)存18為止?!?shù)據(jù)遷移階段已經(jīng)完成,步驟92 “遷移”結(jié)束,新版本軟件程序14進(jìn)入重演狀態(tài)50。在重演狀態(tài)50中,在步驟93 “獲取重演動(dòng)作”,在示范性實(shí)施例中,新版本軟件程序14檢索存儲(chǔ)在新版本共享高速緩存區(qū)28的區(qū)域34中的重演信息,并在步驟94“重演動(dòng) 作”使用檢索的重演信息更新新版本數(shù)據(jù)儲(chǔ)存18。一旦所有的重演動(dòng)作已經(jīng)完成,新版本數(shù)據(jù)儲(chǔ)存18就完全是最新的,并充分反映了在現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6中的最新數(shù)據(jù)。因此,在示范性實(shí)施例中,新版本軟件程序14通過經(jīng)由共享高速緩存8發(fā)送停止消息來指示現(xiàn)有版本軟件程序2進(jìn)入離線狀態(tài)。因此,在步驟95 “停止?fàn)顟B(tài)(PROG vl. 0)”中,使用共享高速緩存功能2a和14d從新版本軟件程序14發(fā)送停止現(xiàn)有軟件程序2的操作的指令。作為響應(yīng),在步驟96 “銷毀消息”中,共享高速緩存功能2a指示現(xiàn)有版本軟件程序2停止操作。在一些實(shí)施例中,共享高速緩存也銷毀與現(xiàn)有版本軟件程序2相關(guān)聯(lián)的現(xiàn)有版本共享高速緩存區(qū)22。響應(yīng)在步驟96 “銷毀消息”中的來自共享高速緩存8的指令的接收,現(xiàn)有版本軟件程序2進(jìn)入離線狀態(tài)54。用于現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6的存儲(chǔ)不再是現(xiàn)有版本軟件程序所要求的,并且現(xiàn)在可以被在主機(jī)計(jì)算機(jī)4中的其他過程使用。因此,在描述的實(shí)施例中,在步驟97 “銷毀消息”中,新版本軟件程序14也刪除現(xiàn)有版本數(shù)據(jù)儲(chǔ)存6?,F(xiàn)有版本軟件程序不再是操作的,并且新版本軟件程序14進(jìn)入在線狀態(tài)52和開始使用相關(guān)聯(lián)的新版本數(shù)據(jù)儲(chǔ)存18進(jìn)行操作。在描述的實(shí)施例中,現(xiàn)有版本軟件在數(shù)據(jù)儲(chǔ)存改變過程44期間進(jìn)入記錄更新狀態(tài)46。然而,在其他的實(shí)施例中,設(shè)想數(shù)據(jù)儲(chǔ)存更新的記錄已經(jīng)被記錄在現(xiàn)有版本共享高速緩存區(qū)22的區(qū)域26中。在這種情況下,共享高速緩存將只是將新的更新記錄從現(xiàn)有版本共享高速緩存區(qū)22的區(qū)域26復(fù)制到新版本共享高速緩存區(qū)28的區(qū)域32。在描述的實(shí)施例中,用于存儲(chǔ)重演信息的區(qū)域34被提供在新版本共享高速緩存區(qū)28中。然而,沒有必要在新版本共享高速緩存區(qū)28中存儲(chǔ)重演信息,并且在一些實(shí)施例中,如將對技術(shù)人員顯而易見的那樣,重演信息可存儲(chǔ)在另ー個(gè)存儲(chǔ)區(qū)域中。在說明書中,術(shù)語軟件或軟件程序意于也適用于軟件程序段以及完整的軟件程序,并且意于指能夠被處理器服從的任何指令集。因此能看出,本發(fā)明提供了使用共享高速緩存更新軟件的新方法。受益于在以上描述以及相關(guān)附圖中提出的教導(dǎo)的本領(lǐng)域技術(shù)人員將會(huì)想到所公開的發(fā)明的修改和其它實(shí)施例。因此,可以理解的是,本發(fā)明并不限于公開的具體實(shí)施例,并且修改和其他實(shí)施例意于包括在這一公開的范圍內(nèi)。雖然本文可能采用了特定的術(shù)語,但它們僅僅在通用性和描述性的意義上被使用,而不是出于限制的目的。權(quán)利要求
1.一種方法,其使用共享高速緩存以新版本軟件和相關(guān)聯(lián)的新版本數(shù)據(jù)儲(chǔ)存來替換現(xiàn)有版本軟件和相關(guān)聯(lián)的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存,其中,所述軟件被版本化,并且每一個(gè)版本的所述軟件在所述共享高速緩存內(nèi)具有用于存儲(chǔ)至少包括軟件識(shí)別信息和版本信息的數(shù)據(jù)的相關(guān)聯(lián)的區(qū)域,所述方法包括數(shù)據(jù)儲(chǔ)存改變過程,所述數(shù)據(jù)儲(chǔ)存改變過程包括以下步驟 創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存,所述新版本數(shù)據(jù)儲(chǔ)存具有新版本數(shù)據(jù)儲(chǔ)存模式,包含在數(shù)據(jù)遷移階段的開始的起始點(diǎn)處從所述現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中的所述數(shù)據(jù)導(dǎo)出的數(shù)據(jù);以及 將改變信息轉(zhuǎn)換為與對所述新版本數(shù)據(jù)儲(chǔ)存的相應(yīng)改變有關(guān)的重演信息,所述改變信息由所述現(xiàn)有版本軟件存儲(chǔ)在所述共享高速緩存中,并且與在創(chuàng)建所述新版本數(shù)據(jù)儲(chǔ)存的所述步驟期間由所述現(xiàn)有版本軟件做出的、對所述現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的改變有關(guān);和 在所述數(shù)據(jù)儲(chǔ)存改變過程的重演階段期間使用所述重演信息更新所述新版本數(shù)據(jù)儲(chǔ)存。
2.如權(quán)利要求I所述的方法,在初始備用階段還包括以下步驟 創(chuàng)建高速緩存區(qū)來至少存儲(chǔ)軟件識(shí)別信息和版本信息數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,在初始備用階段還包括以下步驟 通過確定具有相同的識(shí)別信息和不同的版本信息的區(qū)域是否存在來檢測所述軟件的現(xiàn)有版本是否存在;并且,如果檢測到所述軟件的現(xiàn)有版本,則還包括以下步驟 以所述軟件的所述現(xiàn)有版本創(chuàng)建所述共享高速緩存;以及 啟動(dòng)數(shù)據(jù)儲(chǔ)存改變過程。
4.如在前的任一項(xiàng)權(quán)利要求所述的方法,還包括以下步驟經(jīng)由共享高速緩存指令指示所述現(xiàn)有版本軟件記錄改變信息,所述改變信息與數(shù)據(jù)改變動(dòng)作有關(guān),在所述現(xiàn)有版本共享高速緩存區(qū)中的所述現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中做出。
5.如在前的任一項(xiàng)權(quán)利要求所述的方法,還包括以下步驟指示所述共享高速緩存將隨后添加到所述現(xiàn)有版本共享高速緩存區(qū)的改變信息復(fù)制到所述新版本共享高速緩存區(qū)。
6.如權(quán)利要求5所述的方法,還包括以下步驟訪問所述新版本共享高速緩存區(qū)以獲取所述改變信息,所述改變信息與在所述數(shù)據(jù)遷移階段期間由所述現(xiàn)有版本軟件做出的、對所述現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中的所述數(shù)據(jù)的改變有關(guān)。
7.如在前的任一項(xiàng)權(quán)利要求所述的方法,包括以下步驟 在所述新版本共享高速緩存區(qū)中創(chuàng)建改變區(qū)域,以及 指示所述共享高速緩存將隨后添加到所述現(xiàn)有版本共享高速緩存區(qū)的改變信息復(fù)制到在所述新版本共享高速緩存區(qū)中的所述改變區(qū)域。
8.如在前的任一項(xiàng)權(quán)利要求所述的方法,還包括以下步驟將重演信息存儲(chǔ)在所述新版本共享高速緩存區(qū)的重演區(qū)域。
9.如在前的任一項(xiàng)權(quán)利要求所述的方法,其中,一旦通過用在所述數(shù)據(jù)遷移階段期間累積的所述重演信息更新所述新版本數(shù)據(jù)儲(chǔ)存來完成所述數(shù)據(jù)儲(chǔ)存改變過程,所述方法還包括以下步驟 將所述現(xiàn)有版本軟件的所述狀態(tài)改變?yōu)殡x線;以及 去除與所述現(xiàn)有版本軟件相關(guān)聯(lián)的所有數(shù)據(jù)結(jié)構(gòu)。
10.如權(quán)利要求9所述的方法,還包括以下步驟使用共享高速緩存指令來將現(xiàn)有版本軟件的狀態(tài)改變?yōu)殡x線。
11.如在前的任一項(xiàng)權(quán)利要求所述的方法,其中,一旦通過用所述重演信息更新所述新版本數(shù)據(jù)儲(chǔ)存來完成所述數(shù)據(jù)儲(chǔ)存改變過程,所述方法還包括以下步驟 將所述新版本軟件的所述狀態(tài)改變?yōu)樵诰€。
12.一種包括指令的可機(jī)讀介質(zhì),所述指令引起處理器執(zhí)行一種方法,其使用共享高速緩存以新版本軟件和相關(guān)聯(lián)的新版本數(shù)據(jù)儲(chǔ)存來替換現(xiàn)有版本軟件和相關(guān)聯(lián)的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存,其中,所述軟件被版本化,并且每一個(gè)版本的所述軟件在所述共享高速緩存內(nèi)具有用于存儲(chǔ)至少包括軟件識(shí)別信息和版本信息的數(shù)據(jù)的相關(guān)聯(lián)的區(qū)域,所述方法包括數(shù) 據(jù)儲(chǔ)存更新過程,所述數(shù)據(jù)儲(chǔ)存更新過程包括以下步驟 創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存,所述新版本數(shù)據(jù)儲(chǔ)存具有新版本數(shù)據(jù)儲(chǔ)存模式,包含在所述數(shù)據(jù)遷移階段的開始的起始點(diǎn)處從所述現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中的數(shù)據(jù)導(dǎo)出的數(shù)據(jù);和 將改變信息轉(zhuǎn)換為與對所述新版本數(shù)據(jù)儲(chǔ)存的相應(yīng)改變有關(guān)的重演信息,所述改變信息由所述現(xiàn)有版本軟件存儲(chǔ)在所述共享高速緩存中,并且與在創(chuàng)建所述新版本數(shù)據(jù)儲(chǔ)存的所述步驟期間由所述現(xiàn)有版本軟件做出的、對所述現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的改變有關(guān);以及在所述數(shù)據(jù)儲(chǔ)存改變過程的重演階段期間使用重演信息更新所述新版本數(shù)據(jù)儲(chǔ)存。
13.如權(quán)利要求12所述的可機(jī)讀介質(zhì),還包括導(dǎo)致所述處理器在初始備用階段執(zhí)行以下步驟的指令 通過確定具有相同的識(shí)別信息和不同的版本信息的區(qū)域是否存在來檢測所述軟件的現(xiàn)有版本是否存在; 并且,如果檢測到所述軟件的現(xiàn)有版本,則還包括以下步驟 以所述軟件的所述現(xiàn)有版本創(chuàng)建所述共享高速緩存;以及 啟動(dòng)數(shù)據(jù)儲(chǔ)存改變過程。
14.一種網(wǎng)絡(luò)單兀,具有 存儲(chǔ)在可機(jī)讀介質(zhì)上的版本化軟件程序; 數(shù)據(jù)儲(chǔ)存,與存儲(chǔ)在存儲(chǔ)介質(zhì)上的所述版本化軟件程序相關(guān)聯(lián);以及高速緩存區(qū),與在高速緩存存儲(chǔ)介質(zhì)上形成的所述軟件程序相關(guān)聯(lián),所述高速緩存區(qū)在其內(nèi)存儲(chǔ)有至少包括所述相關(guān)聯(lián)的軟件程序的軟件識(shí)別信息和版本信息的數(shù)據(jù),并且所述高速緩存區(qū)是共享高速緩存的一部分; 其中,所述版本化軟件包括在一種方法的數(shù)據(jù)儲(chǔ)存改變過程期間可操作的以下功能,所述方法以所述版本化軟件程序和與所述版本化軟件程序相關(guān)聯(lián)的所述數(shù)據(jù)儲(chǔ)存來替換現(xiàn)有版本軟件和相關(guān)聯(lián)的現(xiàn)有版本數(shù)據(jù)儲(chǔ)存 創(chuàng)建新數(shù)據(jù)儲(chǔ)存功能,其可操作成創(chuàng)建所述數(shù)據(jù)儲(chǔ)存,所述數(shù)據(jù)儲(chǔ)存具有數(shù)據(jù)儲(chǔ)存模式,所述數(shù)據(jù)儲(chǔ)存包含在數(shù)據(jù)遷移階段的開始的起始點(diǎn)處從所述現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中的所述數(shù)據(jù)導(dǎo)出的數(shù)據(jù); 創(chuàng)建重演信息功能,其可操作成將改變信息轉(zhuǎn)換為與對所述數(shù)據(jù)儲(chǔ)存的相應(yīng)改變有關(guān)的重演信息,所述改變信息由所述現(xiàn)有版本軟件存儲(chǔ)在所述共享高速緩存中,并且與在創(chuàng)建所述數(shù)據(jù)儲(chǔ)存的步驟期間由所述現(xiàn)有版本軟件做出的、對所述現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的改變有關(guān);以及 更新數(shù)據(jù)儲(chǔ)存功能,其可操作成在所述數(shù)據(jù)儲(chǔ)存改變過程的重演階段期間使用所述重演信息來更新所述數(shù)據(jù)儲(chǔ)存。
15.如權(quán)利要求14所述的網(wǎng)絡(luò)單元,其中,所述版本化軟件程序還包括 共享高速緩存功能,可操作成通過確定具有相同的識(shí)別信息和不同的版本信息的區(qū)域是否存在來檢測所述軟件的現(xiàn)有版本是否存在,并且,如果檢測到所述軟件的現(xiàn)有版本,則可操作成用所述軟件的所述現(xiàn)有版本的相應(yīng)的共享高速緩存功能來創(chuàng)建所述共享高速緩存。
全文摘要
本發(fā)明涉及使用共享高速緩存以版本化軟件的新版本替換版本化軟件的現(xiàn)有版本,其中軟件被版本化,并且每一個(gè)版本的軟件在共享高速緩存內(nèi)具有用于存儲(chǔ)至少包括軟件識(shí)別信息和版本信息的數(shù)據(jù)的相關(guān)聯(lián)的區(qū)域。在數(shù)據(jù)儲(chǔ)存改變過程的第一步驟中,創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存,新版本數(shù)據(jù)儲(chǔ)存具有新版本數(shù)據(jù)儲(chǔ)存模式,包含在數(shù)據(jù)遷移階段的開始的起始點(diǎn)處從現(xiàn)有版本數(shù)據(jù)儲(chǔ)存中的數(shù)據(jù)導(dǎo)出的數(shù)據(jù)。在數(shù)據(jù)儲(chǔ)存改變過程的第二步驟中,將改變信息轉(zhuǎn)換為與對新版本數(shù)據(jù)儲(chǔ)存的相應(yīng)改變有關(guān)的重演信息,該改變信息由現(xiàn)有版本軟件存儲(chǔ)在共享高速緩存中,并且與在創(chuàng)建新版本數(shù)據(jù)儲(chǔ)存的步驟期間由現(xiàn)有版本軟件做出的、對現(xiàn)有版本數(shù)據(jù)儲(chǔ)存的改變有關(guān)。在數(shù)據(jù)存儲(chǔ)改變過程的第三步驟中,在數(shù)據(jù)儲(chǔ)存改變過程的重演階段期間使用重演信息更新新版本數(shù)據(jù)儲(chǔ)存。
文檔編號(hào)G06F9/445GK102652306SQ200980162942
公開日2012年8月29日 申請日期2009年12月15日 優(yōu)先權(quán)日2009年12月15日
發(fā)明者A.米萊諾維奇 申請人:瑞典愛立信有限公司