應(yīng)用文件的分發(fā)的制作方法
【專利摘要】一種系統(tǒng),包括:服務(wù)器系統(tǒng)接口,被布置為從多個(gè)客戶端計(jì)算設(shè)備中的一個(gè)客戶端計(jì)算設(shè)備的客戶端應(yīng)用接收對(duì)應(yīng)于對(duì)于獲得或更新軟件應(yīng)用的請(qǐng)求的通信;以及應(yīng)用市場服務(wù)器系統(tǒng),被編程為:響應(yīng)于該通信,標(biāo)識(shí)應(yīng)用文件,該應(yīng)用文件包括對(duì)應(yīng)于軟件應(yīng)用的應(yīng)用二進(jìn)制文件和與軟件應(yīng)用相關(guān)聯(lián)的一個(gè)或多個(gè)補(bǔ)充文件,并且響應(yīng)于接收該通信向客戶端應(yīng)用發(fā)送與應(yīng)用文件有關(guān)的信息,以及標(biāo)識(shí)計(jì)算設(shè)備上的對(duì)應(yīng)于應(yīng)用文件的存儲(chǔ)的文件,基于標(biāo)識(shí)的存儲(chǔ)的文件以及與從應(yīng)用市場服務(wù)器系統(tǒng)發(fā)送的應(yīng)用文件有關(guān)的信息來確定應(yīng)用文件中的要下載的特定文件,以及發(fā)起下載。
【專利說明】應(yīng)用文件的分發(fā)
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求于2012年3月2日提交的、名稱為“DISTRIBUT1N OF APPLICAT1NFILES”的美國申請(qǐng)序列號(hào)13/411,048的優(yōu)先權(quán),其公開內(nèi)容通過引入并入于此。
【技術(shù)領(lǐng)域】
[0003]本文獻(xiàn)總體上涉及軟件分發(fā)系統(tǒng)。
【背景技術(shù)】
[0004]軟件應(yīng)用可以使用各種模式被售賣和分發(fā)。應(yīng)用市場模式是有時(shí)以移動(dòng)設(shè)備和其他計(jì)算設(shè)備為目標(biāo)分發(fā)應(yīng)用(或app)的模式的一個(gè)示例。在這樣的模式中,軟件開發(fā)者可以提交其應(yīng)用以在線上應(yīng)用市場中發(fā)布,并且市場可以提供允許用戶瀏覽、搜索和購買發(fā)布的應(yīng)用的接口。
[0005]當(dāng)用戶標(biāo)識(shí)他或她期望獲得的應(yīng)用時(shí),應(yīng)用市場通常可以有助于交易。例如,在免費(fèi)應(yīng)用的情況下,應(yīng)用市場可以簡單地向用戶的設(shè)備中的一個(gè)或多個(gè)設(shè)備提供應(yīng)用以用于下載。在付費(fèi)應(yīng)用的情況下,應(yīng)用市場可以提供應(yīng)用以用于下載,并且還可以提供與從用戶收集付款并且補(bǔ)償軟件開發(fā)者有關(guān)的服務(wù)。應(yīng)用市場通??梢杂杀卉浖_發(fā)者和用戶二者信任的組織操作以適當(dāng)?shù)靥幚砣魏未祟悜?yīng)用交易。
【發(fā)明內(nèi)容】
[0006]本文獻(xiàn)描述了允許軟件開發(fā)者使用軟件分發(fā)系統(tǒng)(例如,應(yīng)用市場)來分發(fā)與應(yīng)用相關(guān)聯(lián)的多個(gè)應(yīng)用文件的系統(tǒng)和技術(shù)。在某些實(shí)現(xiàn)方式中,軟件開發(fā)者可以向軟件分發(fā)系統(tǒng)上傳針對(duì)特定應(yīng)用的應(yīng)用二進(jìn)制,并且還可以上傳與該應(yīng)用相關(guān)聯(lián)的一個(gè)或多個(gè)補(bǔ)充文件。補(bǔ)充文件可以例如包括圖形、音頻或與應(yīng)用相關(guān)聯(lián)的多媒體資產(chǎn)。補(bǔ)充文件還可以包括開發(fā)者期望與應(yīng)用相關(guān)聯(lián)的任意其他適當(dāng)數(shù)據(jù)。在某些情況下,補(bǔ)充文件可以大于應(yīng)用二進(jìn)制本身。
[0007]當(dāng)用戶請(qǐng)求從軟件分發(fā)系統(tǒng)下載軟件應(yīng)用(例如,針對(duì)應(yīng)用的最初安裝或者針對(duì)應(yīng)用的更新)時(shí),系統(tǒng)可以通過向用戶的設(shè)備提供用于下載的應(yīng)用二進(jìn)制和補(bǔ)充文件來響應(yīng)。在某些實(shí)例中,系統(tǒng)可以只向用戶的設(shè)備提供用于下載的文件中的某些文件,例如,當(dāng)系統(tǒng)確定所請(qǐng)求的文件中的一個(gè)或多個(gè)文件已經(jīng)存在于設(shè)備上時(shí)。
[0008]根據(jù)這里所述的系統(tǒng)和技術(shù),軟件分發(fā)系統(tǒng)可以包括在用戶的計(jì)算設(shè)備上執(zhí)行的應(yīng)用市場客戶端以及遠(yuǎn)離計(jì)算設(shè)備操作的應(yīng)用市場服務(wù)器系統(tǒng)。當(dāng)用戶請(qǐng)求從應(yīng)用市場下載應(yīng)用時(shí),應(yīng)用市場服務(wù)器系統(tǒng)可以標(biāo)識(shí)與該應(yīng)用相關(guān)聯(lián)的應(yīng)用文件(例如,應(yīng)用二進(jìn)制文件以及一個(gè)或多個(gè)補(bǔ)充文件兩者),并且可以向應(yīng)用市場客戶端提供關(guān)于應(yīng)用文件的信息。轉(zhuǎn)而,應(yīng)用市場客戶端可以使用由應(yīng)用市場服務(wù)器系統(tǒng)提供的信息來確定應(yīng)用文件中的哪些文件(如果有的話)用于下載。例如,應(yīng)用市場客戶端可以確定是否有任何應(yīng)用文件已經(jīng)被存儲(chǔ)在計(jì)算設(shè)備上,并且可以發(fā)起在設(shè)備上不存在或者已經(jīng)被更新到比設(shè)備上存在的版本更新的版本的任何應(yīng)用文件的下載。
[0009]在某些實(shí)例中,這里描述的系統(tǒng)和技術(shù)的各種實(shí)現(xiàn)方式可以提供一個(gè)或多個(gè)優(yōu)勢。例如,在某些軟件分發(fā)系統(tǒng)中,應(yīng)用二進(jìn)制的大小可能受限,例如,由于關(guān)于下載速度和/或帶寬的技術(shù)限制、功能考慮或者其他原因。在這種情況下,那些太大而不能通過軟件分發(fā)系統(tǒng)分發(fā)的應(yīng)用二進(jìn)制可以被分成多個(gè)二進(jìn)制(例如,小于分發(fā)系統(tǒng)的大小限制的核心應(yīng)用二進(jìn)制,以及可以比核心應(yīng)用二進(jìn)制大許多倍的補(bǔ)充二進(jìn)制)以用于由系統(tǒng)分發(fā)。另夕卜,通過將應(yīng)用二進(jìn)制分成兩個(gè)或更多個(gè)文件,應(yīng)用的部分(例如,在應(yīng)用二進(jìn)制中提供的核心特征和其他功能)可以被上傳而不需要重新分發(fā)應(yīng)用的其他部分(例如,圖形文件、聲音文件、游戲應(yīng)用的附加級(jí)別或其他內(nèi)容等)。這里描述的系統(tǒng)和技術(shù)的另一優(yōu)勢在于用戶可以能夠側(cè)向加載可能大小上較大的補(bǔ)充二進(jìn)制文件而不是使用空中資源下載文件。例如,用戶可以使用臺(tái)式計(jì)算機(jī)上的高速網(wǎng)絡(luò)連接來下載補(bǔ)充二進(jìn)制,并且通過有線連接向設(shè)備傳送補(bǔ)充二進(jìn)制,由此潛在地節(jié)省時(shí)間和/或帶寬。
[0010]在一個(gè)實(shí)現(xiàn)方式中,公開了一種用于從應(yīng)用市場向計(jì)算設(shè)備分發(fā)應(yīng)用文件的計(jì)算機(jī)實(shí)現(xiàn)的系統(tǒng)。該系統(tǒng)包括服務(wù)器系統(tǒng)接口,其被布置為從多個(gè)客戶端計(jì)算設(shè)備中的一個(gè)客戶端計(jì)算設(shè)備的客戶端應(yīng)用接收對(duì)應(yīng)于對(duì)于獲得或更新針對(duì)該一個(gè)客戶端計(jì)算設(shè)備的軟件應(yīng)用的通信。該系統(tǒng)還包括應(yīng)用市場服務(wù)器系統(tǒng),其被編程為:(a)響應(yīng)于該通信,標(biāo)識(shí)應(yīng)用文件,該應(yīng)用文件包括對(duì)應(yīng)于該軟件應(yīng)用的應(yīng)用二進(jìn)制文件和與該軟件應(yīng)用相關(guān)聯(lián)的一個(gè)或多個(gè)補(bǔ)充文件,以及響應(yīng)于接收該通信向該客戶端應(yīng)用發(fā)送與該應(yīng)用文件有關(guān)的信息,以及(b)標(biāo)識(shí)該計(jì)算設(shè)備上的對(duì)應(yīng)于該應(yīng)用文件的存儲(chǔ)的文件,基于標(biāo)識(shí)的該存儲(chǔ)的文件以及與從該應(yīng)用市場服務(wù)器系統(tǒng)發(fā)送的該應(yīng)用文件有關(guān)的該信息來確定該應(yīng)用文件中的要下載的特定應(yīng)用文件,以及發(fā)起該應(yīng)用文件中的該特定應(yīng)用文件的下載。該客戶端應(yīng)用可以包括應(yīng)用市場客戶端,該應(yīng)用市場客戶端對(duì)應(yīng)于該應(yīng)用市場服務(wù)器系統(tǒng)并且被編程為從該應(yīng)用市場服務(wù)器系統(tǒng)下載針對(duì)多個(gè)不同應(yīng)用的文件。同樣,與該應(yīng)用文件有關(guān)的該信息可以包括針對(duì)該應(yīng)用文件中的每個(gè)應(yīng)用文件的版本信息,并且該應(yīng)用市場客戶端可以被編程為將該版本信息與該存儲(chǔ)的文件的相應(yīng)版本比較以確定是否下載該應(yīng)用文件中的該特定應(yīng)用文件。
[0011]在某些方面中,該應(yīng)用市場客戶端被編程為在下載該存儲(chǔ)的文件的更加新的版本之后從該計(jì)算設(shè)備移除該存儲(chǔ)的文件的先前版本。該應(yīng)用市場服務(wù)器系統(tǒng)還可以被編程為將該應(yīng)用二進(jìn)制文件限制到定義的最大大小,并且其中該應(yīng)用文件中的該特定應(yīng)用文件的聚合大小超過該應(yīng)用二進(jìn)制文件的該最大大小。此外,該客戶端應(yīng)用可以被編程為通過分析在該計(jì)算設(shè)備上的對(duì)應(yīng)于該軟件應(yīng)用的目錄中存儲(chǔ)的文件來標(biāo)識(shí)該存儲(chǔ)的文件。在其他方面中,該應(yīng)用市場服務(wù)器系統(tǒng)被編程為基于分析該應(yīng)用文件的部分來生成針對(duì)該應(yīng)用文件的文件簽名,并且其中該客戶端應(yīng)用被編程為在發(fā)起該應(yīng)用文件的安裝之前驗(yàn)證該文件簽名。該服務(wù)器系統(tǒng)還可以被編程為向該客戶端應(yīng)用發(fā)送關(guān)于由該應(yīng)用市場服務(wù)器系統(tǒng)分析的該應(yīng)用文件的該部分的信息,并且該客戶端應(yīng)用被編程為通過基于分析由該應(yīng)用市場服務(wù)器系統(tǒng)分析的該應(yīng)用文件的該部分來生成針對(duì)該應(yīng)用文件的驗(yàn)證簽名、并且將該文件簽名與該驗(yàn)證簽名比較以驗(yàn)證該文件簽名。
[0012]在其他方面中,與該軟件應(yīng)用相關(guān)聯(lián)的該補(bǔ)充文件的特定版本以相應(yīng)設(shè)備組為目標(biāo),并且其中該應(yīng)用市場服務(wù)器系統(tǒng)被編程為基于該計(jì)算設(shè)備屬于的特定設(shè)備組的確定來標(biāo)識(shí)用于向該計(jì)算設(shè)備分發(fā)的該補(bǔ)充文件的該特定版本。此外,與該應(yīng)用文件有關(guān)的該信息可以包括針對(duì)該應(yīng)用文件中的特定應(yīng)用文件的大小信息,并且其中該客戶端應(yīng)用被編程為顯示該應(yīng)用文件的該特定應(yīng)用文件的該下載的進(jìn)度的指示符,該指示符示出了下載的量與該應(yīng)用文件中的該特定文件的聚合大小的比例。該客戶端應(yīng)用還可以被編程為在該應(yīng)用文件中的該特定應(yīng)用文件的該下載完成之后發(fā)起該應(yīng)用文件的安裝,并且該應(yīng)用市場服務(wù)器系統(tǒng)可以被編程為響應(yīng)于來自以下各項(xiàng)的驗(yàn)證的請(qǐng)求下載文件:(a)應(yīng)用市場應(yīng)用,其對(duì)應(yīng)于該應(yīng)用市場服務(wù)器系統(tǒng)并且被編程為從該應(yīng)用市場服務(wù)器系統(tǒng)下載針對(duì)多個(gè)不同應(yīng)用的文件;以及(b)特定應(yīng)用,其請(qǐng)求該下載的文件以用于其自己使用。
[0013]在另一實(shí)現(xiàn)方式中,公開了一種用于確定用于向計(jì)算設(shè)備下載的應(yīng)用文件的計(jì)算機(jī)實(shí)現(xiàn)的方法,并且包括:利用在計(jì)算設(shè)備上執(zhí)行的應(yīng)用市場客戶端接收對(duì)于獲得或更新與多個(gè)應(yīng)用文件相關(guān)聯(lián)并且被配置為在該計(jì)算設(shè)備上執(zhí)行的軟件應(yīng)用的請(qǐng)求;以及利用該應(yīng)用市場客戶端并且從遠(yuǎn)離該計(jì)算設(shè)備操作的應(yīng)用市場服務(wù)器系統(tǒng)接收與該應(yīng)用文件有關(guān)的信息;標(biāo)識(shí)該計(jì)算設(shè)備上的對(duì)應(yīng)于該應(yīng)用文件的存儲(chǔ)的文件;基于標(biāo)識(shí)的該存儲(chǔ)的文件以及與該應(yīng)用文件有關(guān)的接收的該信息來確定該應(yīng)用文件中的將下載的特定應(yīng)用文件;以及發(fā)起該應(yīng)用文件中的確定的特定應(yīng)用文件的下載。該方法還可以包括由該應(yīng)用市場客戶端標(biāo)識(shí)故障以下載一個(gè)或多個(gè)文件,并且在該一個(gè)或多個(gè)文件被下載之后由被編程為使用該一個(gè)或多個(gè)文件的應(yīng)用開始從該市場服務(wù)器系統(tǒng)下載該一個(gè)或多個(gè)文件。此外,與該應(yīng)用文件有關(guān)的該信息可以包括針對(duì)該應(yīng)用文件中的特定應(yīng)用文件的版本信息,并且其中該方法進(jìn)一步包括將該版本信息與該存儲(chǔ)的文件的相應(yīng)版本比較以確定是否下載該應(yīng)用文件中的特定應(yīng)用文件。該方法還可以涉及在下載該存儲(chǔ)的文件的更加新的版本之后從該計(jì)算設(shè)備自動(dòng)移除該存儲(chǔ)的文件的先前版本。
[0014]在其他方面中,該方法進(jìn)一步包括通過分析在該計(jì)算設(shè)備上的對(duì)應(yīng)于該軟件應(yīng)用的目錄中存儲(chǔ)的文件來標(biāo)識(shí)該存儲(chǔ)的文件,或者還可以包括在發(fā)起該應(yīng)用文件的安裝之前,通過分析該應(yīng)用文件的部分來驗(yàn)證由該應(yīng)用市場服務(wù)器系統(tǒng)針對(duì)該應(yīng)用文件生成的文件簽名。此外,該方法可以包括從該應(yīng)用市場服務(wù)器系統(tǒng)接收關(guān)于由該應(yīng)用市場服務(wù)器系統(tǒng)分析的該應(yīng)用文件的該部分的信息,以及通過基于分析由該應(yīng)用市場服務(wù)器系統(tǒng)分析的該應(yīng)用文件的該部分來生成針對(duì)該應(yīng)用文件的驗(yàn)證簽名、并且將該文件簽名與該驗(yàn)證簽名比較以驗(yàn)證該文件簽名。
[0015]在又一實(shí)現(xiàn)方式中,公開了一種用于確定用于從應(yīng)用市場向計(jì)算設(shè)備下載的應(yīng)用的計(jì)算機(jī)實(shí)現(xiàn)的方法。該方法包括:從多個(gè)客戶端計(jì)算設(shè)備中的一個(gè)客戶端計(jì)算設(shè)備的應(yīng)用市場客戶端接收對(duì)應(yīng)于對(duì)于獲得或更新針對(duì)該一個(gè)客戶端計(jì)算設(shè)備的軟件應(yīng)用的請(qǐng)求的通信;響應(yīng)于該通信,標(biāo)識(shí)應(yīng)用文件,該應(yīng)用文件包括對(duì)應(yīng)于該軟件應(yīng)用的應(yīng)用二進(jìn)制文件和與該軟件應(yīng)用相關(guān)聯(lián)的一個(gè)或多個(gè)補(bǔ)充文件,并且響應(yīng)于接收該通信向該應(yīng)用市場客戶端發(fā)送與該應(yīng)用文件有關(guān)的信息,以及響應(yīng)于該計(jì)算設(shè)備上對(duì)應(yīng)于該應(yīng)用文件的存儲(chǔ)文件的標(biāo)識(shí),以及響應(yīng)于該計(jì)算設(shè)備上的對(duì)應(yīng)于該應(yīng)用文件的存儲(chǔ)的文件的標(biāo)識(shí)發(fā)起該應(yīng)用文件中的特定應(yīng)用文件的下載,以及基于標(biāo)識(shí)的該存儲(chǔ)的文件以及與從該應(yīng)用市場服務(wù)器系統(tǒng)發(fā)送的該應(yīng)用文件有關(guān)的該信息來確定該應(yīng)用文件中的該特定應(yīng)用文件。
[0016]在附圖和下文描述中闡述一個(gè)或者多個(gè)實(shí)施方式的細(xì)節(jié)。其他特征和優(yōu)點(diǎn)將從說明書和附圖以及從權(quán)利要求書變得清楚明顯。
【專利附圖】
【附圖說明】
[0017]圖1是示出了用于發(fā)布和分發(fā)軟件應(yīng)用的環(huán)境的示例的概念圖。
[0018]圖2是用于向軟件分發(fā)系統(tǒng)上傳應(yīng)用文件的示例用戶界面的示圖。
[0019]圖3是用于分發(fā)與軟件應(yīng)用相關(guān)聯(lián)的應(yīng)用文件的軟件分發(fā)系統(tǒng)的系統(tǒng)圖。
[0020]圖4是用于分發(fā)與軟件應(yīng)用相關(guān)聯(lián)的應(yīng)用文件的示例過程的泳道圖。
[0021]圖5是可以用于實(shí)現(xiàn)這里描述的系統(tǒng)和技術(shù)的計(jì)算機(jī)設(shè)備和移動(dòng)計(jì)算機(jī)設(shè)備的示例。
[0022]各圖中的相似參考符號(hào)指示相似元件。
【具體實(shí)施方式】
[0023]圖1是示出了用于發(fā)布和分發(fā)軟件應(yīng)用的環(huán)境100的示例的概念圖。在環(huán)境100中,使用計(jì)算設(shè)備102的軟件發(fā)布者可以與發(fā)布者系統(tǒng)104交互(如由被標(biāo)記為A的箭頭所示)以上傳和/或發(fā)布軟件應(yīng)用以用于由應(yīng)用市場系統(tǒng)108分發(fā)。
[0024]軟件發(fā)布者還可以使用發(fā)布者系統(tǒng)104向系統(tǒng)上傳一個(gè)或多個(gè)補(bǔ)充文件,以及將補(bǔ)充文件與特定應(yīng)用相關(guān)聯(lián),從而使得補(bǔ)充文件與應(yīng)用一起被分發(fā)。例如,在某些情況下,軟件發(fā)布者可能期望分別從應(yīng)用二進(jìn)制文件本身分發(fā)某些與應(yīng)用有關(guān)的內(nèi)容,并且可能期望使用應(yīng)用市場系統(tǒng)108的分發(fā)能力而不是例如通過托管由軟件發(fā)布者操作的單獨(dú)文件服務(wù)器上的文件來分發(fā)應(yīng)用市場系統(tǒng)108的情境以外的文件。
[0025]取決于軟件發(fā)布者期望分別從應(yīng)用二進(jìn)制分發(fā)的數(shù)據(jù)和/或內(nèi)容的類型,補(bǔ)充文件可以包括不同類型的內(nèi)容。例如,軟件發(fā)布者可以將圖形、音頻或多媒體數(shù)據(jù)包括在補(bǔ)充文件中,其中此類內(nèi)容被設(shè)計(jì)用于由開發(fā)者正上傳的應(yīng)用訪問。作為另一示例,軟件發(fā)布者可以使用補(bǔ)充文件作為一種用于分發(fā)模板、文檔或用于與應(yīng)用一起使用的其他類型的文檔的方式。在某些實(shí)現(xiàn)方式中,補(bǔ)充文件可以是任何適當(dāng)?shù)奈募愋?,例如包?不透明二進(jìn)制blob(opaque binary blob)、包括用于與應(yīng)用一起使用的一個(gè)或多個(gè)壓縮或未壓縮文件的ZIP文件或者與特定實(shí)現(xiàn)方式兼容的任意其他文件類型。
[0026]通過將在補(bǔ)充文件中存儲(chǔ)的信息從應(yīng)用二進(jìn)制分離,軟件發(fā)布者可以能夠更新應(yīng)用數(shù)據(jù)的某些部分而不影響應(yīng)用數(shù)據(jù)的其他部分。例如,軟件發(fā)布者可以將應(yīng)用功能分離成主要應(yīng)用二進(jìn)制和一個(gè)或多個(gè)補(bǔ)充文件,其中主要應(yīng)用二進(jìn)制包括應(yīng)用的核心特征,而一個(gè)或多個(gè)補(bǔ)充文件包括由應(yīng)用使用的圖形和/或音頻文件。在這樣的示例中,軟件發(fā)布者可以能夠通過更新補(bǔ)充文件來發(fā)布圖形和/或音頻文件的更新,同時(shí)照原樣保留應(yīng)用二進(jìn)制。相反地,軟件發(fā)布者可以能夠發(fā)布在應(yīng)用二進(jìn)制中包括的核心特征的更新,但圖形和音頻文件可以保持不變。在任一情況下,應(yīng)用市場系統(tǒng)108均可以有助于如下文所述的向用戶的客戶端設(shè)備僅下載更新的文件。
[0027]在某些實(shí)現(xiàn)方式中,軟件發(fā)布者還可以使用發(fā)布者系統(tǒng)104來定義與應(yīng)用相關(guān)聯(lián)的特定補(bǔ)充文件將作為目標(biāo)的的特定設(shè)備、設(shè)備類型或設(shè)備分組。例如,軟件發(fā)布者可以發(fā)布可以被配置為在多個(gè)不同設(shè)備或設(shè)備類型上執(zhí)行的應(yīng)用二進(jìn)制,但是可以使用具體地以特定設(shè)備或設(shè)備類型為目標(biāo)的不同補(bǔ)充文件。例如,應(yīng)用的核心功能可以被包括在應(yīng)用二進(jìn)制文件中,其可以包括多個(gè)代碼路徑以允許在多個(gè)不同設(shè)備上的正確執(zhí)行。在這樣的示例中,軟件發(fā)布者可以開發(fā)多個(gè)不同補(bǔ)充文件,其中每個(gè)補(bǔ)充文件具體地以特定設(shè)備、設(shè)備類型或設(shè)備分組為目標(biāo)。例如,軟件發(fā)布者可以利用以具有小屏幕大小和標(biāo)準(zhǔn)圖形處理器的移動(dòng)設(shè)備為目標(biāo)的正常圖形開發(fā)的一個(gè)補(bǔ)充文件,并且可以利用以具有更大屏幕大小和高級(jí)圖形處理器的設(shè)備為目標(biāo)的高級(jí)圖形開發(fā)的另一補(bǔ)充文件。
[0028]在這樣的情況下,發(fā)布者系統(tǒng)104可以提供如下用戶接口,該用戶接口允許軟件發(fā)布者將補(bǔ)充文件的特定版本與特定相應(yīng)設(shè)備分組相關(guān)聯(lián),從而使得當(dāng)用戶請(qǐng)求下載應(yīng)用時(shí),應(yīng)用市場可以確定各種補(bǔ)充文件版本中的那個(gè)補(bǔ)充文件版本適于用戶的特定設(shè)備。例如,軟件發(fā)布者可以指定補(bǔ)充文件的一個(gè)版本待分發(fā)至具有小屏幕大小的智能電話,而補(bǔ)充文件的另一版本待分發(fā)至具有特大(相比之下)屏幕大小的平板計(jì)算機(jī)。在這樣的示例中,特定補(bǔ)充文件可以向一個(gè)或多個(gè)其他補(bǔ)充文件包括類似的音頻資產(chǎn),但是在特定補(bǔ)充文件中包括的圖形資產(chǎn)可以具體地以特定屏幕大小或圖形處理器為目標(biāo)。
[0029]設(shè)備分組可以使用各種設(shè)備屬性和/或設(shè)備屬性的組合在發(fā)布者系統(tǒng)104中被定義。例如,設(shè)備分組可以使用三個(gè)維度(dimens1ns)被定義,該三個(gè)維度包括安裝的設(shè)備框架、顯示器屏幕大小和圖形處理能力。其他和/或附加維度也可以在系統(tǒng)中使用,例如包括:與OpenGL ES版本、計(jì)算設(shè)備的本地平臺(tái)(例如,ARM EABI v7, INTEL等)、各種設(shè)備硬件或軟件特征(例如,相機(jī)、藍(lán)牙、W1-F1、電話等)、設(shè)備的攜帶者和/或其位置有關(guān)的維度。
[0030]軟件發(fā)布者在利用發(fā)布者系統(tǒng)104定義特定設(shè)備分組時(shí)可以選擇使用可用維度中的一個(gè)或多個(gè)維度。例如,在某些情況下,軟件發(fā)布者可以具有均與不同設(shè)備框架有關(guān)的不同版本的補(bǔ)充文件(例如,針對(duì)OS版本1.6至1.8的第一版本,針對(duì)OS版本2.0至2.2的第二版本,以及針對(duì)OS版本3.0及以上的第三版本)。在此類情況下,軟件發(fā)布者可以定義僅由設(shè)備框架維度區(qū)分的三個(gè)不同設(shè)備分組。在其他情況下,軟件發(fā)布者可以選擇使用附加和/或不同維度對(duì)設(shè)備分組進(jìn)一步細(xì)化。應(yīng)當(dāng)理解,在各種實(shí)現(xiàn)方式中,發(fā)布者系統(tǒng)104可以被配置為提供與適合正被提供的特定實(shí)現(xiàn)方式一樣多或一樣少的維度。通過使用多個(gè)不同設(shè)備屬性組合定義設(shè)備分組,軟件發(fā)布者可以能夠使用任何適當(dāng)?shù)牧6人絹碇付ㄆ溲a(bǔ)充文件版本的分發(fā)。用于使應(yīng)用的特定版本以特定設(shè)備模式或設(shè)備類型為目標(biāo)的示例技術(shù)在2011年7月20日提交的名稱為“Multiple Applicat1n Vers1ns”的共同未決美國申請(qǐng)序列號(hào)13/187,198中被描述。特別地,在該申請(qǐng)中描述的技術(shù)可以由在本申請(qǐng)中描述的技術(shù)通過允許開發(fā)者將應(yīng)用的每個(gè)版本指定為由不同的文件分組(諸如核心二進(jìn)制文件和基于所提供版本的不同補(bǔ)充文件)組成而被執(zhí)行。向用戶提供的正確版本繼而可以被確定(例如,通過用戶選擇版本或者通過市場標(biāo)識(shí)請(qǐng)求應(yīng)用的設(shè)備的類型),并且繼而可以參考開發(fā)者提供的設(shè)備分組定義,以便選擇對(duì)應(yīng)于標(biāo)識(shí)的設(shè)備類型的定義中的文件。
[0031]在計(jì)算設(shè)備102與應(yīng)用發(fā)布者系統(tǒng)104之間的通信可以通過任意適當(dāng)網(wǎng)絡(luò)(例如,因特網(wǎng)、LAN、WAN、無線寬帶或其任意組合)出現(xiàn)。計(jì)算設(shè)備102被描繪為臺(tái)式計(jì)算機(jī),但其他類型的計(jì)算設(shè)備(例如,膝上型計(jì)算機(jī)、上網(wǎng)本、平板計(jì)算機(jī)、智能電話、機(jī)頂盒等)也可以與發(fā)布者系統(tǒng)104通信。類似地,發(fā)布者系統(tǒng)104被描繪為獨(dú)立服務(wù)器,但發(fā)布者系統(tǒng)104可以表示服務(wù)器的集群、服務(wù)器場或者可以用于托管發(fā)布者系統(tǒng)104的功能的其他服務(wù)器分組。在某些實(shí)現(xiàn)方式中,發(fā)布者系統(tǒng)104可以由提供這里描述的發(fā)布服務(wù)的受信組織操作。
[0032]如由被標(biāo)記為B的箭頭所示,在從軟件開發(fā)者接收用于發(fā)布應(yīng)用(包括與該應(yīng)用相關(guān)聯(lián)的補(bǔ)充文件)的指令之后,發(fā)布者系統(tǒng)104可以將關(guān)于該應(yīng)用的特定信息寫入應(yīng)用數(shù)據(jù)存儲(chǔ)裝置106的一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)通??梢杂糜诿枋鰬?yīng)用及其相關(guān)聯(lián)的應(yīng)用文件,其可以包括應(yīng)用二進(jìn)制文件和與該應(yīng)用相關(guān)聯(lián)的補(bǔ)充文件。作為一個(gè)示例,數(shù)據(jù)結(jié)構(gòu)可以包括針對(duì)應(yīng)用文件中的每個(gè)應(yīng)用文件的以下數(shù)據(jù),諸如版本信息、大小信息、下載位置信息等。在某些實(shí)現(xiàn)方式中,數(shù)據(jù)結(jié)構(gòu)還可以包括與被文件中的一個(gè)或多個(gè)文件的特定版本當(dāng)做目標(biāo)的設(shè)備分組有關(guān)的信息。數(shù)據(jù)結(jié)構(gòu)還可以用于存儲(chǔ)與應(yīng)用相關(guān)聯(lián)的其他適當(dāng)元數(shù)據(jù)(例如,定價(jià)信息、文本描述、屏幕截圖、圖標(biāo)、用于從下載該應(yīng)用的用戶接收支付的賬戶等)。
[0033]在應(yīng)用已經(jīng)由發(fā)布者系統(tǒng)104發(fā)布之后,該應(yīng)用可以經(jīng)由應(yīng)用市場系統(tǒng)108表現(xiàn)為用于下載的應(yīng)用,該應(yīng)用市場系統(tǒng)108可以被配置為讀取在應(yīng)用數(shù)據(jù)存儲(chǔ)裝置106中存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)。根據(jù)這里描述的技術(shù),當(dāng)具有相關(guān)聯(lián)的補(bǔ)充文件的應(yīng)用在應(yīng)用市場系統(tǒng)108上被發(fā)布時(shí),該系統(tǒng)可以用于標(biāo)識(shí)與正被請(qǐng)求的特定應(yīng)用相關(guān)聯(lián)的應(yīng)用文件,并且可以例如向在用戶的計(jì)算設(shè)備上執(zhí)行的市場客戶端提供關(guān)于文件的信息。例如,應(yīng)用市場系統(tǒng)108可以提供允許市場客戶端確定文件中的哪些文件應(yīng)當(dāng)被下載到設(shè)備的信息,諸如與應(yīng)用文件相關(guān)聯(lián)的大小和版本信息。如果市場客戶端確定特定應(yīng)用文件中的一個(gè)或多個(gè)特定應(yīng)用文件已經(jīng)出現(xiàn)在客戶端設(shè)備上,則市場客戶端可以不下載這些特定應(yīng)用文件。
[0034]在環(huán)境100中,如由被標(biāo)記為C的箭頭所示,用戶可以使用多個(gè)不同客戶端計(jì)算設(shè)備(例如,設(shè)備110)來訪問應(yīng)用市場系統(tǒng)108。移動(dòng)客戶端計(jì)算設(shè)備可以通過如所示的無線通信信道或者通過任意其他適當(dāng)?shù)耐ㄐ判诺琅c應(yīng)用市場系統(tǒng)108通信。其他計(jì)算設(shè)備(未示出)也可以例如通過因特網(wǎng)或任意其他適當(dāng)?shù)耐ㄐ判诺琅c應(yīng)用市場系統(tǒng)108通信。
[0035]如所示,設(shè)備110可以被配置為執(zhí)行市場客戶端120和一個(gè)或多個(gè)其他應(yīng)用122。市場客戶端120可以在客戶端設(shè)備110上執(zhí)行,并且可以有助于與應(yīng)用市場系統(tǒng)108的通信。市場客戶端120和其他應(yīng)用122可以被存儲(chǔ)在設(shè)備的存儲(chǔ)器中向應(yīng)用存儲(chǔ)124提供的一部分中,而其他文件可以被存儲(chǔ)在設(shè)備的存儲(chǔ)器的分離的部分(諸如通用存儲(chǔ)裝置126)中。設(shè)備110可以包括任意數(shù)目的適當(dāng)存儲(chǔ)器部分,其中某些存儲(chǔ)器部分可以比其他存儲(chǔ)器部分更安全。例如,應(yīng)用存儲(chǔ)裝置124可以至少某種程度上安全(例如,僅由設(shè)備框架可訪問),而通用存儲(chǔ)裝置126可以更可訪問(例如,由在設(shè)備上執(zhí)行的應(yīng)用)。在某些實(shí)現(xiàn)方式中,當(dāng)應(yīng)用被下載到設(shè)備110時(shí),應(yīng)用可以在被轉(zhuǎn)移到更永久的存儲(chǔ)位置(諸如應(yīng)用存儲(chǔ)裝置124)之前首先被存儲(chǔ)在高速緩存部分(未示出)中。在某些實(shí)現(xiàn)方式中,高速緩存部分可以在大小上受限(例如,50MB),并且可以充當(dāng)對(duì)待下載到設(shè)備的應(yīng)用二進(jìn)制文件大小的功能限制。
[0036]設(shè)備110可以向應(yīng)用市場系統(tǒng)108提交多個(gè)不同的應(yīng)用有關(guān)的請(qǐng)求。在某些實(shí)現(xiàn)方式中,此類請(qǐng)求可以經(jīng)由在設(shè)備I1上執(zhí)行的市場客戶端120被進(jìn)行。例如,設(shè)備110的用戶可以經(jīng)由市場客戶端120提交用以瀏覽在市場上可獲得的各種應(yīng)用的請(qǐng)求,或者可以提交使用關(guān)鍵字來找到在市場上的與錄入關(guān)鍵字相關(guān)聯(lián)的應(yīng)用的搜索請(qǐng)求。作為另一示例,市場客戶端120可以維護(hù)已經(jīng)被下載到設(shè)備110的應(yīng)用的列表,并且可以周期性地與應(yīng)用市場系統(tǒng)108通信以確定更新是否可用于這些應(yīng)用。在其他實(shí)現(xiàn)方式中,更新通知可以從應(yīng)用市場系統(tǒng)108被推向設(shè)備110,而不是由設(shè)備請(qǐng)求。更新通知轉(zhuǎn)而可以使得設(shè)備110隨后請(qǐng)求下載設(shè)備110先前已經(jīng)下載的應(yīng)用的更新的版本。
[0037]當(dāng)設(shè)備110向應(yīng)用市場系統(tǒng)108提交請(qǐng)求(例如,用于獲取或更新市場上的特定軟件應(yīng)用的請(qǐng)求)時(shí),系統(tǒng)108可以查詢應(yīng)用數(shù)據(jù)存儲(chǔ)裝置106以標(biāo)識(shí)關(guān)于響應(yīng)于所述請(qǐng)求的應(yīng)用的信息。關(guān)于應(yīng)用的信息可以例如包括關(guān)于應(yīng)用二進(jìn)制和與該應(yīng)用相關(guān)聯(lián)的任意補(bǔ)充文件的信息。應(yīng)用市場系統(tǒng)108繼而可以響應(yīng)于該請(qǐng)求將該信息提供回市場客戶端120。
[0038]例如,響應(yīng)于針對(duì)下載應(yīng)用的請(qǐng)求,應(yīng)用市場系統(tǒng)108可以標(biāo)識(shí)響應(yīng)于該請(qǐng)求的應(yīng)用二進(jìn)制文件,并且還可以標(biāo)識(shí)與該應(yīng)用相關(guān)聯(lián)的任意補(bǔ)充文件。應(yīng)用市場系統(tǒng)108繼而可以向市場客戶端120提供關(guān)于應(yīng)用文件的特定元數(shù)據(jù),諸如文件大小、版本信息和/或可以允許市場客戶端120確定將向設(shè)備110下載應(yīng)用文件中的哪些應(yīng)用文件的其他信息。在一個(gè)示例中,應(yīng)用市場系統(tǒng)108可以確定對(duì)設(shè)備110可用的特定應(yīng)用的最近版本是版本2.1,其大小為7.2MB,并且該應(yīng)用與補(bǔ)充文件的版本2.0相關(guān)聯(lián),其大小為46.3MB。
[0039]市場客戶端120繼而可以使用元數(shù)據(jù)信息來例如通過將版本和/或大小元數(shù)據(jù)與在設(shè)備110上存儲(chǔ)的文件比較以確定應(yīng)用文件中的任何應(yīng)用文件是否已經(jīng)出現(xiàn)在設(shè)備110上。如果應(yīng)用文件中的任何應(yīng)用文件被確定與已經(jīng)在設(shè)備110上的文件匹配,則市場客戶端120可以不下載那些特定應(yīng)用文件,并且可以作為替代僅下載在設(shè)備上沒有存儲(chǔ)的應(yīng)用文件。繼續(xù)上文示例,市場客戶端120可以例如通過針對(duì)文件掃描應(yīng)用存儲(chǔ)裝置124來確定版本2.1應(yīng)用二進(jìn)制是否已經(jīng)被存儲(chǔ)在設(shè)備110上。如果該應(yīng)用二進(jìn)制文件存在,并且該文件的版本和大小匹配由應(yīng)用市場系統(tǒng)108提供的版本和大小信息,則市場客戶端120可以選擇不下載該應(yīng)用二進(jìn)制文件。如果該應(yīng)用二進(jìn)制文件不存在,或者如果該應(yīng)用二進(jìn)制的更老版本存在,或者如果該應(yīng)用二進(jìn)制的大小不匹配從應(yīng)用市場系統(tǒng)108接收的大小信息,則市場客戶端120可以確定該應(yīng)用二進(jìn)制應(yīng)當(dāng)被下載,并且可以隨后發(fā)起下載。
[0040]下載的二進(jìn)制的真實(shí)性還可以被校驗(yàn),諸如以確保其不包含惡意代碼。例如,二進(jìn)制可以已經(jīng)由開發(fā)者簽名,或者校驗(yàn)和可以已經(jīng)被計(jì)算。市場客戶端120可以被編程以在安裝該二進(jìn)制之前校驗(yàn)該簽名、校驗(yàn)和或其他認(rèn)證機(jī)制,以便維護(hù)針對(duì)這樣的惡意軟件的安全性。
[0041]類似地,市場客戶端120還可以確定補(bǔ)充文件的版本2.0是否出現(xiàn)在設(shè)備110上。在某些實(shí)現(xiàn)方式中,針對(duì)特定應(yīng)用的補(bǔ)充文件可以被存儲(chǔ)在設(shè)備110的通用存儲(chǔ)裝置126的預(yù)定存儲(chǔ)位置中,諸如在使用以下約定被命名的目錄中,該約定將該目錄標(biāo)識(shí)為與應(yīng)用相關(guān)聯(lián)。如果補(bǔ)充文件的當(dāng)前版本出現(xiàn)在預(yù)定目錄中,并且該文件是適當(dāng)?shù)拇笮。瑒t市場客戶端120可以跳過補(bǔ)充文件的下載。另一方面,如果補(bǔ)充文件沒有出現(xiàn)或者過期,或者如果補(bǔ)充文件的大小不同于由應(yīng)用市場系統(tǒng)108指示的文件的大小,則市場客戶端120可以發(fā)起補(bǔ)充文件的下載。取決于特定實(shí)現(xiàn)方式,多個(gè)應(yīng)用文件(包括應(yīng)用二進(jìn)制文件和任意相關(guān)聯(lián)的補(bǔ)充文件)的下載可以串行(例如,以預(yù)定順序一個(gè)接著另一個(gè))發(fā)生或者并行(例如,同時(shí)或者在重疊時(shí)間間隔期間)發(fā)生。
[0042]市場客戶端120還可以在安裝文件之前驗(yàn)證文件(主二進(jìn)制或補(bǔ)充文件)的特定文件(或所有文件)的簽名或校驗(yàn)和。例如,開發(fā)者可以被允許對(duì)其文件簽名,并且市場客戶端120可以按照各種熟悉的方式之一對(duì)簽名進(jìn)行驗(yàn)證。此類驗(yàn)證還在下文針對(duì)圖3的簽名生成器334和文件驗(yàn)證器328被描述。
[0043]在下載過程期間,市場客戶端120可以顯示反映正被下載的所有應(yīng)用文件的下載狀態(tài)的統(tǒng)一進(jìn)度條。例如,如果應(yīng)用文件中只有一個(gè)應(yīng)用文件正被下載,則下載進(jìn)度條可以將已經(jīng)被下載的文件的部分示出為文件大小的百分比。如果設(shè)備正在下載多個(gè)應(yīng)用文件,則下載進(jìn)度條可以將已經(jīng)被下載的部分示出為總下載大小的百分比。
[0044]在下載完成之后,市場客戶端120可以有助于過時(shí)應(yīng)用文件的移除或歸檔。例如,市場客戶端120可以從設(shè)備110刪除文件,或者可以按照可以允許用戶稍后恢復(fù)文件的方式對(duì)文件歸檔。在其中補(bǔ)充文件被存儲(chǔ)在設(shè)備上的預(yù)定目錄中(例如,通用存儲(chǔ)裝置126中)的實(shí)現(xiàn)方式中,市場客戶端120通過將過時(shí)文件移至與存儲(chǔ)當(dāng)前補(bǔ)充文件不同的目錄來對(duì)這些過時(shí)文件歸檔。
[0045]市場客戶端120還可以在下載完成之后發(fā)起下載的應(yīng)用文件的安裝。在某些實(shí)現(xiàn)方式中,市場客戶端120可以在發(fā)起安裝之前等待直到所有應(yīng)用文件的所有下載完成。在其他實(shí)現(xiàn)方式中,市場客戶端120可以交錯(cuò)下載并且在接收到應(yīng)用文件時(shí)將其安裝。例如,市場客戶端120可以首先下載應(yīng)用二進(jìn)制并且發(fā)起應(yīng)用二進(jìn)制的安裝。然后,在應(yīng)用二進(jìn)制的安裝之后,市場客戶端120可以發(fā)起補(bǔ)充文件的下載和安裝。
[0046]在某些實(shí)現(xiàn)方式中,應(yīng)用市場系統(tǒng)108可以對(duì)應(yīng)用二進(jìn)制的最大大小強(qiáng)加限制。這些大小限制可以出于多個(gè)不同原因被強(qiáng)制執(zhí)行,諸如確保應(yīng)用二進(jìn)制可以如上文描述被下載到設(shè)備的高速緩存部分,或者限制系統(tǒng)的用戶的帶寬使用(例如,對(duì)針對(duì)帶寬收費(fèi)的通信,或者節(jié)流或者以其他方式限制帶寬)。不考慮被強(qiáng)加的任何大小限制的原因,這里描述系統(tǒng)和技術(shù)可以允許軟件開發(fā)者通過將應(yīng)用內(nèi)容各部分包括在分離的補(bǔ)充文件中來發(fā)布和分發(fā)超過應(yīng)用二進(jìn)制的最大大小的應(yīng)用文件。繼續(xù)上文示例,系統(tǒng)可以具有對(duì)應(yīng)用二進(jìn)制大小的50MB限制,但是軟件開發(fā)者仍可以通過將應(yīng)用分發(fā)在分離的文件中(例如,在大小為7.2MB的應(yīng)用二進(jìn)制和46.3MB的補(bǔ)充文件中)來分發(fā)大于50MB限制的應(yīng)用。
[0047]這樣的將應(yīng)用分離成兩個(gè)或更多個(gè)應(yīng)用文件在某些實(shí)現(xiàn)方式中還可以提供其他益處。例如,將應(yīng)用分離成多個(gè)文件可以允許軟件開發(fā)者更新應(yīng)用的部分(例如,在應(yīng)用二進(jìn)制本身中包括的部分)而不需要更新應(yīng)用的其他部分(例如,在補(bǔ)充文件中包括的部分)。作為另一示例,應(yīng)用的某些部分可以通過空氣被下載,例如,使用無線寬帶通信信道,而更大的補(bǔ)充文件可以例如通過經(jīng)由高速網(wǎng)絡(luò)連接將補(bǔ)充文件下載到臺(tái)式計(jì)算機(jī),并且使用本地有線或無線連接將文件傳送到設(shè)備來被側(cè)向加載至用戶的設(shè)備上。這樣的第一部分還可以由付費(fèi)或限制帶寬的第一類型的無線網(wǎng)絡(luò)(例如,3G或4G網(wǎng)絡(luò))下載,并且補(bǔ)充文件可以經(jīng)由不同類型的網(wǎng)絡(luò)被下載,諸如家庭或商業(yè)WiFi網(wǎng)絡(luò),其連接至不對(duì)額外帶寬付費(fèi)或者按照可感知的方式以其他方式限制帶寬的有線網(wǎng)絡(luò)。客戶端設(shè)備可以被編程為一旦設(shè)備上的組件識(shí)別該設(shè)備已經(jīng)變成連接到這樣的網(wǎng)絡(luò)就觸發(fā)補(bǔ)充下載,雖然該設(shè)備可以首先從設(shè)備的用戶請(qǐng)求授權(quán)以開始補(bǔ)充下載,特別是如果組件標(biāo)識(shí)當(dāng)前網(wǎng)絡(luò)之前沒有被連接或者已經(jīng)被用戶標(biāo)識(shí)為公共網(wǎng)絡(luò)(例如,用戶在機(jī)場并且無法連接網(wǎng)絡(luò)足夠長時(shí)間以成功完成補(bǔ)充下載)。
[0048]雖然應(yīng)用發(fā)布者系統(tǒng)104、應(yīng)用數(shù)據(jù)存儲(chǔ)裝置106和應(yīng)用市場系統(tǒng)108出于例示的目的而被分離地示出,但應(yīng)當(dāng)理解由在環(huán)境100中示出的系統(tǒng)提供的功能可以由更少的設(shè)備或系統(tǒng)(例如,將多個(gè)設(shè)備或系統(tǒng)組合成單個(gè)設(shè)備或系統(tǒng))提供,可以在附加設(shè)備或系統(tǒng)之間分發(fā),或者可以由與所示設(shè)備或系統(tǒng)不同的設(shè)備或系統(tǒng)提供。
[0049]圖2是用于向軟件分發(fā)系統(tǒng)上傳應(yīng)用文件的示例用戶界面202的示圖。用戶界面202可以充當(dāng)用于發(fā)布系統(tǒng)(例如,發(fā)布者系統(tǒng)104)的前端界面的一部分,并且可以允許軟件發(fā)布者與系統(tǒng)交互。用戶界面202可以提供多個(gè)不同的控件和輸入以允許軟件發(fā)布者上傳應(yīng)用并且將應(yīng)用與待與該應(yīng)用一起分發(fā)的一個(gè)或多個(gè)補(bǔ)充文件相關(guān)聯(lián)。雖然用戶界面202被示出為包括文本框204,210,按鈕206、208、216、218、222、224和226,以及下拉框212,214和220的具體配置,但是應(yīng)當(dāng)理解也可以提供其他配置和/或輸入機(jī)制。
[0050]在示例用戶界面202中,軟件發(fā)布者可以指定用于文本框204中的上傳的應(yīng)用二進(jìn)制的路徑。應(yīng)用二進(jìn)制可以對(duì)應(yīng)于軟件發(fā)布者期望通過應(yīng)用市場系統(tǒng)(諸如系統(tǒng)108)分發(fā)的軟件應(yīng)用的特定版本。如所示,用戶界面202還可以包括瀏覽按鈕206,該瀏覽按鈕206允許軟件發(fā)布者瀏覽本地計(jì)算設(shè)備或其他可訪問計(jì)算設(shè)備的文件系統(tǒng)以指定去往應(yīng)用二進(jìn)制的路徑。在錄入了去往應(yīng)用二進(jìn)制的路徑之后,軟件發(fā)布者可以點(diǎn)擊上傳按鈕208以向發(fā)布者系統(tǒng)上傳該二進(jìn)制。
[0051]用戶界面202還可以包括文本框210,該文本框210允許軟件發(fā)布者描述已經(jīng)對(duì)應(yīng)用進(jìn)行了的最近改變。例如,在待上傳的應(yīng)用版本是先前應(yīng)用版本的更新的情況下,軟件發(fā)布者可以按照發(fā)行說明的形式錄入文本,該發(fā)行說明可以在向用戶呈現(xiàn)更新時(shí)向用戶呈現(xiàn)。此類信息可以有助于用戶決定是否在他或她的計(jì)算設(shè)備上安裝更新,并且潛在地向用戶警告自上次更新起可能已經(jīng)向該應(yīng)用添加的新的特征。
[0052]用戶界面202還可以包括下拉框212,或者另一適當(dāng)控件,其允許軟件發(fā)布者在特定設(shè)備組上發(fā)布應(yīng)用二進(jìn)制和/或補(bǔ)充文件。特定設(shè)備組可以對(duì)應(yīng)于應(yīng)用版本和/或補(bǔ)充文件版本以其作為目標(biāo)的一組設(shè)備或設(shè)備類型。例如,一個(gè)設(shè)備組可以與智能電話相關(guān)聯(lián),而另一設(shè)備組可以與平板計(jì)算機(jī)相關(guān)聯(lián),并且又一設(shè)備組可以與機(jī)頂盒計(jì)算設(shè)備相關(guān)聯(lián)。作為另一示例,一個(gè)設(shè)備組可以以具有小或普通屏幕大小的智能電話為目標(biāo),而另一設(shè)備組可以以具有大或超大屏幕大小的智能電話為目標(biāo)。如這里描述的設(shè)備組的使用可以允許軟件開發(fā)者創(chuàng)建他們的對(duì)特定設(shè)備或設(shè)備組優(yōu)化或者以其他方式定制的應(yīng)用文件的不同版本,并且可以向軟件發(fā)布者提供對(duì)如何向特定設(shè)備分發(fā)各種版本的增強(qiáng)的控制。
[0053]在某些實(shí)現(xiàn)方式中,機(jī)頂盒212可以提供建議的設(shè)備組,該建議的設(shè)備組已經(jīng)例如基于已經(jīng)從與應(yīng)用二進(jìn)制相關(guān)聯(lián)的清單文件解析的信息從定義的設(shè)備組被預(yù)先選擇。在這些情況下,軟件發(fā)布者可以接受針對(duì)應(yīng)用版本和相關(guān)聯(lián)的補(bǔ)充文件的建議的設(shè)備組,或者可以被允許選擇在下拉框中可獲得的不同設(shè)備組。
[0054]用戶界面202還可以包括下拉框214、220和其他適當(dāng)?shù)目丶?,其允許軟件發(fā)布者將一個(gè)或多個(gè)補(bǔ)充文件與正被上傳的應(yīng)用相關(guān)聯(lián)。下拉框214、220可以預(yù)先填充有補(bǔ)充文件,該補(bǔ)充文件先前已經(jīng)被與應(yīng)用二進(jìn)制的當(dāng)前或其他版本相關(guān)聯(lián)地上傳,并且是用戶可能期望與正被上傳的應(yīng)用相關(guān)聯(lián)的補(bǔ)充文件。另外,界面202可以提供允許用戶在適當(dāng)時(shí)瀏覽并上傳附加補(bǔ)充文件的按鈕216、218、222、224。
[0055]雖然在這一特定示例中提供了兩個(gè)補(bǔ)充文件或附件,但是系統(tǒng)可以允許開發(fā)者提交任意長的補(bǔ)充文件列表,其中每個(gè)補(bǔ)充文件具有標(biāo)簽或文件名以標(biāo)識(shí)文件。例如,開發(fā)者可能期望提供第一中心二進(jìn)制,并且各種媒體文件分組作為用于該主二進(jìn)制的補(bǔ)充文件(例如,當(dāng)應(yīng)用執(zhí)行時(shí)用于與其一起顯示的圖片)。中心二進(jìn)制可以針對(duì)其上執(zhí)行應(yīng)用的任意設(shè)備而言是相同的,但是不同媒體文件可以基于特定設(shè)備的屏幕分辨率被向用戶設(shè)備提供。例如,如果存在開發(fā)者期望使用的四個(gè)有關(guān)屏幕分辨率和20個(gè)圖形文件,則開發(fā)者可以在四個(gè)組中提供總共80個(gè)文件。
[0056]系統(tǒng)還可以為開發(fā)者提供機(jī)制以通過提供允許開發(fā)者在針對(duì)每個(gè)子級(jí)縮進(jìn)的層級(jí)中“附加”新的文件的用戶界面來組織此類組,以及定義不是文件本身(但可以是文件)但表示一個(gè)或多個(gè)子文件的組。例如,依賴于文件夾的用戶界面范例可以被呈現(xiàn),并且開發(fā)者可以在層級(jí)中具有不同分支,并且繼而定義那些分支的子分支包括針對(duì)特定設(shè)備類型的文件。例如,開發(fā)者可以為應(yīng)用提供示例背景圖形,并且可以在“媒體”文件夾下并且進(jìn)一步在“背景”子文件夾下放置圖形。在子文件夾內(nèi)可以是開發(fā)者將其與特定設(shè)備類型相關(guān)聯(lián)的子文件夾,諸如文件夾“640 X 480”、“ 1024X 768”和“ 1280 X 1024”。在這些最終文件夾的每個(gè)文件夾內(nèi),可以以適當(dāng)?shù)膶?duì)應(yīng)分辨率存儲(chǔ)針對(duì)背景圖像的特定圖形文件。當(dāng)文件被提供用于下載時(shí),繼而層級(jí)可以被遍歷,并且子文件夾的特定級(jí)(其涉及區(qū)分于不可應(yīng)用于該設(shè)備的其他文件夾選擇一個(gè)文件夾中的內(nèi)容)可以基于先前已經(jīng)在設(shè)備類型或特定設(shè)備特性與請(qǐng)求設(shè)備的能力之間進(jìn)行的關(guān)聯(lián)來使得其內(nèi)容被跳過或選擇用于下載。
[0057]開發(fā)者還可以基于其他類型的參數(shù)來對(duì)文件進(jìn)行分組。例如,主二進(jìn)制和補(bǔ)充文件的不同版本可以根據(jù)應(yīng)用的不同版本被分組,并且針對(duì)中心二進(jìn)制的特定版本的適當(dāng)補(bǔ)充文件可以按照多種方式被從該中心二進(jìn)制映射。例如,補(bǔ)充文件可以由開發(fā)者組織成中心二進(jìn)制“下”的文件夾,或者文件可以按照非層級(jí)方式被存儲(chǔ)用于文件的名稱可以被存儲(chǔ)在中心二進(jìn)制下的層級(jí)中,并且可以使用組織被映射到二進(jìn)制(從而使得單個(gè)文件可以由多個(gè)不同中心二進(jìn)制引用)。在另一實(shí)現(xiàn)方式中,單個(gè)文件(例如,簡單文本文件)可以與主二進(jìn)制有關(guān)并且文件的內(nèi)容可以定義將與該二進(jìn)制相關(guān)聯(lián)并且與其一起被下載的補(bǔ)充文件。文件的名稱還可以信號(hào)通知它們將被關(guān)聯(lián)到的二進(jìn)制,諸如使得具有V2.2.0或V2.2.1名稱部分或擴(kuò)展的“媒體”文件對(duì)應(yīng)于中心二進(jìn)制編號(hào)V2.2。這樣的將文件組織成組和子組(其中每個(gè)組和子組具有一個(gè)或多個(gè)文件)的能力可以使得開發(fā)者能夠更容易地組織和編輯針對(duì)文件分組的文件結(jié)構(gòu),并且還可以使得用戶能夠更容易地看到可獲得的文件并且選擇其希望與主二進(jìn)制一起獲得的文件。
[0058]—旦軟件發(fā)布者完成了輸入關(guān)于正被上傳的應(yīng)用版本的信息,發(fā)布者就可以點(diǎn)擊保存按鈕226以完成上傳過程。在某些實(shí)現(xiàn)方式中,軟件發(fā)布者可以被允許例如通過點(diǎn)擊保存按鈕226而不需要選擇特定設(shè)備組來完成上傳過程。例如,軟件發(fā)布者可以在上傳時(shí)上傳并非旨在于發(fā)布的一個(gè)或多個(gè)應(yīng)用文件,并且因此軟件發(fā)布者可以選擇不選擇將與應(yīng)用相關(guān)聯(lián)的設(shè)備組。在某些實(shí)現(xiàn)方式中,只有已經(jīng)與一個(gè)或多個(gè)特定設(shè)備組相關(guān)聯(lián)的應(yīng)用版本被發(fā)布以用于由應(yīng)用市場系統(tǒng)上的用戶訪問。
[0059]在所示的實(shí)現(xiàn)方式中,應(yīng)用二進(jìn)制可以與至多兩個(gè)補(bǔ)充文件相關(guān)聯(lián),該兩個(gè)補(bǔ)充文件可以采取各種形式并且提供各種功能。在某些實(shí)現(xiàn)方式中,補(bǔ)充文件可以由軟件開發(fā)者用于將多個(gè)應(yīng)用文件分組成單個(gè)、簽名的文件。在某些移動(dòng)設(shè)備平臺(tái)和其他計(jì)算平臺(tái)中,補(bǔ)充文件可以被安裝成用于特定設(shè)備的文件系統(tǒng)。
[0060]如上所述,接口 202可以允許軟件發(fā)布者上傳補(bǔ)充文件,并且將補(bǔ)充文件與特定應(yīng)用或應(yīng)用的特定版本相關(guān)聯(lián)。在應(yīng)用的更新版本被上傳至發(fā)布系統(tǒng)的情況下,軟件發(fā)布者還可以將先前上傳的補(bǔ)充文件與該應(yīng)用的新版本相關(guān)聯(lián)。在某些實(shí)現(xiàn)方式中,補(bǔ)充文件可以由版本代碼標(biāo)識(shí),該版本代碼在某些情況下可以匹配將與補(bǔ)充文件相關(guān)聯(lián)的應(yīng)用二進(jìn)制的版本代碼或與其有關(guān)。
[0061]在其他實(shí)現(xiàn)方式中,這樣的補(bǔ)充文件可以具有其自己的版本管理,該版本管理與針對(duì)主二進(jìn)制和/或針對(duì)其他補(bǔ)充文件(或補(bǔ)充文件組)的版本管理分離。例如,特定資源隨時(shí)間可以具有多個(gè)版本,其中每個(gè)版本由市場存儲(chǔ)。開發(fā)者繼而可以在利用市場建立應(yīng)用時(shí),將針對(duì)應(yīng)用的主二進(jìn)制與補(bǔ)充文件中的特定補(bǔ)充文件相關(guān)聯(lián),其還可以包括選擇那些補(bǔ)充文件中的哪些版本來與之相關(guān)聯(lián)。例如,開發(fā)者可以建立定義并標(biāo)識(shí)補(bǔ)充文件中的每個(gè)補(bǔ)充文件(單獨(dú)或成組)的關(guān)聯(lián)文件,包括按照應(yīng)當(dāng)與特定二進(jìn)制文件一起被下載的版本。例如,開發(fā)者可以標(biāo)識(shí)二進(jìn)制XYZ應(yīng)當(dāng)與文件A V.15以及文件B V.17相關(guān)聯(lián)。
[0062]作為版本管理的一個(gè)示例,軟件發(fā)布者可以選擇發(fā)布游戲,其中主應(yīng)用二進(jìn)制是版本100,并且是20MB。如上文所述,出于各種原因,軟件發(fā)布者還可以選擇發(fā)布500MB補(bǔ)充文件(例如,以包括針對(duì)該游戲的圖形和/或音頻資產(chǎn))作為版本100。在該游戲已經(jīng)在應(yīng)用市場系統(tǒng)上被發(fā)布之后,用戶可以選擇下載該游戲。在最初下載之后,20MB應(yīng)用二進(jìn)制可以被存儲(chǔ)在用戶的設(shè)備的應(yīng)用存儲(chǔ)部分中,而500MB補(bǔ)充文件可以被存儲(chǔ)在設(shè)備的通用存儲(chǔ)裝置(例如,SD卡)中。
[0063]軟件發(fā)布者稍后可以決定向應(yīng)用二進(jìn)制發(fā)布更新(新版本101,其也是20MB),并且還可以發(fā)布補(bǔ)充文件(版本101,其是50MB)。用戶的設(shè)備可以例如通過更新通知或其他適當(dāng)?shù)男盘?hào)傳輸機(jī)制向用戶通知對(duì)應(yīng)用的更新。如果用戶選擇下載該更新,則在用戶的設(shè)備上執(zhí)行的市場客戶端可以向應(yīng)用市場系統(tǒng)請(qǐng)求下載信息,其可以返回指示應(yīng)用的當(dāng)前版本包括應(yīng)用二進(jìn)制(版本101,20MB)、第一補(bǔ)充文件(版本100,500MB)和第二補(bǔ)充文件(版本101,50MB)的信息。
[0064]響應(yīng)于接收到關(guān)于應(yīng)用的當(dāng)前版本的信息,市場客戶端可以分析在設(shè)備上存儲(chǔ)的文件,并且可以確定第一補(bǔ)充文件(版本100,500MB)已經(jīng)被呈現(xiàn)在設(shè)備上。在某些實(shí)現(xiàn)方式中,市場客戶端可以執(zhí)行進(jìn)一步檢驗(yàn)以確保該文件是正確的文件,諸如通過使用校驗(yàn)和或者通過將在設(shè)備上存儲(chǔ)的第一補(bǔ)充文件的大小與在接收自應(yīng)用市場系統(tǒng)的應(yīng)用信息中被指示的第一補(bǔ)充文件的大小進(jìn)行比較。如果市場客戶端可以確定在設(shè)備上存儲(chǔ)的第一補(bǔ)充文件匹配與應(yīng)用的當(dāng)前版本相關(guān)聯(lián)的第一補(bǔ)充文件,則市場客戶端可以僅發(fā)起更新的應(yīng)用二進(jìn)制(版本101,20MB)和第二補(bǔ)充文件(版本101,50MB)的下載。通過這一方式,市場客戶端僅下載更新的文件(總共70MB),并且節(jié)約了與再次下載第一補(bǔ)充文件相關(guān)聯(lián)的帶寬(在這一示例中為500MB)和下載次數(shù)。
[0065]如果不同用戶選擇從應(yīng)用市場系統(tǒng)下載相同游戲,則在不同用戶的設(shè)備上執(zhí)行的市場客戶端可以確定沒有當(dāng)前應(yīng)用文件被呈現(xiàn)在設(shè)備上,并且因此可以發(fā)起應(yīng)用二進(jìn)制(版本101,20MB)、第一補(bǔ)充文件(版本100,500MB)和第二補(bǔ)充文件(版本101,50MB)的下載,總共下載大小為570MB。
[0066]在某些實(shí)現(xiàn)方式中,當(dāng)應(yīng)用文件的更加新的版本被下載時(shí),市場客戶端可以刪除或歸檔被替代的應(yīng)用文件的更舊版本。例如,繼續(xù)上文示例,如果軟件發(fā)布者隨后發(fā)布新的應(yīng)用二進(jìn)制(版本102,20MB)和新的第二補(bǔ)充文件(版本102,30MB),則應(yīng)用市場系統(tǒng)可以向市場客戶端指示應(yīng)用文件的當(dāng)前版本包括新的應(yīng)用二進(jìn)制、第一補(bǔ)充文件(版本100,500MB)和新的第二補(bǔ)充文件。當(dāng)用戶選擇下載更新的應(yīng)用文件時(shí),市場客戶端可以例如通過確定第一補(bǔ)充文件已經(jīng)呈現(xiàn)在設(shè)備上而再次只下載更新的文件,并且可以移除或歸檔待被替代的應(yīng)用文件的舊版本。例如,市場客戶端可以將文件的舊版本移至設(shè)備上的不同存儲(chǔ)位置,從而使得如果用戶期望恢復(fù)先前版本則它們?cè)谠O(shè)備上可獲得。類似地,市場客戶端可以將文件的舊版本留在相同存儲(chǔ)位置中,但是可以重新命名文件以指示它們與應(yīng)用的過時(shí)版本相關(guān)聯(lián)。
[0067]在某些情況下,軟件發(fā)布者可以發(fā)行游戲的不使用任何現(xiàn)有應(yīng)用文件的新版本。在如上文描述的這種情況下,應(yīng)用市場系統(tǒng)可以向在用戶的設(shè)備上執(zhí)行的市場客戶端提供關(guān)于各種應(yīng)用文件的信息,并且市場客戶端可以在其確定沒有應(yīng)用文件呈現(xiàn)在設(shè)備上之后發(fā)起所有文件的下載。
[0068]雖然本申請(qǐng)總體上將補(bǔ)充文件描述為具有特定文件類型(諸如媒體文件),但是補(bǔ)充文件可以采取各種形式并且也可以是二進(jìn)制或其他種類的文件。另外,雖然多個(gè)補(bǔ)充文件與之相關(guān)聯(lián)的主或中心二進(jìn)制文件已經(jīng)被描述,但是主或中心文件可以采取其他形式,或者可以存在具有通過各種方式與主或中心文件有關(guān)的補(bǔ)充文件的多個(gè)主或中心文件。同樣,如上所述,下載的各種文件可以被成組、分組或者通過各種方便的方式被布置以允許文件的分組、或組、可以被更新和改變的模塊結(jié)構(gòu),諸如基于每文件(例如,用新文件置換出舊文件,而不影響其他文件)。代替這里描述的系統(tǒng)和技術(shù)可以用于通過應(yīng)用市場系統(tǒng)來分發(fā)任何適當(dāng)?shù)奈募蛭募愋汀?br>
[0069]圖3是用于分發(fā)與軟件應(yīng)用相關(guān)聯(lián)的應(yīng)用文件的軟件分發(fā)系統(tǒng)300的系統(tǒng)圖。通常,系統(tǒng)集中于開發(fā)者可以向其張貼用于分發(fā)的應(yīng)用的應(yīng)用市場,并且計(jì)算設(shè)備的用戶可以使得此類應(yīng)用被下載到其設(shè)備。系統(tǒng)300可以與針對(duì)圖1描繪和描述的系統(tǒng)100類似地被實(shí)現(xiàn),即便這里示出了關(guān)于系統(tǒng)的特定結(jié)構(gòu)組件的附加細(xì)節(jié)。
[0070]在這一示例中,系統(tǒng)300包括三個(gè)主要組件:市場服務(wù)器系統(tǒng)330、市場客戶端320和應(yīng)用文件310。市場服務(wù)器系統(tǒng)330可以是通過因特網(wǎng)提供各種托管的服務(wù)的系統(tǒng)的一部分,并且特別地可以向公共呈現(xiàn)應(yīng)用市場。這樣的市場可以被表示為承載來自各種開發(fā)者的應(yīng)用的店面,并且還收集針對(duì)通過該市場銷售的應(yīng)用的金錢(例如,通過對(duì)用戶的標(biāo)識(shí)的用戶信用卡收費(fèi)),以及向?qū)?yīng)于購買的應(yīng)用的開發(fā)者匯款此類支付的一部分。
[0071]服務(wù)器系統(tǒng)330中的應(yīng)用管理器332可以負(fù)責(zé)控制以下方式,通過該方式來管理將下載到市場客戶端320的應(yīng)用。具體而言,應(yīng)用管理器332可以追蹤在應(yīng)用二進(jìn)制文件與同應(yīng)用相關(guān)聯(lián)并且待下載到下載該相關(guān)聯(lián)的應(yīng)用二進(jìn)制的設(shè)備的對(duì)應(yīng)補(bǔ)充文件之間的對(duì)應(yīng)性。
[0072]簽名生成器334基于分析應(yīng)用文件的部分為特定應(yīng)用文件提供簽名。市場客戶端320轉(zhuǎn)而包括文件驗(yàn)證器328以在發(fā)起應(yīng)用文件的安裝之前驗(yàn)證文件簽名。市場服務(wù)器系統(tǒng)330還可以向市場客戶端320發(fā)送關(guān)于由市場服務(wù)器系統(tǒng)330分析的應(yīng)用文件的部分的信息,并且市場客戶端320轉(zhuǎn)而可以通過基于分析由市場服務(wù)器系統(tǒng)330分析的應(yīng)用文件的部分來為應(yīng)用文件生成驗(yàn)證簽名并且將文件簽名與驗(yàn)證簽名比較來驗(yàn)證該文件簽名。響應(yīng)于來自市場客戶端320的應(yīng)用請(qǐng)求,這樣的應(yīng)用文件信息和附加信息還可以從市場服務(wù)器系統(tǒng)330被提供給市場客戶端320。
[0073]在市場客戶端上的其他組件也可以用于幫助管理應(yīng)用組件從市場服務(wù)器系統(tǒng)33向市場客戶端320的下載。例如,用戶界面322可以向用戶呈現(xiàn)通用應(yīng)用市場,從而使得用戶可以按照熟悉的方式搜索和選擇應(yīng)用。在某些實(shí)例中,用戶的設(shè)備的設(shè)備類型可以被獲得或確定,從而使得市場僅示出與特定設(shè)備類型兼容的用戶應(yīng)用。
[0074]用戶界面還可以為用戶生成用于理解應(yīng)用二進(jìn)制和有關(guān)文件到由市場客戶端320管理的客戶端設(shè)備的下載的進(jìn)度的信息。
[0075]應(yīng)用管理器324可以充當(dāng)對(duì)市場服務(wù)器系統(tǒng)330上的應(yīng)用管理器332的配對(duì)物。特別地,兩個(gè)管理器332可以通信和協(xié)調(diào)與特定應(yīng)用有關(guān)的多個(gè)文件的下載,諸如一個(gè)或多個(gè)應(yīng)用二進(jìn)制和一個(gè)或多個(gè)補(bǔ)充文件。作為一個(gè)示例,用戶界面322還可以示出進(jìn)度條或其他進(jìn)度指示符,從而使得設(shè)備的用戶可以看到在下載針對(duì)應(yīng)用的所有多個(gè)文件中已經(jīng)進(jìn)行的進(jìn)度。例如,單個(gè)進(jìn)度條可以示出針對(duì)特定應(yīng)用的多個(gè)文件的下載的全部進(jìn)度。該條可以在其行進(jìn)中改變針對(duì)每個(gè)特定文件的顏色,并且鄰近該條的文本可以指示當(dāng)前正被下載的文件的描述。在其他實(shí)例中,主條可以在顯示的第一行中被示出,并且針對(duì)特定組件的子條可以在主條以下被示出。例如,子條中的每個(gè)子條最初可以為空,并且可以逐一填充,同時(shí)主條也填充,但是沒有示出完全滿直到所有子條也滿為止。
[0076]在某些示例中,用戶界面322可以向用戶提供警告以指示某些補(bǔ)充文件將不隨對(duì)應(yīng)的應(yīng)用二進(jìn)制被立即下載,諸如因?yàn)橛脩舢?dāng)前處于可能對(duì)被使用的額外帶寬使用索要額外費(fèi)用的蜂窩數(shù)據(jù)網(wǎng)絡(luò)上。用戶繼而可以確認(rèn)他們立即想要這些文件還是希望等到直到設(shè)備連接到更低成本網(wǎng)絡(luò),諸如其工作或家庭WiFi網(wǎng)絡(luò)。
[0077]本地文件管理器326管理應(yīng)用文件310的存儲(chǔ)和更新,應(yīng)用文件310可以被存儲(chǔ)在客戶端設(shè)備上的有形可記錄介質(zhì)上。此類文件可以包括應(yīng)用二進(jìn)制312,其為針對(duì)已經(jīng)從應(yīng)用市場向客戶端設(shè)備下載的特定應(yīng)用的核心二進(jìn)制文件。文件還可以包括補(bǔ)充二進(jìn)制313,其例如可以是可以由應(yīng)用訪問的內(nèi)容(例如,圖像、視頻文件、模板等),但是其可以與對(duì)應(yīng)的應(yīng)用二進(jìn)制312分離地被下載,并且在與應(yīng)用二進(jìn)制312的下載不同的時(shí)間。補(bǔ)丁二進(jìn)制314可以對(duì)應(yīng)于在應(yīng)用推出之后由開發(fā)者發(fā)行的補(bǔ)丁,并且例如可以被實(shí)現(xiàn)以校正推出的代碼中的漏洞或錯(cuò)誤。
[0078]本地文件管理器326可以負(fù)責(zé)保存、維護(hù)和組織應(yīng)用文件310。例如,本地文件管理器326可以從服務(wù)器系統(tǒng)330接收應(yīng)用文件310,并且使得其與特定應(yīng)用相關(guān)聯(lián)并且被存儲(chǔ)在特定位置中。例如,更新文件可以與現(xiàn)有文件一前一后地被存儲(chǔ),直到更新以被完成,并且然后現(xiàn)有文件可以被刪除。另外,本地文件管理器326可以在應(yīng)用文件中的特定應(yīng)用文件的下載完成之后發(fā)起應(yīng)用文件310的安裝。另外,本地文件管理器326可以將版本信息與所存儲(chǔ)文件的相應(yīng)版本比較以確定是否下載應(yīng)用文件中的特定應(yīng)用文件,并且可以響應(yīng)來自服務(wù)器系統(tǒng)330的請(qǐng)求以便使得存儲(chǔ)的文件的先前版本在下載存儲(chǔ)的文件的更加新的版本之后被刪除。為了確定設(shè)備上的文件,本地文件管理器326可以通過分析在計(jì)算設(shè)備上的對(duì)應(yīng)于特定軟件應(yīng)用的目錄中存儲(chǔ)的文件來標(biāo)識(shí)存儲(chǔ)的文件。
[0079]通過這一方式,系統(tǒng)300繼而提供足夠的結(jié)構(gòu)組件(其可以通過軟件和硬件的組合被實(shí)現(xiàn))以支持與應(yīng)用有關(guān)的文件的部分下載,其中主二進(jìn)制被首先下載以提供基本功能,并且補(bǔ)充文件被稍后下載以提供完整(但可選)功能。同樣,更新和其他應(yīng)用管理技術(shù)可以利用這樣的系統(tǒng)被實(shí)現(xiàn),諸如按照上文和下文所述的方式。
[0080]開發(fā)者還可以建立其用于下載的應(yīng)用的表現(xiàn),從而使得用戶被給予下載某些文件而不是其他文件的選項(xiàng)(其中開發(fā)者可以預(yù)先標(biāo)識(shí)哪些文件是可選的以及需要哪些文件以便用戶實(shí)現(xiàn)該應(yīng)用,以及需要哪些文件以實(shí)現(xiàn)特定功能部分)
[0081]此外,在某些實(shí)例中,應(yīng)用可以自身與市場服務(wù)器系統(tǒng)直接交互(而不通過專用市場客戶端)以經(jīng)由由市場操作者發(fā)布的應(yīng)用編程接口(API)獲得必要的補(bǔ)充文件。如上文在某些示例中所描述的那樣,市場客戶端可以告知市場服務(wù)器系統(tǒng)下載什么并且可以確定其將被放置的位置。然而,在某些實(shí)例中,市場客戶端可以嘗試下載,并且如果下載失敗,則應(yīng)用本身可以嘗試發(fā)起并管理該下載。雖然開發(fā)者將不得不支持在這樣的情況下的客戶端側(cè)操作,但是至少將能夠避免不得不支持服務(wù)器側(cè)操作。這樣的交互(包括應(yīng)用詢問市場處理應(yīng)用的用戶或設(shè)備是否為該應(yīng)用的正當(dāng)處理者的能力,從而使得應(yīng)用可以禁用其自身功能)在2011年5月19日遞交的、名稱為“Electronic License Management”的共同未決美國申請(qǐng)序列號(hào)13/111,877中被更完整地說明。作為一個(gè)示例,應(yīng)用在首次被推出時(shí)可以訪問API以獲得去往市場確定需要的有關(guān)補(bǔ)充文件的URL或其他指針(并且市場可以向開發(fā)者提供可以被容易地集成到應(yīng)用中以提供這一功能的簡單代碼)。市場服務(wù)器可以根據(jù)預(yù)定API托管那些文件,當(dāng)有關(guān)應(yīng)用使得它們?cè)谄渖线\(yùn)行的計(jì)算設(shè)備提供用于獲得所述文件的適當(dāng)證書時(shí),所述服務(wù)器繼而可以提供所述文件。
[0082]在又一或附加特征中,發(fā)布者還可以提供某些或所有補(bǔ)充文件以用于從與市場服務(wù)器系統(tǒng)不同的位置下載。例如,市場客戶端可以向應(yīng)用提供API以便向應(yīng)用提供一個(gè)或多個(gè)補(bǔ)充文件名以及針對(duì)文件的位置作為安裝過程的一部分,并且應(yīng)用可以使用這樣的指針信息以發(fā)起那些補(bǔ)充文件本身的下載。在這樣的實(shí)現(xiàn)方式中,某些或所有文件可以被市場服務(wù)器托管和服務(wù),并且某些文件可以被從另一位置托管和服務(wù)。例如,開發(fā)者可以依賴市場服務(wù)大但相對(duì)靜態(tài)的文件,但是可以本身服務(wù)頻繁變化的較小文件。
[0083]在某些實(shí)例中,如果應(yīng)用沒有正確地認(rèn)證自身(例如,如果應(yīng)用不是從適當(dāng)市場下載或者是下載的應(yīng)用的副本),則可以阻止拷貝應(yīng)用以獲得補(bǔ)充文件(為自身)的能力。例如,被向市場客戶端或向應(yīng)用提供并且指向資源的URL可以是非可重用的或者可以具有短到期日期。針對(duì)應(yīng)用的戳和簽名被下載,其中簽名可以被包括在設(shè)備向市場服務(wù)器提供的URL中,并且簽名的出現(xiàn)可以由市場服務(wù)器用作用于確定文件應(yīng)當(dāng)被下載至有關(guān)計(jì)算設(shè)備的機(jī)制。簽名可以包括用戶ID、設(shè)備ID和應(yīng)用ID的任何單個(gè)ID或組合的哈希版本(或者可以提供相同安全性和標(biāo)識(shí)的其他類似信息)從而使得原始數(shù)據(jù)無法被不誠實(shí)用戶反向工程和重用。繼而,通過這些方式,附加安全性可以被提供給開發(fā)者以防止剽竊,同時(shí)仍針對(duì)應(yīng)用市場為用戶維護(hù)相對(duì)容易的體驗(yàn)。
[0084]圖4是用于分發(fā)與軟件應(yīng)用相關(guān)聯(lián)的應(yīng)用文件的示例過程400的泳道圖。過程400可以例如由在圖1的應(yīng)用市場系統(tǒng)108和設(shè)備110上操作的市場客戶端120實(shí)現(xiàn)。為了呈現(xiàn)的清楚,以下描述使用這些系統(tǒng)作為描述過程400的基礎(chǔ)。然而,其他系統(tǒng)或系統(tǒng)的組合也可以或者備選地用于執(zhí)行所述過程。
[0085]過程400在市場客戶端接收針對(duì)軟件應(yīng)用的請(qǐng)求時(shí)開始(402)。該請(qǐng)求可以與軟件應(yīng)用的新的下載或者與對(duì)已經(jīng)存在于計(jì)算設(shè)備上的軟件應(yīng)用的更新相關(guān)聯(lián)。作為新的下載的示例,用戶可以通過使用在用戶的設(shè)備上執(zhí)行的市場客戶端瀏覽或搜索通通過應(yīng)用市場系統(tǒng)可獲得的應(yīng)用,并且可以請(qǐng)求下載用戶感興趣的特定應(yīng)用。作為更新請(qǐng)求的示例,應(yīng)用的發(fā)布者可以向應(yīng)用發(fā)布更新,并且市場客戶端可以提供此類更新的通知以用于在設(shè)備上顯示。用戶繼而可以請(qǐng)求下載更新的應(yīng)用文件以用于在設(shè)備上安裝。轉(zhuǎn)而,市場客戶端可以向應(yīng)用市場系統(tǒng)發(fā)送與該請(qǐng)求相關(guān)聯(lián)的通信(404)。
[0086]在接收到通信之后,應(yīng)用市場系統(tǒng)可以標(biāo)識(shí)響應(yīng)于通信的應(yīng)用文件,包括應(yīng)用二進(jìn)制和任意補(bǔ)充文件的適當(dāng)版本(406)。例如,應(yīng)用市場系統(tǒng)可以標(biāo)識(shí)響應(yīng)于通信的應(yīng)用文件中的每個(gè)應(yīng)用文件的最近版本。作為另一示例,某些應(yīng)用文件可以與特定請(qǐng)求設(shè)備或請(qǐng)求設(shè)備的特定類型相關(guān)聯(lián)。在此類情況下,應(yīng)用市場系統(tǒng)可以標(biāo)識(shí)針對(duì)提交針對(duì)應(yīng)用的請(qǐng)求的特定設(shè)備或設(shè)備類型的應(yīng)用文件的適當(dāng)版本。
[0087]除了標(biāo)識(shí)應(yīng)用文件的適當(dāng)版本之外,應(yīng)用市場系統(tǒng)還可以確定與應(yīng)用文件相關(guān)聯(lián)的某些信息。例如,應(yīng)用市場系統(tǒng)可以確定某些元數(shù)據(jù),諸如文件大小、版本信息和/或可以允許市場客戶端確定下載哪個(gè)應(yīng)用文件的其他信息。在收集此類信息之后,應(yīng)用市場系統(tǒng)可以向市場客戶端發(fā)送該信息(408)。
[0088]市場客戶端繼而可以使用該信息來確定任何應(yīng)用文件是否已經(jīng)被存儲(chǔ)在計(jì)算設(shè)備上(410)。例如,市場客戶端可以將名稱、版本和/或大小元數(shù)據(jù)信息與同已經(jīng)被存儲(chǔ)在設(shè)備上的某些應(yīng)用文件相關(guān)聯(lián)的信息比較以看該信息是否匹配。此類比較繼而可以用于確定下載哪個(gè)應(yīng)用文件(412)。例如,如果市場客戶端確定一個(gè)或多個(gè)應(yīng)用文件已經(jīng)被存儲(chǔ)在計(jì)算設(shè)備上,則市場客戶端可以不下載那些特定應(yīng)用文件。另一方面,如果任何應(yīng)用文件沒有存在于設(shè)備上,或者如果存在文件的更舊版本,或者如果文件的大小不匹配從應(yīng)用市場系統(tǒng)接收的大小信息,則市場客戶端可以確定應(yīng)用文件應(yīng)當(dāng)被下載,并且可以隨后發(fā)起下載(414)ο
[0089]圖5示出了可以用來實(shí)施在此描述的技術(shù)的計(jì)算設(shè)備500和移動(dòng)計(jì)算設(shè)備550的示例。計(jì)算設(shè)備500旨在于代表各種形式的數(shù)字計(jì)算機(jī),比如膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、工作站、個(gè)人數(shù)字助理、服務(wù)器、刀片服務(wù)器、大型機(jī)和其它適當(dāng)計(jì)算機(jī)。移動(dòng)計(jì)算設(shè)備450旨在于代表各種形式的移動(dòng)設(shè)備,比如個(gè)人數(shù)字助理、蜂窩電話、智能電話和其它相似計(jì)算設(shè)備。這里所示的組件、它們的連接和關(guān)系及其功能意味著僅為示例行而并非意味著限制在本文獻(xiàn)中描述和/或要求保護(hù)的實(shí)現(xiàn)方式。
[0090]計(jì)算設(shè)備500包括處理器502、存儲(chǔ)器504、存儲(chǔ)設(shè)備506、連接到存儲(chǔ)器504和高速擴(kuò)展端口 510的高速接口 508以及連接到低速總線514和存儲(chǔ)設(shè)備506的低速接口 512。使用各種總線來互連并且可以在共同母板上或者以如適當(dāng)?shù)钠渌绞窖b配組件502、504、506,508,510和512中的每個(gè)組件。處理器502可以處理用于在計(jì)算設(shè)備500內(nèi)執(zhí)行的指令,這些指令包括在存儲(chǔ)器504中或者存儲(chǔ)設(shè)備506上存儲(chǔ)的用于在外部輸入/輸出設(shè)備(比如耦合到高速接口 508的顯示器516)上顯示用于⑶I的圖形信息的指令。在其它實(shí)現(xiàn)方式中,多個(gè)處理器和/或多個(gè)總線可以如適當(dāng)?shù)哪菢优c多個(gè)存儲(chǔ)器和存儲(chǔ)器類型一起使用。也可以連接多個(gè)計(jì)算設(shè)備,其中每個(gè)設(shè)備提供必需操作的部分(例如,作為服務(wù)器組、一組刀片服務(wù)器或者多處理器系統(tǒng))。
[0091]存儲(chǔ)器504存儲(chǔ)計(jì)算設(shè)備500內(nèi)的信息。在一個(gè)實(shí)現(xiàn)方式中,存儲(chǔ)器504是一個(gè)或者多個(gè)易失性存儲(chǔ)器單元。在另一實(shí)現(xiàn)方式中,存儲(chǔ)器504是一個(gè)或者多個(gè)非易失性存儲(chǔ)器單元。存儲(chǔ)器504也可以是另一形式的計(jì)算機(jī)可讀介質(zhì),比如磁盤或者光盤。
[0092]存儲(chǔ)設(shè)備506能夠提供用于計(jì)算設(shè)備500的海量存儲(chǔ)。在一個(gè)實(shí)現(xiàn)方式中,存儲(chǔ)設(shè)備506可以是或者包含計(jì)算機(jī)可讀介質(zhì),比如軟盤設(shè)備、硬盤設(shè)備、光盤設(shè)備或者帶設(shè)備、閃存或者其它相似固態(tài)存儲(chǔ)器設(shè)備或者如下設(shè)備的陣列,這些設(shè)備包括存儲(chǔ)區(qū)域網(wǎng)絡(luò)或者其它配置中的設(shè)備??梢栽谛畔⑤d體中有形地體現(xiàn)計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)程序產(chǎn)品也可以包括指令,指令被執(zhí)行時(shí)執(zhí)行一種或者多種方法,比如以上描述的方法。信息載體是計(jì)算機(jī)或者機(jī)器可讀介質(zhì),比如存儲(chǔ)器504、存儲(chǔ)設(shè)備506或者在處理器502上的存儲(chǔ)器。
[0093]高速控制器508管理用于計(jì)算設(shè)備500的帶寬密集操作,而低速控制器512管理更低帶寬密集操作。這樣的功能分配僅為示例性。在一個(gè)實(shí)現(xiàn)方式中,高速控制器508耦合到存儲(chǔ)器504、顯示器516 (例如,通過圖形處理器或者加速器)和耦合到可以接受各種擴(kuò)展卡(未示出)的高速擴(kuò)展端口 510。在該實(shí)現(xiàn)方式中,低速控制器512耦合到存儲(chǔ)設(shè)備506和低速擴(kuò)展端口 514。可以包括各種通信端口(例如,USB、藍(lán)牙、以太網(wǎng)、無線以太網(wǎng))的低速擴(kuò)展端口可以例如通過網(wǎng)絡(luò)適配器耦合到一個(gè)或者多個(gè)輸入/輸出設(shè)備(比如鍵盤、指點(diǎn)設(shè)備、掃描儀)或者聯(lián)網(wǎng)設(shè)備(比如交換機(jī)或者路由器)。
[0094]如該圖中所示可以用多個(gè)不同形式實(shí)施計(jì)算設(shè)備500。例如,可以實(shí)施它為標(biāo)準(zhǔn)服務(wù)器520或者多次實(shí)施于一組這樣的服務(wù)器中。也可以實(shí)施它為架式服務(wù)器系統(tǒng)524的部分。此外,可以在個(gè)人計(jì)算機(jī)(比如膝上型計(jì)算機(jī)522)中實(shí)施它。備選地,來自計(jì)算設(shè)備500的組件可以與在移動(dòng)設(shè)備(未示出)(比如設(shè)備550)中的其它組件組合。這樣的設(shè)備中的每個(gè)設(shè)備可以包含計(jì)算設(shè)備500、550中的一個(gè)或者多個(gè)計(jì)算設(shè)備,并且整個(gè)系統(tǒng)可以由相互通信的多個(gè)計(jì)算設(shè)備500、550組成。
[0095]計(jì)算設(shè)備550包括處理器552、存儲(chǔ)器564、輸入/輸出設(shè)備(比如顯示器554)、通信接口 566和收發(fā)器568以及其它組件。設(shè)備550也可以具有用于提供附加存儲(chǔ)的存儲(chǔ)設(shè)備(比如微驅(qū)動(dòng)或者其它設(shè)備)。使用各種總線來互連組件550、552、564、554、566和568中的每個(gè)組件,并且可以在共同母板上或者以如適當(dāng)?shù)钠渌绞窖b配組件中的若干組件。
[0096]處理器552可以執(zhí)行在移動(dòng)計(jì)算設(shè)備550內(nèi)的指令,這些指令包括在存儲(chǔ)器564中存儲(chǔ)的指令??梢詫?shí)施處理器為包括分離的以及多個(gè)模擬和數(shù)字處理器的芯片的芯片集。處理器可以例如提供設(shè)備550的其它組件的協(xié)調(diào),比如控制用戶界面、由設(shè)備550運(yùn)行的應(yīng)用和設(shè)備550的無線通信。
[0097]處理器552可以通過控制接口 558和耦合到顯示器554的顯示接口 556與用戶通信。顯示器554可以例如是TFT IXD (薄膜晶體管液晶顯示器)或者OLED (有機(jī)發(fā)光二極管)顯示器或者其它適當(dāng)顯示器技術(shù)。顯示器接口 556可以包括用于驅(qū)動(dòng)顯示器554以向用戶呈現(xiàn)圖形和其它信息的適當(dāng)電路??刂平涌?558可以從用戶接收命令并且轉(zhuǎn)換它們以用于向處理器552提交。此外,外部接口 562可以被提供在與處理器552的通信中,以便支持設(shè)備550與其它設(shè)備的近區(qū)域通信。外部接口 562可以例如在一些實(shí)現(xiàn)方式中提供有線通信或者在其它實(shí)現(xiàn)方式中提供無線通信,并且也可以使用多個(gè)接口。
[0098]存儲(chǔ)器564存儲(chǔ)移動(dòng)計(jì)算設(shè)備550內(nèi)的信息。可以實(shí)施存儲(chǔ)器564為一個(gè)或者多個(gè)計(jì)算機(jī)可讀介質(zhì)、一個(gè)或者多個(gè)易失性存儲(chǔ)器單元或者一個(gè)或者多個(gè)非易失性存儲(chǔ)器單元中的一項(xiàng)或者多項(xiàng)。也可以提供擴(kuò)展存儲(chǔ)器574并且該擴(kuò)展存儲(chǔ)器574可以通過可以例如包括SIMM(單列直插存儲(chǔ)器模塊)卡接口的擴(kuò)展接口 572連接到設(shè)備550。這樣的擴(kuò)展存儲(chǔ)器574可以提供用于設(shè)備550的額外存儲(chǔ)空間或者也可以存儲(chǔ)用于設(shè)備550的應(yīng)用或者其它信息。具體而言,擴(kuò)展存儲(chǔ)器574可以包括用于實(shí)現(xiàn)或者補(bǔ)充以上描述的過程的指令,并且也可以包括安全信息。因此,例如,可以提供擴(kuò)展存儲(chǔ)器574作為用于移動(dòng)計(jì)算設(shè)備550的安全模塊,并且可以用允許安全使用設(shè)備550的指令對(duì)擴(kuò)展存儲(chǔ)器574編程。此夕卜,可以經(jīng)由SIMM卡將安全應(yīng)用與附加信息一起提供,比如以不可黑客方式將標(biāo)識(shí)信息放置于SMM卡上。
[0099]如以下討論的那樣,存儲(chǔ)器可以例如包括閃存和/或NVRAM存儲(chǔ)器。在一個(gè)實(shí)現(xiàn)方式中,在信息載體中有形地體現(xiàn)計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)程序產(chǎn)品包含指令,這些指令在被執(zhí)行時(shí)執(zhí)行一種或者多種方法,比如以上描述的方法。信息載體是一個(gè)或者多個(gè)計(jì)算機(jī)或者機(jī)器可讀介質(zhì),比如存儲(chǔ)器564、擴(kuò)展存儲(chǔ)器574或者在處理器552上的存儲(chǔ)器。
[0100]設(shè)備550可以通過可以在必要時(shí)包括數(shù)字信號(hào)處理電路的通信接口 566無線地通信。通信接口 566可以在各種模式或者協(xié)議(比如GSM語音呼叫、SMS、EMS或者麗S消息接發(fā)、CDMA、TDMA, PDC、WCDMA, CDMA2000或者GPRS以及其它模式或者協(xié)議之下提供通信??梢岳缤ㄟ^射頻收發(fā)器568出現(xiàn)這樣的通信。此外,可以比如使用Bluetooth、WiFi或者其它這樣的收發(fā)器(未示出)出現(xiàn)短程通信。此外,GPS(全球定位系統(tǒng))接收器模塊570可以向設(shè)備550提供附加的與導(dǎo)航和位置有關(guān)的無線數(shù)據(jù),該數(shù)據(jù)可以如適當(dāng)?shù)哪菢佑稍谠O(shè)備550上運(yùn)行的應(yīng)用使用。
[0101]設(shè)備550也可以使用音頻編碼解碼器560來可聽地通信,該編碼解碼器560可以從用戶接收口述信息并且將它轉(zhuǎn)換成可用數(shù)字信息。音頻編碼解碼器560可以類似地比如通過例如在設(shè)備550的頭戴式受話器中的揚(yáng)聲器生成用于用戶的可聽聲音。這樣的聲音可以包括來自語音電話呼叫的聲音、可以包括記錄的聲音(例如,語音消息、音樂文件等)并且也可以包括由在設(shè)備550上操作的應(yīng)用所生成的聲音。
[0102]如在該圖中所示,可以用多個(gè)不同形式實(shí)施計(jì)算設(shè)備550。例如,可以實(shí)施它為蜂窩電話580。也可以實(shí)施它為智能電話582、個(gè)人數(shù)字助理或者其它相似移動(dòng)設(shè)備的部分。
[0103]附加地,計(jì)算設(shè)備500或550可以包括通用串行總線(USB)閃存驅(qū)動(dòng)。USB閃存驅(qū)動(dòng)可以存儲(chǔ)操作系統(tǒng)和其他應(yīng)用。USB閃存驅(qū)動(dòng)可以包括輸入/輸出組件,比如可以被插入另一計(jì)算設(shè)備的USB端口的無線收發(fā)器或USB連接器。
[0104]可以在數(shù)字電子電路、集成電路、特殊地設(shè)計(jì)的ASIC(專用集成電路)、計(jì)算機(jī)硬件、固件、軟件和/或其組合中實(shí)現(xiàn)這里描述的系統(tǒng)和技術(shù)的各種實(shí)現(xiàn)方式。這些各種實(shí)現(xiàn)方式可以包括在可編程系統(tǒng)上可執(zhí)行和/或可解譯的一個(gè)或者多個(gè)計(jì)算機(jī)程序中的實(shí)現(xiàn)方式,該可編程系統(tǒng)包括可以是特殊或者通用的至少一個(gè)可編程處理器、至少一個(gè)輸入設(shè)備和至少一個(gè)輸出設(shè)備,該至少一個(gè)可編程處理器被耦合用于從存儲(chǔ)系統(tǒng)接收數(shù)據(jù)和指令以及向存儲(chǔ)系統(tǒng)傳輸數(shù)據(jù)和指令。
[0105]這些計(jì)算機(jī)程序(也被稱為程序、軟件、軟件應(yīng)用或者代碼)包括用于可編程處理器的機(jī)器指令并且可以用高級(jí)過程和/或面向?qū)ο蟮木幊陶Z言和/或用匯編/機(jī)器語言來實(shí)施。如這里所用,術(shù)語機(jī)器可讀介質(zhì)和計(jì)算機(jī)可讀介質(zhì)指代用來向可編程處理器提供機(jī)器指令和/或數(shù)據(jù)的任何計(jì)算機(jī)程序產(chǎn)品、裝置和/或設(shè)備(例如,磁盤、光盤、存儲(chǔ)器、可編程邏輯器件(PLD))。
[0106]為了提供與用戶的交互,可以在計(jì)算機(jī)上實(shí)施這里描述的系統(tǒng)和技術(shù),該計(jì)算機(jī)具有用于向用戶顯示信息的顯示設(shè)備(例如,CRT (陰極射線管)或者LCD (液晶顯示器)監(jiān)視器)以及用戶可以用來向計(jì)算機(jī)提供輸入的鍵盤和指點(diǎn)設(shè)備(例如,鼠標(biāo)或者跟蹤球)。其它種類的設(shè)備也可以用來提供與用戶交互;例如,向用戶提供的反饋可以是任何形式的感官反饋(例如,視覺反饋、聽覺反饋或者觸覺反饋);以及可以用包括聲音、話音或者觸覺輸入的任何形式接收來自用戶的輸入。
[0107]可以在計(jì)算系統(tǒng)中實(shí)施這里描述的系統(tǒng)和技術(shù),該計(jì)算系統(tǒng)包括后端組件(例如,作為數(shù)據(jù)服務(wù)器)或者包括中間件組件(例如,應(yīng)用服務(wù)器)或者包括前端組件(例如,具有如下圖形用戶界面或者Web瀏覽器的客戶端計(jì)算機(jī),用戶可以通過該圖形用戶界面或者Web瀏覽器與這里描述的系統(tǒng)和技術(shù)的實(shí)現(xiàn)方式交互)或者這樣的后端、中間件或者前端組件的任何組合。系統(tǒng)的組件可以由任何數(shù)字?jǐn)?shù)據(jù)通信形式或者介質(zhì)(例如,通信網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)和因特網(wǎng)。
[0108]計(jì)算系統(tǒng)可以包括客戶端和服務(wù)器??蛻舳撕头?wù)器一般相互遠(yuǎn)離并且通常通過通信網(wǎng)絡(luò)交互。借助在相應(yīng)計(jì)算機(jī)上運(yùn)行并且相互具有客戶端-服務(wù)器關(guān)系的計(jì)算機(jī)程序產(chǎn)生客戶端和服務(wù)器關(guān)系。
[0109]雖然以上已經(jīng)具體描述了數(shù)個(gè)實(shí)現(xiàn)方式,但是其它修改也有可能。另外,也可以使用用于執(zhí)行在本文獻(xiàn)中描述的系統(tǒng)和方法的其他機(jī)制。此外,在各圖中描繪的邏輯流程可以無需所示特定順序或者依次順序以實(shí)現(xiàn)希望的結(jié)果??梢蕴峁┢渌襟E,或者可以從描述的流程消除步驟,并且可以向描述的系統(tǒng)添加或者從描述的系統(tǒng)去除其它組件。因此,其他實(shí)現(xiàn)方式也在以下權(quán)利要求的范圍內(nèi)。
【權(quán)利要求】
1.一種用于從應(yīng)用市場向計(jì)算設(shè)備分發(fā)應(yīng)用文件的計(jì)算機(jī)實(shí)現(xiàn)的系統(tǒng),所述系統(tǒng)包括: 服務(wù)器系統(tǒng)接口,被布置為從多個(gè)客戶端計(jì)算設(shè)備中的一個(gè)客戶端計(jì)算設(shè)備的客戶端應(yīng)用接收對(duì)應(yīng)于對(duì)于獲得或更新針對(duì)所述一個(gè)客戶端計(jì)算設(shè)備的軟件應(yīng)用的請(qǐng)求的通信;以及 應(yīng)用市場服務(wù)器系統(tǒng),被編程為: 響應(yīng)于所述通信,標(biāo)識(shí)應(yīng)用文件,所述應(yīng)用文件包括對(duì)應(yīng)于所述軟件應(yīng)用的應(yīng)用二進(jìn)制文件和與所述軟件應(yīng)用相關(guān)聯(lián)的一個(gè)或多個(gè)補(bǔ)充文件,以及響應(yīng)于接收所述通信向所述客戶端應(yīng)用發(fā)送與所述應(yīng)用文件有關(guān)的信息,以及 標(biāo)識(shí)在所述計(jì)算設(shè)備上的對(duì)應(yīng)于所述應(yīng)用文件的存儲(chǔ)的文件,基于標(biāo)識(shí)的所述存儲(chǔ)的文件以及與從所述應(yīng)用市場服務(wù)器系統(tǒng)發(fā)送的所述應(yīng)用文件有關(guān)的所述信息來確定所述應(yīng)用文件中的要下載的特定應(yīng)用文件,以及發(fā)起所述應(yīng)用文件中的所述特定應(yīng)用文件的下載。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述客戶端應(yīng)用包括應(yīng)用市場客戶端,所述應(yīng)用市場客戶端對(duì)應(yīng)于所述應(yīng)用市場服務(wù)器系統(tǒng)并且被編程為從所述應(yīng)用市場服務(wù)器系統(tǒng)下載針對(duì)多個(gè)不同應(yīng)用的文件。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中與所述應(yīng)用文件有關(guān)的所述信息包括針對(duì)所述應(yīng)用文件中的每個(gè)應(yīng)用文件的版本信息,并且其中所述應(yīng)用市場客戶端被編程為將所述版本信息與所述存儲(chǔ)的文件的相應(yīng)版本比較以確定是否下載所述應(yīng)用文件中的特定應(yīng)用文件。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其中所述客戶端應(yīng)用被編程為在下載所述存儲(chǔ)的文件的更加新的版本之后從所述計(jì)算設(shè)備移除所述存儲(chǔ)的文件的先前版本。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述應(yīng)用市場服務(wù)器系統(tǒng)被編程為將所述應(yīng)用二進(jìn)制文件限制到定義的最大大小,并且其中所述應(yīng)用文件中的所述特定應(yīng)用文件的聚合大小超過所述應(yīng)用二進(jìn)制文件的所述最大大小。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述客戶端應(yīng)用被編程為通過分析在所述計(jì)算設(shè)備上的對(duì)應(yīng)于所述軟件應(yīng)用的目錄中存儲(chǔ)的文件來標(biāo)識(shí)所述存儲(chǔ)的文件。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述應(yīng)用市場服務(wù)器系統(tǒng)被編程為基于分析所述應(yīng)用文件的部分來生成針對(duì)所述應(yīng)用文件的文件簽名,并且其中所述客戶端應(yīng)用被編程為在發(fā)起所述應(yīng)用文件的安裝之前驗(yàn)證所述文件簽名。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述應(yīng)用市場服務(wù)器系統(tǒng)被編程為向所述客戶端應(yīng)用發(fā)送關(guān)于由所述應(yīng)用市場服務(wù)器系統(tǒng)分析的所述應(yīng)用文件的所述部分的信息,并且所述客戶端應(yīng)用被編程為通過基于分析由所述市場服務(wù)器系統(tǒng)分析的所述應(yīng)用文件的所述部分來生成針對(duì)所述應(yīng)用文件的驗(yàn)證簽名、并且將所述文件簽名與所述驗(yàn)證簽名比較以驗(yàn)證所述文件簽名。
9.根據(jù)權(quán)利要求1所述的系統(tǒng),其中與所述軟件應(yīng)用相關(guān)聯(lián)的所述補(bǔ)充文件的特定版本以相應(yīng)設(shè)備組為目標(biāo),并且其中所述應(yīng)用市場服務(wù)器系統(tǒng)被編程為基于所述計(jì)算設(shè)備屬于的特定設(shè)備組的確定來標(biāo)識(shí)用于向所述計(jì)算設(shè)備分發(fā)的所述補(bǔ)充文件的所述特定版本。
10.根據(jù)權(quán)利要求1所述的系統(tǒng),其中與所述應(yīng)用文件有關(guān)的所述信息包括針對(duì)所述應(yīng)用文件中的特定應(yīng)用文件的大小信息,并且其中所述客戶端應(yīng)用被編程為顯示所述應(yīng)用文件中的所述特定應(yīng)用文件的所述下載的進(jìn)度的指示符,所述指示符示出下載的量與所述應(yīng)用文件中的所述特定應(yīng)用文件的聚合大小的比例。
11.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述客戶端應(yīng)用被編程為在所述應(yīng)用文件中的所述特定應(yīng)用文件的所述下載完成之后發(fā)起所述應(yīng)用文件的安裝。
12.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述應(yīng)用市場服務(wù)器系統(tǒng)被編程為響應(yīng)于來自以下各項(xiàng)的驗(yàn)證的請(qǐng)求來下載文件:(4應(yīng)用市場應(yīng)用,其對(duì)應(yīng)于所述應(yīng)用市場服務(wù)器系統(tǒng)并且被編程為從所述應(yīng)用市場服務(wù)器系統(tǒng)下載針對(duì)多個(gè)不同應(yīng)用的文件;以及03)特定應(yīng)用,其請(qǐng)求所述下載的文件以用于其自己使用。
13.一種用于確定用于向計(jì)算設(shè)備下載的應(yīng)用文件的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括: 利用在計(jì)算設(shè)備上執(zhí)行的應(yīng)用市場客戶端接收對(duì)于獲得或更新與多個(gè)應(yīng)用文件相關(guān)聯(lián)并且被配置為在所述計(jì)算設(shè)備上執(zhí)行的軟件應(yīng)用的請(qǐng)求; 利用所述應(yīng)用市場客戶端并且從遠(yuǎn)離所述計(jì)算設(shè)備操作的應(yīng)用市場服務(wù)器系統(tǒng)接收與所述應(yīng)用文件有關(guān)的信息; 標(biāo)識(shí)在所述計(jì)算設(shè)備上的對(duì)應(yīng)于所述應(yīng)用文件的存儲(chǔ)的文件; 基于標(biāo)識(shí)的所述存儲(chǔ)的文件以及與所述應(yīng)用文件有關(guān)的接收的所述信息來確定所述應(yīng)用文件中的要下載的特定應(yīng)用文件;以及 發(fā)起所述應(yīng)用文件中的確定的所述特定應(yīng)用文件的下載。
14.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括由所述應(yīng)用市場客戶端標(biāo)識(shí)故障以下載一個(gè)或多個(gè)文件,并且在所述一個(gè)或多個(gè)文件被下載之后由被編程為使用所述一個(gè)或多個(gè)文件的應(yīng)用開始從所述市場服務(wù)器系統(tǒng)下載所述一個(gè)或多個(gè)文件。
15.根據(jù)權(quán)利要求13所述的方法,其中與所述應(yīng)用文件有關(guān)的所述信息包括針對(duì)所述應(yīng)用文件中的特定應(yīng)用文件的版本信息,并且其中所述方法進(jìn)一步包括將所述版本信息與所述存儲(chǔ)的文件的相應(yīng)版本比較以確定是否下載所述應(yīng)用文件中的特定應(yīng)用文件。
16.根據(jù)權(quán)利要求15所述的方法,進(jìn)一步包括在下載所述存儲(chǔ)的文件的更加新的版本之后從所述計(jì)算設(shè)備自動(dòng)移除所述存儲(chǔ)的文件的先前版本。
17.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括通過分析在所述計(jì)算設(shè)備上的對(duì)應(yīng)于所述軟件應(yīng)用的目錄中存儲(chǔ)的文件來標(biāo)識(shí)所述存儲(chǔ)的文件。
18.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括在發(fā)起所述應(yīng)用文件的安裝之前,通過分析所述應(yīng)用文件的部分來驗(yàn)證由所述應(yīng)用市場服務(wù)器系統(tǒng)針對(duì)所述應(yīng)用文件生成的文件簽名。
19.根據(jù)權(quán)利要求18所述的方法,進(jìn)一步包括: 從所述應(yīng)用市場服務(wù)器系統(tǒng)接收關(guān)于由所述應(yīng)用市場服務(wù)器系統(tǒng)分析的所述應(yīng)用文件的所述部分的信息,以及 通過基于分析由所述市場服務(wù)器系統(tǒng)分析的所述應(yīng)用文件的所述部分來生成針對(duì)所述應(yīng)用文件的驗(yàn)證簽名、并且將所述文件簽名與所述驗(yàn)證簽名比較來驗(yàn)證所述文件簽名。
20.根據(jù)權(quán)利要求13所述的方法,其中與所述應(yīng)用文件有關(guān)的所述信息包括針對(duì)所述應(yīng)用文件中的每個(gè)應(yīng)用文件的大小信息,并且所述方法進(jìn)一步包括顯示所述應(yīng)用文件中的所述特定應(yīng)用文件的所述下載的進(jìn)度的指示符,所述指示符示出下載的量與所述應(yīng)用文件中的所述特定應(yīng)用文件的聚合大小的比例。
21.一種用于確定用于從應(yīng)用市場向計(jì)算設(shè)備下載的應(yīng)用的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括: 從多個(gè)客戶端計(jì)算設(shè)備中的一個(gè)客戶端計(jì)算設(shè)備的應(yīng)用市場客戶端接收對(duì)應(yīng)于對(duì)于獲得或更新針對(duì)所述一個(gè)客戶端計(jì)算設(shè)備的軟件應(yīng)用的請(qǐng)求的通信; 響應(yīng)于所述通信,標(biāo)識(shí)應(yīng)用文件,所述應(yīng)用文件包括對(duì)應(yīng)于所述軟件應(yīng)用的應(yīng)用二進(jìn)制文件和與所述軟件應(yīng)用相關(guān)聯(lián)的一個(gè)或多個(gè)補(bǔ)充文件,以及響應(yīng)于接收所述通信向所述應(yīng)用市場客戶端發(fā)送與所述應(yīng)用文件有關(guān)的信息,以及 響應(yīng)于在所述計(jì)算設(shè)備上的對(duì)應(yīng)于所述應(yīng)用文件的存儲(chǔ)的文件的標(biāo)識(shí),發(fā)起所述應(yīng)用文件中的特定應(yīng)用文件的下載,并且基于標(biāo)識(shí)的所述存儲(chǔ)的文件以及與從所述應(yīng)用市場服務(wù)器系統(tǒng)發(fā)送的所述應(yīng)用文件有關(guān)的所述信息來確定所述應(yīng)用文件中的所述特定應(yīng)用文件。
22.根據(jù)權(quán)利要求21所述的方法,進(jìn)一步包括將所述應(yīng)用二進(jìn)制文件限制到定義的最大大小,其中所述應(yīng)用文件中的所述特定應(yīng)用文件的聚合大小超過所述應(yīng)用二進(jìn)制文件的所述最大大小。
23.根據(jù)權(quán)利要求21所述的方法,其中與所述軟件應(yīng)用相關(guān)聯(lián)的所述補(bǔ)充文件的特定版本以相應(yīng)的設(shè)備組為目標(biāo),并且所述方法進(jìn)一步包括基于所述計(jì)算設(shè)備屬于的特定設(shè)備組的確定來標(biāo)識(shí)用于向所述計(jì)算設(shè)備分發(fā)的所述補(bǔ)充文件的所述特定版本。
【文檔編號(hào)】G06F9/445GK104321746SQ201380021593
【公開日】2015年1月28日 申請(qǐng)日期:2013年3月1日 優(yōu)先權(quán)日:2012年3月2日
【發(fā)明者】I·費(fèi)曼, F·柯克帕特里克 申請(qǐng)人:谷歌公司