專利名稱:控制軟件版本更新的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線通信設(shè)備,尤其涉及一種控制無線終端設(shè)備的軟件版本更新的方法和系統(tǒng)。
背景技術(shù):
諸如移動(dòng)電話、可無線通信的膝上型電腦和具有無線通信能力的PDA、自助電話亭和雙向?qū)ず魴C(jī)之類的無線終端設(shè)備,數(shù)量與種類都在快速地增長(zhǎng)。這些設(shè)備上運(yùn)行的軟件應(yīng)用程序也增加了其效用。例如,移動(dòng)電話可以包含應(yīng)用程序,用來檢索城市范圍內(nèi)的天氣情況,或者PDA可以包含應(yīng)用程序來使用戶能夠購(gòu)買雜貨。這些軟件應(yīng)用程序利用了到網(wǎng)絡(luò)的連通性以便向用戶提供及時(shí)和有效的服務(wù)。
正如本領(lǐng)域所公知的,軟件應(yīng)用程序開發(fā)者頻繁地提出他們軟件的新的和/或更新的版本。這些軟件更新的發(fā)布可能非常頻繁,例如,作為補(bǔ)丁發(fā)布出來以解決前面發(fā)布的軟件的缺陷。例如,可以一年或兩年發(fā)布一次重要升級(jí),并且經(jīng)常提供新的功能以便加強(qiáng)特定設(shè)備的效用。
但是,盡管軟件開發(fā)者可能很容易開發(fā)并且發(fā)布軟件更新,而實(shí)際在所有受影響設(shè)備上執(zhí)行更新卻是非常復(fù)雜的。例如,在無線網(wǎng)絡(luò)中,連通性經(jīng)常是斷斷續(xù)續(xù)的,以至于當(dāng)發(fā)布更新時(shí)特定的設(shè)備可能沒有連接到網(wǎng)絡(luò)。在這種情況下,就需要一些方法來使更新在稍后的時(shí)間能夠被下載并安裝。甚至當(dāng)完成這些時(shí),一些設(shè)備還可能缺乏資源(例如足夠的內(nèi)存)來下載和成功地安裝特定的更新。在其他情況下,應(yīng)用程序更新可能需要在應(yīng)用程序被安裝前就更新設(shè)備的控制器軟件。在其它情況下,可能必須以特定順序來下載和安裝一系列應(yīng)用程序升級(jí)。因此,例如,必須在用于糾正新特征中包括缺陷的諸多問題的服務(wù)補(bǔ)丁之前,安裝提供新特征的應(yīng)用程序升級(jí)。
因此,始終非常需要用于控制向無線終端設(shè)備安裝軟件更新的方法和系統(tǒng)。
發(fā)明內(nèi)容
據(jù)此,本發(fā)明的目的在于提供用于控制向無線終端設(shè)備安裝軟件更新的方法和系統(tǒng)。
因此,本發(fā)明的一個(gè)方面提供了一種控制無線網(wǎng)絡(luò)的終端設(shè)備上軟件更新的異步安裝方法。按照本發(fā)明,由主持(hosting)該終端設(shè)備的應(yīng)用程序網(wǎng)關(guān)接收關(guān)于軟件更新的更新通知消息。更新通知消息包括唯一地識(shí)別更新影響的應(yīng)用程序的軟件標(biāo)識(shí)符;與軟件更新關(guān)聯(lián)的版本號(hào);以及終端設(shè)備可訪問的數(shù)據(jù)網(wǎng)絡(luò)中更新腳本的地址。更新腳本適于在終端設(shè)備上安裝軟件更新。在更新注冊(cè)處記錄更新通知消息,并且通知消息被轉(zhuǎn)發(fā)給終端設(shè)備。通知消息包括軟件標(biāo)識(shí)符、版本號(hào)和更新腳本的地址,以便終端設(shè)備可以訪問并執(zhí)行更新腳本從而安裝軟件更新。
本發(fā)明的另一個(gè)方面提供了一種控制無線網(wǎng)絡(luò)的終端設(shè)備上軟件更新的安裝方法。按照本發(fā)明,由終端設(shè)備的運(yùn)行時(shí)間環(huán)境接收包括與有效軟件更新有關(guān)的信息的更新通知消息。更新通知消息包括唯一地識(shí)別更新影響的應(yīng)用程序的軟件標(biāo)識(shí)符;與該軟件更新關(guān)聯(lián)的版本號(hào);以及終端設(shè)備可訪問的數(shù)據(jù)網(wǎng)絡(luò)中更新腳本的地址,更新腳本適于在終端設(shè)備中安裝軟件更新。使用更新版本號(hào)來確定軟件更新的兼容性。其后,使用地址來訪問更新腳本,并執(zhí)行它來安裝軟件更新。
本發(fā)明的另一個(gè)方面提供了一種方法,能夠控制影響安裝在無線網(wǎng)絡(luò)的多個(gè)終端設(shè)備上的應(yīng)用程序的軟件更新的分發(fā)。按照本發(fā)明,版本號(hào)分配計(jì)劃被定義為包括分別與應(yīng)用程序多方面中每一方面相對(duì)應(yīng)的字段。當(dāng)發(fā)布初始應(yīng)用程序加載時(shí),定義了每一個(gè)字段的初始值。對(duì)于影響應(yīng)用程序的每一個(gè)連續(xù)軟件更新,識(shí)別軟件更新影響的應(yīng)用程序的每一個(gè)方面,并且遞增各個(gè)字段的值。
結(jié)合附圖,根據(jù)以下詳細(xì)的描述本發(fā)明更多的特點(diǎn)和優(yōu)點(diǎn)將變得顯而易見,附圖中圖1是示意性地示出了網(wǎng)絡(luò)系統(tǒng)的框圖;圖2是示意性地示出了按照本發(fā)明一方面的應(yīng)用程序開發(fā)環(huán)境的結(jié)構(gòu)和操作的框圖;圖3是示意性地示出了按照本發(fā)明一方面的公布軟件升級(jí)的處理的消息流程圖;圖4是示意性地示出了按照本發(fā)明實(shí)施例在終端設(shè)備上安裝軟件升級(jí)的處理的消息流程圖;以及圖5是示意性地示出了按照本發(fā)明另一實(shí)施例在終端設(shè)備上安裝軟件升級(jí)的處理的消息流程圖。
應(yīng)當(dāng)注意,在所有附圖中,相同的部分利用相同的參考數(shù)字標(biāo)識(shí)。
具體實(shí)施例方式
本發(fā)明提供了用于控制無線終端設(shè)備上軟件更新的分發(fā)和安裝的方法和系統(tǒng)。以下僅作為示例,參考圖1-5來描述本發(fā)明的實(shí)施例。
參考圖1,按照本發(fā)明典型實(shí)施例的系統(tǒng)通常包含連接在無線網(wǎng)絡(luò)4和數(shù)據(jù)網(wǎng)絡(luò)6(例如,因特網(wǎng))之間的應(yīng)用程序網(wǎng)關(guān)(AG)2。系統(tǒng)還具有在線注冊(cè)處8,包括簡(jiǎn)檔注冊(cè)處10,包含針對(duì)每一個(gè)訂戶的終端設(shè)備14a、14b、14c的信息表,用于識(shí)別分別存儲(chǔ)在各個(gè)終端設(shè)備上的軟件應(yīng)用程序;以及更新注冊(cè)處12,包含識(shí)別任意可用應(yīng)用程序更新的信息。
按照申請(qǐng)人同時(shí)待審的美國(guó)專利公開No.2004/0215700和2004/0220998(這二者一并在此作為參考)所述的方式,AG2通常進(jìn)行操作,以便在與無線網(wǎng)絡(luò)4相連的終端設(shè)備14a、14b、14c和通過數(shù)據(jù)網(wǎng)絡(luò)6可訪問的數(shù)據(jù)業(yè)務(wù)之間傳達(dá)消息流。
在線注冊(cè)處8可以與AG 2共同駐留(co-resident)或者可以遠(yuǎn)離AG并由AG通過數(shù)據(jù)網(wǎng)絡(luò)6進(jìn)行訪問。在圖1的實(shí)施例中,在線注冊(cè)處8包括簡(jiǎn)檔注冊(cè)處10和更新注冊(cè)處12。簡(jiǎn)檔注冊(cè)處10包含針對(duì)多個(gè)終端設(shè)備的每一個(gè)的簡(jiǎn)檔。每一個(gè)簡(jiǎn)檔都至少包含唯一地識(shí)別運(yùn)行時(shí)間環(huán)境(RE)和安裝在各自終端設(shè)備上的每一個(gè)應(yīng)用程序的軟件標(biāo)識(shí)符(SW-ID)的列表。安裝在終端設(shè)備上的每一個(gè)應(yīng)用程序的各自“當(dāng)前”版本號(hào)還可以與各自的SW-ID相關(guān)聯(lián)地存儲(chǔ)在在線注冊(cè)處8,或者可以存儲(chǔ)在終端設(shè)備中。針對(duì)每一個(gè)軟件更新,分離的腳本注冊(cè)處40包含設(shè)計(jì)用于執(zhí)行終端設(shè)備上的軟件更新的一個(gè)或多個(gè)腳本。
通常,終端設(shè)備可以是多種軟件控制的無線設(shè)備中的任意一種,包括但不限于無線啟用的膝上型計(jì)算機(jī)14a、移動(dòng)或蜂窩電話14b、具有無線通信功能的PDA 14c、自助電話亭以及雙向?qū)ず魴C(jī)。從圖1中可以看出,這些設(shè)備通常包括與用于無線通信的RF部件18相連的微處理器16、存儲(chǔ)器20(至少其一部分通常是非易失性的)、以及包括顯示器24和一個(gè)或多個(gè)用戶輸入設(shè)備(UID)26(例如鍵盤、指輪、輸入筆、麥克風(fēng)等)的用戶接口(UI)22。微處理器16在軟件控制下進(jìn)行操作,以提供終端設(shè)備的功能。優(yōu)選地,以一種分層模型來設(shè)計(jì)軟件,其中RE 32在應(yīng)用程序軟件30和終端設(shè)備的本機(jī)語言34之間進(jìn)行翻譯來控制終端設(shè)備的硬件,并與數(shù)據(jù)業(yè)務(wù)進(jìn)行通信。這種分層軟件模型及其操作的方式可以從申請(qǐng)人同時(shí)待審的美國(guó)專利公開No.2004/0215700和2004/0220998中得到。RE還可以保持終端設(shè)備注冊(cè)處28(圖1中表示為“TD-REG”),用來識(shí)別終端設(shè)備上安裝的每一個(gè)應(yīng)用程序以及每一個(gè)應(yīng)用程序的當(dāng)前版本號(hào)。下面將詳細(xì)描述能夠向終端設(shè)備異步分發(fā)和安裝軟件升級(jí)的RE的操作。
如申請(qǐng)人同時(shí)待審的美國(guó)專利公開No.2004/0215700和2004/0220998中所述,AG 2的操作能夠使軟件應(yīng)用程序在終端設(shè)備中執(zhí)行以便與數(shù)據(jù)網(wǎng)絡(luò)6提供的數(shù)據(jù)業(yè)務(wù)(未示出)進(jìn)行通信。例如,這個(gè)操作可以包括訪問并下載來自與數(shù)據(jù)網(wǎng)絡(luò)6相連的后端數(shù)據(jù)源(未示出)的文件。如圖1中可以看出,以及下面更詳細(xì)所述,應(yīng)用程序開發(fā)者(AD)36還可以通過數(shù)據(jù)網(wǎng)絡(luò)6分發(fā)和支持新的或更新的軟件。例如,可下載的應(yīng)用程序軟件和安裝腳本可以存儲(chǔ)在能被用戶(直接或間接地)通過數(shù)據(jù)網(wǎng)絡(luò)6訪問的應(yīng)用程序開發(fā)者注冊(cè)處38。
應(yīng)用程序開發(fā)環(huán)境現(xiàn)在參考圖2,應(yīng)用程序開發(fā)者按照本領(lǐng)域通常公知的方式,使用運(yùn)行在計(jì)算設(shè)備上的應(yīng)用程序開發(fā)環(huán)境(ADE)50的應(yīng)用程序開發(fā)工具箱(ADT)52來對(duì)應(yīng)用程序軟件進(jìn)行編碼、測(cè)試和調(diào)試。計(jì)算設(shè)備可以是連接到或者可連接到數(shù)據(jù)網(wǎng)絡(luò)或其它網(wǎng)絡(luò)工作站的個(gè)人計(jì)算機(jī)或膝上型計(jì)算機(jī)。再次按照本領(lǐng)域公知的方式,該相同的ADE還可以用于開發(fā)應(yīng)用程序的后續(xù)更新。按照本發(fā)明,ADE 50還包括版本號(hào)分配(versioning)模塊70,基于編碼、測(cè)試和調(diào)試的處理中應(yīng)用程序源代碼發(fā)生的改變來自動(dòng)地分配版本號(hào)。版本號(hào)分配模塊70還能夠用于產(chǎn)生更新腳本60,當(dāng)在終端設(shè)備中執(zhí)行所述更新腳本60時(shí),更新腳本60將下載和安裝終端設(shè)備上的更新。
例如,版本號(hào)分配模塊70能夠用于識(shí)別以下任何之一·現(xiàn)有數(shù)據(jù)組成(諸如數(shù)據(jù)結(jié)構(gòu))的改變,即,通過添加或去除字段,或改變字段類型的定義;在全局變量定義和枚舉的改變;·現(xiàn)有消息的改變,即,通過添加或去除字段,或改變字段類型定義;·現(xiàn)有應(yīng)用程序邏輯的改變;·要被添加到應(yīng)用程序的新數(shù)據(jù)組成、消息或應(yīng)用程序邏輯。
在每一種情況下,版本號(hào)分配模塊70檢測(cè)到的改變和添加均與應(yīng)用程序的“當(dāng)前”版本相關(guān)(也就是說,具有所安裝的任意后續(xù)發(fā)布的更新的初始版本)。根據(jù)需要,可以通過利用修訂日志54在編輯處理期間實(shí)時(shí)跟蹤應(yīng)用程序開發(fā)者的動(dòng)作(例如鍵擊),或者通過比較應(yīng)用程序源代碼的“過去”和“之后”版本,或者通過將應(yīng)用程序的更新版本與該應(yīng)用程序的之前版本進(jìn)行比較來確定發(fā)生了什么改變的任意其它方式,來檢測(cè)改變。在任何情況下,版本號(hào)分配模塊70識(shí)別隨后被寫入一個(gè)或多個(gè)更新文件58的新的和/或修訂的數(shù)據(jù)組成、消息、以及應(yīng)用程序邏輯。然后,這些更新文件58可以被保存到更新文件注冊(cè)處42,優(yōu)選地,如圖1和2所示,更新文件注冊(cè)處42駐留在應(yīng)用程序開發(fā)者注冊(cè)處38??蛇x地,在如圖2所示的實(shí)施例中,修訂日志54跟蹤由AD工具箱52對(duì)應(yīng)用程序源代碼做的改變。可以理解,版本號(hào)分配模塊70可以包含修訂日志54,或者修訂日志54可以是ADE50中的獨(dú)立模塊。
另外,如下面更詳細(xì)地描述,可以生成更新腳本60來控制終端設(shè)備下載和安裝更新文件58。更新腳本60可以被保存到腳本注冊(cè)處40,優(yōu)選地,如圖2所示,腳本注冊(cè)處40駐留在應(yīng)用程序開發(fā)者注冊(cè)處38。
如果需要,可以提供腳本編輯模塊或更新腳本編輯器56,以使應(yīng)用程序開發(fā)者可以手動(dòng)編寫更新腳本60,也可以回顧和編輯自動(dòng)生成的更新腳本。
可以便利地以結(jié)構(gòu)化語言(諸如Java,JavaScrip或XML)來開發(fā)更新腳本60,以使設(shè)備可以在更新處理期間,通過數(shù)據(jù)網(wǎng)絡(luò)6來訪問一個(gè)或多個(gè)后端數(shù)據(jù)源。這使得更新腳本60能夠在執(zhí)行期間根據(jù)需要來訪問和下載更新文件58。由于更新腳本60能夠在執(zhí)行期間將需要的更新文件58從后端數(shù)據(jù)源“拉出(pull)”,這促進(jìn)了更新的異步分發(fā)。此外,在特定的實(shí)現(xiàn)方式中,用于升級(jí)的通知消息可以包含足夠的信息使終端設(shè)備中的RE能夠自己拉出應(yīng)用程序更新。
版本號(hào)分配計(jì)劃如上所述,版本號(hào)分配模塊70自動(dòng)地向初始版本和應(yīng)用程序的每一個(gè)更新分配各自的版本號(hào)。在初始版本的情況下,可以使用任意需要的“初始”版本號(hào)。但是,在初始版本之后,基于該更新所做的改變的類型,向每個(gè)后續(xù)的更新分配自動(dòng)生成的版本號(hào)。這個(gè)設(shè)置具有很多優(yōu)點(diǎn)。例如,由于由版本號(hào)分配模塊70分配每一個(gè)版本號(hào),因此版本號(hào)之間的連續(xù)性是強(qiáng)制的。例如,這意味著終端設(shè)備的RE可以使用更新的版本號(hào)來確定是否必須首先安裝任意其它的更新。另一個(gè)優(yōu)點(diǎn)在于,終端設(shè)備的RE可以在試圖安裝更新之前,估計(jì)更新的版本號(hào)以檢測(cè)潛在的兼容性問題。
通過將版本號(hào)格式化為多個(gè)字段的版本號(hào)分配計(jì)劃來啟用這些功能,其中每一個(gè)字段分別表示應(yīng)用程序的不同方面。例如,版本號(hào)分配模塊被設(shè)計(jì)成檢測(cè)現(xiàn)有數(shù)據(jù)組成、消息或邏輯的改變,以及新數(shù)據(jù)組成、消息或邏輯的添加。理論上說,這些因素的每一個(gè)都可以用版本號(hào)的各個(gè)字段表示。但是,實(shí)際上卻發(fā)現(xiàn)使用“數(shù)據(jù).消息.特征”組合排列的三字段計(jì)劃可以得到令人滿意的性能,如下面的表1所示。
表1
利用這個(gè)版本號(hào)分配計(jì)劃,可以針對(duì)應(yīng)用程序的初始版本向版本號(hào)的每個(gè)字段分配初始值(例如D=1,M=1,F(xiàn)=0)。之后,對(duì)于每一個(gè)更新版本,版本號(hào)分配模塊通過遞增應(yīng)用程序字段的數(shù)值,自動(dòng)地產(chǎn)生分別用于更新的各個(gè)版本號(hào)。
例如,如前所述,考慮攜帶版本號(hào)“1.1.0”被發(fā)布的應(yīng)用程序。在初始發(fā)布之后,應(yīng)用程序開發(fā)者提出應(yīng)用程序更新,修改了現(xiàn)有的數(shù)據(jù)字段并添加了新的應(yīng)用程序邏輯。通過遞增數(shù)據(jù)和特征字段,這些改變將反映在更新的版本號(hào)中。因此,第一次更新的版本號(hào)將是2.1.1。在首次更新的發(fā)布之后,它的版本號(hào)(2.1.1)變?yōu)閼?yīng)用程序的“當(dāng)前”版本號(hào),并與下次發(fā)布的應(yīng)用程序更新進(jìn)行比較。因此,例如考慮第二個(gè)應(yīng)用程序更新,修改了現(xiàn)有消息的格式。通過遞增消息字段,在第二個(gè)更新的版本號(hào)中反映這個(gè)改變,因此第二個(gè)更新版本號(hào)將是2.2.1。
應(yīng)當(dāng)理解,這個(gè)模式可以持續(xù)任意次數(shù)的更新,每一次都可能影響應(yīng)用程序的任意或多個(gè)方面。還將理解,可以擴(kuò)展版本號(hào)分配計(jì)劃以提供更精細(xì)的粒度。例如,可以利用分別表示新數(shù)據(jù)、消息或應(yīng)用程序邏輯的添加的字段集合來替代特征字段。在另一個(gè)示例,可以將一個(gè)字段添加到版本號(hào)上,以表示是否必須在應(yīng)用程序的安裝前更新RE。
還可以理解,本發(fā)明并不限于應(yīng)用程序本身。例如,版本號(hào)分配計(jì)劃以及此處描述的更新方法可以等同地應(yīng)用于RE本身,由此可以控制RE的更新。
異步軟件分發(fā)參考圖3,當(dāng)應(yīng)用程序開發(fā)者(AD)36發(fā)行(初始軟件加載或更新的)軟件版本時(shí),版本號(hào)分配模塊分配版本號(hào),并將更新腳本和更新文件存儲(chǔ)于AD注冊(cè)處38。然后,AD 36向AG 2發(fā)出更新通知消息。優(yōu)選地,更新通知消息包括唯一地識(shí)別應(yīng)用程序的軟件標(biāo)識(shí)符(SW-ID)、版本號(hào)、以及到存儲(chǔ)在腳本注冊(cè)處40中的更新腳本的鏈路(例如URL)。當(dāng)AG 2從AD 36接收到更新通知消息時(shí),AG 2通過在更新注冊(cè)處12存儲(chǔ)軟件ID、版本號(hào)和腳本URL來記錄更新。一旦更新被AG 2記錄下來,就可以按照多種方式實(shí)現(xiàn)向用戶的終端設(shè)備異步分發(fā)。下面參考圖4和5描述兩種有代表性的分發(fā)方案。
圖4示出了一種異步分發(fā)方案,例如,由AG 2響應(yīng)從AD 36接收到的更新通知消息來發(fā)起所述方案。因此,AG 2使用軟件ID(例如包含在更新通知里)來搜索簡(jiǎn)檔注冊(cè)處10。搜索返回識(shí)別了其上已經(jīng)安裝了應(yīng)用程序的所有終端設(shè)備的信息(例如設(shè)備ID)。然后,AG 2可以生成通知消息并將通知消息發(fā)送到所識(shí)別的每一個(gè)終端設(shè)備。例如,通知消息可以包含更新的軟件ID和版本號(hào)、以及到存儲(chǔ)于應(yīng)用程序開發(fā)者注冊(cè)處38的腳本部分40中的更新腳本的鏈路(例如,URL)。
當(dāng)接收到通知消息時(shí),運(yùn)行時(shí)間環(huán)境(RE)可以從消息中提取軟件ID和版本號(hào),并且使用這個(gè)信息來確定更新可以是否被安全地安裝在終端設(shè)備上。這個(gè)估計(jì)可以采用以下兼容性檢查的形式·將“新”版本號(hào)與保存在終端設(shè)備注冊(cè)處(TD-REG)28中的當(dāng)前版本號(hào)進(jìn)行比較,以識(shí)別在更新中將改變應(yīng)用程序的哪些方面。例如,可以通過將新的版本號(hào)和當(dāng)前版本號(hào)逐字段相減的方式來實(shí)現(xiàn)這項(xiàng)功能。例如,考慮當(dāng)前版本號(hào)是“2.2.1”以及包含在通知消息中的新版本號(hào)是“2.3.2”的情況。從新版本號(hào)中逐字段地減去當(dāng)前版本號(hào)得到“0.1.1”,這表示更新涉及現(xiàn)有數(shù)據(jù)組成不改變;至少一個(gè)現(xiàn)有消息發(fā)生改變;至少增加了一個(gè)新的特征。
·確定是否必須在通知消息標(biāo)識(shí)的“當(dāng)前”更新之前安裝任意插入的更新。這可以通過上述的減法結(jié)果來完成。具體地,如果減法結(jié)果的任意字段都有大于“1”的數(shù)值,那么必須在“當(dāng)前”更新之前安裝至少一個(gè)更新。
一般而言,新特征的添加不會(huì)產(chǎn)生任何兼容性問題。但是,現(xiàn)有數(shù)據(jù)組成或消息的改變可能會(huì)有兼容性問題,這是因?yàn)榇鎯?chǔ)在存儲(chǔ)器中的用戶數(shù)據(jù)有可能與修訂的數(shù)據(jù)和/或消息定義不兼容。因此,更新的安裝將需要所保存的數(shù)據(jù)的轉(zhuǎn)換,并且執(zhí)行這種轉(zhuǎn)換的能力可能會(huì)受終端設(shè)備的硬件性能的限制。此外,數(shù)據(jù)轉(zhuǎn)換會(huì)存在一些數(shù)據(jù)可能被破壞或丟失的風(fēng)險(xiǎn),這樣用戶就可能寧愿不安裝更新,即使所需要的轉(zhuǎn)換功能是終端設(shè)備性能所具有的。
因此,只要RE確定更新影響了現(xiàn)有數(shù)據(jù)組成和/或現(xiàn)有消息,則RE就可以向用戶提供警告消息,表示更新是可用的,但是其安裝可能會(huì)引起數(shù)據(jù)丟失或破壞。然后,該用戶可以選擇是否安裝更新??蛇x地,由應(yīng)用程序開發(fā)者使用AD工具定義的更新腳本可以對(duì)于不兼容的更新執(zhí)行數(shù)據(jù)轉(zhuǎn)換。
當(dāng)(或者如果)該用戶選擇安裝更新時(shí),或者如果RE確定沒有兼容性問題(即,更新僅添加新特征),則RE可以通過打開包含在更新通知消息中的鏈路(URL)來發(fā)起更新的安裝,并由此訪問和下載更新腳本。當(dāng)從應(yīng)用程序開發(fā)者注冊(cè)處(AD-REG)38中的腳本部件40成功地下載更新腳本時(shí),RE可以裝入腳本,然后所述腳本控制從應(yīng)用程序開發(fā)者注冊(cè)處38的更新文件部分42下載和安裝更新文件。
當(dāng)成功地安裝了更新時(shí),則RE使用在更新通知消息中接收的更新版本號(hào),更新存儲(chǔ)于終端設(shè)備注冊(cè)處中的應(yīng)用程序的“當(dāng)前”版本號(hào),并向AG2發(fā)出更新完成消息。當(dāng)接收到更新完成消息時(shí),AG 2利用新版本號(hào)更新設(shè)備簡(jiǎn)檔,由此表示軟件更新已經(jīng)成功地安裝在終端設(shè)備14b上。
圖4所述方案的局限在于AG 2通過向其上安裝了受影響的軟件的每一個(gè)終端設(shè)備發(fā)送通知消息來發(fā)起更新分發(fā)方案(例如,響應(yīng)從AD36接收到更新通知消息)。這可能導(dǎo)致不愿看到的大量通知消息涌入網(wǎng)絡(luò),其可能加重?zé)o線網(wǎng)絡(luò)帶寬的負(fù)荷。此外,當(dāng)AG發(fā)送通知時(shí),一些終端設(shè)備可能沒有被連接,結(jié)果“斷開”的終端設(shè)備可能錯(cuò)過該更新。這些問題可以由下面參考圖5描述的異步分發(fā)方案來解決。
在圖5示出的分發(fā)方案中,由終端設(shè)備觸發(fā)異步分發(fā)。在示出的示例中,觸發(fā)事件在于當(dāng)終端設(shè)備登錄到AG 2上時(shí),盡管也可以使用其它事件。例如,RE可以向AG 2發(fā)送消息以便按照預(yù)定的時(shí)間表來檢查更新,或者當(dāng)將應(yīng)用程序裝入終端設(shè)備14b時(shí)來檢查更新。無論如何,AG 2通過訪問終端設(shè)備的簡(jiǎn)檔來響應(yīng)終端設(shè)備14b,以便識(shí)別安裝在終端設(shè)備14b上的每一個(gè)應(yīng)用程序和當(dāng)前的版本號(hào)。然后,這個(gè)信息用于搜索更新注冊(cè)處12,以識(shí)別影響終端設(shè)備14b的任意記錄的更新以及相應(yīng)的更新版本號(hào)。然后,當(dāng)前和更新版本號(hào)之間的比較使AG能夠確定終端設(shè)備14b是否還存在沒有被安裝的任意更新。
然后,AG 2針對(duì)每一個(gè)未安裝的更新定制適當(dāng)?shù)母峦ㄖ?,并將其發(fā)送給終端設(shè)備14b。然后,終端設(shè)備14b檢查更新通知消息和安裝更新的后續(xù)處理符合參考圖4描述的上述處理,也就是說,該終端設(shè)備14b檢查兼容性,然后通過打開鏈路(URL)從AD-REG 38下載腳本來安裝該更新。在該終端設(shè)備上執(zhí)行該腳本使得能夠訪問和下載存儲(chǔ)在AD-REG 38中的更新文件。當(dāng)更新完成后,終端設(shè)備通過向AG通知軟件ID和版本號(hào)來信號(hào)通知表示更新的完成。然后,該AG通過向簡(jiǎn)檔注冊(cè)處10通知軟件ID和版本號(hào)來更新簡(jiǎn)檔注冊(cè)處10中的簡(jiǎn)檔文件。
上述本發(fā)明的實(shí)施例意欲僅作為示例。因此,僅由所附的權(quán)利要求來限制本發(fā)明的范圍。
權(quán)利要求
1.一種控制無線網(wǎng)絡(luò)的終端設(shè)備上軟件更新的異步安裝的方法,所述方法包括步驟響應(yīng)所述軟件更新來接收更新通知消息,所述更新通知消息包括唯一地識(shí)別受所述更新影響的應(yīng)用程序的軟件標(biāo)識(shí)符;與所述軟件更新相關(guān)的版本號(hào);以及所述終端設(shè)備可訪問的數(shù)據(jù)網(wǎng)絡(luò)中的更新腳本的地址,所述更新腳本適于在所述終端設(shè)備上安裝所述軟件更新;在更新注冊(cè)處記錄所述更新通知消息;以及向所述終端設(shè)備轉(zhuǎn)發(fā)通知消息,所述通知消息包括軟件標(biāo)識(shí)符、版本號(hào)和更新腳本的地址。
2.如權(quán)利要求1所述的方法,其中,所述數(shù)據(jù)網(wǎng)絡(luò)是因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò),以及更新腳本的地址包含所述IP網(wǎng)絡(luò)上的所述更新腳本的統(tǒng)一資源定位器(URL)地址。
3.如權(quán)利要求1所述的方法,其中,在注冊(cè)處記錄所述更新通知消息的步驟包括步驟在更新注冊(cè)處至少存儲(chǔ)軟件標(biāo)識(shí)符、版本號(hào)和更新腳本的地址。
4.如權(quán)利要求1所述的方法,其中,轉(zhuǎn)發(fā)所述通知消息的步驟包括步驟搜索包含識(shí)別安裝在多個(gè)終端設(shè)備中每一個(gè)上的每一個(gè)應(yīng)用程序的信息的簡(jiǎn)檔注冊(cè)處,以便識(shí)別受到所述軟件更新影響的每一個(gè)終端設(shè)備;以及向每一個(gè)識(shí)別的終端設(shè)備發(fā)送所述通知消息。
5.如權(quán)利要求4所述的方法,其中,所述簡(jiǎn)檔注冊(cè)處包括多個(gè)簡(jiǎn)檔,每一個(gè)簡(jiǎn)檔與各自的終端設(shè)備相關(guān),并且對(duì)于安裝在各個(gè)終端設(shè)備中每個(gè)應(yīng)用程序,所述簡(jiǎn)檔還包括應(yīng)用程序的各自軟件標(biāo)識(shí)符以及表示所述安裝的應(yīng)用程序的版本的當(dāng)前版本號(hào),以及其中搜索簡(jiǎn)檔注冊(cè)處的步驟包括步驟識(shí)別更新的軟件標(biāo)識(shí)符與終端設(shè)備中安裝的應(yīng)用程序的標(biāo)識(shí)符相匹配的每一個(gè)終端設(shè)備。
6.如權(quán)利要求5所述的方法,還包括步驟識(shí)別與所述軟件更新相關(guān)的版本號(hào)的至少一個(gè)字段大于所述當(dāng)前版本號(hào)的相應(yīng)字段的每一個(gè)終端設(shè)備。
7.如權(quán)利要求1所述的方法,其中,轉(zhuǎn)發(fā)通知消息的步驟包括步驟從所述終端設(shè)備接收消息;訪問與所述設(shè)備相關(guān)的簡(jiǎn)檔,所述簡(jiǎn)檔包含用于識(shí)別安裝在所述終端設(shè)備上的軟件的信息;利用所述簡(jiǎn)檔來搜索所述更新注冊(cè)處,以便識(shí)別影響安裝在所述終端設(shè)備上的軟件的任意軟件更新;以及向所述終端設(shè)備發(fā)送關(guān)于每一個(gè)被識(shí)別的軟件更新的通知消息。
8.如權(quán)利要求7所述的方法,其中,對(duì)于安裝在所述終端設(shè)備中的每一個(gè)應(yīng)用程序,所述簡(jiǎn)檔包括各自的軟件標(biāo)識(shí)符和表示所述軟件應(yīng)用程序的版本的當(dāng)前版本號(hào),并且其中搜索更新注冊(cè)處的步驟還包括步驟將與所述軟件更新相關(guān)的版本號(hào)與所述當(dāng)前版本號(hào)相比較;以及識(shí)別所述相關(guān)版本號(hào)的至少一個(gè)字段大于所述當(dāng)前版本號(hào)的相應(yīng)字段的每一個(gè)軟件更新。
9.如權(quán)利要求1所述的方法,其中,所述腳本還適于針對(duì)不兼容的更新執(zhí)行數(shù)據(jù)轉(zhuǎn)換。
10.一種控制無線網(wǎng)絡(luò)的終端設(shè)備上的軟件更新的安裝的方法,所述方法包括步驟接收包含關(guān)于可用軟件更新的信息的更新通知消息,所述更新通知消息包含唯一地識(shí)別所述更新影響的應(yīng)用程序的軟件標(biāo)識(shí)符;與所述軟件更新相關(guān)的版本號(hào);以及所述終端設(shè)備可訪問的數(shù)據(jù)網(wǎng)絡(luò)中的更新腳本的地址,所述更新腳本適于在所述終端設(shè)備上安裝所述軟件更新;利用所述更新版本號(hào)確定所述軟件更新的兼容性;利用所述地址訪問所述更新腳本;以及執(zhí)行所述更新腳本。
11.如權(quán)利要求10所述的方法,其中,確定所述軟件更新的兼容性的步驟包括步驟將所述更新版本號(hào)與受影響的應(yīng)用程序的當(dāng)前版本號(hào)相比較。
12.如權(quán)利要求11所述的方法,其中,按照包含與應(yīng)用程序的多個(gè)方面的每一個(gè)分別對(duì)應(yīng)的字段的版本號(hào)分配計(jì)劃來定義更新和當(dāng)前版本號(hào),其中將更新版本號(hào)與當(dāng)前版本號(hào)相比較的步驟包括步驟從更新版本號(hào)的相應(yīng)字段的數(shù)值中減去當(dāng)前版本號(hào)的每一個(gè)字段的數(shù)值。
13.如權(quán)利要求12所述的方法,還包括步驟如果所述減法結(jié)果中任意字段的數(shù)值大于1,則確定在軟件更新的安裝之前必須安裝的至少一個(gè)其他軟件更新。
14.如權(quán)利要求12所述的方法,其中,所述版本計(jì)劃包含與所述應(yīng)用程序的數(shù)據(jù)組成相對(duì)應(yīng)的至少一個(gè)“數(shù)據(jù)”字段,并且如果減法結(jié)果中的“數(shù)據(jù)”字段的數(shù)值大于“0”,則確定軟件更新的兼容性的步驟包括確定所述軟件更新可能需要轉(zhuǎn)換存儲(chǔ)在所述終端設(shè)備中的用戶數(shù)據(jù)。
15.如權(quán)利要求12所述的方法,其中,所述版本計(jì)劃包含與所述應(yīng)用程序的消息組成相對(duì)應(yīng)的至少一個(gè)“消息”字段,并且如果減法結(jié)果中的“消息”字段的數(shù)值大于“0”,則確定軟件更新的兼容性的步驟包括步驟確定所述軟件更新可能需要轉(zhuǎn)換存儲(chǔ)在所述終端設(shè)備中的用戶數(shù)據(jù)。
16.如權(quán)利要求12所述的方法,其中,所述版本計(jì)劃包含與應(yīng)用程序的運(yùn)行時(shí)間環(huán)境相對(duì)應(yīng)的至少一個(gè)“RE”字段,并且如果減法結(jié)果的“RE”字段的數(shù)值大于“0”,則確定軟件更新的兼容性的步驟包括步驟確定應(yīng)用程序的運(yùn)行時(shí)間環(huán)境必須在所述軟件更新前進(jìn)行更新。
17.如權(quán)利要求10所述的方法,其中,所述腳本還適于針對(duì)非兼容更新執(zhí)行數(shù)據(jù)轉(zhuǎn)換。
18.一種控制無線網(wǎng)絡(luò)的終端設(shè)備上的軟件更新的異步安裝的系統(tǒng),所述系統(tǒng)包括與數(shù)據(jù)網(wǎng)絡(luò)相連的計(jì)算設(shè)備,用于與在所述數(shù)據(jù)網(wǎng)絡(luò)和所述無線網(wǎng)絡(luò)之間傳遞信息的應(yīng)用程序網(wǎng)關(guān)進(jìn)行通信;運(yùn)行于所述計(jì)算設(shè)備上的應(yīng)用程序開發(fā)環(huán)境,用于使所述應(yīng)用程序能夠被更新以及進(jìn)一步使更新腳本和更新文件能夠被上載到應(yīng)用程序開發(fā)者注冊(cè)處,可通過數(shù)據(jù)網(wǎng)絡(luò)來訪問所述應(yīng)用程序開發(fā)者注冊(cè)處,以便所述終端設(shè)備能夠通過所述應(yīng)用程序網(wǎng)關(guān)來進(jìn)行后續(xù)下載。
19.如權(quán)利要求18所述的系統(tǒng),還包括在線注冊(cè)處,所述在線注冊(cè)處包含簡(jiǎn)檔注冊(cè)處,對(duì)于每一個(gè)終端設(shè)備,所述簡(jiǎn)檔注冊(cè)處包括識(shí)別存儲(chǔ)于所述終端設(shè)備的軟件應(yīng)用程序的信息的列表;以及包含識(shí)別任意可用應(yīng)用程序更新的信息的更新注冊(cè)處。
20.如權(quán)利要求18所述的系統(tǒng),其中,所述終端設(shè)備包括存儲(chǔ)器,用于存儲(chǔ)識(shí)別加載到所述終端設(shè)備上的軟件應(yīng)用程序的終端設(shè)備注冊(cè)處以及與所述終端設(shè)備上加載的每一個(gè)所述軟件應(yīng)用程序相對(duì)應(yīng)的版本號(hào)。
21.如權(quán)利要求18所述的系統(tǒng),其中,所述應(yīng)用程序開發(fā)環(huán)境包含版本號(hào)分配模塊,用于基于所述軟件應(yīng)用程序所發(fā)生的改變來分配版本號(hào)。
22.如權(quán)利要求19所述的系統(tǒng),其中,所述在線注冊(cè)處與所述應(yīng)用程序網(wǎng)關(guān)共同駐留。
全文摘要
提供了用于控制軟件更新的異步分發(fā)和安裝的方法和系統(tǒng),所述軟件更新影響在無線網(wǎng)絡(luò)的終端設(shè)備中安裝的應(yīng)用程序。由應(yīng)用程序開發(fā)環(huán)境實(shí)施的版本號(hào)分配計(jì)劃使終端設(shè)備的運(yùn)行時(shí)間環(huán)境能夠估計(jì)軟件更新,以便識(shí)別潛在的兼容性問題并控制該更新的安裝。
文檔編號(hào)G06F9/445GK101040552SQ200680000981
公開日2007年9月19日 申請(qǐng)日期2006年3月31日 優(yōu)先權(quán)日2005年4月18日
發(fā)明者布倫杜沙·L·弗里奇, 菲拉·比布爾, 弗拉基米爾·布拉戈耶維奇, 布賴恩·R·戈林, 邁克爾·申菲爾德, 卡門·B·維塔諾夫 申請(qǐng)人:捷訊研究有限公司