中文字幕无码日韩视频无码三区

用于智能移動應用更新的方法和系統的制作方法

文檔序號:10612586閱讀(du):587來源:國知局
用于智能移動應用更新的方法和系統的制作方法
【專利摘要】本發明涉及一種用于智能移動應用更新的方法和系統。在一種用于管理移動軟件應用的更新的方法中,計算機接收關于移動計算設備和所述移動計算設備上的移動軟件應用的信息,其中關于所述移動計算設備的信息包括以下項中的至少一個或多個:所述移動計算設備的位置、網絡連接類型、與所述移動計算設備關聯的安全位、以及與至少一個移動軟件應用關聯的校驗和。所述計算機判定所述移動軟件應用是否與計算設備上的已存儲的移動軟件應用相匹配。響應于判定所述移動軟件應用與所述計算設備上的所述已存儲的移動軟件應用不匹配,所述計算機確定用于安排對所述移動計算設備上的所述移動軟件應用的更新的更新策略。
【專利說明】用于智能移動應用更新的方法和系統
[0001]
【發明人】關于現有公開內容的聲明
[0002]本發明的各個方面已在產品IBM fforklight Foundat1n V6.3中公開,該產品在2014年10月I日公之于眾。由本申請的獨立
【發明人】或本申請的共同
【發明人】或者代表他們在35U.S.C.102(b)(1) (A)下提交以下公開內容作為現有公開內容。提供以下文件以便支持在2014年10月I日公開的內容:
[0003](i)IBM fforklight Foundat1n V6.3輸送平臺以便開發和管理特定于設備的豐富移動體驗,IBM美國軟件公告214-368,2014年10月I日。
技術領域
[0004]本發明一般地涉及軟件應用領域,更具體地說,涉及管理移動軟件應用的更新。
【背景技術】
[0005]移動計算設備的用戶安裝移動軟件應用以使移動設備能夠執行各種任務。移動應用最初面向總體生產率和信息檢索(例如,電子郵件、日歷、天氣等),但已擴展到其它類別,例如娛樂和移動商務(例如,游戲、銀行業、在線購物等)。移動應用可用于用戶通過應用分發平臺(例如由移動操作系統的所有者操作的應用商店)購物。移動應用還可用于用戶通過內容傳送網絡(CDN)進行安裝。CDN是大型分布式內容服務器系統,這些內容服務器跨因特網部署在多個數據中心中,以便以高可用性和高性能使內容用于最終用戶,而內容提供者支付費用以便將內容提供給最終用戶。
[0006]為了移動計算設備從應用商店或CDN安裝和/或更新移動應用,移動計算設備連接到因特網(例如,移動寬帶、無線個人區域網絡(WPAN)、網絡共享、對等(P2P)等)。移動寬帶使用便攜式調制解調器,通過移動電話塔向移動計算設備和其它數字設備提供無線因特網。WPAN是用于互連集中在個人工作空間上的設備的網絡(當在網絡的范圍內時),其中連接是無線的。網絡共享通過WPAN、微微網或物理連接將一個設備連接到另一個,并且允許共享因特網連接(例如,移動熱點)。微微網是小型網絡,其由多達八個采用主-從關系的活躍設備組成。P2P是這樣的網絡:其中互連節點共享資源,這些資源針對網絡上的其它節點同時用作客戶機和服務器。在建立到因特網的連接之后,移動軟件應用下載到移動計算設備。

【發明內容】

[0007]本發明的各方面公開一種用于管理移動軟件應用的更新的方法、計算機程序產品和系統。所述方法包括一個或多個計算機處理器接收關于移動計算設備和所述移動計算設備上的移動軟件應用的信息,其中關于所述移動計算設備的信息包括以下項中的至少一個或多個:所述移動計算設備的位置、網絡連接類型、與所述移動計算設備關聯的安全位、以及與至少一個移動軟件應用關聯的校驗和。所述方法還包括一個或多個計算機處理器判定所述移動軟件應用是否與計算設備上的已存儲的移動軟件應用相匹配。響應于判定所述移動軟件應用與所述計算設備上的已存儲的移動軟件應用不匹配,所述方法還包括由一個或多個計算機處理器確定用于安排對所述移動計算設備上的所述移動軟件應用的更新的更新策略。
【附圖說明】
[0008]圖1是示出根據本發明的一個實施例的移動計算環境的功能框圖;
[0009]圖2是示出根據本發明的一個實施例的位于圖1的移動計算環境中的服務器上的智能移動應用更新程序的操作步驟的流程圖,該智能移動應用更新程序用于管理移動計算設備上的應用軟件的更新;
[0010]圖3是示出根據本發明的一個實施例的位于圖1的移動計算環境中的移動計算設備上的智能移動應用安裝客戶機程序的操作步驟的流程圖,該智能移動應用安裝客戶機程序用于更新移動計算設備上的應用軟件;
[0011]圖4是根據本發明的一個實施例的執行智能移動應用更新程序的服務器的組件的框圖。
【具體實施方式】
[0012]移動軟件應用的開發人員通常更新移動軟件應用的先前版本以便引入改進和/或實現錯誤修復。當移動計算設備通過因特網連接到應用分發平臺時,已更新版本替換移動計算設備上的移動軟件應用的先前版本。取決于移動軟件應用的分發,應用分發平臺可能被大量請求淹沒,因此導致不能有效地處理更新。本發明的實施例認識到,有效和智能地管理移動應用軟件的已更新版本的部署將限制淹沒應用分發平臺的可能性,并且及時地向用戶提供已更新版本。本發明的實施例針對策略的制定和分派來評估用戶的移動計算設備的參數,以便安排將在何時、何地應用更新以及應用什么更新。當發生影響策略的變化時,本發明的附加實施例更新移動應用并調整安排。
[0013]現在將參考附圖詳細描述本發明。圖1是示出根據本發明的一個實施例的移動計算環境(總體指定為100)的功能框圖。圖1僅提供一個實施例的例示,并且不暗示有關其中可以實現不同實施例的環境的任何限制。
[0014]在示出的實施例中,移動計算環境100包括通過網絡130互連的移動計算設備110、對等移動計算設備140和服務器120。移動計算環境100可以包括未示出的其它計算設備、移動計算設備、服務器、計算機、存儲設備或其它設備。
[0015]移動計算設備110和對等移動計算設備140可以是膝上型計算機、上網本計算機、平板計算機、超級本計算機、個人數字助理(PDA)、智能電話、蜂窩電話、手機平板、電子閱讀設備、媒體播放器或移動游戲設備。一般而言,移動計算設備110和對等移動計算設備140可以是電子設備或計算系統,它們能夠通過網絡130發送和接收數據并且與服務器120或另一移動計算設備通信(例如,移動計算設備110與對等移動計算設備140通信,以及對等移動計算設備140與移動計算設備110通信)。移動計算設備110包括移動應用112和智能移動應用安裝客戶機程序300。對等移動計算設備140包括對等版本更新應用142。
[0016]移動應用112和對等版本更新應用142分別表示移動計算設備110和對等移動計算設備140上的已安裝的應用和關聯的應用軟件。服務器版本更新應用122表示存儲在服務器120上用于移動計算設備(例如移動計算設備110和對等移動計算設備140)的可安裝應用和關聯的應用軟件。在一個實施例中,移動應用112、對等版本更新應用142和服務器版本更新應用122是相同版本的應用軟件。在示出的實施例中,移動應用112是與對等版本更新應用142和服務器版本更新應用122版本不同的應用軟件。例如,移動應用112是工廠安裝的初始應用軟件,并且對等版本更新應用142和服務器版本更新應用122是相同更新版本的工廠安裝的應用軟件。在某一其它實施例中,移動應用112、對等版本更新應用142和服務器版本更新應用122可以全部是不同版本的應用軟件。例如,移動應用112是工廠安裝的初始應用軟件,對等版本更新應用142是實現關鍵軟件修復的更新版本,并且服務器版本更新應用112是弓I入改進和關鍵軟件修復的另一更新版本。
[0017]服務器120可以是管理服務器、Web服務器,或者是能夠接收和發送數據的任何其它電子設備或計算系統。在某些實施例中,服務器120可以是膝上型計算機、平板計算機、上網本計算機、個人計算機(PC)、臺式計算機、個人數字助理(PDA)、智能電話,或者能夠通過網絡130與移動計算設備110和對等移動計算設備140通信的任何可編程設備。在其它實施例中,服務器120可以表示例如在云計算環境中,使用多個計算機作為服務器系統的服務器計算系統。服務器120包含服務器版本更新應用122、更新策略124以及智能移動應用更新程序 200。
[0018]更新策略124是由智能移動應用更新程序200創建的文件,其用于建立參數以便管理移動計算設備110上的移動應用(例如移動應用112)的更新。在示出的實施例中,更新策略124位于服務器120上。在另一實施例中,更新策略124可以位于通過網絡130連接的另一服務器或計算設備(未示出)上,只要更新策略124可由智能移動應用更新程序200和智能移動應用安裝客戶機程序300訪問。
[0019]根據本發明的實施例,網絡130可以是局域網(LAN)、諸如因特網之類的廣域網(WAN)、無線局域網(WLAN)、其任意組合,或者將支持移動計算設備110、對等移動計算設備140、服務器120與其它計算設備和服務器(未示出)之間的通信的連接和協議的任意組合。網絡130可以包括有線、無線或光纖連接。網絡130還可以包括移動寬帶。移動寬帶指無線因特網訪問,經由移動網絡運營商(例如,無線服務提供商、無線運營商、移動網絡運營商等)借助便攜式調制解調器,將無線因特網訪問通過移動電話塔提供給計算設備、移動計算設備和其它數字設備。
[0020]智能移動應用更新程序200是這樣的軟件程序:當更新可用于移動計算設備(例如移動計算設備110和對等移動計算設備140)時,其管理用于移動應用軟件的更新。智能移動應用更新程序200確定何時安裝過時版本的應用軟件、要安裝的適當版本的應用軟件、用于從中獲得更新的位置,并且基于從智能移動應用安裝客戶機程序300接收的信息來安排更新的安裝并創建更新策略124 (例如,將所確定的信息嵌入更新策略124)。智能移動應用更新程序200然后為智能移動應用安裝客戶機程序300提供更新策略124。在示出的實施例中,智能移動應用更新程序200位于服務器120上。在某一其它實施例中,智能移動應用更新程序200可以位于通過網絡130連接的另一服務器或計算設備(未示出)上,只要智能移動應用更新程序200可由移動應用112、智能移動應用安裝客戶機程序300和對等移動計算設備140訪問。
[0021]智能移動應用安裝客戶機程序300是這樣的軟件程序:其基于更新策略124更新移動應用軟件,例如移動應用112。此外,智能移動應用安裝客戶機程序300向智能移動應用更新程序200提供有關移動計算設備110的信息,以便促進更新策略124的創建。在示出的實施例中,智能移動應用安裝客戶機程序300位于移動計算設備110上。在另一實施例中,智能移動應用安裝客戶機程序300還可以位于對等移動計算設備140上。在某一其它實施例中,智能移動應用安裝客戶機程序300可以位于通過網絡130連接的另一服務器或計算設備(未示出)上,只要智能移動應用安裝客戶機程序300可由移動應用112和智能移動應用更新程序200訪問。
[0022]圖2是示出根據本發明的一個實施例的智能移動應用更新程序200(其是用于管理移動計算設備上的應用軟件的更新的程序)的操作步驟的流程圖。在啟動智能移動應用更新程序200之前,移動計算設備110建立到網絡130的連接,并且此外,智能移動應用安裝客戶機程序300正在移動計算設備110上運行。移動計算設備110上的用戶然后啟動移動應用112,并且智能移動應用安裝客戶機程序300將關于移動計算設備110和移動應用112的信息發送到智能移動應用更新程序200。
[0023]在步驟202,智能移動應用更新程序200從智能移動應用安裝客戶機程序300接收信息并且啟動。來自智能移動應用安裝客戶機程序300的信息包括有關移動計算設備110和移動應用112的位置、校驗和、網絡類型和安全位狀態。在一個實施例中,智能移動應用更新程序200接收位置信息,作為由移動計算設備110中的全球定位系統(GPS)芯片提供的GPS坐標。在另一實施例中,智能移動應用更新程序200接收基于三角測量的移動計算設備110的適當位置。三角測量是以下過程:通過測量移動計算設備110與兩個或三個不同移動電話塔之間的已接收時間延遲(相當于距離)的徑向距離或方向,確定移動計算設備110的位置。智能移動應用更新程序200然后將移動計算設備110的大概位置計算為在得到的圓的交叉點處。在某一其它實施例中,智能移動應用更新程序200通過借助微微網連接接收唯一標識符來接收大概位置,該唯一標識符然后通過因特網標識并且包括對應的位置信息。
[0024]智能移動應用更新程序200接收與移動應用112關聯的校驗和。校驗和是針對數據塊(通常為單個文件,例如移動應用112)運行算法(稱為加密散列函數)的結果。得到的校驗和是針對錯誤校驗目的生成的少量數據(即,比較兩個文件的校驗和將檢驗兩個文件是否相同)。智能移動應用更新程序200接收與移動計算設備110所連接到的網絡130(例如,WPAN、3G、4G等)關聯的網絡類型。此外,智能移動應用更新程序200接收有關移動計算設備110上的安全特性集的信息(例如,設置為真或假的安全位)。
[0025]在決策204,智能移動應用更新程序200判定移動應用112的關聯校驗和是否與服務器版本更新應用122的關聯校驗和相同。智能移動應用更新程序200將所接收的移動應用112的關聯校驗和與所存儲的服務器版本更新應用122的關聯校驗和進行比較。如果智能移動應用更新程序200判定校驗和相同(決策204,“是”分支),則智能移動應用更新程序200完成。如果智能移動應用更新程序200判定校驗和不同(決策204,“否”分支),則智能移動應用更新程序200確定更新策略124的更新包(步驟206),并且啟動更新策略124的創建。例如,移動應用112是工廠安裝的應用軟件,而服務器版本更新應用122是包括更新和關鍵修復的新版本。移動應用112的校驗和與服務器版本更新應用122的校驗和不同指示了移動應用112不是應用軟件的最新版本。在另一實施例中,智能移動應用更新程序200可以通過以下方式判定移動應用112是否與服務器版本更新應用122相同:S卩,比較與這兩個軟件應用關聯的版本號。在某一其它實施例中,智能移動應用更新程序200可以通過比較發行日期來判定移動應用112是否與服務器版本更新應用122相同。
[0026]在步驟206,智能移動應用更新程序200確定更新策略124的軟件應用更新包。智能移動應用更新程序200基于移動計算設備110與網絡130之間的連接的數據速率來確定軟件應用更新包(例如,軟件版本)。例如,當移動計算設備110通過數據速率為9.6Kbps到237Kbps的二代(2G)連接,在移動寬帶上被連接到網絡130時,智能移動應用更新程序200可以選擇僅包括關鍵修復的精簡軟件應用更新包。但是,當移動計算設備110通過56Mbps到128Mbps之間的數據速率被連接到WPAN時,智能移動應用更新程序200可以選擇包括改進和關鍵修復的完整軟件應用更新包。
[0027]在步驟208,智能移動應用更新程序200確定處理更新策略124的更新請求的CDN的最近地理數據中心。在一個實施例中,智能移動應用更新程序200確定CDN的最近地理數據中心。例如,移動計算設備110位于美國波士頓,其CDN位于紐約、費城、華盛頓特區和亞特蘭大。因此,智能移動應用更新程序200選擇紐約⑶N,因為紐約在地理上距離波士頓最近。在另一實施例中,智能移動應用更新程序200可以確定能夠處理更新請求的CDN的最近地理位置。例如,存在兩個基于三角位置關系與移動計算設備110的距離幾乎相同的CDN位置。智能移動應用更新程序200判定這兩個CDN中的哪一個具有更大的可用帶寬來處理請求。在某一其它實施例中,智能移動應用更新程序200從可用CDN位置列表中接收用戶的CDN選擇。例如,雖然移動計算設備110可以位于紐約,但是被指定給公司的優選CDN位于新澤西。智能移動應用更新程序200向移動計算設備110的用戶顯示可用CDN列表。用戶然后可以選擇位于新澤西的被指定給該公司的CDN,而不是位于紐約的較近CDN位置。
[0028]在步驟210,智能移動應用更新程序200確定更新策略124的對等選項。智能移動應用更新程序200檢查在步驟202接收的安全位的狀態。在一個實施例中,安全位被設定為true(真),并且智能移動應用更新程序200將更新策略124設定為不搜索可用的對等連接(例如,針對移動計算設備110啟用安全位,并且不允許對等連接)。在另一實施例中,安全位被設定為false(假),并且智能移動應用更新程序200將更新策略124設定為搜索可用的對等連接(例如,未針對移動計算設備110啟用安全位,并且允許對等連接)。智能移動應用更新程序200在更新策略124內設定所確定的對等選項。
[0029]在步驟212,智能移動應用更新程序200確定更新策略124的延遲和機會窗口。在一個實施例中,智能移動應用更新程序200可以確定作為所計算的隨機時間延遲的延遲,該延遲通過平衡和優化工作負荷以確保諸如移動計算設備110之類的移動計算設備及時接收更新,促進一段時間內針對CDN位置的請求分配(例如,當大量請求在類似的時間范圍內發生時,使得一種類型的連接不會接收導致CDN超載的相同延遲)。例如,將延遲確定為I小時,并且當前時間為I點鐘。該延遲將下載的開始時間更改為2點鐘(S卩,與下載關聯的開始時間被偏移所確定的延遲量)。智能移動應用更新程序200可以確定作為引入以下項的計算的延遲:這些項包括隨機數、用戶數、服務器版本更新應用122的大小、協議開銷、以及CDN位置的帶寬。帶寬是以每秒位數的公制倍數表示的可用或已用信息量的位速率。帶寬定義數字通信系統中通信路徑的凈位速率、信道容量或最大吞吐量(即,通過通信路徑的成功數據傳輸的平均速率)。協議開銷指應用所發送的元數據和網絡路由信息,其使用可用帶寬的一部分,但是對消息內容沒有任何幫助。在另一實施例中,智能移動應用更新程序200可以基于其它因素(例如,優先級表、更新的關鍵性等)確定同樣分配請求的延遲。此外,智能移動應用更新程序200確定下載發生的機會窗口(例如,其中基于文件大小、連接的數據速率,下載持續時間而言,下載應該能夠完成的時間量)。智能移動應用更新程序200利用機會窗口幫助將更新分發到諸如移動計算設備11之類等待更新的移動計算設備(例如,通過隊列提供持續移動的手段)。例如,通過使用文件大小和數據速率連接的速度,智能移動應用更新程序200可以確定更新完成的整體時間。智能移動應用更新程序200可以使用該整體時間作為添加到延遲的偏移來幫助請求的分配。在另一實例中,盡管用戶保持同一連接類型,但是連接的數據速率可能變化(例如,減速或加速),這影響下載時間并且給其它移動計算設備下載更新的能力帶來風險。機會窗口所提供的時間限制提供了一種延遲一個下載并開始另一下載以繼續隊列內的移動的機制。
[0030]在步驟214,智能移動應用更新程序200通過網絡130將更新策略124發送到智能移動應用安裝客戶機程序300。更新策略124包括軟件應用更新包(例如,將移動應用112更新到諸如服務器版本更新應用122的軟件版本)、CDN位置以及延遲。智能移動應用安裝客戶機程序300在接收到更新策略124時啟動。
[0031]圖3是示出根據本發明的一個實施例的智能移動應用安裝客戶機程序300(其是用于更新移動計算設備上的應用軟件的程序)的操作步驟的流程圖。
[0032]在步驟302,智能移動應用安裝客戶機程序300從智能移動應用更新程序200接收更新策略124。智能移動應用更新程序200接收推送通知(S卩,服務器發起的傳輸)內的更新策略124。智能移動應用安裝客戶機程序300然后基于更新策略124內的信息啟動對移動應用112的更新的安裝。
[0033]在決策304,智能移動應用安裝客戶機程序300判定對等連接是否可用。當安全位被設定為false(假)時,智能移動應用安裝客戶機程序300判定對等連接是否可用(例如,更新策略124包括通過對等連接發生更新的選項(步驟210))。當節點在不使用中央管理系統的情況下與其它節點共享資源(例如,處理能力、磁盤存儲、網絡帶寬和文件)時,對等連接發生。智能移動應用安裝客戶機程序300搜索可用對等連接來查找在更新策略124中標識的軟件應用更新包。例如,移動計算設備110允許對等連接。智能移動應用安裝客戶機程序300搜索對等連接,并且確定對等移動計算設備140是可用對等連接。智能移動應用安裝客戶機程序300進一步確定對等移動計算設備140,該移動計算設備140包括對等版本更新應用142(例如,在更新策略124內標注的軟件應用更新包)。
[0034]如果智能移動應用安裝客戶機程序300判定對等連接可用(決策304,“是”分支),則智能移動應用安裝客戶機程序300協商傳輸(步驟306)。如果智能移動應用安裝客戶機程序300判定對等連接不可用(決策304,“否”分支),則智能移動應用安裝客戶機程序300基于更新策略124設定觸發器(步驟308)。
[0035]在步驟306,智能移動應用安裝客戶機程序300協商對等版本更新應用142的傳輸。智能移動應用安裝客戶機程序300在網絡130上建立計算設備110與對等移動計算設備140之間的文件傳輸協議。一旦智能移動應用安裝客戶機程序300建立文件傳輸協議,智能移動應用安裝客戶機程序300便從對等移動計算設備140下載對移動應用112的更新(例如,對等版本更新應用142)(步驟312)。
[0036]在步驟308,智能移動應用安裝客戶機程序300基于更新策略124設定觸發器(例如,在更新策略124內設定的延遲)。觸發器是一個進程,該進程在事件發生時啟動動作(例如,當滿足延遲條件時,啟動更新的下載)。在一個實施例中,延遲是可協商的(例如,更新策略124指示不需要延遲),并且智能移動應用安裝客戶機程序300設定立即從CDN位置下載的觸發器。在另一實施例中,智能移動應用安裝客戶機程序300設定具有日期和時間規則的觸發器(例如,延遲不可協商)。智能移動應用安裝客戶機程序300設定指定日期和時間的觸發器以在CDN上分配負荷(S卩,一次僅允許設定數量的移動設備連接到CDN,以便減輕CDN的超載)。例如,智能移動應用安裝客戶機程序300設定類似于事件的觸發器(例如,今天下午5點),以便將服務器版本更新應用122下載到移動計算設備110。智能移動應用安裝客戶機程序300存儲更新策略124,直至滿足觸發器準則。
[0037]在決策310,智能移動應用安裝客戶機程序300判定是否滿足觸發器準則。智能移動應用安裝客戶機程序300利用移動計算設備110的功能(例如,日歷和時鐘)來判定是否滿足觸發器準則。如果智能移動應用安裝客戶機程序300判定滿足觸發器準則(決策310,“是”分支),則智能移動應用安裝客戶機程序300基于更新策略124開始服務器版本更新應用122的下載。如果智能移動應用安裝客戶機程序300判定不滿足觸發器準則(決策310,“否”分支),則智能移動應用安裝客戶機程序300返回以等待觸發器準則被滿足(決策310)。例如,觸發器是今天下午5點,當滿足今天的條件時,時鐘的實際時間是下午4點;因此,智能移動應用安裝客戶機程序300判定觸發器未被滿足,并且返回以等待在下午5點滿足觸發器準則。
[0038]在步驟312,智能移動應用安裝客戶機程序300下載對移動應用112的更新。在一個實施例中,智能移動應用安裝客戶機程序300開始新下載(例如,對移動應用112的更新首次可用并且連接到下載)。在另一實施例中,智能移動應用安裝客戶機程序300恢復之前的下載(例如,初始下載未完成,已存儲部分下載以便在另一時間繼續下載)。在一個實施例中,智能移動應用安裝客戶機程序300通過網絡130連接到CDN(例如,連接到在更新策略124中標識的CDN)。智能移動應用安裝客戶機程序300基于與CDN的連接的數據速率來下載服務器版本更新應用122。在另一實施例中,智能移動應用安裝客戶機程序300通過網絡130連接到對等移動計算設備140。智能移動應用安裝客戶機程序300下載對等版本更新應用142。在一個實施例中,智能移動應用安裝客戶機程序300在更新策略124有效(例如,未超過機會窗口)的同時繼續下載更新(例如,服務器版本更新應用122、對等版本更新應用142)。在另一實施例中,智能移動應用安裝客戶機程序300在智能移動應用安裝客戶機程序300成功地協商對更新策略124的延長(例如,延長機會窗口)之后繼續下載更新。
[0039]在決策314,智能移動應用安裝客戶機程序300判定下載是否完成。當智能移動應用安裝客戶機程序300開始服務器版本更新應用122的下載時,完成所需的時間(S卩,下載完成所需的時間)與涉及文件大小和數據連接速率的下載關聯。在一個實施例中,智能移動應用安裝客戶機程序300跟蹤下載的完成百分比。在另一實施例中,智能移動應用安裝客戶機程序300跟蹤完成下載所剩余的預估時間。在某一其它實施例中,智能移動應用安裝客戶機程序300跟蹤完成百分比和完成下載的剩余時間的組合。
[0040]如果智能移動應用安裝客戶機程序300判定下載完成(決策314,“是”分支),則智能移動應用安裝客戶機程序300完成(例如,移動計算設備110包括最近版本的應用軟件)。如果智能移動應用安裝客戶機程序300判定下載未完成(決策314,“否”分支),則智能移動應用安裝客戶機程序300判定網絡連接是否改變(決策316)。
[0041]在決策316,智能移動應用安裝客戶機程序300判定網絡連接是否改變。在一個實施例中,智能移動應用安裝客戶機程序300未檢測到網絡連接的變化。例如,移動計算設備110的用戶在家,并且移動計算設備110仍通過WPAN連接到網絡130。在另一實施例中,智能移動應用安裝客戶機程序300檢測到網絡連接的改變(例如、CDN位置更新、對等網絡更新、從CDN到對等的轉變、從對等到CDN的轉變、數據速率連接更新等)。如果智能移動應用安裝客戶機程序300判定網絡沒有改變(決策316,“否”分支),則智能移動應用安裝客戶機程序300判定機會窗口是否超過更新策略124(決策318)。在另一實例中,移動計算設備110的用戶正在駕駛汽車,并且移動計算設備110從4G電話塔轉移到3G電話塔(S卩,導致網絡連接改變)。如果智能移動應用安裝客戶機程序300判定網絡130確實改變(決策316,“是”分支),則智能移動應用安裝客戶機程序300存儲網絡130的連接變化之前下載的內容(步驟322)。
[0042]在決策318,智能移動應用安裝客戶機程序300判定機會窗口是否超過更新策略124。智能移動應用安裝客戶機程序300將所計算的機會窗口與實際下載時間進行比較(SP,判定下載是否在設定的時間內完成)。如果智能移動應用安裝客戶機程序300判定實際下載時間超過機會窗口(決策318,“是”分支),則智能移動應用安裝客戶機程序300判定機會窗口是否能夠被延長(決策320)。如果智能移動應用安裝客戶機程序300判定實際下載時間未超過機會窗口(決策318,“否”分支),則智能移動應用安裝客戶機程序300繼續服務器版本更新應用122或對等版本更新應用142的下載(步驟312)。
[0043]在決策320,智能移動應用安裝客戶機程序300判定機會窗口是否能夠被延長。智能移動應用安裝客戶機程序300執行與CDN、服務器120或對等移動計算設備140的握手。握手是在計算設備之間發生的自動協商進程,用于協商通信信道兩端針對信息傳輸(即,在設備之間發送和接收的一系列消息,從而檢驗連接、數據速率和針對通信協議達成一致的授權)均可接受的參數。如果智能移動應用安裝客戶機程序300判定機會窗口能夠被延長(決策320,“是”分支),則智能移動應用安裝客戶機程序300使用命令延長機會窗口(例如,在握手內協商),并且繼續下載對移動應用112的更新(步驟312)。例如,智能移動應用安裝客戶機程序300判定CDN可以處理請求(例如,CDN并非最大容量);因此,許可延長并且下載繼續。如果智能移動應用安裝客戶機程序300判定機會窗口不能被延長(決策320,“否”分支),則智能移動應用安裝客戶機程序300存儲已下載的內容(步驟322)。例如,智能移動應用安裝客戶機程序300確定對等移動計算設備140的資源不再可用,并且存儲內容,直至下載可以恢復時為止。
[0044]在步驟322,智能移動應用安裝客戶機程序300存儲已下載內容(S卩,服務器版本更新應用122的一部分)。智能移動應用安裝客戶機程序300存儲該內容,以便一旦能夠恢復下載,可以潛在地縮短剩余下載時間。在一個實施例中,智能移動應用安裝客戶機程序300存儲在與網絡130的連接發生變化之前已下載的內容。例如,在下載期間,與網絡130的連接丟失。智能移動應用安裝客戶機程序300存儲直至連接丟失點之前已下載的內容。當移動計算設備110重新建立與網絡130的連接時,之前已下載的數據部分仍在移動計算設備110上,在該點恢復下載,并且智能移動應用安裝客戶機程序300下載服務器版本更新應用122的剩余部分。在另一實施例中,智能移動應用安裝客戶機程序300存儲在超過更新策略124內設定的機會窗口之前已下載的內容。
[0045]在步驟324,智能移動應用安裝客戶機程序300將新信息發送到智能移動應用更新程序200以確定新的更新策略124。例如,由于網絡連接變化,智能移動應用安裝客戶機程序300重新發送智能移動應用更新程序200接收的3G的位置、校驗和、安全位狀態以及更新網絡類型(步驟202)。在智能移動應用更新程序200確定新的更新策略124之前,智能移動應用安裝客戶機程序300不會恢復。智能移動應用安裝客戶機程序300基于新的更新策略124繼續服務器版本更新應用122的下載。
[0046]圖4示出根據本發明的一個示例性實施例的作為服務器120的代表的服務器400的組件的框圖。需要理解,圖4僅提供一個實現的例示,并非暗示對其中可實現不同實施例的環境的限制。可以對所示的環境做出許多修改。
[0047]服務器400包括通信結構402,該結構提供計算機處理器(多個)404、存儲器406、永久存儲裝置408、通信單元410和輸入/輸出(I/O)接口(多個)412之間的通信。通信結構4002可以通過被設計為在處理器(例如微處理器、通信和網絡處理器等)、系統存儲器、外圍設備,以及系統內的其它任何硬件組件之間傳送數據和/或控制信息的任何體系架構實現。例如,通信結構402可以通過一個或多個總線實現。
[0048]存儲器406和永久存儲裝置408是計算機可讀存儲介質。在該實施例中,存儲器406包括隨機存取存儲器(RAM)414和高速緩沖存儲器416。一般而言,存儲器406可以包括任何適當的易失性或非易失性計算機可讀存儲介質。
[0049]移動應用112、服務器版本更新應用122、更新策略124、對等版本更新應用142、智能移動應用更新程序200以及智能移動應用安裝客戶機程序300被存儲在永久存儲裝置408中,以便由一個或多個相應計算機處理器404經由一個或多個存儲器406來執行和/或訪問。在該實施例中,永久存儲裝置408包括磁硬盤驅動器。作為磁硬盤驅動器的備選或補充,永久存儲裝置408可包括固態硬盤驅動器、半導體存儲器件、只讀存儲器(R0M)、可擦寫可編程只讀存儲器(EPROM)、閃存或其它任何能夠存儲程序指令或數字信息的計算機可讀存儲介質。
[0050]永久存儲裝置408使用的介質也可以是可移動的。例如,可以使用可移動硬盤驅動器作為永久存儲裝置408。其它例子包括插入驅動器以將信息傳輸到同樣作為永久存儲裝置408的一部分的另一計算機可讀存儲介質的光盤和磁盤、拇指驅動器以及智能卡。
[0051]在這些例子中,通信單元410提供與其它數據處理系統或設備的通信,其中包括企業網格的資源和客戶機設備。在這些例子中,通信單元410包括一個或多個網絡接口卡。通信單元410可以通過使用物理通信鏈路和無線通信鏈路中的任一者或全部兩者來提供通信。移動應用112、服務器版本更新應用122、更新策略124、對等版本更新應用142、智能移動應用更新程序200以及智能移動應用安裝客戶機程序300可以通過通信單元410被下載到永久存儲裝置408。
[0052]I/O接口(多個)412允許與可被連接到服務器400的其它設備執行數據的輸入和輸出。例如,I/O接口 412可以提供到諸如鍵盤、小鍵盤、觸摸屏和/或其它某種適當的輸入設備之類的外部設備418的連接。外部設備418還可以包括便攜式計算機可讀存儲介質,例如拇指驅動器、便攜式光盤或磁盤以及存儲卡。被用于實施本發明實施例的軟件和數據(例如,移動應用112、服務器版本更新應用122、更新策略124、對等版本更新應用142、智能移動應用更新程序200以及智能移動應用安裝客戶機程序300)能夠被存儲在這些便攜式計算機可讀存儲介質上,并且能夠經由I/O接口(多個)412被加載到永久存儲裝置408上。I/O接口(多個)412也可以連接到顯示器420。
[0053]顯示器420提供向用戶顯示數據的機構,其例如可以是計算機監視器。
[0054]此處描述的程序基于在本發明的特定實施例中實現它們所針對的應用而被識別。但是應該理解,此處任何特定的程序命名的使用只是為了方便,因此,本發明不應被限于僅在這些命名所標識和/或暗示的任何特定應用中使用。
[0055]本發明可以是系統、方法和/或計算機程序產品。計算機程序產品可以包括計算機可讀存儲介質,其上載有用于使處理器實現本發明的各個方面的計算機可讀程序指令。
[0056]計算機可讀存儲介質可以是可以保持和存儲由指令執行設備使用的指令的有形設備。計算機可讀存儲介質例如可以是一一但不限于一一電存儲設備、磁存儲設備、光存儲設備、電磁存儲設備、半導體存儲設備或者上述的任意合適的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、靜態隨機存取存儲器(SRAM)、便攜式壓縮盤只讀存儲器(CD-ROM)、數字多功能盤(DVD)、記憶棒、軟盤、機械編碼設備、例如其上存儲有指令的打孔卡或凹槽內凸起結構、以及上述的任意合適的組合。這里所使用的計算機可讀存儲介質不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸的電信號。
[0057]這里所描述的計算機可讀程序指令可以從計算機可讀存儲介質下載到各個計算/處理設備,或者通過網絡、例如因特網、局域網、廣域網和/或無線網下載到外部計算機或外部存儲設備。網絡可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機、網關計算機和/或邊緣服務器。每個計算/處理設備中的網絡適配卡或者網絡接口從網絡接收計算機可讀程序指令,并轉發該計算機可讀程序指令,以供存儲在各個計算/處理設備中的計算機可讀存儲介質中。
[0058]用于執行本發明操作的計算機程序指令可以是匯編指令、指令集架構(ISA)指令、機器指令、機器相關指令、微代碼、固件指令、狀態設置數據、或者以一種或多種編程語言的任意組合編寫的源代碼或目標代碼,所述編程語言包括面向對象的編程語言一諸如Smalltalk、C++等,以及常規的過程式編程語言一諸如“C”語言或類似的編程語言。計算機可讀程序指令可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括局域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。在一些實施例中,通過利用計算機可讀程序指令的狀態信息來個性化定制電子電路,例如可編程邏輯電路、現場可編程門陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執行計算機可讀程序指令,從而實現本發明的各個方面。
[0059]這里參照根據本發明實施例的方法、裝置(系統)和計算機程序產品的流程圖和/或框圖描述了本發明的各個方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機可讀程序指令實現。
[0060]這些計算機可讀程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這些指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。也可以把這些計算機可讀程序指令存儲在計算機可讀存儲介質中,這些指令使得計算機、可編程數據處理裝置和/或其他設備以特定方式工作,從而,存儲有指令的計算機可讀介質則包括一個制造品,其包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的各個方面的指令。
[0061]也可以把計算機可讀程序指令加載到計算機、其它可編程數據處理裝置、或其它設備上,使得在計算機、其它可編程數據處理裝置或其它設備上執行一系列操作步驟,以產生計算機實現的過程,從而使得在計算機、其它可編程數據處理裝置、或其它設備上執行的指令實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作。
[0062]附圖中的流程圖和框圖顯示了根據本發明的多個實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個連續的方框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或動作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
[0063]以上已經描述了本發明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離本發明的范圍和精神的情況下,對于本技術領域的普通技術人員來說許多修改和變化都是顯而易見的。本文中所用術語的選擇,旨在最好地解釋實施例的原理、實際應用或對市場中的技術的技術改進,或者使本技術領域的其它普通技術人員能理解本文披露的各實施例。
【主權項】
1.一種用于管理移動軟件應用的更新的方法,所述方法包括: 由一個或多個計算機處理器接收關于移動計算設備和所述移動計算設備上的移動軟件應用的信息,其中關于所述移動計算設備的信息包括以下項中的至少一個或多個:所述移動計算設備的位置、網絡連接類型、與所述移動計算設備關聯的安全位、以及與至少一個移動軟件應用關聯的校驗和; 由一個或多個計算機處理器判定所述移動軟件應用是否與計算設備上的已存儲的移動軟件應用相匹配;以及 響應于判定所述移動軟件應用與所述計算設備上的所述已存儲的移動軟件應用不匹配,由一個或多個計算機處理器確定用于安排對所述移動計算設備上的所述移動軟件應用的更新的更新策略。2.如權利要求1所述的方法,其中確定用于安排對所述移動計算設備上的所述移動軟件應用的更新的更新策略進一步包括: 由一個或多個計算機處理器確定軟件應用更新包; 由一個或多個計算機處理器確定用于從中接收所述軟件應用更新包的位置,其中用于從中接收所述軟件應用更新包的位置包括以下項中的一個或多個:內容傳送網絡位置和對等網絡選項; 由一個或多個計算機處理器確定提供與安排對所述移動計算設備上的所述移動軟件應用的更新相關聯的開始時間的延遲;以及 由一個或多個計算機處理器確定用于指示完成所述軟件應用更新包的下載的最大持續時間的機會窗口。3.如權利要求1所述的方法,還包括: 由一個或多個計算機處理器將所述更新策略發送到所述移動計算設備; 由一個或多個計算機處理器基于提供與所述更新策略相關聯的開始時間的延遲而設置觸發器; 由一個或多個計算機處理器確定所述觸發器出現; 由一個或多個計算機處理器啟動將所述軟件應用更新包下載到所述移動計算設備;以及 由一個或多個計算機處理器判定所啟動的下載是否完成。4.如權利要求3所述的方法,還包括: 響應于判定所啟動的下載未完成,由一個或多個計算機處理器判定所述移動計算設備的網絡連接是否改變; 響應于判定所述網絡連接改變,由一個或多個計算機處理器存儲與所啟動的下載的已完成部分相關聯的內容; 由一個或多個計算機處理器接收關于所述移動計算設備的已更新信息; 由一個或多個計算機處理器基于所接收的已更新信息,確定對所述更新策略的更新;以及 由一個或多個計算機處理器將所確定的對所述更新策略的更新發送到所述移動計算設備。5.如權利要求3所述的方法,還包括: 響應于判定所述下載未完成,由一個或多個計算機處理器判定所述移動計算設備的網絡連接是否改變;以及 響應于判定所述網絡連接未改變,由一個或多個計算機處理器判定是否超過指示完成所述軟件應用更新包的下載的最大持續時間的機會窗口。6.如權利要求5所述的方法,還包括: 響應于判定超過指示完成所述軟件應用更新包的下載的最大持續時間的機會窗口,由一個或多個計算機處理器判定是否延長所述機會窗口 ;以及 響應于判定延長所述機會窗口,由一個或多個計算機處理器將用于延長所述機會窗口的命令發送到所述移動計算設備。7.如權利要求6所述的方法,還包括: 響應于判定未延長所述機會窗口,由一個或多個計算機處理器存儲與所啟動的下載的已完成部分關聯的內容; 由一個或多個計算機處理器接收關于所述移動計算設備的已更新信息; 由一個或多個計算機處理器基于所接收的已更新信息,確定對所述更新策略的更新;以及 由一個或多個計算機處理器將所確定的對所述更新策略的更新發送到所述移動計算設備。8.—種用于管理移動軟件應用的更新的計算機系統,所述計算機系統包括: 一個或多個計算機處理器、一個或多個計算機可讀存儲介質,以及存儲在所述計算機可讀存儲介質上以便由所述一個或多個處理器中的至少一個執行的程序指令,所述程序指令包括: 用于接收關于移動計算設備和所述移動計算設備上的移動軟件應用的信息的程序指令,其中關于所述移動計算設備的信息包括以下項中的至少一個或多個:所述移動計算設備的位置、網絡連接類型、與所述移動計算設備關聯的安全位、以及與至少一個移動軟件應用關聯的fe驗和; 用于判定所述移動軟件應用是否與計算設備上的已存儲的移動軟件應用相匹配的程序指令;以及 用于響應于判定所述移動軟件應用與所述計算設備上的所述已存儲的移動軟件應用不匹配,確定用于安排對所述移動計算設備上的所述移動軟件應用的更新的更新策略的程序指令。9.如權利要求8所述的計算機系統,其中確定用于安排對所述移動計算設備上的所述移動軟件應用的更新的更新策略進一步包括存儲在所述計算機可讀存儲介質上以便由所述一個或多個處理器中的至少一個執行的程序指令,所述程序指令用于執行以下操作: 確定軟件應用更新包; 確定用于從中接收所述軟件應用更新包的位置,其中用于從中接收所述軟件應用更新包的位置包括以下項中的一個或多個:內容傳送網絡位置和對等網絡選項; 確定提供與安排對所述移動計算設備上的所述移動軟件應用的更新相關聯的開始時間的延遲;以及 確定用于指示完成所述軟件應用更新包的下載的最大持續時間的機會窗口。10.如權利要求8所述的計算機系統,還包括存儲在所述一個或多個計算機可讀存儲介質上以便由所述一個或多個處理器的至少一個執行的程序指令,所述程序指令用于執行以下操作: 將所述更新策略發送到所述移動計算設備; 基于提供與所述更新策略相關聯的開始時間的延遲而設置觸發器; 確定所述觸發器出現; 啟動將所述軟件應用更新包下載到所述移動計算設備;以及 判定所啟動的下載是否完成。11.如權利要求10所述的計算機系統,還包括存儲在所述一個或多個計算機可讀存儲介質上以便由所述一個或多個處理器的至少一個執行的程序指令,所述程序指令用于執行以下操作: 響應于判定所啟動的下載未完成,判定所述移動計算設備的網絡連接是否改變; 響應于判定所述網絡連接改變,存儲與所啟動的下載的已完成部分相關聯的內容; 接收關于所述移動計算設備的已更新信息; 基于所接收的已更新信息,確定對所述更新策略的更新;以及 將所確定的對所述更新策略的更新發送到所述移動計算設備。12.如權利要求10所述的計算機系統,還包括存儲在所述一個或多個計算機可讀存儲介質上以便由所述一個或多個處理器的至少一個執行的程序指令,所述程序指令用于執行以下操作: 響應于判定所述下載未完成,判定所述移動計算設備的網絡連接是否改變;以及響應于判定所述網絡連接未改變,判定是否超過指示完成所述軟件應用更新包的下載的最大持續時間的機會窗口。13.如權利要求12所述的計算機系統,還包括存儲在所述一個或多個計算機可讀存儲介質上以便由所述一個或多個處理器的至少一個執行的程序指令,所述程序指令用于執行以下操作: 響應于判定超過指示完成所述軟件應用更新包的下載的最大持續時間的機會窗口,判定是否延長所述機會窗口 ;以及 響應于判定延長所述機會窗口,將用于延長所述機會窗口的命令發送到所述移動計算設備。
【文檔編號】G06F9/44GK105975254SQ201610131646
【公開日】2016年9月28日
【申請日】2016年3月9日
【發明人】A·亞歷山德羅夫, G·達納克施魯爾, V·S·庫馬蘭
【申請人】國際商業機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1