CN103761126B - 应用程序的升级方法和装置 - Google Patents

应用程序的升级方法和装置 Download PDF

Info

Publication number
CN103761126B
CN103761126B CN201410006861.0A CN201410006861A CN103761126B CN 103761126 B CN103761126 B CN 103761126B CN 201410006861 A CN201410006861 A CN 201410006861A CN 103761126 B CN103761126 B CN 103761126B
Authority
CN
China
Prior art keywords
application program
data
domain
application
rompaq
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
CN201410006861.0A
Other languages
English (en)
Other versions
CN103761126A (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.)
China Shenhua Energy Co Ltd
Shenhua Geological Exploration Co Ltd
Original Assignee
China Shenhua Energy Co Ltd
Shenhua Geological Exploration Co 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 China Shenhua Energy Co Ltd, Shenhua Geological Exploration Co Ltd filed Critical China Shenhua Energy Co Ltd
Priority to CN201410006861.0A priority Critical patent/CN103761126B/zh
Publication of CN103761126A publication Critical patent/CN103761126A/zh
Application granted granted Critical
Publication of CN103761126B publication Critical patent/CN103761126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种应用程序的升级方法和装置。其中,应用程序的升级方法包括:检测应用程序的升级程序,升级程序用于升级应用程序,应用程序包括结构域和数据域,其中结构域用于表示数据域内部数据之间的逻辑关系;以及当检测到升级程序时,通过升级程序升级应用程序的结构域以升级应用程序。通过本发明,达到了减少应用程序升级时间的效果。

Description

应用程序的升级方法和装置
技术领域
本发明涉及应用程序领域,具体而言,涉及一种应用程序的升级方法和装置。
背景技术
移动支付业务是由移动运营商、移动应用服务提供商和金融机构共同推出的,构建在移动运营支撑系统上的一个移动数据增值业务。手机支付产业作为一种新兴产业,其各方面都备受关注。
目前移动支付技术实现方案主要有以下几种:双界面Java Card技术,SIM Pass技术,RFID-SIM技术,近距离无线通信(Near field Communication,简称NFC)和智能手机存储卡(Secure Digital Memory Card,简称SD卡)技术,可以看出目前主流实现方案均以智能卡(Smart Card)作为应用载体,提供相关应用服务,因此Smart Card对于应用的管理显得尤为重要。
随着Smart Card的发展,传统的本地卡(Native Card)已经不能满足市场的需求,特别在多应用方面,Java Card以其独特的性能,逐步取代Native Card,成为Smart Card行业的新贵。随着加载的应用的逐步增多,Java Card的应用管理存在一定的风险,尤其是当Java Card发行后,对Java Card所加载的应用进行升级或者更替时存在巨大的风险。
目前对于Java Card的应用升级的方法存在着消耗大、费时和操作性困难等一系列缺点,主要的实现方式有两种,一是删除待升级的应用,下载新应用,即将需要升级的应用彻底删除,重新下载升级完毕的新应用,再进行相关数据重新加载;二是对JavaCard的应用进行补丁修复,即利用Java Card的应用的继承关系,重新加载一个新的应用取代旧应用。上述两种实现方式都会使得应用程序在升级过程中耗时过长。
针对现有技术中应用程序在升级过程中耗时过长的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种应用程序的升级方法和装置,以解决现有技术中应用程序在升级过程中耗时过长的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种应用程序的升级方法。根据本发明的应用程序的升级方法包括:检测应用程序的升级程序,升级程序用于升级应用程序,应用程序包括结构域和数据域,其中结构域用于表示数据域内部数据之间的逻辑关系;以及当检测到升级程序时,通过升级程序升级应用程序的结构域以升级应用程序。
进一步地,应用程序的结构域的删除权限为第一权限,应用程序的数据域的删除权限为第二权限,获取第一权限的所使用的开销小于获取第二权限的所使用的开销,其中,通过升级程序升级应用程序的结构域以升级应用程序包括:获取应用程序的第一权限;通过第一权限删除应用程序的结构域;以及加载升级程序以升级应用程序,升级程序包括结构域,升级程序的结构域用于升级应用程序的结构域。
进一步地,在检测应用程序的升级程序之前,应用程序的升级方法还包括:将应用程序的结构域与应用程序的数据域分离,应用程序的数据域包括应用初始化数据;以及存储应用程序的数据域中的应用初始化数据。
进一步地,将应用程序的结构域与应用程序的数据域分离包括:将多个应用程序中的每一个应用程序的结构域与数据域分离,其中,存储应用程序的数据域中的应用初始化数据包括:获取预先建立的数据空间;将数据空间划分为多个数据类,多个数据类中的一个数据类用于存储多个应用程序中一个应用程序的应用初始化数据;以及将多个应用程序的应用初始化数据分别存储在多个数据类中。
进一步地,应用程序为Java应用程序,Java应用程序应用于智能卡中,获取预先建立的数据空间包括:获取智能卡中预先开辟的可擦写只读内存,其中,在将多个应用程序的应用初始化数据分别存储在多个数据类中之后,升级方法还包括:建立应用程序与数据类的对应关系。
为了实现上述目的,根据本发明的另一方面,提供了一种应用程序的升级装置。根据本发明的应用程序的升级装置包括:检测单元,用于检测应用程序的升级程序,升级程序用于升级应用程序,应用程序包括结构域和数据域,其中结构域用于表示数据域内部数据之间的逻辑关系;以及升级单元,用于当检测到升级程序时,通过升级程序升级应用程序的结构域以升级应用程序。
进一步地,应用程序的结构域的删除权限为第一权限,应用程序的数据域的删除权限为第二权限,获取第一权限的所使用的开销小于获取第二权限的所使用的开销,其中,升级单元包括:第一获取模块,用于获取应用程序的第一权限;删除模块,用于通过第一权限删除应用程序的结构域;以及加载模块,用于加载升级程序以升级应用程序,升级程序包括结构域,升级程序的结构域用于升级应用程序的结构域。
进一步地,应用程序的升级装置还包括:分离单元,用于在检测应用程序的升级程序之前,将应用程序的结构域与应用程序的数据域分离,应用程序的数据域包括应用初始化数据;以及存储单元,用于存储应用程序的数据域中的应用初始化数据。
进一步地,分离单元还用于将多个应用程序中的每一个应用程序的结构域与数据域分离,其中,存储单元包括:第二获取模块,用于获取预先建立的数据空间;拆分模块,用于将数据空间划分为多个数据类,多个数据类中的一个数据类用于存储多个应用程序中一个应用程序的应用初始化数据;以及存储模块,用于将多个应用程序的应用初始化数据分别存储在多个数据类中。
进一步地,应用程序为Java应用程序,Java应用程序应用于智能卡中,第二获取模块还用于获取智能卡中预先开辟的可擦写只读内存,其中,存储单元还包括:创建模块,用于在将多个应用程序的应用初始化数据分别存储在多个数据类中之后,建立应用程序与数据类的对应关系。
通过本发明,采用应用程序的升级方法,在检测到应用程序对应的升级程序时,通过升级程序升级应用程序的结构域以对应用程序进行升级,由于在升级过程中,仅对应用程序的结构域进行升级,对应用程序的数据域不进行升级,因此在升级完应用程序的结构域之后,可以通过升级后的结构域直接调用原有的数据域进行数据处理,无需重新加载应用程序的初始化数据,从而解决了现有技术中应用程序在升级过程中耗时过长的问题,达到了减少应用程序升级时间的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明第一实施例的应用程序的升级装置的结构示意图;
图2是根据本发明实施例的应用程序的结构域的分布示意图;
图3是根据本发明第二实施例的应用程序的升级装置的结构示意图;
图4是根据本发明实施例的应用程序的结构域升级的示意图;
图5是根据本发明第三实施例的应用程序的升级装置的结构示意图;
图6是根据本发明实施例的应用程序的结构域与数据与之间的关系示意图;
图7是根据本发明实施例的应用程序的数据类的结构示意图;
图8是根据本发明第一实施例的应用程序的升级方法的流程图;
图9是根据本发明第二实施例的应用程序的升级方法的流程图;以及
图10是根据本发明第三实施例的应用程序的升级方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种应用程序的升级装置,该装置通过计算机设备实现其功能。
图1是根据本发明第一实施例的应用程序的升级装置的结构示意图。如图1所示,该应用程序的升级装置包括:检测单元10和升级单元20。
检测单元10用于检测应用程序的升级程序。
应用程序可以是任意的应用程序,可以是Java Card内部系统的驱动程序,也可以是安装在Java Card上的应用程序。应用程序可以是一个应用程序也可以是多个应用程序,例如,在Java Card上安装有多个驱动程序,检测单元10用于检测应用程序的升级程序可以是检测Java Card上每一个驱动程序是否需要升级。升级程序用于升级应用程序,升级程序用于对应用程序进行升级,检测单元10用于检测应用程序的升级程序可以是检测应用程序是否有对应的升级程序,当监测到应用程序对应的升级程序时,用该升级程序升级应用程序。
应用程序可以包括结构域和数据域,其中结构域用于表示数据域内部数据之间的逻辑关系。例如,结构域中包含有数据之间的运算逻辑,当需要对数据进行处理时,可以从数据域中调用相应的数据执行逻辑运算,在运算完成之后,将运算结果返回给数据域进行存储。应用程序的结构域和数据域可以是在将应用程序预先进行分离之后,得到的结构域和数据域。例如,当应用程序为Java Card上的应用程序时,如图2所示,该Java Card的系统中包含有6个Applet(采用Java创建的基于HTML的程序)分别为App1、App2、App3、App4、App11和App22,其中App11和App22分别继承于程序App1和App2。图2中App1 structure、App2 structure、App3 structure、App4 structure、App11 structure和App22 structure分别表示程序App1、App2、App3、App4、App11和App22对应的结构域。数据域的数据可以在Java Card中开辟相应的存储空间进行存储,以便于应用程序在使用过程中,调用应用程序对应的数据进行工作。
升级单元20用于当检测到升级程序时,通过升级程序升级应用程序的结构域以升级应用程序。
在检测到应用程序对应的升级程序时,通过升级程序升级应用程序的结构域,从而完成对应用程序的升级。数据域中可以存储有应用程序进行初始化的数据,在对应用程序进行升级时,应用程序的初始化数据不需要进行升级,因此可以通过检测得到的升级程序对应用程序的结构域进行升级。例如,当检测到图2所示的程序App11有其对应的升级程序App11new时,可以通过App11new升级App11的结构域进行升级。
根据本发明实施例,在检测到应用程序对应的升级程序时,通过升级程序升级应用程序的结构域以对应用程序进行升级,由于在升级过程中,仅对应用程序的结构域进行升级,对应用程序的数据域不进行升级,因此在升级完应用程序的结构域之后,可以通过升级后的结构域直接调用原有的数据域进行数据处理,无需重新加载应用程序的初始化数据,从而解决了现有技术中应用程序在升级过程中耗时过长的问题,达到了减少应用程序升级时间的效果。
图3是根据本发明第二实施例的应用程序的升级装置的结构示意图。该实施例的应用程序的升级装置可以作为上述实施例的应用程序的升级装置的一种优选实施方式。如图3所示,该应用程序的升级装置包括:检测单元10和升级单元20,其中,升级单元20包括第一获取模块201、删除模块202和加载模块203。检测单元10同图1所示的检测单元10功能相同,这里不做赘述。
在该实施例中,应用程序的结构域的删除权限为第一权限,应用程序的数据域的删除权限为第二权限,获取第一权限的所使用的开销小于获取第二权限的所使用的开销,第一权限可以是普通权限,第二权限可以是最高权限。结构域的删除权限和数据域的删除权限可以是预先设置的权限,如,预先将应用程序的结构域的删除权限设置为普通权限,由于数据域中包含有程序的初始化数据,一般情况下,初始化数据均为敏感数据,因此可以预先将应用程序的数据域的删除权限设置为最高权限。获取第一权限的所使用的开销小于获取第二权限的所使用的开销,即删除结构域的权限高于删除数据域的权限。
第一获取模块201用于获取应用程序的第一权限。
在检测到应用程序对应的升级程序之后,第一获取模块201获取应用程序的第一权限,例如,获取应用程序的普通权限。由于获取第一权限的所使用的开销小于获取第二权限的所使用的开销,在获取应用程序的第一权限之后,可以通过获取到的权限对应用程序的结构域进行升级,而不会影响数据域。
删除模块202用于通过第一权限删除应用程序的结构域。
在获取到应用程序的第一权限之后,由于应用程序的结构域的删除权限为第一权限,因此可以基于应用程序的第一权限删除应用程序的结构域,以便于加载升级程序以对应用程序进行升级。
加载模块203用于加载升级程序以升级应用程序。
在删除应用程序的结构域之后,加载升级程序,从而完成对升级程序的安装,用于升级对应的应用程序。其中,升级程序包括结构域,升级程序的结构域用于升级应用程序的结构域。通过升级程序的结构域完成对应用程序的结构域的升级。
具体地,如图4所示,当检测到图2所示的程序App11的升级程序App11 new时,获取应用程序的普通权限,将App11 structure进行删除,由于App11 structure为结构域,其权限为普通权限,因此可以直接获取普通权限进行应用删除,并安装升级后的结构域App11new structure。整过升级过程并没有涉及数据域,因此无需对数据域进行处理,即完成了应用升级操作。可以看到在应用升级过程中,完成的只是旧的应用删除和新应用的安装,不仅大大简化应用的升级过程,而且对于卡片资源消耗降到最低。
根据本发明实施例,通过获取应用程序的第一权限,基于该第一权限删除应用程序的结构域,并加载升级程序,从而完成应用程序的升级,由于在升级应用程序的过程中,只需要获取应用程序的第一权限,无需获取应用程序的第二权限,从而降低了在应用程序进行升级时的开销。
图5是根据本发明第三实施例的应用程序的升级装置的结构示意图。该实施例的应用程序的升级装置可以作为上述实施例的应用程序的升级装置的一种优选实施方式。如图5所示,该应用程序的升级装置包括:检测单元10、升级单元20、分离单元30和存储单元40。检测单元10和升级单元20与图1所示的检测单元10和升级单元20功能相同,这里不做赘述。
分离单元30用于在检测应用程序的升级程序之前,将应用程序的结构域与应用程序的数据域分离。
其中,应用程序的数据域包括应用初始化数据,应用程序的结构域中保存着应用程序的逻辑关系,可以对数据域中数据进行调用,并进行相应的逻辑运算。将应用程序的结构域与应用程序的数据域分离,以便于对应用程序的结构域进行升级。
存储单元40用于存储应用程序的数据域中的应用初始化数据。
将应用程序的结构域和数据域进行分离之后,可以对数据域中的应用初始化数据进行存储,当应用程序为Smart Card中的应用程序时,可以在Smart Card中专门开辟可擦式内存(E2ROM)对应用程序的应用初始化数据进行存储。
具体地,如图6所示,虚线左边所示的App1 data class为应用程序App1的数据类,虚线右边所示的App1 structure class为应用程序App1的结构域的类,其中,结构域从数据域中获取数据Get Data1,经过Caculate运算之后,得到数据Data2,存储该数据StoreData2,返回数据Data2到数据域进行存储。
优选地,分离单元30还用于将多个应用程序中的每一个应用程序的结构域与数据域分离。由于应用程序可以为多个时,分离单元30对每一个应用程序的结构域和数据域进行分离。其中存储单元40包括:第二获取模块、拆分模块和存储模块。
第二获取模块用于获取预先建立的数据空间。
数据空间可以是应用程序所处的系统中的内存空间,获取该数据空间,用于存储应用程序的数据。
拆分模块用于将数据空间划分为多个数据类,多个数据类中的一个数据类用于存储多个应用程序中一个应用程序的应用初始化数据。
在获取预先建立的数据空间之后,将数据空间划分为多个数据类,如图7所示,数据大类Class A开辟的数据空间Data Space,其中,数据类Class A1、Class A2、Class A3和Class A4等等均继承于数据大类Class A,并创建相应的空间结构,用于初始化数据的存储。
存储模块用于将多个应用程序的应用初始化数据分别存储在多个数据类中。
如图7所示,数据类Class A1、Class A2、Class A3和Class A4中每一个数据类存储相应的一个应用程序的数据。
优选地,应用程序为Java应用程序,Java应用程序应用于智能卡中,第二获取模块还用于获取智能卡中预先开辟的可擦写只读内存,其中,存储单元40还包括创建模块,该创建模块用于在将多个应用程序的应用初始化数据分别存储在多个数据类中之后,建立应用程序与数据类的对应关系。建立数据类与应用程序之间的对应关系,使得数据与应用程序之间一一对应,从而使得应用程序获取的数据都来源于其对应的数据类中。
本发明实施例还提供了一种应用程序的升级方法。该方法运行在计算机设备上。需要说明的是,本发明实施例的应用程序的升级方法可以通过本发明实施例所提供的应用程序的升级装置来执行,本发明实施例的应用程序的升级装置也可以用于执行本发明实施例所提供的应用程序的升级方法。
图8是根据本发明第一实施例的应用程序的升级方法的流程图。如图8所示,该应用程序的升级方法包括以下步骤:
步骤S101,检测应用程序的升级程序。
应用程序可以是任意的应用程序,可以是Java Card内部系统的驱动程序,也可以是安装在Java Card上的应用程序。应用程序可以是一个应用程序也可以是多个应用程序,例如,在Java Card上安装有多个驱动程序,检测单元用于检测应用程序的升级程序可以是检测Java Card上每一个驱动程序是否需要升级。升级程序用于升级应用程序,升级程序用于对应用程序进行升级,检测单元用于检测应用程序的升级程序可以是检测应用程序是否有对应的升级程序,当监测到应用程序对应的升级程序时,用该升级程序升级应用程序。
应用程序可以包括结构域和数据域,其中结构域用于表示数据域内部数据之间的逻辑关系。例如,结构域中包含有数据之间的运算逻辑,当需要对数据进行处理时,可以从数据域中调用相应的数据执行逻辑运算,在运算完成之后,将运算结果返回给数据域进行存储。应用程序的结构域和数据域可以是在将应用程序预先进行分离之后,得到的结构域和数据域。例如,当应用程序为Java Card上的应用程序时,如图2所示,该Java Card的系统中包含有6个Applet(采用Java创建的基于HTML的程序)分别为App1、App2、App3、App4、App11和App22,其中App11和App22分别继承于程序App1和App2。图2中App1 structure、App2 structure、App3 structure、App4 structure、App11 structure和App22 structure分别表示程序App1、App2、App3、App4、App11和App22对应的结构域。数据域的数据可以在Java Card中开辟相应的存储空间进行存储,以便于应用程序在使用过程中,调用应用程序对应的数据进行工作。
步骤S102,当检测到升级程序时,通过升级程序升级应用程序的结构域以升级应用程序。
在检测到应用程序对应的升级程序时,通过升级程序升级应用程序的结构域,从而完成对应用程序的升级。数据域中可以存储有应用程序进行初始化的数据,在对应用程序进行升级时,应用程序的初始化数据不需要进行升级,因此可以通过检测得到的升级程序对应用程序的结构域进行升级。例如,当检测到图2所示的程序App11有其对应的升级程序App11new时,可以通过App11new升级App11的结构域进行升级。
根据本发明实施例,在检测到应用程序对应的升级程序时,通过升级程序升级应用程序的结构域以对应用程序进行升级,由于在升级过程中,仅对应用程序的结构域进行升级,对应用程序的数据域不进行升级,因此在升级完应用程序的结构域之后,可以通过升级后的结构域直接调用原有的数据域进行数据处理,无需重新加载应用程序的初始化数据,从而解决了现有技术中应用程序在升级过程中耗时过长的问题,达到了减少应用程序升级时间的效果。
图9是根据本发明第二实施例的应用程序的升级方法的流程图。该实施例的应用程序的升级方法可以作为上述实施例的应用程序的升级方法的一种优选实施方式。
在该实施例中,应用程序的结构域的删除权限为第一权限,应用程序的数据域的删除权限为第二权限,获取第一权限的所使用的开销小于获取第二权限的所使用的开销,第一权限可以是普通权限,第二权限可以是最高权限。结构域的删除权限和数据域的删除权限可以是预先设置的权限,如,预先将应用程序的结构域的删除权限设置为普通权限,由于数据域中包含有程序的初始化数据,一般情况下,初始化数据均为敏感数据,因此可以预先将应用程序的数据域的删除权限设置为最高权限。获取第一权限的所使用的开销小于获取第二权限的所使用的开销,即删除结构域的权限高于删除数据域的权限。
如图9所示,该应用程序的升级方法包括以下步骤:
步骤S201,检测应用程序的升级程序。
应用程序可以是任意的应用程序,可以是Java Card内部系统的驱动程序,也可以是安装在Java Card上的应用程序。应用程序可以是一个应用程序也可以是多个应用程序,例如,在Java Card上安装有多个驱动程序,检测单元用于检测应用程序的升级程序可以是检测Java Card上每一个驱动程序是否需要升级。升级程序用于升级应用程序,升级程序用于对应用程序进行升级,检测单元用于检测应用程序的升级程序可以是检测应用程序是否有对应的升级程序,当监测到应用程序对应的升级程序时,用该升级程序升级应用程序。
应用程序可以包括结构域和数据域,其中结构域用于表示数据域内部数据之间的逻辑关系。例如,结构域中包含有数据之间的运算逻辑,当需要对数据进行处理时,可以从数据域中调用相应的数据执行逻辑运算,在运算完成之后,将运算结果返回给数据域进行存储。应用程序的结构域和数据域可以是在将应用程序预先进行分离之后,得到的结构域和数据域。例如,当应用程序为Java Card上的应用程序时,如图2所示,该Java Card的系统中包含有6个Applet(采用Java创建的基于HTML的程序)分别为App1、App2、App3、App4、App11和App22,其中App11和App22分别继承于程序App1和App2。图2中App1 structure、App2 structure、App3 structure、App4 structure、App11 structure和App22 structure分别表示程序App1、App2、App3、App4、App11和App22对应的结构域。数据域的数据可以在Java Card中开辟相应的存储空间进行存储,以便于应用程序在使用过程中,调用应用程序对应的数据进行工作。
步骤S202,获取应用程序的第一权限。
在检测到应用程序对应的升级程序之后,第一获取模块获取应用程序的第一权限,例如,获取应用程序的普通权限。由于获取第一权限的所使用的开销小于获取第二权限的所使用的开销,在获取应用程序的第一权限之后,可以通过获取到的权限对应用程序的结构域进行升级,而不会影响数据域。
步骤S203,通过第一权限删除应用程序的结构域。
在获取到应用程序的第一权限之后,由于应用程序的结构域的删除权限为第一权限,因此可以基于应用程序的第一权限删除应用程序的结构域,以便于加载升级程序以对应用程序进行升级。
步骤S204,加载升级程序以升级应用程序,升级程序包括结构域,升级程序的结构域用于升级应用程序的结构域。
在删除应用程序的结构域之后,加载升级程序,从而完成对升级程序的安装,用于升级对应的应用程序。其中,升级程序包括结构域,升级程序的结构域用于升级应用程序的结构域。通过升级程序的结构域完成对应用程序的结构域的升级。
具体地,如图4所示,当检测到图2所示的程序App11的升级程序App11new时,获取应用程序的普通权限,将App11 structure进行删除,由于App11 structure为结构域,其权限为普通权限,因此可以直接获取普通权限进行应用删除,并安装升级后的结构域App11new structure。整过升级过程并没有涉及数据域,因此无需对数据域进行处理,即完成了应用升级操作。可以看到在应用升级过程中,完成的只是旧的应用删除和新应用的安装,不仅大大简化应用的升级过程,而且对于卡片资源消耗降到最低。
根据本发明实施例,通过获取应用程序的第一权限,基于该第一权限删除应用程序的结构域,并加载升级程序,从而完成应用程序的升级,由于在升级应用程序的过程中,只需要获取应用程序的第一权限,无需获取应用程序的第二权限,从而降低了在应用程序进行升级时的开销。
图10是根据本发明第三实施例的应用程序的升级方法的流程图。该实施例的应用程序的升级方法可以作为上述实施例的应用程序的升级方法的一种优选实施方式。如图10所示,该应用程序的升级方法包括以下步骤:
步骤S301,将应用程序的结构域与应用程序的数据域分离。
其中,应用程序的数据域包括应用初始化数据,应用程序的结构域中保存着应用程序的逻辑关系,可以对数据域中数据进行调用,并进行相应的逻辑运算。将应用程序的结构域与应用程序的数据域分离,以便于对应用程序的结构域进行升级。
步骤S302,存储应用程序的数据域中的应用初始化数据。
将应用程序的结构域和数据域进行分离之后,可以对数据域中的应用初始化数据进行存储,当应用程序为Smart Card中的应用程序时,可以在Smart Card中专门开辟可擦式内存(E2ROM)对应用程序的应用初始化数据进行存储。
具体地,如图6所示,虚线左边所示的App1 data class为应用程序App1的数据类,虚线右边所示的App1 structure class为应用程序App1的结构域的类,其中,结构域从数据域中获取数据Get Data1,经过Caculate运算之后,得到数据Data2,存储该数据StoreData2,返回数据Data2到数据域进行存储。
步骤S303,检测应用程序的升级程序。
应用程序可以是任意的应用程序,可以是Java Card内部系统的驱动程序,也可以是安装在Java Card上的应用程序。应用程序可以是一个应用程序也可以是多个应用程序,例如,在Java Card上安装有多个驱动程序,检测单元用于检测应用程序的升级程序可以是检测Java Card上每一个驱动程序是否需要升级。升级程序用于升级应用程序,升级程序用于对应用程序进行升级,检测单元用于检测应用程序的升级程序可以是检测应用程序是否有对应的升级程序,当监测到应用程序对应的升级程序时,用该升级程序升级应用程序。
应用程序可以包括结构域和数据域,其中结构域用于表示数据域内部数据之间的逻辑关系。例如,结构域中包含有数据之间的运算逻辑,当需要对数据进行处理时,可以从数据域中调用相应的数据执行逻辑运算,在运算完成之后,将运算结果返回给数据域进行存储。应用程序的结构域和数据域可以是在将应用程序预先进行分离之后,得到的结构域和数据域。例如,当应用程序为Java Card上的应用程序时,如图2所示,该Java Card的系统中包含有6个Applet(采用Java创建的基于HTML的程序)分别为App1、App2、App3、App4、App11和App22,其中App11和App22分别继承于程序App1和App2。图2中App1 structure、App2 structure、App3 structure、App4 structure、App11 structure和App22 structure分别表示程序App1、App2、App3、App4、App11和App22对应的结构域。数据域的数据可以在Java Card中开辟相应的存储空间进行存储,以便于应用程序在使用过程中,调用应用程序对应的数据进行工作。
步骤S304,当检测到升级程序时,通过升级程序升级应用程序的结构域以升级应用程序。
在检测到应用程序对应的升级程序时,通过升级程序升级应用程序的结构域,从而完成对应用程序的升级。数据域中可以存储有应用程序进行初始化的数据,在对应用程序进行升级时,应用程序的初始化数据不需要进行升级,因此可以通过检测得到的升级程序对应用程序的结构域进行升级。例如,当检测到图2所示的程序App11有其对应的升级程序App11new时,可以通过App11new升级App11的结构域进行升级。
优选地,步骤S301包括:步骤S3011,将多个应用程序中的每一个应用程序的结构域与数据域分离,由于应用程序可以为多个时,分离单元对每一个应用程序的结构域和数据域进行分离。其中,步骤S302包括以下步骤:
步骤S3021,获取预先建立的数据空间。
数据空间可以是应用程序所处的系统中的内存空间,获取该数据空间,用于存储应用程序的数据。
步骤S3022,将数据空间划分为多个数据类,多个数据类中的一个数据类用于存储多个应用程序中一个应用程序的应用初始化数据。
在获取预先建立的数据空间之后,将数据空间划分为多个数据类,如图7所示,数据大类Class A开辟的数据空间Data Space,其中,数据类Class A1、Class A2、Class A3和Class A4等等均继承于数据大类Class A,并创建相应的空间结构,用于初始化数据的存储。
步骤S3023,将多个应用程序的应用初始化数据分别存储在多个数据类中。
如图7所示,数据类Class A1、Class A2、Class A3和Class A4中每一个数据类存储相应的一个应用程序的数据。
优选地,应用程序为Java应用程序,Java应用程序应用于智能卡中,步骤S3021可以是获取智能卡中预先开辟的可擦写只读内存,其中,在步骤S3023之后,升级方法还包括:步骤S3024,建立应用程序与数据类的对应关系。建立数据类与应用程序之间的对应关系,使得数据与应用程序之间一一对应,从而使得应用程序获取的数据都来源于其对应的数据类中。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种应用程序的升级方法,其特征在于,包括:
检测应用程序的升级程序,所述升级程序用于升级所述应用程序,所述应用程序包括结构域和数据域,其中所述结构域用于表示所述数据域内部数据之间的逻辑关系,所述数据域用于存储从所述数据域中调用相应的数据执行逻辑运算得到的运算结果;以及
当检测到所述升级程序时,通过所述升级程序仅升级所述应用程序的结构域以升级所述应用程序。
2.根据权利要求1所述的应用程序的升级方法,其特征在于,所述应用程序的结构域的删除权限为第一权限,所述应用程序的数据域的删除权限为第二权限,获取所述第一权限的所使用的开销小于获取所述第二权限的所使用的开销,其中,通过所述升级程序升级所述应用程序的结构域以升级所述应用程序包括:
获取所述应用程序的第一权限;
通过所述第一权限删除所述应用程序的结构域;以及
加载所述升级程序以升级所述应用程序,所述升级程序包括结构域,所述升级程序的结构域用于升级所述应用程序的结构域。
3.根据权利要求1所述的应用程序的升级方法,其特征在于,在检测应用程序的升级程序之前,所述应用程序的升级方法还包括:
将所述应用程序的结构域与所述应用程序的数据域分离,所述应用程序的数据域包括应用初始化数据;以及
存储所述应用程序的数据域中的应用初始化数据。
4.根据权利要求3所述的应用程序的升级方法,其特征在于,将所述应用程序的结构域与所述应用程序的数据域分离包括:将多个所述应用程序中的每一个所述应用程序的结构域与数据域分离,其中,存储所述应用程序的数据域中的应用初始化数据包括:
获取预先建立的数据空间;
将所述数据空间划分为多个数据类,所述多个数据类中的一个数据类用于存储多个所述应用程序中一个所述应用程序的应用初始化数据;以及
将多个所述应用程序的应用初始化数据分别存储在多个所述数据类中。
5.根据权利要求4所述的应用程序的升级方法,其特征在于,所述应用程序为Java应用程序,所述Java应用程序应用于智能卡中,获取预先建立的数据空间包括:获取智能卡中预先开辟的可擦写只读内存,其中,在将多个所述应用程序的应用初始化数据分别存储在多个所述数据类中之后,所述升级方法还包括:
建立所述应用程序与所述数据类的对应关系。
6.一种应用程序的升级装置,其特征在于,包括:
检测单元,用于检测应用程序的升级程序,所述升级程序用于升级所述应用程序,所述应用程序包括结构域和数据域,其中所述结构域用于表示所述数据域内部数据之间的逻辑关系,所述数据域用于存储从所述数据域中调用相应的数据执行逻辑运算得到的运算结果;以及
升级单元,用于当检测到所述升级程序时,通过所述升级程序仅升级所述应用程序的结构域以升级所述应用程序。
7.根据权利要求6所述的应用程序的升级装置,其特征在于,所述应用程序的结构域的删除权限为第一权限,所述应用程序的数据域的删除权限为第二权限,获取所述第一权限的所使用的开销小于获取所述第二权限的所使用的开销,其中,所述升级单元包括:
第一获取模块,用于获取所述应用程序的第一权限;
删除模块,用于通过所述第一权限删除所述应用程序的结构域;以及
加载模块,用于加载所述升级程序以升级所述应用程序,所述升级程序包括结构域,所述升级程序的结构域用于升级所述应用程序的结构域。
8.根据权利要求6所述的应用程序的升级装置,其特征在于,所述应用程序的升级装置还包括:
分离单元,用于在检测应用程序的升级程序之前,将所述应用程序的结构域与所述应用程序的数据域分离,所述应用程序的数据域包括应用初始化数据;以及
存储单元,用于存储所述应用程序的数据域中的应用初始化数据。
9.根据权利要求8所述的应用程序的升级装置,其特征在于,所述分离单元还用于将多个所述应用程序中的每一个所述应用程序的结构域与数据域分离,其中,所述存储单元包括:
第二获取模块,用于获取预先建立的数据空间;
拆分模块,用于将所述数据空间划分为多个数据类,所述多个数据类中的一个数据类用于存储多个所述应用程序中一个所述应用程序的应用初始化数据;以及
存储模块,用于将多个所述应用程序的应用初始化数据分别存储在多个所述数据类中。
10.根据权利要求9所述的应用程序的升级装置,其特征在于,所述应用程序为Java应用程序,所述Java应用程序应用于智能卡中,所述第二获取模块还用于获取智能卡中预先开辟的可擦写只读内存,其中,所述存储单元还包括:
创建模块,用于在将多个所述应用程序的应用初始化数据分别存储在多个所述数据类中之后,建立所述应用程序与所述数据类的对应关系。
CN201410006861.0A 2014-01-07 2014-01-07 应用程序的升级方法和装置 Active CN103761126B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410006861.0A CN103761126B (zh) 2014-01-07 2014-01-07 应用程序的升级方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410006861.0A CN103761126B (zh) 2014-01-07 2014-01-07 应用程序的升级方法和装置

Publications (2)

Publication Number Publication Date
CN103761126A CN103761126A (zh) 2014-04-30
CN103761126B true CN103761126B (zh) 2017-03-15

Family

ID=50528370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410006861.0A Active CN103761126B (zh) 2014-01-07 2014-01-07 应用程序的升级方法和装置

Country Status (1)

Country Link
CN (1) CN103761126B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331275B (zh) * 2014-08-26 2018-10-12 大唐微电子技术有限公司 一种Java卡及其应用打补丁的方法
CN105630516A (zh) * 2014-10-28 2016-06-01 苏州融卡智能科技有限公司 适用于java卡上应用软件的补丁升级方法
CN105786641B (zh) * 2014-12-17 2019-03-01 北京数码视讯科技股份有限公司 一种备份恢复智能卡应用数据的方法、设备及智能卡
CN105302666A (zh) * 2015-10-13 2016-02-03 东信和平科技股份有限公司 一种基于java card的应用内部数据备份与恢复方法
CN105867947B (zh) * 2016-04-25 2019-03-26 青岛海信电器股份有限公司 预置应用程序升级后的数据处理方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1346087A (zh) * 2000-09-26 2002-04-24 开碁数位科技股份有限公司 一种可动态载入一程序逻辑于一应用程序中的方法及系统
CN1770108A (zh) * 2004-11-05 2006-05-10 华为技术有限公司 软件在线升级的方法
US7308433B1 (en) * 1998-01-23 2007-12-11 Fujitsu Limited Application managing method and information processing apparatus using the method
CN101174222A (zh) * 2006-10-31 2008-05-07 中兴通讯股份有限公司 数据版本升级方法
CN101297284A (zh) * 2005-10-31 2008-10-29 微软公司 无需重新引导的显示驱动程序升级
CN101655801A (zh) * 2009-09-11 2010-02-24 华为技术有限公司 驱动软件升级的方法及装置
CN102243587A (zh) * 2010-05-14 2011-11-16 康佳集团股份有限公司 嵌入式系统中对rom程序的升级方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253228B1 (en) * 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
WO2004095352A1 (en) * 2003-04-22 2004-11-04 Visa International Service Association Modular smart card upgrade for existing magnetic stripe card terminals
CN101299190B (zh) * 2008-06-30 2014-09-03 深圳市同洲电子股份有限公司 一种只读文件系统下的软件升级方法、系统及嵌入式设备
CN102214112A (zh) * 2011-06-03 2011-10-12 无锡商埃曲信息科技有限公司 一种机顶盒升级方法和系统
CN102567020B (zh) * 2011-12-26 2015-02-25 大唐微电子技术有限公司 一种智能卡应用的实现方法及系统
CN103309696B (zh) * 2012-03-15 2017-02-08 中国移动通信集团公司 一种Java卡扩展库更新方法、装置和Java卡

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308433B1 (en) * 1998-01-23 2007-12-11 Fujitsu Limited Application managing method and information processing apparatus using the method
CN1346087A (zh) * 2000-09-26 2002-04-24 开碁数位科技股份有限公司 一种可动态载入一程序逻辑于一应用程序中的方法及系统
CN1770108A (zh) * 2004-11-05 2006-05-10 华为技术有限公司 软件在线升级的方法
CN101297284A (zh) * 2005-10-31 2008-10-29 微软公司 无需重新引导的显示驱动程序升级
CN101174222A (zh) * 2006-10-31 2008-05-07 中兴通讯股份有限公司 数据版本升级方法
CN101655801A (zh) * 2009-09-11 2010-02-24 华为技术有限公司 驱动软件升级的方法及装置
CN102243587A (zh) * 2010-05-14 2011-11-16 康佳集团股份有限公司 嵌入式系统中对rom程序的升级方法

Also Published As

Publication number Publication date
CN103761126A (zh) 2014-04-30

Similar Documents

Publication Publication Date Title
CN103761126B (zh) 应用程序的升级方法和装置
CN109034814B (zh) 基于以太坊虚拟机的智能合约处理方法和装置
CN107580083A (zh) 一种容器ip地址分配的方法和系统
CN104750528B (zh) 一种Android程序中的组件管理方法和装置
CN105159718B (zh) 固件升级方法及装置
CN106055979A (zh) 内核修复方法和装置
CN105404524A (zh) Java应用中的类加载隔离方法及装置
CN105930208A (zh) 一种线程调度方法及线程调度装置
CN105335187A (zh) 一种应用的处理方法及装置
CN105786538A (zh) 基于安卓系统的软件升级方法和装置
CN104615448A (zh) 一种软件渠道包更新方法、管理方法及设备
CN104679532A (zh) 内核模块加载方法和装置
CN106357791A (zh) 业务处理方法、装置及系统
CN104572054A (zh) 一种能力调用方法和设备
CN107391155A (zh) 一种打包方法及装置
CN104793998A (zh) 终端系统资源管理方法及装置
CN104765624A (zh) 虚拟机应用程序的更新处理方法和装置
CN108334360A (zh) 应用程序动态加载的方法、装置、存储介质和计算机设备
CN109032685A (zh) 一种加速安卓系统启动的方法及终端
CN109104292B (zh) 更新部署处理方法、相关设备和计算机可读存储介质
CN106325923A (zh) 功能插件的管理方法及装置
CN109933407B (zh) 区块链dapp虚拟机、数据处理方法和计算设备
CN111190866A (zh) 应用文档显示方法、装置、设备及存储介质
CN107193484A (zh) 用于数据存储服务的方法和装置
CN106933604A (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