用于智能移动应用更新的方法和系统的制作方法

文档序号:10612586阅读:522来源:国知局
用于智能移动应用更新的方法和系统的制作方法
【专利摘要】本发明涉及一种用于智能移动应用更新的方法和系统。在一种用于管理移动软件应用的更新的方法中,计算机接收关于移动计算设备和所述移动计算设备上的移动软件应用的信息,其中关于所述移动计算设备的信息包括以下项中的至少一个或多个:所述移动计算设备的位置、网络连接类型、与所述移动计算设备关联的安全位、以及与至少一个移动软件应用关联的校验和。所述计算机判定所述移动软件应用是否与计算设备上的已存储的移动软件应用相匹配。响应于判定所述移动软件应用与所述计算设备上的所述已存储的移动软件应用不匹配,所述计算机确定用于安排对所述移动计算设备上的所述移动软件应用的更新的更新策略。
【专利说明】用于智能移动应用更新的方法和系统
[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