专利名称:用于执行期间的应用程序升级的方法、软件和装置的制作方法
技术领域:
本发明一般涉及数据网络和跨越所述数据网络的计算机通信。更特定而言,本发明部分地涉及在跨越一无线数据网络与一个或一个以上应用程序下载服务器进行选择性通信的无线设备上的软件应用程序和其组件的安装和删除。更特定而言,本发明部分地涉及在所述软件应用程序的所述执行期间一无线设备上的一软件应用程序的可选升级。
背景技术:
例如蜂窝电话的无线设备经由无线网络传递包括语音和数据的数据包。蜂窝电话其本身制造成具有增加的计算能力,且等价于个人计算机和手持式个人数字助理(“PDA”)。这些“聪明的”蜂窝电话已将应用程序编程界面(“API”)安装到其本地计算机平台上,所述本地计算机平台允许软件开发商创建可完全在蜂窝电话上执行的软件应用程序(通常被称作“程序”)。API位于无线设备系统软件与软件应用程序之间,从而使所述应用程序可利用蜂窝电话计算机能而不需要软件开发商具有具体的蜂窝电话系统源代码。
软件应用程序可在制造无线设备时预先载入,或用户可随后请求经由蜂窝电信载波网络下载另外的程序,其中所下载的应用程序可在无线电话上执行。因此,无线电话的用户可通过选择性地下载应用程序来自定义其无线电话,所述应用程序例如游戏、印刷媒体、股票更新、新闻或可用于通过无线网络下载的任何其它类型信息或应用程序。为管理蜂窝电话资源,无线设备的用户有目的地删除来自无线电话平台的应用程序和数据以清理存储空间,使得新的应用程序可载入到所清理的空间上。
与个人计算机和PDA的较大的计算机平台相比,无线设备具有有限的资源(例如存储和处理)来用于非必要应用程序。通常,电信应用程序具有系统资源的使用优先权,其它应用程序在使用时分配资源。因此无线设备具有用于保存应用程序的所有文件的有限的容量,且资源的管理由电话的用户决定来删除应用程序以为需下载到无线设备的新的应用程序腾出空间。无线设备不会以其它方式下载其没有资源保存和执行的应用程序。
在设法释放无线设备上的资源时,用户一般不能够在没有停用整个驻存应用程序的情况下移除驻存应用程序的某些组件。如果用户设法删除特定组件,那么此动作将不利于资源的预期释放,因为所停用的驻存应用程序不能够在没有完全地重新安装应用程序的情况下恢复。即使主应用程序不可执行,无用的未删除应用程序组件仍然无用地占据着存储空间。此对于无线设备上的驻存软件应用程序的全部删除或不删除需求极大地限制可驻存在无线设备上且可由用户操作的应用程序的数目。
因此,有利的是提供可移除应用程序的某些组件的同时维持所述应用程序的重要数据(例如许可证和用户指定的数据)的无线设备,从而最大化无线设备上的计算机资源的利用度。当无线设备需要已删除的软件组件来再次执行所述应用程序时,无线设备可通过无线网络获得软件组件。因此本发明主要针对提供可控制无线设备处的选择软件应用程序组件的删除和重新载入的系统和方法。
发明内容
本文中所揭示的实施例包括用于升级(例如)蜂窝电话、个人数字助理、寻呼机或其它计算机平台的无线设备上的软件应用程序的系统和方法,其中所述升级视情况在所述软件应用程序的执行期间执行。至少一个实施例包括接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序。此实施例进一步包括检测所述驻存的可执行应用程序的实际执行。此实施例进一步包括经由一网络接收所述应用程序的所述不同版本。此实施例进一步包括响应检测所述驻存的可执行应用程序的所述实际执行而将所述应用程序的所述不同版本存储于一临时位置中。此实施例进一步包括终止所述驻存的可执行应用程序的所述实际执行。并且,此实施例进一步包括用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序;和此实施例进一步包括起始所述应用程序的所述不同版本的实际执行。
至少一个实施例包括经配置以用于接收一请求而利用一驻存的可执行应用程序的一不同版本代替所述应用程序的逻辑。此实施例进一步包括经配置以用于检测所述可驻存的可执行应用程序的实际执行的逻辑。此实施例进一步包括经配置以用于经由一网络接收所述应用程序的所述不同版本的逻辑。此实施例进一步包括经配置以用于响应检测所述驻存的可执行应用程序的所述实际执行而将所述应用程序的所述不同版本存储于一临时位置中的逻辑。此实施例进一步包括经配置以用于终止所述驻存的可执行应用程序的所述实际执行的逻辑,此实施例进一步包括经配置以用于利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的逻辑。并且,此实施例进一步包括经配置以用于起始所述应用程序的所述不同版本的实际执行的逻辑。
至少一个实施例包括可操作用于接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序的代码。此实施例进一步包括可操作用于检测所述驻存的可执行应用程序的实际执行的代码。此实施例进一步包括可操作用于经由一网络接收所述应用程序的所述不同版本的代码。此实施例进一步包括可操作用于响应检测所述驻存的可执行应用程序的所述实际执行而将所述应用程序的所述不同版本存储于一临时位置中的代码。此实施例进一步包括可操作用于终止所述驻存的可执行应用程序的所述实际执行的代码。此实施例进一步包括可操作用于利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的代码。并且,此实施例进一步包括可操作用于起始所述应用程序的所述不同版本的实际执行的代码。
至少一个实施例包括用于接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序的装置。此实施例包括用于检测所述驻存的可执行应用程序的实际执行的装置。此实施例包括用于经由一网络接收所述应用程序的所述不同版本的装置。此实施例包括用于响应检测所述驻存的可执行应用程序的所述实际执行而将所述应用程序的所述不同版本存储于一临时位置中的装置。此实施例包括用于终止所述驻存的可执行应用程序的所述实际执行的装置。此实施例包括用于利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的装置。并且,此实施例包括用于起始所述应用程序的所述不同版本的实际执行的装置。
至少一个实施例包括接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序。此实施例进一步包括经由一网络接收所述应用程序的所述不同版本。此实施例进一步包括响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述不同版本存储于一临时位置中。此实施例进一步包括检测所述驻存的可执行应用程序的实际执行。此实施例进一步包括终止所述驻存的可执行应用程序的所述实际执行。此实施例进一步包括利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序。并且,此实施例进一步包括起始所述应用程序的所述不同版本的实际执行。
至少一个实施例包括经配置以用于接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序的逻辑。此实施例还包括经配置以用于经由一网络接收所述应用程序的所述不同版本的逻辑。此实施例进一步包括经配置以用于响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述不同版本存储于一临时位置中的逻辑。此实施例进一步包括经配置以用于检测所述驻存的可执行应用程序的实际执行的逻辑。此实施例进一步包括经配置以用于终止所述驻存的可执行应用程序的所述实际执行的逻辑。此实施例进一步包括经配置以用于利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的逻辑。并且,此实施例进一步包括经配置以用于起始所述应用程序的所述不同版本的实际执行的逻辑。
至少一个实施例包括可操作用于接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序的代码。此实施例进一步包括可操作用于经由一网络接收所述应用程序的所述不同版本的代码。此实施例进一步包括可操作用于响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述不同版本存储于一临时位置中的代码。此实施例进一步包括可操作用于检测所述驻存的可执行应用程序的实际执行的代码。此实施例进一步包括可操作用于终止所述驻存的可执行应用程序的所述实际执行的代码。此实施例进一步包括可操作用于利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的代码。并且,此实施例进一步包括可操作用于起始所述应用程序的所述不同版本的实际执行的代码。
至少一个实施例包括用于接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序的装置。此实施例进一步包括用于经由一网络接收所述应用程序的所述不同版本的装置。此实施例进一步包括用于响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述不同版本存储于一临时位置中的装置。此实施例进一步包括用于检测所述驻存的可执行应用程序的实际执行的装置。此实施例进一步包括用于终止所述驻存的可执行应用程序的所述实际执行的装置。此实施例进一步包括用于利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的装置。并且,此实施例进一步包括可操作用于起始所述应用程序的所述不同版本的实际执行的装置。
至少一个实施例包括接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序。此实施例进一步包括经由一网络接收所述应用程序的所述不同版本。此实施例进一步包括响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述版本存储于一升级位置中。此实施例进一步包括检测所述驻存的可执行应用程序在一实际应用程序位置中的所述实际执行。此实施例进一步包括终止所述驻存的可执行应用程序的所述实际执行。并且,此实施例进一步包括起始在所述升级位置和所述实际应用程序位置的一连续搜索中检测到的第一应用程序的执行。
至少一个实施例包括经配置以用于接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序的逻辑。此实施例进一步包括经配置以用于经由一网络接收所述应用程序的所述不同版本的逻辑。此实施例进一步包括经配置以用于响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述版本存储于一升级位置中的逻辑。此实施例进一步包括经配置以用于检测所述驻存的可执行应用程序在一实际应用程序位置中的所述实际执行的逻辑。此实施例进一步包括经配置以用于终止所述驻存的可执行应用程序的所述实际执行的逻辑。并且,此实施例进一步包括经配置以用于起始在所述升级位置和所述实际应用程序位置的一连续搜索中检测到的第一应用程序的执行的逻辑。
至少一个实施例包括可操作用于接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序的代码。此实施例包括可操作用于经由一网络接收所述应用程序的所述不同版本的代码。此实施例包括可操作用于响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述版本存储于一升级位置中的代码。此实施例包括可操作用于检测所述驻存的可执行应用程序在一实际应用程序位置中的所述实际执行的代码。此实施例包括可操作用于终止所述驻存的可执行应用程序的所述实际执行的代码。并且,此实施例包括可操作用于起始在所述升级位置和所述实际应用程序位置的一连续搜索中检测到的第一应用程序的执行的代码。
至少一个实施例包括用于接收一请求以利用一驻存的可执行应用程序的一不同版本代替所述应用程序的装置。此实施例还包括用于经由一网络接收所述应用程序的所述不同版本的装置。此实施例还包括用于响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述版本存储于一升级位置中的装置。此实施例还包括用于检测所述驻存的可执行应用程序在一实际应用程序位置中的所述实际执行的装置。此实施例还包括用于终止所述驻存的可执行应用程序的所述实际执行的装置。并且,此实施例包括用于起始在所述升级位置和所述实际应用程序位置的一连续搜索中检测到的第一应用程序的执行的装置。
鉴于下文中陈述的
、本发明的具体实施方式
和上文中陈述的权利要求书后,本发明的其它目标、优点和特征将变得显而易见。
图1为管理经由无线网络与一个或一个以上应用程序下载服务器进行选择性通信的无线设备上的软件应用程序的本发明系统的代表图。
图2为提供不同无线设备与应用程序下载服务器和数据库之间的通信的示范性无线网络的硬件组件的方框图。
图3为具体说明一个应用程序和其构成组件的驻存在无线设备平台上的文件表。
图4为说明选择性地删除无线设备上的应用程序组件的流程图。
图5为说明无线设备从应用程序下载服务器检索应用程序组件以恢复无线设备上的应用程序以使得所述应用程序可再次执行的流程图。
图6为说明包括利用驻存的可执行应用程序的不同版本代替所述应用程序的系统的一个实施例的流程图。
图7为说明包括利用驻存的可执行应用程序的不同版本代替所述应用程序的系统的一个实施例的流程图。
图8为在用于利用驻存的可执行应用程序的不同版本代替所述应用程序的系统中使用的无线设备的一个实施例的方框图。
图9为在用于利用驻存的可执行应用程序的不同版本代替所述应用程序的系统中使用的无线设备的一个实施例的方框图。
图10在用于利用驻存的可执行应用程序的不同版本代替所述应用程序的系统中使用的无线设备的一个实施例的方框图。
具体实施例方式
参考图1,图1展示用于删除并重新载入跨越无线网络14与至少一个应用程序下载服务器16通信的无线设备(例如蜂窝电话12)上的软件应用程序组件的本发明系统10,所述至少一个应用程序下载服务器16跨越无线通信门户或无线网络14的其它数据入口而将软件应用程序和组件选择性地传输到无线设备。如此处所示,无线设备可为蜂窝电话12、个人数字助理18、寻呼机20(此处展示为双向文字寻呼机)或甚至为具有无线通信门户且可另外具有到网络或因特网的有线连接24的单独的计算机平台22。本发明系统可因此在包括无线通信门户的任何形式的远程模块上执行,所述远程模块包括(不限于)无线调制解调器、PCMCIA卡、接入终端、个人计算机、接入终端、无显示器或键区的电话或其任何组合或子组合。
这里在网络26上展示应用程序下载服务器16和其它与无线网络14通信的计算机元件。具有第二服务器30和独立的服务器32,且每一服务器可跨越无线网络14向无线设备12、18、20、22提供单独的服务和处理。最好还有至少一个保存可由无线设备12、18、20、22下载的应用程序的存储的应用程序数据库28。
图2中展示一更全面地说明无线网络14的组件以及本发明的元件的相互关系的方框图。无线网络14仅为示范性的且可包括诸如无线设备12、18、20、22等远程模块藉以在彼此之间和/或在无线网络14的组件之间进行无线电通信的任何系统,其中包括(不限于)无线网络载波和/或服务器。应用程序下载服务器16和存储的应用程序数据库28,连同诸如服务器30等任何其它提供蜂窝电信服务所需的服务器经由例如因特网、安全LAN、WAN或其它网络的数据链路与载波网络40通信。载波网络40控制发送到消息服务控制器(“MSC”)42的消息(作为数据包发送)。载波网络40通过网络、因特网和/或POTS(“普通电话系统”)与MSC通信。通常,载波网络40与MSC 42之间的网络或因特网连接传送数据,且POTS传送语音信息。MSC 42连接到多个基站(“BTS”)44。以类似于载波网络的方式,MSC 42通常通过用于数据传送的网络和/或因特网和用于语音信息的POTS而连接到BTS 44。BTS 44最终通过短消息服务(“SMS”)或此项技术中已知的其它无线电方法将消息无线地广播到例如蜂窝电话12等无线设备。
例如蜂窝电话12的无线设备具有可接收并执行从应用程序下载服务器16传输的软件应用程序的计算机平台50。计算机平台50包括特殊用途集成电路(“ASIC”52)或其它处理器、微处理器、逻辑电路或其它数据处理设备。ASIC 52是在制造无线设备时安装且通常不可升级。ASIC 52或其它处理器执行与无线设备的存储器56中的任何驻存程序界面连接的应用程序编程界面(“API”)层。所述存储器可由只读或随机存取存储器(RAM和ROM)、EPROM、闪存卡或计算机平台常用的任何存储器组成。计算机平台50还包括可保存存储器56中未实际使用的应用程序的本地数据库58。本地数据库58通常为闪存单元,但可为此项技术中已知的任何二级存储设备,例如磁媒介、EPROM、光学媒介、磁带或软盘或硬盘。
例如蜂窝电话12的无线设备因此下载例如游戏、新闻、股票监视器和其类似物的一个或一个以上软件应用程序,并在不使用时将所述应用程序保存在本地数据库58上,且在用户需要时将本地数据库58上存储的驻存应用程序上传到存储器56以在API 54上执行。然而,对无线设备存在明显的成本和大小限制,其限制本地数据库58和存储器56中可用的安装存储能力,因此有限量的驻存软件应用程序可保存在无线设备上。本发明系统和方法通过选择性地删除和重新载入个别软件应用程序组件来管理此存储容量的限制,如下文进一步描述。
参考图3,展示保存在API 54中的说明性文件结构或数据管理结构。顶级域为含有计算机平台50上的所有离散软件文件的“文件”60。图3的文件结构仅为说明性的且可在计算机平台50上不以此形式出现,且甚至可完全以机器代码存在于没有可辨别文件结构的无线设备12、18、20、22上。在文件60中的为这里展示为窗口二进制运行环境(“BREW”)62的API,所述API为由QUALCOMM用于与无线设备计算机平台50上的软件应用程序交互的API。BREW 62文件包括应用程序文件64,且一个文件为已从应用程序下载服务器16下载且现已驻存在无线设备的计算机平台50的本地数据库58上的象棋66游戏。出于说明目的,象棋66应用程序为无线设备的驻存软件应用程序。
象棋66应用程序包括若干个软件组件68,例如文件chess.mod和chess.bar。应用程序组件68为执行计算机平台50上的象棋应用程序所必需的模块。象棋66还包括与特定应用程序相关联的数据,这里展示为scores.sig 70,其为用户在计算机平台50上玩象棋游戏所存储的得分。在象棋66应用程序中还可包括作为隐藏文件的许可证。因此,允许执行象棋游戏的应用程序组件68易于利用从应用程序下载服务器16传输的拷贝来复制,而例如得分70和许可证的相关应用程序数据在其文件或模块被删除的情况下将会丢失。本发明因此利用所述能力以获得来自应用程序下载服务器16的非必要应用程序组件的另一拷贝,同时维持例如许可证的不可检索的应用程序相关数据,或例如个人信息和地址的用户特定数据,或甚至是完全与娱乐有关的数据,例如象棋游戏的先前得分70。
当用户希望将另一软件应用程序下载到计算机平台50且没有充分的资源时,尤其是就本地数据库58上的存储而言,BREW API 62或其它空间管理组件可向用户触发提示来询问象棋应用程序组件是否可移除,使得可将所请求的下载应用程序放置在计算机平台50上。另外,BREW API 62可确定那些组件要删除并自动管理系统资源。当chess.mod和chess.bar文件已从象棋66文件删除时,象棋游戏将不可在计算机平台50上执行。通过在计算机平台50上必要和非必要文件的分离,无线设备可选择性地删除一个或一个以上驻存软件应用程序的应用程序组件68中的一个或一个以上组件,而不丢失应用程序相关数据,例如得分文件70。
当应用程序已删除一个或一个以上应用程序组件,例如对于象棋游戏66已删除chess.mod和chess.bar应用程序组件68,且用户希望再次使用所述应用程序时,无线设备将跨越无线网络14选择性地提示应用程序下载服务器16以传输一个或一个以上应用程序组件68。一旦无线设备接收到应用程序组件68,无线设备将所传输的一个或一个以上应用程序组件68安装回计算机平台50上,使得驻存应用程序或这里的象棋66可再次执行。应注意,不必移除所有的应用程序组件68,且可基于应用程序的大小或其它标准进行删除。此外,例如scores.sig 70的含有应用程序相关数据的文件也可含有执行应用程序所需的应用程序组件且不必为纯粹的数据容器。
图4和5为说明用于管理驻存在无线设备12、18、20、22的计算机平台50上的一个或一个以上软件应用程序的应用程序组件68的载入和移除的本发明方法的流程图。如图4中所示,计算机平台50接收指令以下载软件应用程序,如步骤80所示,且接着在无线设备的ASIC 52或其它处理器上作出关于是否存在可用于下载所述应用程序的充分资源的决定,如步骤82所示。如果存在充分的可利用资源,那么下载所述应用程序并存储,如步骤84所示,且下载过程终止。如果在决定82处没有充分资源,那么提示用户清理系统资源以下载所述应用程序,如步骤86所示,此需要删除某一应用程序组件。接着作出关于用户是否准许清理资源的决定,如决定88所示,且如果没有准许,那么通知用户没有可用于下载的充分资源,如步骤90所示,且下载过程终止。如果在决定88处用户准许清理资源,那么例如组件68的一个或一个以上应用程序组件被选择性地删除以清理必需的资源,且所述删除的发生没有明显丢失例如scores.sig文件70的应用程序相关数据或使用应用程序的任何许可证。接着下载所述应用程序并存储在计算机平台50上,如步骤94所示,且下载过程终止。
如步骤100所示,当接收到请求以执行具有一个或一个以上已删除组件68的应用程序时,重新安装已删除组件的过程展示于图5中。此一实例将为用户设法再次玩象棋游戏。接着优选提示用户建立到应用程序下载服务器16的通信链路,如步骤102所示。然而,在接收到执行请求时无线设备可交替地自动建立通信链路。如果用户请求执行所述应用程序的请求,那么作出关于用户是否已授权所述链路的决定,如决定104所示。如果用户拒绝建立所述链路,那么通知用户必须下载所需应用程序组件以执行请求应用程序,如步骤106所示,且接着执行请求终止。如果在决定104处用户授权所述通信链路,那么建立与应用程序下载服务器16的通信链路,如步骤108所示。
一旦已建立与应用程序下载服务器16的通信链路,无线设备便提示应用程序下载服务器16传输无线设备执行所请求的应用程序所需的一个或一个以上应用程序组件,如步骤110所示。接着确定服务器是否已传输必需的应用程序组件,如决定112所示,且如果没有,那么通知用户不能获得必需的组件,如步骤114所示,且执行请求终止。否则,如果在决定112处用户已传输必需的组件,那么无线设备接收来自应用程序下载服务器的组件,如步骤116所示,并将所接收的组件安装到应用程序中以使得应用程序可执行,如步骤118所示。接着在无线设备上执行应用程序直到终止,如步骤120所示。
如果例如应用程序组件68的已删除应用程序组件的重新载入是自动的,那么图5的过程将正好从步骤100接收到执行应用程序的请求进行到步骤110提示应用程序下载服务器16。无线设备将仅通知用户所述应用程序是否不能下载组件,如步骤114所示。
建立通信链路的步骤通常为通过如图2中所示的数字或模拟蜂窝电信网络来建立通信链路,但可交替地使用例如无线LAN或微波或红外线网络的其它无线网络。此外,建立通信链路可在期望执行已删除一个或一个以上相关组件的驻存软件应用程序的无线设备12、18、20、22上自动发生,即,无线设备通过无线网络14桥接与应用程序下载服务器16的通信。否则,建立通信链路的步骤可根据无线设备12、18、20、22的用户的具体提示而发生来桥接与应用程序下载服务器16的通信,以经由无线网络14向已删除一个或一个以上相关组件的驻存软件应用程序传输一个或一个以上组件。如果无线设备的用户为了将新的应用程序组件传输到无线设备而要为例如蜂窝电话呼叫的通信链路付费,那么应在删除组件之前提示用户授权重新载入组件而必需的通信链路。当需要通信链路检索应用程序的组件以使应用程序可执行时可再次提示用户。然而,如果无线设备完全自动化且通信链路不需要向用户收费,那么不需要提示用户,且组件的重新载入为显然的,除非遇到问题且产生错误消息,例如在步骤114处。
执行期间的自动应用程序升级在一个实施例中,如在图6中所示,下载到无线设备12、18、20、22的应用程序或扩展部分(extension)可下载到无线设备12、18、20、22,同时应用程序或扩展部分的先前版本或不同版本正在无线设备12、18、20、22上执行。可通过设备用户或无线设备12、18、20、22上运行的过程,或通过服务器16、30、32,由无线设备12、18、20、22请求升级或下载应用程序或扩展部分。注意“升级”不必包括更迟的版本,但可指不同版本。举例而言,优选回复应用程序的旧版本,在这种情况下,“升级”包括下载应用程序的先前版本来代替现有的而非更迟的版本。
(下文中,将仅使用“应用程序”,然而应理解,此描述也适用于扩展部分。扩展部分包括由数据或指令用于辅助执行的程序、组件或服务。举例而言,扩展部分可包括BREW环境下安装在用于执行Java程序的无线设备上的Java虚拟机,或与MPEG文件一起安装并使用的MPEG播放器)。此外,应用程序不仅包括任何可执行类型的软件,且可包括脚本或内容数据。
实施例过程包括步骤600,其中作出请求以将应用程序升级下载到无线设备12、18、20、22。无线设备12、18、20、22可具有在手持机上执行的应用程序的不同版本或先前版本。在步骤602,进行检查以确定所请求的应用程序的不同版本或先前版本是否正在无线设备12、18、20、22上执行。如果没有,那么在步骤604,所述应用程序可通过在现有(即,先前的或不同的)应用程序位于设备上的文件位置中利用新请求的应用程序覆写现有应用程序而利用新请求的应用程序来升级。
然而,如果在步骤602检查确定应用程序正在执行,那么在步骤606过程继续,其中所升级的应用程序存储于临时位置中。此临时位置可在设备上,然而其可被存储在外围设备或网络上设备可访问的其它位置上。
在步骤608,正执行的应用程序被告知其需要终止。且应用程序或二级过程起始执行应用程序的终止。在应用程序终止后,在步骤610,升级的应用程序接着传送到现有应用程序的文件位置。注意,升级的应用程序所复制到的位置为系统期望执行应用程序的任何位置。举例而言,在一个实施例中,如果系统期望寻找升级位置以执行升级的应用程序,且如果其不存在,那么系统寻找另一位置以执行现有应用程序,接着过程将把所升级的应用程序复制到升级位置,且不覆写现有应用程序。
在升级的应用程序从临时位置传送到正确位置(无论是覆写现有应用程序的位置还是如上文所描述的某些其它期望位置)后,接着在步骤612应用程序重新开始。注意,此应用程序可自动重新开始。还应注意,设备不需要重置、通过重启路由器运行、重新启动,也不需要执行用于待升级的现有应用程序和正执行应用程序的任何其它重置类型的功能。
在应用程序升级的另一实施例中,且如图7中所示,在步骤606中且在步骤602之前,所请求的应用程序被下载到设备的临时位置。在下载后,接着在步骤602检查设备以确定先前或不同的应用程序版本是否正在设备上执行。如果是,那么在步骤608终止现有应用程序的执行,且在步骤610,所升级的应用程序从临时存储位置复制到正确的存储位置(例如,其可覆写现有应用程序),且接着在步骤612执行所升级的应用程序。如上所述,此执行可自动执行。
如果步骤602中确定现有应用程序未在执行,那么在步骤700,所升级的应用程序传送到正确位置,例如覆写现有应用程序。在此实例中,因为所述应用程序未在执行,所以不需要在将所升级的应用程序传送到正确位置之前终止其执行。
图8展示实施如图6中所述的方法的无线设备的一个实施例。如所示,无线设备800含有一存储器802、一网络界面804、处理器806和一总线808。尽管存储器802展示为RAM存储器,但其它实施例包括例如已知用于提供配置逻辑的存储的任何已知类型存储器的存储器802。另外,尽管存储器802展示为一种类型存储器的一个相邻单元,但其它实施例使用多个位置和多种类型存储器作为存储器802。网络I/O界面804经由总线808将输入和输出提供到耦合到网络的设备。处理器806根据经由总线808提供的指令和数据进行操作。在至少一个实施例中处理器906为ASIC 52的部分。
位于存储器802中的为逻辑810,用于接收请求以利用驻存的可执行应用程序的不同版本来代替所述应用程序;逻辑812,用于检测驻存的可执行应用程序的实际执行;逻辑814,用于经由一网络接收所述应用程序的不同版本;逻辑816,用于响应检测驻存的可执行应用程序的实际执行以将应用程序的不同版本存储于临时位置中;逻辑818,用于终止驻存的可执行应用程序的实际执行;逻辑820,用于利用存储于临时位置中的驻存的可执行应用程序的不同版本来覆写所述应用程序;和逻辑822,用于起始应用程序的不同版本的实际执行。在一个或一个以上不同实施例中,用于接收请求以利用驻存的可执行应用程序的不同版本来代替所述应用程序的逻辑810经进一步修改,使得其中由无线设备起始所述请求(824),其中通过检测用户输入而起始所述请求(826),其中应用程序的所述不同版本为先前版本(828),和/或其中所述应用程序为扩展部分、脚本和内容数据中的至少一者(830)。并且,在一个实施例中,用于响应检测驻存的可执行应用程序的实际执行以将应用程序的不同版本存储于临时位置中的逻辑816经进一步修改,其中所述临时位置在外围设备和远程网络位置中的至少一者上(832)。
图9展示实施如图7中所述方法的无线设备的一个实施例。如所示,无线设备900含有存储器902、网络界面904、处理器906和总线908。尽管存储器902被展示为RAM存储器,但其它实施例包括例如已知用于提供配置逻辑的存储的所有已知类型存储器的存储器902。另外,尽管存储器802被展示为一种类型存储器的一个相邻单元,但其它实施例使用多个位置和多种类型存储器作为存储器902。网络I/O界面904经由总线908将输入和输出提供到耦合到网络的设备。处理器906根据经由总线908提供的指令和数据进行操作。在至少一个实施例中,处理器906为ASIC 52的一部分。
位于存储器902中的是逻辑910,用于接收一利用驻存的可执行应用程序的不同版本来代替所述应用程序的请求;逻辑912,用于经由一网络接收所述应用程序的不同版本;逻辑914,用于响应接收所述用驻存的可执行应用程序的不同版本来代替所述应用程序的请求而将应用程序的不同版本存储于临时位置中;逻辑916,用于检测驻存的可执行应用程序的实际执行;逻辑918,用于终止驻存的可执行应用程序的实际执行;逻辑920,用于利用存储于临时位置中的驻存的可执行应用程序的不同版本来覆写所述应用程序;和逻辑922,用于起始应用程序的不同版本的实际执行。在一个或一个以上不同实施例中,用于接收一利用驻存的可执行应用程序的不同版本来代替所述应用程序的请求的逻辑910经进一步修改以使得其中由无线设备起始所述请求(924);其中通过用户输入的检测起始所述请求(926);其中应用程序的所述不同版本为先前版本(928);和/或其中所述应用程序为扩展部分、脚本和内容数据中的至少一个(930)。并且,在一个实施例中,用于响应检测驻存的可执行应用程序的实际执行而将应用程序的不同版本存储于临时位置中的逻辑914经进一步修改,其中所述临时位置在外围设备和远程网络位置中的至少一者上(932)。
图10展示实施自动应用程序升级过程的一个版本的无线设备的一个实施例,所述自动应用程序升级过程有时被描述为包括在起始一优选应用程序的执行的过程中连续搜索执行位置。如所示,无线设备1000含有存储器1002、网络界面1004、处理器1006和总线1008。尽管存储器1002被展示为RAM存储器,但其它实施例包括例如已知用于提供配置逻辑的存储的所有已知类型存储器的存储器1002。另外,尽管存储器1002被展示为一种类型存储器的一个相邻单元,但其它实施例使用多个位置和多种类型存储器作为存储器1002。网络I/O界面1004经由总线1008将输入和输出提供到耦合到网络的设备。处理器1006根据经由总线1008提供的指令和数据进行操作。在至少一个实施例中,处理器1006为ASIC 52的一部分。
位于存储器1002中的为逻辑1010,用于接收利用驻存的可执行应用程序的不同版本来代替所述应用程序的请求;逻辑1012,用于经由一网络接收所述应用程序的不同版本;逻辑1014,用于响应接收所述利用驻存的可执行应用程序的不同版本来代替所述应用程序的请求而将应用程序的不同版本存储于临时位置中;逻辑1016,用于检测驻存的可执行应用程序在实际应用程序位置中的实际执行;逻辑1018,用于终止驻存的可执行应用程序的实际执行;逻辑1020,经配置用于起始在升级位置和实际应用程序位置的连续搜索中检测到的第一应用程序的执行。在一个或一个以上不同实施例中,用于接收利用驻存的可执行应用程序的不同版本来代替所述应用程序的请求的逻辑1010经进一步修改,使得其中所述请求由无线设备起始(1022),其中通过检测用户输入而起始所述请求(1024),其中应用程序的所述不同版本为先前版本(1026),和/或其中所述应用程序为扩展部分、脚本和内容数据中的至少一者(1028)。并且,在一个实施例中,用于响应接收所述用驻存的可执行应用程序的不同版本来代替所述应用程序的请求而将应用程序的不同版本存储于升级位置中的逻辑1014经进一步修改,其中所述升级位置在外围设备和远程网络位置中的至少一者上(1030)。
鉴于本发明性方法,本发明包括驻存于计算机可读媒介中的程序,其中所述程序引导具有计算机平台的无线设备执行本发明性方法步骤。计算机可读媒介可为蜂窝电话12(或其它无线设备)的计算机平台50的存储器56,或可处于例如蜂窝电话12的本地数据库58的本地数据库中。此外,计算机可读媒介可处于可载入到无线设备计算机平台上的二级存储媒介中,所述二级存储媒介为例如磁盘或磁带、光盘、硬盘、闪存或此项技术中已知的其它存储媒介。在图4和图5的情况下,本发明性方法可(例如)通过操作无线网络14的部分而执行机器可读指令的序列来实施。这些指令可驻存于各种类型的信号承载媒介中。此信号承载媒介可包含(例如)可由无线网络14的组件访问或驻存于无线网络14的组件中的RAM(未图示)。无论是含于RAM、磁盘还是其它二级存储媒介中,指令可存储于各种机器可读数据存储媒介上,例如DASD存储器(例如,常规“硬盘”或RAID阵列)、磁带、电子只读存储器(例如,ROM、EPROM、或EEPROM)、光存储设备(例如,CD-ROM、WORM、DVD、数字光带)、纸“穿孔”卡,或包括传输媒介(例如数字和模拟)的其它适当数据存储媒介。
虽然前述揭示内容展示本发明的说明性实施例,但应注意,可在不脱离如由所附权利要求书界定的本发明的范畴的情况下在本文进行各种改变和修改。此外,尽管本发明的元件可以单数来描述或主张,但也涵盖复数,除非明确规定限于单数。
权利要求
1.一种用于利用一无线设备上一驻存的可执行应用程序的一不同版本代替所述应用程序的方法,其包含接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求;检测所述驻存的可执行应用程序的实际执行;经由一网络接收所述应用程序的所述不同版本;响应检测所述驻存的可执行应用程序的所述实际执行而将所述应用程序的所述不同版本存储于一临时位置中;终止所述驻存的可执行应用程序的所述实际执行;利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序;和起始所述应用程序的所述不同版本的实际执行。
2.根据权利要求1所述的方法,其中由所述无线设备起始所述请求。
3.根据权利要求1所述的方法,其中通过用户输入的检测起始所述请求。
4.根据权利要求1所述的方法,其中应用程序的所述不同版本为一先前版本。
5.根据权利要求1所述的方法,其中所述应用程序为一扩展部分、一脚本和内容数据中的至少一者。
6.根据权利要求1所述的方法,其中所述临时位置在一外围设备和一远程网络位置中的至少一者上。
7.一种含有一驻存的可执行应用程序的无线设备,其包含经配置以接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求的逻辑;经配置以检测所述可驻存的可执行应用程序的实际执行的逻辑;经配置以经由一网络来接收所述应用程序的所述不同版本的逻辑;经配置以响应检测所述驻存的可执行应用程序的所述实际执行而将所述应用程序的所述不同版本存储于一临时位置中的逻辑;经配置以终止所述驻存的可执行应用程序的所述实际执行的逻辑;经配置以利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的逻辑;和经配置以用于起始所述应用程序的所述不同版本的实际执行的逻辑。
8.根据权利要求7所述的无线设备,其中由所述无线设备起始所述请求。
9.根据权利要求7所述的无线设备,其中通过用户输入的检测起始所述请求。
10.根据权利要求7所述的无线设备,其中应用程序的所述不同版本为一先前版本。
11.根据权利要求7所述的无线设备,其中所述应用程序为一扩展部分、一脚本和内容数据中的至少一者。
12.根据权利要求7所述的无线设备,其中所述临时位置在一外围设备和一远程网络位置中的至少一者上。
13.一种包含在一计算机可读媒介上的计算机程序,所述计算机程序能够利用一无线设备上的一驻存的可执行应用程序的一不同版本代替所述应用程序,所述计算机程序包含可操作以接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求的代码;可操作以检测所述驻存的可执行应用程序的实际执行的代码;可操作以经由一网络来接收所述应用程序的所述不同版本的代码;可操作以响应检测所述驻存的可执行应用程序的所述实际执行而将所述应用程序的所述不同版本存储于一临时位置中的代码;可操作以终止所述驻存的可执行应用程序的所述实际执行的代码;可操作以利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的代码;和可操作以起始所述应用程序的所述不同版本的实际执行的代码。
14.根据权利要求13所述的计算机程序,其中所述应用程序为一扩展部分、一脚本和内容数据中的至少一者。
15.一种含有一驻存的应用程序的无线设备,其包含用于接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求的装置;用于检测所述驻存的可执行应用程序的实际执行的装置;用于经由一网络来接收所述应用程序的所述不同版本的装置;用于响应检测所述驻存的可执行应用程序的所述实际执行而将所述应用程序的所述不同版本存储于一临时位置中的装置;用于终止所述驻存的可执行应用程序的所述实际执行的装置;用于利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的装置;和用于起始所述应用程序的所述不同版本的实际执行的装置。
16.根据权利要求15所述的无线设备,其中所述应用程序为一扩展部分、一脚本和内容数据中的至少一者。
17.一种利用一无线设备上一驻存的可执行应用程序的一不同版本代替所述应用程序的方法,其包含接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求;经由一网络来接收所述应用程序的所述不同版本;响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述不同版本存储于一临时位置中;检测所述驻存的可执行应用程序的实际执行;终止所述驻存的可执行应用程序的所述实际执行;利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序;和起始所述应用程序的所述不同版本的实际执行。
18.根据权利要求17所述的方法,其中由所述无线设备起始所述请求。
19.根据权利要求17所述的方法,其中通过用户输入的检测起始所述请求。
20.根据权利要求17所述的方法,其中应用程序的所述不同版本为一先前版本。
21.根据权利要求17所述的方法,其中所述驻存的可执行应用程序为一扩展部分、一脚本和内容数据中的至少一者。
22.根据权利要求17所述的方法,其中所述临时位置为一外围设备和一远程网络位置中的至少一者。
23.一种含有一驻存的可执行应用程序的无线设备,其包含经配置以接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求的逻辑;经配置以经由一网络来接收所述应用程序的所述不同版本的逻辑;经配置以响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述不同版本存储于一临时位置中的逻辑;经配置以检测所述驻存的可执行应用程序的实际执行的逻辑;经配置以终止所述驻存的可执行应用程序的所述实际执行的逻辑;经配置以利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的逻辑;和经配置以起始所述应用程序的所述不同版本的实际执行的逻辑。
24.根据权利要求23所述的无线设备,其中由所述无线设备起始所述请求。
25.根据权利要求23所述的无线设备,其中通过用户输入的检测起始所述请求。
26.根据权利要求23所述的无线设备,其中应用程序的所述不同版本为一先前版本。
27.根据权利要求23所述的无线设备,其中所述驻存的可执行应用程序为一扩展部分、一脚本和内容数据中的至少一者。
28.根据权利要求23所述的无线设备,其中所述临时位置是一外围设备和一远程网络位置中的至少一者。
29.一种包含在一计算机可读媒介上的计算机程序,所述计算机程序能够利用一无线设备上一驻存的可执行应用程序的一不同版本代替所述应用程序,所述计算机程序包含可操作以接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求的代码;可操作以经由一网络来接收所述应用程序的所述不同版本的代码;可操作以响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述不同版本存储于一临时位置中的代码;可操作以检测所述驻存的可执行应用程序的实际执行的代码;可操作以终止所述驻存的可执行应用程序的所述实际执行的代码;可操作以利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的代码;和可操作以起始所述应用程序的所述不同版本的实际执行的代码。
30.根据权利要求29所述的计算机程序,其中所述应用程序为一扩展部分、一脚本和内容数据中的至少一者。
31.一种用于处理经由一网络与一客户端计算设备的安全通信的无线设备,其包含用于接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求的装置;用于经由一网络接收所述应用程序的所述不同版本的装置;用于响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述不同版本存储于一临时位置中的装置;用于检测所述驻存的可执行应用程序的实际执行的装置;用于终止所述驻存的可执行应用程序的所述实际执行的装置;用于利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序的装置;和用于起始所述应用程序的所述不同版本的实际执行的装置。
32.根据权利要求31所述的无线设备,其中所述应用程序为一扩展部分、一脚本和内容数据中的至少一者。
33.一种利用一无线设备上一驻存的可执行应用程序的一不同版本代替所述应用程序的方法,其包含接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求;经由一网络接收所述应用程序的所述不同版本;响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述版本存储于一升级位置中;检测所述驻存的可执行应用程序在一实际应用程序位置中的实际执行;终止所述驻存的可执行应用程序的所述实际执行;和起始在对所述升级位置和所述实际应用程序位置的一连续搜索中检测到的第一应用程序的执行。
34.根据权利要求33所述的方法,其中由所述无线设备起始所述请求。
35.根据权利要求33所述的方法,其中通过用户输入的检测起始所述请求。
36.根据权利要求33所述的方法,其中应用程序的所述不同版本为一先前版本。
37.根据权利要求33所述的方法,其中所述驻存的可执行应用程序为一扩展部分、一脚本和内容数据中的至少一者。
38.根据权利要求33所述的方法,其中所述临时位置为一外围设备和一远程网络位置中的至少一者。
39.一种含有一驻存的可执行应用程序的无线设备,其包含经配置以接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求的逻辑;经配置以经由一网络来接收所述应用程序的所述不同版本的逻辑;经配置以响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述版本存储于一升级位置中的逻辑;经配置以检测所述驻存的可执行应用程序在一实际应用程序位置中的实际执行的逻辑;经配置以终止所述驻存的可执行应用程序的所述实际执行的逻辑;和经配置以起始在对所述升级位置和所述实际应用程序位置的一连续搜索中检测到的第一应用程序的执行的逻辑。
40.根据权利要求39所述的无线设备,其中由所述无线设备起始所述请求。
41.根据权利要求39所述的无线设备,其中通过用户输入的检测起始所述请求。
42.根据权利要求39所述的无线设备,其中应用程序的所述不同版本为一先前版本。
43.根据权利要求39所述的无线设备,其中所述驻存的可执行应用程序为一扩展部分、一脚本和内容数据中的至少一者。
44.根据权利要求39所述的无线设备,其中所述升级位置为一外围设备和一远程网络位置中的至少一者。
45.一种包含在一计算机可读媒介上的计算机程序,所述计算机程序能够利用一无线设备上一驻存的可执行应用程序的一不同版本代替所述应用程序,所述计算机程序包含可操作以接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求的代码;可操作以经由一网络来接收所述应用程序的所述不同版本的代码;可操作以响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述版本存储于一升级位置中的代码;可操作以检测所述驻存的可执行应用程序在一实际应用程序位置中的实际执行的代码;可操作以终止所述驻存的可执行应用程序的所述实际执行的代码;和可操作以起始在对所述升级位置和所述实际应用程序位置的一连续搜索中检测到的第一应用程序的执行的代码。
46.根据权利要求45的计算机程序,其中所述应用程序为一扩展部分、一脚本和内容数据中的至少一者。
47.一种含有一驻存的可执行应用程序的无线设备,其包含用于接收一利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求的装置;用于经由一网络来接收所述应用程序的所述不同版本的装置;用于响应接收所述利用一驻存的可执行应用程序的一不同版本代替所述应用程序的请求而将所述应用程序的所述版本存储于一升级位置中的装置;用于检测所述驻存的可执行应用程序在一实际应用程序位置中的实际执行的装置;用于终止所述驻存的可执行应用程序的所述实际执行的装置;和用于起始在对所述升级位置和所述实际应用程序位置的一连续搜索中检测到的第一应用程序的执行的装置。
48.根据权利要求47所述的无线设备,其中所述应用程序为一扩展部分、一脚本和内容数据中的至少一者。
全文摘要
本发明揭示一种用于在一无线设备上的一软件应用程序的执行期间对所述软件应用程序进行可选升级的系统和方法。所述系统包括接收一利用一驻存的可执行应用程序的一不同版本来代替所述应用程序的请求。所述系统进一步包括检测所述驻存的可执行应用程序的实际执行。所述系统还包括经由一网络接收所述应用程序的所述不同版本。并且,所述系统包括响应检测所述驻存的可执行应用程序的所述实际执行而将所述应用程序的所述不同版本存储于一临时位置中。另外,所述系统包括终止所述驻存的可执行应用程序的所述实际执行。所述系统还包括利用存储于所述临时位置中的所述驻存的可执行应用程序的所述不同版本来覆写所述应用程序。此外,所述系统包括起始所述应用程序的所述不同版本的实际执行。
文档编号G06F9/45GK101069155SQ200480038569
公开日2007年11月7日 申请日期2004年10月28日 优先权日2003年10月29日
发明者斯蒂芬·A·斯普利格 申请人:高通股份有限公司