CN100552629C - 实现基于数据兼容性的版本计划 - Google Patents

实现基于数据兼容性的版本计划 Download PDF

Info

Publication number
CN100552629C
CN100552629C CNB2005800495198A CN200580049519A CN100552629C CN 100552629 C CN100552629 C CN 100552629C CN B2005800495198 A CNB2005800495198 A CN B2005800495198A CN 200580049519 A CN200580049519 A CN 200580049519A CN 100552629 C CN100552629 C CN 100552629C
Authority
CN
China
Prior art keywords
application program
version
field
version number
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2005800495198A
Other languages
English (en)
Other versions
CN101167053A (zh
Inventor
柯蒂斯·韦瑟里
布莱恩·戈林
迈克尔·申菲尔德
迈克尔·卡瑟科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BlackBerry Ltd
Original Assignee
Research in Motion Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of CN101167053A publication Critical patent/CN101167053A/zh
Application granted granted Critical
Publication of CN100552629C publication Critical patent/CN100552629C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

一种由应用开发环境所执行的版本计划,使得终端设备的运行时间环境能够评价软件更新,以识别潜在的兼容性问题并且控制更新的安装。该版本计划包括针对应用程序的多个方面中每个方面的相应字段,并在发布初始应用程序加载时定义每个字段的初始值。针对影响应用程序的每次顺序软件更新,该方法包括识别应用程序中受软件更新影响的每个方面,以及使每个所识别方面的相应字段的值递增。版本号能够是D.M.F的形式,其中响应于涉及数据成分、消息成分以及特征的应用程序的改变而递增D、M和F。

Description

实现基于数据兼容性的版本计划
技术领域
本发明涉及无线通信设备,更具体地涉及一种用于实现针对无线通信设备上所安装的无线应用程序的更新、基于数据兼容性的版本计划的方法和系统。
背景技术
诸如移动电话、个人计算机以及具有无线通信能力的PDA(个人数字助理)、自动售货亭以及双路寻呼机之类的无线终端设备的数量和种类快速增长。运行于这些设备上的软件应用程序提高了这些设备的实用性。例如,移动电话可以包括检索城市的一定范围内的天气,或者PDA可以包括允许用户到杂货店购物的应用程序。这些软件应用程序利用与网络的连通性,以便向用户提供适时且有用的服务。
本领域公知的是,软件应用程序开发者频繁制造出软件的新和/或更新的版本。可以非常频繁地发布这种软件更新,例如用以解决之前所发布的软件中的缺陷的补丁的情况下。例如,可以每年或两年一次地发布主要更新,并经常提供新的功能以提高特定设备的实用性。
然而,虽然软件开发者可以很容易地开发并发布软件更新,但是对所有受影响设备的更新的实际实现非常复杂。例如,在无线网络中,连通性经常中断,因此在发布更新时,特定设备可能无法与网络相连。在这种情况下,需要一些手段来使得更新能够被下载并在随后的时间内安装。即使在完成上述过程时,一些设备仍缺乏资源(例如足够的存储器)来下载并成功地安装特定的更新。在其他示例中,应用程序更新可以要求在安装应用程序更新之前更新设备的控制器的软件。在其他示例中,必须下载一系列应用程序更新,并按特定顺序安装这些应用程序更新。因此,例如在安装用于校正包括新特征中不足的若干问题的服务补丁之前,必须安装提供了新特征的应用程序升级。
因此,仍然非常需要用于控制软件更新到无线终端的安装的方法和系统。
发明内容
因此,本发明的目的是提供一种用于控制软件更新到无线终端设备的安装的方法和系统。
因此,本发明的一个方面提供了一种控制软件更新在无线网络中的终端设备上的异步安装的方法。根据本发明,主持(hosting)终端设备的应用网关接收关于软件更新的更新通知消息。更新通知消息包括:软件标识符,用于唯一地识别受更新影响的应用程序;与软件更新相关联的版本号;以及终端设备可访问的数据网络上更新脚本的地址。更新脚本适用于在终端设备上安装软件更新。将更新通知消息记入更新注册表(registry),并将通知消息转发给终端设备。该通知消息包括软件标识符、版本号、以及更新脚本的地址,因此终端设备可以访问并执行该更新脚本,以安装软件更新。
本发明的另一个方面提供了一种控制软件更新在无线网络中的终端设备上的安装的方法。根据本发明,终端设备的运行时间环境接收包括关于可用软件更新的信息的更新-通知消息。该更新通知消息包括:软件标识符,用于唯一地识别受更新影响的应用程序;与软件更新相关联的版本号;以及终端设备可访问的数据网络上更新脚本的地址,该更新脚本适用于将软件更新安装到终端设备上。使用更新版本号来确定软件更新的兼容性。其后,通过使用地址来访问更新脚本,并执行该更新脚本以安装该软件更新。
本发明的又一方面提供了一种能够对影响安装在无线网络中的多个终端设备上的应用程序的软件更新进行受控分配的方法。根据本发明,定义了一种版本计划(version schema),该版本计划包括针对应用程序的多个方面中的每一方面的相应字段。在发布初始应用程序加载时,定义每个字段的初始值。针对影响应用程序的每个连续的软件更新,识别由软件更新所影响的应用程序的每一方面,并且使相应字段的值递增。
本发明的又一方面提供了一种能够对影响安装在无线网络中的多个终端设备上的应用程序的软件更新进行受控分配的系统。该系统包括与数据网络相连的计算设备,该数据网络用于与处于数据网络和无线网络之间的应用网关进行通信。该系统还包括在计算设备上运行的应用程序开发环境(ADE),以使应用程序能够被更新,该ADE包括版本号分配(versioning)模块,用于产生由表示应用程序的不同方面的多个字段所定义的版本号。该版本号分配模块包括:比较装置,用于将应用程序的更新版本与应用程序的先前版本进行比较,以确定对应用程序的不同方面做了哪些改变;递增装置,用于使版本号的字段响应于应用程序的不同方面的改变而递增;以及传送装置,用于将所更新的应用程序的版本号传送给应用网关。
本发明的又一方面提供了一种实现版本号分配计划的方法,该版本号分配计划用于对通过处于无线网络和数据网络之间的应用网关而被分配给无线网络中的多个无线设备的软件应用程序进行更新。该方法包括定义与应用程序的初始版本相对应的初始版本号的步骤,该版本号具有至少三个字段,定义了数据成分字段、消息成分字段、以及特征字段。该方法还包括:使数据成分字段响应于涉及数据成分的应用程序方面的更新而递增;使消息字段响应于涉及消息成分的应用程序的更新而递增;以及使特征字段响应于涉及特征的应用程序方面的更新而递增,由此产生作为更新与应用程序的先前版本的兼容性的指示的更新版本号。
附图说明
结合附图,从以下详细描述中,本发明的其他特征和优点将变得显而易见,在附图中:
图1是示意地示出了网络系统的方框图;
图2是示意性地示出了根据本发明的一个方面的应用程序开发环境中的组件和操作的方框图;
图3是示出了图2中的版本号分配模块的代表操作的流程图;
图4是示意性地示出了用于发布根据本发明的一个方面的软件升级的过程的消息流程图;
图5是示意性地示出了根据本发明的实施例的用于在终端设备上安装软件升级的消息流程图;以及
图6是示意性地示出了根据本发明的另一个实施例的用于在终端设备上安装软件升级的过程的消息流程图。
要注意的是,在全部附图中,相似特征由相似附图标记所标识。
具体实施方式
本发明提供了用于控制软件更新在无线终端设备上的分配和安装的方法和系统。下面参考图1到图6,仅作为示例对本发明的实施例进行描述。
参照图1,根据本发明的代表实施例的系统通常包括:应用网关2(AG),连接于无线网络4和例如因特网的数据网络6之间;以及具有简档注册表10的在线注册表8,简档注册表10针对每个订户终端设备包含用于识别相应的终端设备上所存储的软件应用程序的信息列表。该在线注册表还包含更新注册表12,更新注册表12包含用于识别任何可用应用程序更新的信息。
AG 2通常以本申请人的未决美国专利申请No 2004/0215700和2004/0220998(这两个申请在此一并作为参考)中所描述的方式来作用于调节与无线网络4相连的终端设备14a、14b、14c以及可通过数据网络6访问的数据服务之间的消息流。
在线注册表8可以与AG 2共同驻留(co-resident),或者可以位于远离AG的位置,并且可以由AG通过数据网络6访问。如上所述,在线注册表8包括简档注册表10和更新注册表12。简档注册表10包含针对多个终端设备中的每个设备的简档。每个简档至少包含唯一识别运行时间环境(RE)以及在相应的终端设备上所安装的每个应用程序的软件标识符(SW-ID)列表。还可以将终端设备上所安装的每个应用程序的相应的“当前”版本号存储在与相应的SW-ID相关联的在线注册表中,或者可以存储在终端设备中。针对每次软件更新,单独的脚本注册表40包含设计用于实现终端设备上的软件更新的一个或多个脚本。
通常,终端设备14a、14b、14c可以是包括无线启用便携式计算机/膝上型电脑14a、移动/蜂窝电话14b、以及具有无线通信能力的PDA14c、自动售货亭以及双向寻呼机的多种多样的软件控制的无线设备中的任意一种,但不局限于此。如图1中所示,这种设备通常包括:与用于无线通信的RF部分18相连的微处理器16、存储器20(其中的至少一部分通常为非易失性)、以及用户接口(UI)22,用户接口(UI)22包括显示器24以及一个或多个用户输入设备(UID)26,例如键盘、袖珍键盘、鼠标、拨轮、输入笔(stylus)、麦克风等。微处理器16在软件控制之下进行操作,以提供终端设备的功能,即,使一个或多个应用程序30能够在设备上运行。优选地,将该软件设计基于分层模型,其中RE 32在终端设备的应用软件30和原始机器语言34之间进行翻译,以控制该终端设备的硬件,并与数据服务进行通信。此分层软件模型及其操作方式从本申请人的未决美国专利申请No2004/0215700和2004/0220998中已知。RE还可以保持用于通过每个应用程序的软件ID以及当前版本号来识别终端设备上所安装的每个应用程序的终端设备注册表28(在图1中表示为“TD-REG”)。下面将详细介绍RE对终端设备的软件升级的异步分配和安装的使能操作。
如本申请人的未决美国专利申请No 2004/0215700和2004/0220998中所描述的,AG 2的操作使得在终端设备14a、14b、14c中所执行的软件应用程序能够与通过数据网络6所提供的数据服务(未示出)通信。例如,此操作可以包括访问并从与数据网络6相连的后端数据源(未示出)下载文件。如图1所示,并在下文更加详细所述,应用程序开发者(AD)36还可以通过数据网络6分配并支持其软件。例如,可以将可下载的应用软件(即安装脚本40和更新文件42)存储在可以由用户(直接或间接地)通过数据网络6所访问的应用程序开发者注册表38中。
应用程序开发环境
现在,参照图2,应用程序开发者使用在计算设备上运行的应用程序开发环境(ADE)50中的应用程序开发工具箱(ADT)52来以本领域中通常已知的方式对应用软件进行编码、测试以及调试。计算设备可以是与、或可与数据网络或其他网络工作站相连的个人计算机或膝上型电脑。相同的ADE 50还可以用于再次以本领域已知的方式来开发该应用程序的后续更新。根据本发明,ADE 50还包括版本号分配模块70,基于在编码、测试以及调试过程期间在应用程序源代码中的变化来分配版本号。版本号分配模块70还可以用于产生更新脚本,在终端设备上执行该更新脚本时,该更新脚本将下载并在终端设备上安装该更新。
例如,版本号分配模块70可以用于识别以下情况中的任何一种情况:
●诸如数据结构之类的现有数据成分中的改变,即通过增加或移除字段,或改变字段类型定义;全局变量定义或枚举的改变;
●现有消息的改变,即通过增加或移除字段,或改变字段类型定义;
●现有应用程序逻辑的改变;
●待添加到应用程序中的新的数据成分、消息、或应用程序逻辑
在这些示例中的每个示例中,由版本号分配模块70所检测到的改变或增加是相对于应用程序的“当前”版本(即,所安装的具有任何随后发布的更新的初始版本)的那些。可以理解的是,可以通过使用修订日志(log)54来对应用程序开发者36在编辑过程中的行为(例如键击)的实时跟踪来执行、通过将应用程序的“之前”和“之后”版本进行比较、或者通过用于将应用程序的更新版本与先前版本进行比较以确定做了哪些改变的任何其他装置来执行对改变的检测。在每种情况中,版本号分配模块70识别新的和/或修订的数据成分、消息、以及应用程序逻辑,然后将这些写成一个或多个更新文件58。然后,将这些更新文件保存到更新文件注册表42中,该更新文件注册表42优选地位于图1和图2中所描述的应用程序开发者注册表38内。
可选地,在如图2所示的实施例中,修订日志54通过AD工具箱52来跟踪对应用程序源代码所作的改变。然后,修订日志54将总的改变传给版本号分配模块70,以便计算版本号(如下面将要描述的)。修订日志54还可以将改变传送到更新脚本编辑器56。在这个实施例中,ADE 50还将从修订日志54所跟踪的改变中产生更新文件。因此,将被理解的是,版本号分配模块可以包含修订日志或等同的功能性,或者该修订日志可以是ADE内的单独模块。
此外,可以产生更新脚本60以控制终端设备下载并安装更新文件58,下面将对其进行更详细的描述。可以将更新脚本60保存到脚本注册表40中,脚本注册表40优选地位于如图1和图2中所描述的应用程序开发注册表(AD-REG)38内。
如果需要的话,可以提供更新脚本编辑器56(即,脚本编辑器模块),以使应用程序开发者能够手动编写更新脚本60,或检查并编辑自动产生的更新脚本。
可以方便地使用结构化语言(例如Java或XML)来开发更新脚本60,由此使终端设备能够在更新过程中通过数据网络6访问一个或多个后端数据源。这使得更新脚本60能够在执行期间访问并下载所需要的更新文件58。这有利于对更新的异步分配,因此更新脚本60可以在执行期间从后端数据源中“拉出(pull)”必要的更新文件58。
版本号分配计划
如图3中所描述的,版本号分配计划涉及版本号分配模块70,版本号分配模块70自动将相应的版本号分配给初始发布以及对应用程序的每次更新。在初始发布的情况下,可以使用任何期望的“初始”版本号。然而,在初始发布之后,给每次后续更新分配基于由该更新所做的改变的类型而自动产生的版本号。这种版本号分配计划具有多个优点。例如,因为每个版本号都是由版本号分配模块所分配的,从而保持了版本号之间的一致性。例如,这意味着终端设备的RE可以使用更新的版本号来确定是否必须先安装任何其他的更新。另一个优点是:终端设备的RE可以在尝试安装更新之前评价该更新的版本号以检测潜在的兼容性问题。
这两个功能都是通过将版本号格式化为多个字段来启用的,每个字段表示应用程序相应的不同方面。例如,将版本号分配模块70设计为检测现有数据成分、消息、或逻辑中的改变,以及由修订日志54随意跟踪的新数据成分、消息、或逻辑的增加。原则上,这些元素中的每个都可以由版本号中的相应字段来表示。然而,实际上已经发现,可以使用如下面表1中所描述的形式“数据.消息.特征”的三字段模式得到满意的性能。
表1
  字段   描述
  数据   由应用程序和/或RE对存储在终端设备上的现有数据的改变。例如,这可以包括:数据成分中的改变(例如,增加或移除数据字段,或改变字段类型定义);永久的全局变量;或枚举。
  消息   由应用程序所使用的现有消息中的改变。例如,这可以包括消息成分中的改变(例如,增加或移除字段、改变字段类型定义、或改变映射关系)。
  特征   应用程序中的特征的增加。例如,这可以包括应用程序逻辑、屏幕(screen)和/或全局的增加或改变;新消息的增加;和/或数据成分或字段的增加
对于此计划,可以针对应用程序的初始发布给版本号的每个字段分配初始值(例如,D=1、M=1、F=0)。其后,针对每次更新发布,版本号分配模块70通过使可应用字段的值递增来自动产生针对更新的相应的版本号。
例如,如上所示,假设所发布的应用程序具有三位数的版本号“1.1.0”。在初始发布之后,应用程序开发者产生应用程序更新,该更新更改了现有数据字段,并添加了新的应用程序逻辑。这些改变将在更新的版本号中通过数据和特征字段的递增来表现。因此,第一更新的版本号将是2.1.1。在第一更新的发布之后,版本号(2.1.1)变成应用程序的“当前”版本号,将其与接下来所发布的应用程序更新进行比较。因此,例如,假设更改了现有消息格式的第二应用程序更新。此改变将在第二更新版本号中通过消息字段的递增表现出来,因此第二更新的版本号将是2.2.1。
可以理解的是,针对任意数量的更新都可以继续这种模式,其中的每次更新都可以影响应用程序的任何一个或多个方面。还可以理解的是,可以通过提供四个、五个或任意更多数量的字段来扩展版本号模式,以提供更精细的粒度(finer granularity)。例如,特征字段可以由分别指示新数据、消息、或应用程序逻辑的增加的字段(或“子字段”)集合来代替。在另一个示例中,可以给版本号添加第四字段,以指示是否必须在应用程序更新的安装之前更新RE。在本示例中,版本号将是D.M.F.R的形式,其中D、M、F以及R是表示数据、消息、特征以及运行时间环境的正整数值。虽然优选地遵循将软件版本号表示为由句点隔开的数位(digit)形式的惯例,应理解的是,版本号不必包括为了将数位隔开的句点。换言之,可以使用非常规的数位分隔符,诸如冒号、斜线、或连字符,或完全不使用分隔符。实际上,应理解的是,可以使用连续字符的任意集合(例如字母、或数字与字母的组合)来使用本发明的版本号分配计划。然而,优选地将由句点所隔开的数位的版本号表示成被广泛接受的软件版本的适当符号。
在图3中以流程图的形式描述了实现这种版本号分配计划的方法。在这个优选实施例中,由修订日志54来跟踪使用应用程序开发工具箱52对无线应用程序所作的改变。版本号分配模块70通过询问修订日志54(以初始发布询问72)开始,以确定对应用程序的改变实际上是否为先前版本的修订版本,或者是否该应用程序的初始发布。如果关于是否为初始发布的答案是肯定的,则初始发布分配框74分配D=1、M=1、以及F=0,然后将这三个字段传给版本号输出端90,然后版本号输出端90以D.M.F的形式构成版本号,即1.1.0。在后续更新中,通过版本号分配模块70递增版本号。如图3所示,版本号分配模块包括递增装置,用于使版本号中的字段响应于应用程序的不同方面的改变而递增。数据成分字段D响应于涉及现有数据成分的应用程序方面的改变而递增。消息成分字段M响应于涉及现有消息成分的应用程序方面的改变而递增。特征字段F响应于涉及特征的应用程序方面的改变(包括新数据成分、新消息成分、新的或更改的逻辑,这些都没有引入与先前版本的任何不兼容)而递增。
如图3所示,版本号分配模块通过使相应的D、M和F字段递增来更新版本号。在后续更新中,对初始发布询问72的答案将是否定的,并且版本号分配模块70将询问现有数据成分是否已经改变(以询问76),如果是,则D递增1(在递增装置78处)。然后,版本号分配模块70询问现有消息成分是否改变(以询问80),如果是,则M递增1(在递增装置82处)。然后版本号分配模块70询问是否存在新的数据成分、新消息成分或新的或已改变的逻辑/特征(以询问84),如果是,则F递增1(在递增装置86处)。然后,将D、M和F的值传给版本号输出端90,版本号输出端90以形式“D.M.F”构成版本号。应注意的是,询问应用程序的各个方面的顺序(因此,以这样的顺序递增字段)可以不同于D接着M接着F。
在下面表2中列出了应用程序更新的一些示例,表2示出了每次顺序更新与先前版本的兼容性以及三字段版本号到所谓的“Wiclet”或无线成分应用程序的分配:
图2
  应用程序更新的特性   兼容性   Wiclet版本
  全新的无线成分应用程序的创建   第一版本   1.1.0
  增加3个新的屏幕   与1.1.0兼容   1.1.1
  删除1个数据成分   与1.1.1不兼容   2.1.0
  增加1个数据成分以及1个消息成分   与2.1.0不兼容   3.2.0
  对预先存在的屏幕上的打字错误的校正   与3.2.0兼容   3.2.1
还可以理解的是,本发明并不局限于应用程序本身。例如,同样地可以将这里所描述的版本号模式和更新方法应用于RE本身,由此能够对RE进行受控更新。
异步软件分配
参照图4,当应用程序开发者(AD)36发布软件版本(初始软件加载或更新之一)时,版本号分配模块分配版本号,并将更新脚本和文件存储到应用程序开发者注册表38中。然后,AD将更新通知消息发送给应用网关(AG)2。更新通知消息优选地包括:软件标识符(SW-ID),用于唯一地识别该应用程序、版本号、以及到脚本注册表40(AD注册表38内)中所存储的更新脚本的链接(例如URL)。在优选实施例中,通过数据网络将版本号传送到AG。换言之,数据网络(例如因特网)是用于将更新应用程序的版本号传送给应用网关的装置,虽然也可以使用其他装置。当AG 2从AD接收到更新通知消息时,AG 2通过将软件ID、版本号以及脚本URL存储到更新注册表12(包含于在线注册表8内)中来记录该更新。一旦AG 2记录了该更新,则可以使用多种方式来实现对用户的终端设备的异步分配。下面参考图5和图6对两种代表性的分配场景进行描述。
图5示出了例如由AG 2响应于从AD接收到更新通知消息所发起的异步分配场景。在这种情况下,AG 2使用软件ID(例如包含在更新通知中)来搜索简档注册表10(包含于在线注册表8中)。该搜索返回用于识别已经在其上安装了应用程序的所有终端设备/无线设备的信息(例如设备ID)。然后,AG 2可以产生通知消息并将该通知消息发送给所识别的终端设备中的每个设备。例如,该通知消息可以包含软件ID、更新的版本号、以及到应用程序开发者注册表(AD-REG)38中的脚本部分40(或脚本注册表)中所存储的更新脚本的链接(例如URL)。
在接收到通知消息时,运行时间环境(RE)可以从消息中提取软件ID和版本号,并将此信息用于确定是否能够将更新安全地安装到终端设备上。这种评价可以采取以下兼容性检查的形式:
●将“新”版本号与终端设备注册表(TD-REG)28中所保存的当前版本号进行比较,以识别该更新改变了应用程序中的哪些方面。例如,该功能可以通过对新的以及当前版本号的逐字段减法来实现的。例如,假设当前版本号为“2.2.1”以及通知消息中所包含的新版本号为“2.3.2”。从新版本号中逐字段减去当前版本号得到“0.1.1”,这指示了该更新包括:没有改变现有的数据成分;改变至少一个现有消息;以及增加了至少一个新特征。
●确定是否必须在通知消息中所识别的“当前”更新之前安装任何中间更新。这可以通过使用上面所计算的减法结果来进行。具体地,如果减法结果中的任意字段都具有大于“1”的值,则存在必须在“当前”升级之前安装的至少一个升级。
通常,新特征的增加不会产生任何兼容性问题。然而,对现有数据成分和消息的改变可以具有兼容性问题,因为存在保存于存储器中的用户数据可能与修订数据和/或消息定义不兼容的可能性。在这种情况下,对更新的安装将需要对所保存数据的变换,并且执行这种变换的能力可以由终端设备的硬件性能所限制。此外,数据变换具有一定的风险:一些数据可能恶化或丢失,因此用户更愿意不安装更新,即使所需要的变换功能在终端设备的能力以内。
因此,如果RE确定了更新影响了现有数据成分和/或现有消息,则RE可以向用户提供警告消息,以指示该更新可用,但是其安装可能产生数据的丢失或恶化。然后,用户可以选择是否安装该更新。
当(或者如果)用户选择安装更新,或者如果RE确定了不存在兼容性问题(即更新只增加新的特征),则RE可以通过打开更新通知消息中所包含的链接(URL)来发起对该更新的安装,由此访问并从应用程序开发者注册表(AD-REG)38中下载更新脚本。在成功地下载了更新脚本之后,RE可以开始该脚本,然后该脚本控制更新文件从应用程序开发者注册表38的下载和安装。
在成功地安装了更新之后,RE使用在更新通知消息中所接收到的更新版本号来更新终端设备注册表中所存储的应用程序的“当前”版本号,并向AG发送更新完成消息。在接收到更新完成消息时,AG使用新的版本号来更新设备简档,由此指示已经将该软件更新成功地安装到终端设备上。
对图5中所描述的场景的限制是AG 2通过向安装了受影响的软件的每个终端设备发送通知来发起更新分配场景(例如响应于来自AD的更新通知消息的接收)。这可以导致通知消息不符合要求地洪泛到网络中,从而加重无线网络带宽的负担。此外,当AG发送通知时,一些终端设备可以不被连接,因此“断开的”终端设备可能错过更新。这些问题可以通过下面参考图6所描述的异步分配场景来克服。
在图6所示的分配场景中,异步分配由终端设备所触发。在所示的示例中,触发事件是终端设备何时登录到AG 2,虽然也可以使用其他事件。例如,RE可以向AG 2发送消息以根据预定进度检查更新,或者检查何时在终端设备上发起应用程序。无论如何,AG 2通过访问终端设备的简档来响应终端设备,以识别终端设备上所安装的每个应用程序、以及当前版本号。然后,将该信息用于搜索更新注册表12以识别影响终端设备的任何已记录的更新,以及相应的更新版本号。然后,当前以及更新版本号之间的比较使得AG 2能够确定是否存在尚未安装在终端设备中的任何更新。
然后,针对每个未安装的更新,AG 2按照一定格式形成用于转发给终端设备的适当的更新通知消息。终端设备用于检查更新通知消息并安装更新的后续处理跟在上面参考图5所描述的处理之后,即,终端设备检查兼容性,然后通过打开链接(URL)以便从AD-REG 38下载脚本来安装该更新。脚本在终端设备上的执行使能了AD-REG 38中所存储的更新文件的访问和下载。当完成更新时,终端设备通过将软件ID和版本号传送给AG来发信号通知AG 2的更新完成。然后,AG通过将软件ID和版本号传送给简档注册表10来更新简档注册表10中的简档。
因此,总而言之,应用程序开发环境(ADE)的版本号分配模块(VM)将无线成分应用程序的更新版本与先前版本进行比较以辨别两个连续版本之间的改变。换言之,VM检查或“扫描”在绑定(bundling)期间所更新的应用程序。因此,版本号分配模块智能地辨认出所作的改变,并且基于涉及数据、消息和特征兼容性的预定“兼容性规则”来升级版本号。例如,版本号分配模块可以确定数据是否需要移动数据或者该消息是否不再兼容。
在优选实施例中,版本号具有由句点所隔开的三个或更多数字(或数位)。第一个数表示对导致永久性数据的不兼容性的数据模型的更新。第二个数表示对消息模型的更新。如果第二个数增大,则无线成分应用程序的版本与先前版本不兼容。第三个数表示包括新数据成分、新消息成分或新特征的更新,这些不会导致与先前版本的不兼容。
在版本号分配模块基于兼容性规则更新了版本之后,如参考图4所描述的,发布“Wiclet”(无线成分应用程序)以通知应用网关(AG)。在接收到更新wiclet时,AG检查消息兼容性以辨别是否需要将当前未决的消息移植成(变换成)新的消息格式。AG还将取消对该无线成分应用程序的订阅。然后,运行时间环境(RE)将使用新的更新无线成分应用程序来更新设备上的元数据。RE检查永久性数据的版本兼容性,并将永久性数据移植/变换成新的数据格式。在数据移植/变换之后,处理在升级期间到达的任何输入消息。
上述本发明的实施例仅旨在示例性。因此,本发明的范围旨在仅受所附权利要求的范围的限制。

Claims (21)

1.一种能够对影响在无线网络中的多个终端设备上安装的应用程序的软件更新进行受控分配的方法,所述方法包括以下步骤:
定义包括与应用程序的多个方面中每个方面相关联的相应字段的版本计划;
当发布初始应用程序加载时,定义每个字段的初始值;以及
针对影响应用程序的每次顺序软件更新:
确定应用程序中受软件更新影响的每个方面;以及
使与应用程序中受所述软件更新影响的每个方面相关联的相应字段的值递增。
2.如权利要求1所述的方法,其中,所述版本计划包括与应用程序的数据成分相对应的至少一个“数据”字段,以及如果所述软件更新改变了应用程序中任何现有数据成分,则使“数据”字段中的数值递增。
3.如权利要求2所述的方法,其中,所述数据字段的初始值是“1”。
4.如权利要求1所述的方法,其中,所述版本计划包括与应用程序所使用的消息相对应的至少一个“消息”字段,以及其中,如果所述软件更新改变了应用程序所使用的任何现有消息,则使所述“消息”字段的数值递增。
5.如权利要求4所述的方法,其中,所述消息字段的初始值为“1”。
6.如权利要求1所述的方法,其中,所述版本计划包括与应用程序的功能特征相对应的至少一个“特征”字段,以及如果所述软件更新给所述应用程序添加了新数据成分、新消息以及新应用程序逻辑中的任何一种或更多,则使所述“特征”字段的数值递增。
7.如权利要求6所述的方法,其中,所述特征字段的初始值为“0”。
8.一种用于能够对影响在无线网络中的多个终端设备上所安装的应用程序的软件更新进行受控分配的系统,所述系统包括:
计算设备,与数据网络相连,用于与处于数据网络和无线网络之间的应用网关进行通信;
应用程序开发环境ADE,运行在所述计算机设备上,用于使应用程序能够被更新,所述ADE包括用于产生由表示应用程序的不同方面的多个字段所定义的版本号的版本号分配模块,所述版本号分配模块包括:
比较装置,用于将应用程序的更新版本与应用程序的先前版本进行比较,以确定对应用程序的不同方面做了哪些改变;
递增装置,用于响应于应用程序的不同方面的改变而使版本号中的字段递增;以及
传送装置,用于将更新应用程序的版本号传送给所述应用网关。
9.如权利要求8所述的系统,其中,将所述版本号定义为包括表示数据、消息以及特征的改变的字段。
10.如权利要求8所述的系统,其中,将所述版本号定义为D.M.F形式,其中,D表示涉及数据的应用程序方面的改变,M表示涉及消息的应用程序方面的改变,以及F表示涉及特征的应用程序方面的改变。
11.如权利要求8所述的系统,其中,所述版本号分配模块针对应用程序的初始版本将初始版本号定义为1.1.0,然后在检测到涉及数据的应用程序方面的改变时使第一数位递增1,在检测到涉及消息的应用程序方面的改变时使第二数位递增1,以及在检测到涉及应用程序特征的应用程序方面的改变时使第三数位递增1。
12.如权利要求8所述的系统,其中,所述版本号分配模块针对应用程序的初始版本将初始版本号定义为1.1.0,然后在检测到涉及现有数据成分的应用程序方面的改变时使第一数位递增1,在检测到涉及现有消息的应用程序方面的改变时使第二数位递增1,以及在检测到涉及现有或新应用程序逻辑、新数据成分、或新消息成分的应用程序方面的改变时使第三数位递增1。
13.如权利要求8所述的系统,还包括应用程序开发注册表(AD-REG),用于存储接收自所述应用程序开发环境并由所述述应用程序开发环境产生的更新脚本和更新文件,所述应用程序开发环境用于更新多个终端设备上的软件。
14.如权利要求8所述的系统,其中,用于将应用程序的更新版本与应用程序的先前版本进行比较的比较装置包括修订日志,所述修订日志用于跟踪在应用程序开发环境内对所述应用程序所作的改变。
15.一种用于实现版本号分配计划的方法,所述版本号分配计划针对要通过处于无线网络和数据网络之间的应用网关分配给无线网络中的多个无线设备的软件应用的更新,所述方法包括以下步骤:
定义与应用程序的初始版本相对应的初始版本号,所述版本号具有定义了数据成分字段、消息成分字段以及特征字段的至少三个字段;
使得数据成分字段中的值响应于涉及数据成分的应用程序方面的更新而递增;
使得消息成分字段中的值响应于涉及消息成分的应用程序方面的更新而递增;以及
使得特征字段中的值响应于涉及特征的应用程序方面的更新而递增,由此产生用于识别所述应用程序的更新版本与先前版本的兼容性的版本号。
16.如权利要求15所述的方法,还包括从应用程序开发环境向所述应用网关通知更新版本号的步骤。
17.如权利要求16所述的方法,还包括从应用程序开发环境向终端设备通知更新版本号的步骤,以使所述终端设备能够检查与更新应用程序的兼容性以及检测到不兼容性的位置,以便通过下载并执行用于访问和下载更新文件的脚本来安装所述更新。
18.如权利要求15所述的方法,其中,将所述初始版本号初始化为1.1.0,以及使所述数据成分、消息成分以及特征字段分别响应于分别涉及现有数据成分、现有消息成分、以及特征的应用程序方面的改变而递增1,其中涉及特征的方面包括新数据成分的增加、新消息成分的增加、新逻辑的增加以及与先前版本兼容的现有逻辑的改变。
19.如权利要求15所述的方法,其中,所述版本号还包括由第四数位所占据的第四字段,所述第四数位响应于应用程序的第四方面的改变而递增。
20.如权利要求15所述的方法,其中,所述特征字段响应于涉及特征的应用程序方面的更新而递增的步骤包括使所述特征字段响应于新逻辑、新数据成分、新消息成分的增加或与应用程序的先前版本兼容的现有逻辑的改变而递增。
21.一种用于实现版本号分配计划的系统,所述版本号分配计划针对要通过处于无线网络和数据网络之间的应用网关分配给无线网络中的多个无线设备的软件应用的更新,所述系统包括:
定义与应用程序的初始版本相对应的初始版本号的装置,所述版本号具有定义了数据成分字段、消息成分字段以及特征字段的至少三个字段;
使得数据成分字段中的值响应于涉及数据成分的应用程序方面的更新而递增的装置;
使得消息成分字段中的值响应于涉及消息成分的应用程序方面的更新而递增的装置;以及
使得特征字段中的值响应于涉及特征的应用程序方面的更新而递增的装置,由此产生用于识别所述应用程序的更新版本与先前版本的兼容性的版本号。
CNB2005800495198A 2005-04-18 2005-09-06 实现基于数据兼容性的版本计划 Active CN100552629C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US67209405P 2005-04-18 2005-04-18
US60/672,094 2005-04-18

Publications (2)

Publication Number Publication Date
CN101167053A CN101167053A (zh) 2008-04-23
CN100552629C true CN100552629C (zh) 2009-10-21

Family

ID=37114649

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800495198A Active CN100552629C (zh) 2005-04-18 2005-09-06 实现基于数据兼容性的版本计划

Country Status (5)

Country Link
US (2) US7698702B2 (zh)
EP (1) EP1872215B1 (zh)
CN (1) CN100552629C (zh)
CA (1) CA2601937C (zh)
WO (1) WO2006110979A1 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195595A1 (en) * 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
EP1293981A1 (en) 2001-09-18 2003-03-19 Deutsche Thomson-Brandt Gmbh Method for processing information parts of recorded data
WO2004015576A1 (en) 2002-08-09 2004-02-19 Visto Corporation System and method for preventing access to data on a compromised remote device
DE10335989B4 (de) * 2003-08-01 2019-07-11 Kw-Software Gmbh Online-Änderungen von CIL-Code-Programmen für die Industrieautomatisierung
US8001082B1 (en) 2004-10-28 2011-08-16 Good Technology, Inc. System and method of data security in synchronizing data with a wireless device
JP4764056B2 (ja) * 2005-04-14 2011-08-31 キヤノン株式会社 画像処理装置、制御プログラムの更新方法、およびプログラム
CA2577244A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited Method and system for controlling software version updates
US7970386B2 (en) 2005-06-03 2011-06-28 Good Technology, Inc. System and method for monitoring and maintaining a wireless device
US20070104186A1 (en) * 2005-11-04 2007-05-10 Bea Systems, Inc. System and method for a gatekeeper in a communications network
CN101346634B (zh) * 2005-11-04 2012-10-24 甲骨文国际公司 用于通信网络中的网守的系统和方法
KR100755697B1 (ko) * 2005-11-09 2007-09-05 삼성전자주식회사 소프트웨어 설치 방법, 장치, 및 시스템
US20080005732A1 (en) * 2006-05-11 2008-01-03 Coon Robert F Method and System for Integrating Software Update Services with Software Applications
US8171466B2 (en) * 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US8219697B2 (en) 2006-05-17 2012-07-10 Oracle International Corporation Diameter protocol and SH interface support for SIP server architecture
US20080126385A1 (en) * 2006-09-19 2008-05-29 Microsoft Corporation Intelligent batching of electronic data interchange messages
US20080071887A1 (en) * 2006-09-19 2008-03-20 Microsoft Corporation Intelligent translation of electronic data interchange documents to extensible markup language representations
US20080071806A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Difference analysis for electronic data interchange (edi) data dictionary
US8108767B2 (en) * 2006-09-20 2012-01-31 Microsoft Corporation Electronic data interchange transaction set definition based instance editing
US20080126386A1 (en) * 2006-09-20 2008-05-29 Microsoft Corporation Translation of electronic data interchange messages to extensible markup language representation(s)
US8161078B2 (en) 2006-09-20 2012-04-17 Microsoft Corporation Electronic data interchange (EDI) data dictionary management and versioning system
US8276121B2 (en) 2007-06-19 2012-09-25 Microsoft Corporation Selection of versioned resource among multiple compatible versions
US8819655B1 (en) * 2007-09-17 2014-08-26 Symantec Corporation Systems and methods for computer program update protection
US20090282396A1 (en) * 2008-05-07 2009-11-12 Boyer John M Preserving a state of an application during update
US20100131940A1 (en) * 2008-11-26 2010-05-27 Microsoft Corporation Cloud based source code version control
US8627284B2 (en) 2009-06-19 2014-01-07 Microsoft Corporation Managed system extensibility
US20140033123A1 (en) * 2009-07-30 2014-01-30 Adobe Systems, Inc. User interface and method for comparing a local version of a profile to an online update
US8522227B2 (en) * 2009-08-24 2013-08-27 Microsoft Corporation Runtime activation and version selection
US9298445B1 (en) * 2009-09-04 2016-03-29 Symantec Corporation Systems and methods for correlating software inventory information with delivered software
CN102238017B (zh) * 2010-05-07 2016-08-03 腾讯科技(深圳)有限公司 实现本地软件更新提醒的方法及系统
US8930499B2 (en) * 2010-07-09 2015-01-06 International Business Machines Corporation Data replication between software versions
CN102082694A (zh) * 2011-03-04 2011-06-01 宇龙计算机通信科技(深圳)有限公司 一种应用评价方法及应用服务器
US8713560B2 (en) * 2011-12-22 2014-04-29 Sap Ag Compatibility check
CN102419712A (zh) * 2011-12-28 2012-04-18 北京华环电子股份有限公司 一种用户端软件升级的方法及装置
CN102622255A (zh) * 2012-03-27 2012-08-01 杭州电子科技大学 路灯控制系统中软件版本升级方法
US9262149B2 (en) * 2012-04-12 2016-02-16 International Business Machines Corporation Managing incrementally applied system updates
US9189220B2 (en) * 2012-07-02 2015-11-17 Amazon Technologies, Inc. Evaluating application compatibility
CN104038520B (zh) * 2013-03-05 2017-11-10 北京畅游天下网络技术有限公司 一种多版本分布式资源管理方法和系统
US10140109B2 (en) * 2014-02-25 2018-11-27 Ford Global Technologies, Llc Silent in-vehicle software updates
US10282186B2 (en) * 2014-06-13 2019-05-07 Blackberry Limited Managing software suite component versions
US10015236B2 (en) * 2015-01-30 2018-07-03 Ricoh Company, Ltd. Cloud application activation and update service
CN107977223B (zh) * 2017-11-20 2020-12-04 杭州迪普科技股份有限公司 一种配置兼容性检查方法及装置
CN109189783B (zh) * 2018-08-03 2023-10-03 北京涛思数据科技有限公司 一种时序数据库表结构改变处理方法
US11132185B2 (en) 2018-08-07 2021-09-28 Microsoft Technology Licensing, Llc Embedding of multiple versions in monolithic applications during compilation
CN114556290A (zh) * 2019-08-16 2022-05-27 盖璞股份有限公司 用于部署企业软件更新的系统和方法
US11210083B1 (en) * 2020-10-15 2021-12-28 WhiteSource Ltd. System and method for safe updating of open source libraries
US20230102816A1 (en) * 2021-09-30 2023-03-30 Vmware, Inc. Automatic updating of application functionality

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345288B1 (en) 1989-08-31 2002-02-05 Onename Corporation Computer-based communication system and method using metadata defining a control-structure
US5404488A (en) 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
BR9402027A (pt) 1993-05-28 1994-12-13 Xerox Corp Processo para gerenciar uma configuração e assegurar compatibilidade entre componentes num sistema de computação, e, processo para eliminar incompatibilidades entre software residente e software de migração num sistema de computador automatizado
US6519767B1 (en) * 1995-06-07 2003-02-11 Microsoft Corporation Compiler and method for automatically building version compatible object applications
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6016107A (en) * 1997-03-07 2000-01-18 Motorola, Inc. Reliably updating an information service message
US7080371B1 (en) * 1998-03-03 2006-07-18 Siebel Systems, Inc. Method, system, apparatus and program product for distribution and instantiation of software upgrades
US6052531A (en) 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6167407A (en) 1998-06-03 2000-12-26 Symantec Corporation Backtracked incremental updating
US6868425B1 (en) * 1999-03-05 2005-03-15 Microsoft Corporation Versions and workspaces in an object repository
US6567380B1 (en) * 1999-06-30 2003-05-20 Cisco Technology, Inc. Technique for selective routing updates
US6460052B1 (en) * 1999-08-20 2002-10-01 Oracle Corporation Method and system for performing fine grain versioning
US6560604B1 (en) 2000-03-10 2003-05-06 Aether Systems, Inc. System, method, and apparatus for automatically and dynamically updating options, features, and/or services available to a client device
US6820088B1 (en) * 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
AU2001266245A1 (en) * 2000-05-31 2001-12-11 Adc Telecommunications Israel Ltd. Managing compatibility of software in distributed systems
US20040068721A1 (en) * 2000-11-17 2004-04-08 O'neill Patrick Network for updating firmware and / or software in wireless communication devices
US7076496B1 (en) * 2001-02-23 2006-07-11 3Com Corporation Method and system for server based software product release version tracking
US6971093B1 (en) * 2001-05-14 2005-11-29 Cisco Technology, Inc. Techniques for maintaining compatibility of a software core module and an interacting module
US20040010456A1 (en) * 2002-07-09 2004-01-15 Hoang Khoi Nhu Incrementally updated electronic catalog with localized distribution
JP3952893B2 (ja) 2002-07-30 2007-08-01 株式会社日立製作所 ネットワーク機器およびプログラム自動更新方式
US7496647B2 (en) * 2002-12-11 2009-02-24 Broadcom Corporation Personal inter-home media exchange network
US20040117785A1 (en) 2002-12-13 2004-06-17 Samsung Electronics Co., Ltd. Component download manager for a wireless mobile station and method of operation
US7562357B2 (en) * 2004-03-08 2009-07-14 Microsoft Corporation Relational database schema version management
KR100617793B1 (ko) * 2004-06-24 2006-08-28 삼성전자주식회사 통합 차이파일을 이용한 휴대용 단말기의 소프트웨어 버전업그레이드 방법
US7590981B2 (en) * 2004-10-12 2009-09-15 Microsoft Corporation Update package for offline synchronization of software updates
CA2577244A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited Method and system for controlling software version updates

Also Published As

Publication number Publication date
CA2601937C (en) 2013-01-22
US8555272B2 (en) 2013-10-08
US7698702B2 (en) 2010-04-13
EP1872215A4 (en) 2008-05-21
US20100175059A1 (en) 2010-07-08
CN101167053A (zh) 2008-04-23
EP1872215B1 (en) 2018-05-09
EP1872215A1 (en) 2008-01-02
WO2006110979A1 (en) 2006-10-26
US20060236317A1 (en) 2006-10-19
CA2601937A1 (en) 2006-10-26

Similar Documents

Publication Publication Date Title
CN100552629C (zh) 实现基于数据兼容性的版本计划
CN101040552B (zh) 控制软件版本更新的方法和系统
CN102782650B (zh) 用于管理分布式环境中系统管理代理的配置的方法与系统
CN102147747B (zh) 增强的升级路径的系统和方法
US20080005747A1 (en) System and method for object state management
EP1872230B1 (en) Centralized memory management in wireless terminal devices
CN105577475A (zh) 自动化性能测试系统及方法
CN102546907A (zh) 手机应用软件自动安装/更新的方法
CN103645923A (zh) 一种插件安装方法及系统
WO2008069431A1 (en) Download server and method for installing and updating application program using partitioning of shared library
CN100596139C (zh) 使用元数据定义映射来构建组件应用程序的系统和方法
CN113885920A (zh) 机器学习模型的热更新方法、装置、电子设备及存储介质
CN106681759A (zh) 软件更新的方法及移动终端
CN105511914A (zh) 应用更新方法、装置和系统
CN107193597A (zh) 一种应用程序更新方法及终端
CN114756276A (zh) 一种基于基线的软件版本控制方法
CN110334031A (zh) 内存分配代码检测方法、装置、计算机设备及存储介质
US20090037493A1 (en) Method and device for updating an object with copyright attribute
CN105653341A (zh) 一种网络发票客户端的升级方法、装置及系统
CN112463208A (zh) 版本管理方法及装置、电子设备、存储介质
CN113703808A (zh) 组件化的灰度发布方法、装置、设备及存储介质
CN106155736A (zh) 软件安装启动类型检测方法、装置及用户终端
CN114265614B (zh) 一种代理差分升级的方法及系统
CN100474285C (zh) 用于在装置上自动处理组件的方法和设备
CN116523563A (zh) 服务平台的会员积分实例构建方法及装置、介质、终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant