一种增量更新方法、服务器及智能卡与流程

文档序号:11154464阅读:227来源:国知局
一种增量更新方法、服务器及智能卡与制造工艺
本发明涉及智能卡
技术领域
,尤其涉及一种增量更新方法、服务器及智能卡。
背景技术
:随着智能卡的普及,移动支付场景的不断丰富,基于智能卡上多应用平台不断发展,用户手中卡片除了可以完成日常的现金业务外,还可参与其他线上线下的优惠活动、积分、生活缴费、交通出行等多途径多类别的消费活动,但是伴随着商户活动的不断变化,用户终端与智能卡中的应用需要不断更新。现有技术对智能卡的升级更新方法主要是用户可通过智能终端连接远程可信任服务平台并访问智能卡进行升级,智能终端通过远程可信任服务平台进行鉴权后读取当前应用程序用户个人化数据,并上传至服务器备份,删除当前应用程序版本,重新最新版本下载应用程序并安装更新后,将个人化应用程序数据转化为个人化脚本写入应用。现有技术的方法,虽然能够实现空中升级,但每次更新需要将原有应用程序及个人化应用数据删除,更新需要重新下载完整的应用程序文件,增加网络带宽负载,因而消耗一些不必要的流量,并且整个更新过程耗时较长。综上所述,现有技术存在对智能卡进行升级时需要对原有应用程序删除,然后重新下载最新版本的应用程序进行安装,因而造成流量浪费的问题。技术实现要素:本发明提供一种增量更新方法、服务器及智能卡,用以解决现有技术中存在的对智能卡进行升级时造成流量浪费的问题。一方面,本申请实施例提供的一种增量更新方法,包括:服务器在确定智能卡需要进行应用程序升级后,根据新版本应用程序和所述智能卡中的旧版本应用程序,确定用于更新组件的组件更新信息;所述服务器根据确定的所述组件更新信息,生成增量更新文件;所述服务器将所述增量更新文件发送至所述智能卡,以使所述智能卡根据所述增量更新文件对所述旧版本应用程序中的组件进行升级。本申请实施例提供一种增量更新方法及服务器,该方法包括:服务器在确定智能卡需要进行应用程序升级后,根据新版本应用程序和智能卡中的旧版本应用程序,确定用于更新组件的组件更新信息,然后根据组件更新信息生成增量更新文件并发送至智能卡,以使智能卡根据增量更新文件对旧版本应用程序中的组件进行升级,该方法中智能卡进行应用程序升级时,服务器只是根据新旧版本应用程序中组件之间的差异生成增量更新文件,然后发送给智能卡,使得智能卡根据该增量更新文件就可以完成对智能卡的更新,而无需将新版本的整个应用程序发送给智能卡进行升级,因此节约了系统资源,提高了更新效率。另一方面,本申请实施例提供的一种服务器,包括:确定模块,用于在确定智能卡需要进行应用程序升级后,根据新版本应用程序和所述智能卡中的旧版本应用程序,确定用于更新组件的组件更新信息;生成模块,用于根据确定的所述组件更新信息,生成增量更新文件;发送模块,用于将所述增量更新文件发送至所述智能卡,以使所述智能卡根据所述增量更新文件对所述旧版本应用程序中的组件进行升级。一方面,本申请实施例提供的一种增量更新方法,包括:智能卡接收服务器发送的增量更新文件;所述智能卡根据所述增量更新文件,确定需要更新的旧版本应用程序;所述智能卡根据所述增量更新文件中的组件更新信息,对确定的所述旧版本应用程序中对应的组件进行升级。本申请实施例提供一种增量更新方法及智能卡,该方法包括:智能卡接收 服务器发送的增量更新文件,然后根据增量更新文件确定需要更新的旧版本应用程序,以及根据增量更新文件中的组件更新信息,对确定的旧版本应用程序中对应的组件进行升级。该方法智能卡在进行应用程序升级时,只需根据接收到的服务器发送来的增量更新文件中的组件更新信息对旧版本应用程序中对应的组件进行升级,而无需对整个旧版本应用程序进行更新,因而在智能卡进行升级时不需要下载新版本应用程序的完整文件,节约了流量。另一方面,本申请实施例提供的一种智能卡,包括:接收模块,用于接收服务器发送的增量更新文件;确定模块,用于根据所述增量更新文件,确定需要更新的旧版本应用程序;升级模块,用于根据所述增量更新文件中的组件更新信息,对确定的所述旧版本应用程序中对应的组件进行升级。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的系统架构图;图2为本申请实施例提供的JAVA类型智能卡组成结构示意图;图3为本申请实施例提供的一种增量更新方法流程图;图4为本申请实施例提供的一种增量更新方法流程图;图5为本申请实施例提供的一种增量更新方法完整流程图;图6为本申请实施例提供的一种服务器;图7为本申请实施例提供的一种智能卡。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。如图1所示,为本申请实施例所适用的一种系统架构,基于该系统架构可实现对智能卡进行增量更新。本申请实施例提供的增量更新系统架构中智能卡101、终端102以及服务器103。智能卡101从不同使用场合可以分为:校园智能卡、小区智能卡、办公大楼智能卡、企业智能卡、酒店智能卡等,智能卡可用于如开启房门、就餐、购物、娱乐、会议、停车、巡更、办公、收费服务等各项活动,如图2所示,为JAVA类型智能卡组成结构示意图,其中,在第三方应用区域包含多个应用程序,每个应用程序包含应用数据和组件信息;终端102可以是手机、平板电脑、笔记本电脑等具有无线通信功能的电子设备;服务器103可以是计算机等具有存储功能的网络设备,服务器103可以是一个独立的设备,也可以是多个服务器所形成的服务器集群,优选地,服务器103可以采用云计算技术进行信息处理或对智能卡101进行控制。智能卡101,终端102,服务器103均具有无线通信功能。终端102可以通过INTERNET网络与服务器103进行通信,也可以通过GSM(GlobalSystemforMobileCommunications,全球移动通信系统)、LTE(longtermevolution,长期演进)系统等移动通信系统与服务器103进行通信。智能卡101与终端102之间,也可以通过无线局域网、GSM、LTE系统等方式进行通信。智能卡101与终端102之间建立关联关系后,终端102可向该智能卡101发送控制指令,以及终端102可向服务器103发送请求,服务器103可向该终端102发送控制指令。下面结合说明书附图对本申请实施例作进一步详细描述。如图3所示,为本申请实施例提供的一种增量更新方法流程图,该方法由服务器执行,包括:步骤301、服务器在确定智能卡需要进行应用程序升级后,根据新版本应用程序和智能卡中的旧版本应用程序,确定用于更新组件的组件更新信息;步骤302、服务器根据确定的组件更新信息,生成增量更新文件;步骤303、服务器将增量更新文件发送至智能卡,以使智能卡根据增量更新文件对旧版本应用程序中的组件进行升级。在步骤301之前,终端与智能卡、服务器通过网络建立连接之后,终端可自动获取智能卡中的应用程序的当前版本号以及该应用程序在服务器中的最新版本号,终端在对该应用程序的新旧版本进行比较后进行判断,若两个版本一样,表明智能卡中存储的该应用程序已经是最新版本了,则终端不发送任何指令给智能卡和服务器;若终端判断智能卡中存储的应用程序版本低于服务器中存储的智能卡的版本,则终端可以提醒用户是否需要升级,在收到用户确认需要升级的消息后向服务器发送应用程序升级请求,或者是终端判断智能卡中存储的应用程序版本低于服务器中存储的智能卡的版本后直接向服务器发送应用程序升级请求,其中,在发送给服务器的应用程序升级请求中至少包含有需要升级的应用程序的标识以及应用程序的当前版本。上述步骤301中,服务器中存储有一个应用程序的所有版本,因此服务器在接收到终端发送的升级请求后,可根据该升级请求中的应用程序标识和应用程序版本号确定出需要更新的应用程序以及该应用程序的旧版本号,然后服务器将服务器中存储的该应用程序的旧版本和新版本进行比较,以确定应用程序的新旧版本的组件在哪些地方发生了更新,然后根据发生了更新的位置,更新的内容等信息生成用于更新组件的组件更新信息,其中,对于如何确定新旧版本的应用程序中的组件之间的差异有很多种方式。可选的,所述服务器根据新版本应用程序和所述智能卡中的旧版本应用程 序,确定需要更新的组件信息,包括:针对一个组件,所述服务器将所述旧版本应用程序中的组件与所述新版本应用程序的组件中相同位置的组件单元进行比较,确定组件中不同的组件单元;所述服务器根据确定的每个不同的组件单元,生成每个组件对应的组件更新信息。该方法通过比对新旧版本应用程序中的组件在相同位置的组件单元,以确定组件中不同的组件单元,然后根据确定的每个不同的组件单元,生成每个组件对应的组件更新信息,因而可确定出新旧版本应用程序中每个组件由差异的部分,该方法简单,且计算复杂度低,有利于节约系统资源。下面举例说明,比如智能卡中的应用程序A中有3个组件,分别为组件1,组件2,组件3,每个组件都是由多个组件单元构成,该组件单元可以是根据某种方式将组件进行划分的最小单元,例如可以是十进制表示的一个数,二进制表示的一个数,或者是十六机制表示的一个数等。本申请实施例中将组件以十六进制来表示,那么每一个十六进制的数值即为一个组件单元,如表1所示,为智能卡中的旧版本应用程序A中的组件1和服务器中存储的新版本应用程序A中的组件1分别以十六进制来表示。索引012345678旧版本0x100x400x020xFE0x240x5A0xC1新版本0x100x400x050xFE0x240x5A0xC10x850x22表1旧版本应用程序A中的组件1和新版本应用程序A的组件1的对比从表1中可看出,旧版本应用程序A的组件1一共由7个组件单元构成,分别是0x10,0x40,0x02,0xFE,0x24,0x5A,0xC1;新版本应用程序A的组件1一共由9个组件单元构成,分别是0x10,0x40,0x05,0xFE,0x24,0x5A,0xC1,0x85,0x22。新旧版本应用程序A中的组件1之间的区别在于,索引位置2,7,8处的组件单元发生了变化。因而,可通过每个组件在旧版本应用程序和新版本应用程序中的区别,来生成每个组件对应的组件更新信息。可选的,每个组件对应的组件更新信息包括至少一个更改信息;所述更改信息包括:组件标识、更改模式、需要更改的组件单元的数量、需要更改的第一个组件单元的组件偏移量以及需要更改的每个组件单元的内容。上述方法,针对组件在新旧版本应用程序中的区别,对于每一个组件单元或者多个组件单元发生的变化,生成一个更改信息,则每个组件在新旧版本之间的区别,即组件更新信息,可通过至少一个更改信息来表示,从而可通过一个组件的所有更改信息来表示该组件在新旧版本应用程序间发生的变化,进而基于每个组件对应的组件更新信息,可表示新旧版本应用程序之间的区别。对于一个更改信息,组件标识用于指示该更改信息表示哪个组件,更改模式用于指示新旧版本应用程序中的组件发生变化的类型,需要更改的组件单元的数量用于指示该更改信息中发生变化的组件单元的数量,需要更改的第一个组件单元的组件偏移量用于指示该更改信息在旧版本组件中相对于组件头的偏移位置,从而可以找到发生变化的位置,需要更改的每个组件单元的内容用于表示具体发生变化的内容。可选的,所述更改模式包括下列中的一种:新增组件单元、删除组件单元和替换组件单元。如表2所示,为一条更改信息所包含的信息。表2一条更改信息所包含的信息下面以上述实例中的表1来说明更改信息如何表示,表1表示了为组件1在新旧版本应用程序之间的区别,分别在索引位置2,7,8处的组件单元发生了变化。因而可判断出组件1的组件更新信息一共包含两条更改信息,分别如下:组件1替换组件单元120x05组件1新增组件单元270x850x22表3组件1对应的组件更新信息由表3可见,组件1对应的组件更新信息一共包含了两条更改信息,第一条更改信息指示了需要对旧版本应用程序中的组件1中相对组件头偏移量为2的位置之后长度为1的组件单元,即0x02,替换为0x05;第二条更改信息指示了需要对旧版本应用程序中的组件1中相对组件头偏移量为7的位置之后增加2个组件单元,即0x85,0x22。再比如新版本应用程序A中的组件2删除了部分组件单元,如表4所示。索引0123456旧版本0x900xF20xEE0xDD0x880x5A0xC1新版本0x900xF20xEE0xDD0x88表4旧版本应用程序A中的组件2和新版本应用程序A的组件2的对比由上表可看出旧新版本应用程序A中的组件2删除了组件单元0x5A和0xC1,因此可确定组件2对应的组件更新信息,如表5所示。组件2删除组件单元250x5A0xC1表5组件2对应的组件更新信息再比如新版本应用程序A中的组件3删除了部分组件单元,如表6所示。索引012345678旧版本0x120x920x450xA70xE40x3A0x910x270x1E新版本0x120x920xA70xE40x3A0x910x27表6旧版本应用程序A中的组件3和新版本应用程序A的组件3的对比表6中,新版本的应用程序A中的组件3相对于旧版本的应用程序A的组件3在索引位置2处删除了0x45,以及在所以位置8删除了0x1E。服务器在判断组件的更改模式时,当服务器确定旧版本应用程序中的组件 与新版本应用程序中的组件的组件单元数量不相同时,则确定所述更改模式是否为删除组件单元模式,若是,则将所述更改模式设置为删除组件单元模式。具体地,如表6所示,服务器判断组件3的更改模式是否为删除组件单元模式,首先比较旧版本应用程序中的组件与新版本应用程序中的组件的组件单元数量不相同时,则确定组件3中不相同的组件单元位置为索引位置2,然后服务器继续在旧版本应用程序的组件3中继续往后查找,若找到有连续组件单元序列与新版本中索引位置2之后的连续组件单元序列相同,则表明旧版本组件单元索引位置2处有组件单元被删除。在比较过程中,还可以在确定旧版本应用程序的组件3中有组件单元被删除时,将新版本应用程序的组件3相应位置的组件单元往后移动,需要声明的是,此处不是真正的对新版本应用程序的组件单元进行移动,而可以是将要比较的组件调取到内存进行比较时的行为。例如,将表6中新版本应用程序组件3索引位置2处的0xA7往后移动一个组件单元位置后,如表7所示。索引012345678旧版本0x120x920x450xA70xE40x3A0x910x270x1E新版本0x120x920xA70xE40x3A0x910x27表7新版本应用程序A中的组件3相应组件单元移动后的对比服务器基于表7,可确定组件单元3的组件更新信息如表8所示。组件3删除组件单元120x45组件3删除组件单元180x1E表8组件3对应的组件更新信息由此可见,一个组件对应的组件更新信息的所有更改信息的全体可以指示一个组件在新旧版本应用程序之间的区别,进而,可基于一个组件对应的组件更新信息,即可实现组件的更新。在步骤302中,服务器根据确定出的所有组件的组件更新信息,再加上其它一些必要的信息和相关参数,例如指示哪个应用程序需要更新的应用程序标识等,可生成增量更新文件。在步骤303中,服务器将增量更新文件发送至智能卡,以使智能卡根据增量更新文件对旧版本应用程序中的组件进行升级。智能卡收到增量更新文件之后,即可基于增量更新文件中每个组件的组件更新信息来实现组件更新。可选的,服务器将增量更新文件发送至智能卡之后,还包括:服务器接收智能卡在旧版本应用程序中的组件升级之后发送的组件校验和;若所述新版本应用程序中的组件校验和与收到的组件校验和不同,则服务器将新版本应用程序发送给智能卡,以使智能卡根据新版本应用程序对旧版本应用程序进行升级。上述方法,智能卡在接收到增量更新文件之后开始对旧版本应用程序进行升级,升级完成之后生成组件校验和,该组件校验和可以是针对每个组件生成一个组件校验和,也可以是针对所有的组件最终生成一个组件校验和,然后将组件校验和发送至服务器,服务器接收到组件校验和之后,对存储在服务器的新版本应用程序中的组件也生成相应的组件校验和,相应的如果智能卡是对每个组件生成一个组件校验和,则服务器也是对每个组件生成一个组件校验和,如果智能卡是针对所有的组件最终生成一个组件校验和,则服务器也是针对所有的组件最终生成一个组件校验和,然后将智能卡的组件校验和和服务器的组件校验和进行比较,若相同,则表明智能卡升级成功,若不同,则表明智能卡升级失败,在确定出智能卡升级失败后,服务器将新版本应用程序发送给智能卡,以使智能卡根据新版本应用程序对旧版本应用程序进行升级,即智能卡若升级失败,则服务器将完整的应用程序最新版发送至智能卡,智能卡根据传统方式进行更新升级。本申请实施例提供的增量更新方法,包括:智能卡接收服务器发送的增量 更新文件,然后根据增量更新文件确定需要更新的旧版本应用程序,以及根据增量更新文件中的组件更新信息,对确定的旧版本应用程序中对应的组件进行升级。该方法智能卡在进行应用程序升级时,只需根据接收到的服务器发送来的增量更新文件中的组件更新信息对旧版本应用程序中对应的组件进行升级,而无需对整个旧版本应用程序进行更新,因而解决了现有技术中存在的对智能卡进行升级时需要对原有应用删除,然后重新下载最新版本的应用程序进行安装,因而造成流量浪费的问题。并且在升级失败后,还可重新从服务器下载完整应用程序最新版本,然后进行全量方式更新。另一方面,如图4所示,为本申请实施例提供的一种增量更新方法流程图,该方法由智能卡执行,包括:步骤401、智能卡接收服务器发送的增量更新文件;步骤402、智能卡根据增量更新文件,确定需要更新的旧版本应用程序;步骤403、智能卡根据增量更新文件中的组件更新信息,对确定的旧版本应用程序中对应的组件进行升级。在步骤402中,智能卡接收到增量更新文件后,根据增量更新文件中携带的用于指示哪个应用程序需要更新的应用程序标识,来确定需要更新的智能卡中的旧版本应用程序。在步骤402之后,步骤403之前,还可对待更新的应用程序中的应用数据进行备份,是否需要备份主要取决于此次应用程序的升级类型,例如此次更新仅仅升级到一些组件的BUG修复,不升级到数据结构的变化,则无需备份;若组件的升级升级到了数据结构的变化,则需要对应用数据进行备份。具体备份方式,例如可通过调用upgradeWillBegin(升级开始前处理)接口来实现。在步骤403中,在智能卡确定出需要更新的旧版本应用程序之后,智能卡接收到服务器发送的增量更新文件中每个组件所对应的组件更新信息来对组件进行升级更新。可选的,所述每个组件更新信息至少包含一条更改信息;所述智能卡根据所述增量更新文件中的组件更新信息,对确定的所述旧版本应用程序中对应的组件进行升级,包括:针对所述组件更新信息中的一条更改信息,所述智能卡根据所述更改信息中的组件标识确定所述旧版本应用程序中对应的组件;所述智能卡根据所述更改信息中的需要更改的第一个组件单元的组件偏移量、需要更改的组件单元的数量和更改模式,确定所述对应的组件中需要升级的位置;所述智能卡根据所述更改模式和需要更改的每个组件单元的内容,对所述对应的组件中需要升级的位置进行升级。上述对确定的旧版本应用程序中对应的组件进行升级的方式为:根据每个组件对应的组件更新信息中包含的至少一个更改信息来对组件进行更新,更改信息的表示方式可参照表2,具体的一条更改信息的内容可参考表3,具体根据更改信息来升级组件的方式可参考步骤301中描述的方式。可选的,所述智能卡根据所述更改信息中的需要更改的第一个组件单元的组件偏移量和需要更改的组件单元的数量,确定所述对应的组件中需要升级的位置,包括:所述智能卡确定所述需要更改的第一个组件单元的组件偏移量开始到之后的N个组件单元之间的位置为所述对应的组件中需要升级的位置,其中,N为所述需要更改的组件单元的数量。该方法用于确定在旧版本中,需要对哪些位置的组件单元进行修改。比如,当更改模式为新增时,在旧版本应用程序的组件中偏移量之后插入需要更改的每个组件单元的内容之前,需要先将该偏移量位置之后的所有单元向后移动,以表1为例,假如需要在旧版本应用程序的组件1的索引2之后的位置插入两个组件单元0xAA和0xBB,在插入之前需要先将索引位置4之后的所有组件单元向后移动两个组件单元的位置,以将索引位置3,索引位置4空出来之后插入0xAA和0xBB,则确定需要升级的位置为3~4;当更改模式为删除,则 在旧版本应用程序的组件中确定偏移量开始到之后的N个组件单元之间的位置为对应的组件中需要升级的位置,其中N为需要删除的组件单元的数量,例如以表1为例,需要将旧版本应用程序组件1中索引2~4的三个组件单元删除,则确定组件1需要升级的位置为2~4;若更改模式为替换,则在旧版本应用程序的组件中确定偏移量开始到之后的N个组件单元之间的位置为对应的组件中需要升级的位置,其中N为需要替换件单元的数量,以表1为例,需要将旧版本应用程序组件1中索引位置5~6组件单元替换为0xCC和0xDD,则确定组件1需要升级的位置为5~6。由于更改信息中的更改模式有多种,基于每种不同的更改模式,升级组件的方式也略有不同。可选的,所述智能卡根据所述更改信息中的更改模式和需要更改的每个组件单元的内容,对所述对应的组件中需要升级的位置进行升级,包括:若所述更改模式为新增组件单元,则所述智能卡将所述需要更改的每个组件单元的内容增加至所述对应的组件中需要升级的位置;若所述更改模式为删除组件单元,则所述智能卡将所述对应的组件中需要升级的位置的所有组件单元删除;若所述更改模式为替换组件单元,则所述智能卡将所述对应的组件中需要升级的位置的所有组件单元替换为所述需要修改的每个组件单元的内容。上述方式,针对不同更改模式,可实现不同更改模式下的组件更新。当更改模式为新增组件单元时,则在需要新增的位置新增组件单元;当更改模式为删除组件单元时,则在需要删除的位置删除组件单元;当更改模式为替换组件单元时,则在需要替换的位置替换组件单元,因而具有很大的灵活性和实用性。在升级之后,还可以对升级的结果进行验证,以判断此次升级是否成功。可选的,在所述智能卡根据所述增量更新文件中的组件更新信息,对确定的所述旧版本应用程序中对应的组件进行升级之后,还包括:所述智能卡在所述旧版本应用程序中的组件升级之后将组件校验和发送 给所述服务器,以使所述服务器根据所述组件校验和验证所述智能卡升级是否成功;若所述智能卡接收到所述服务器发送的所述新版本应用程序,则所述智能卡删除所述旧版本应用程序并根据所述新版本应用程序进行重新升级。上述方法,智能卡在接收到增量更新文件之后开始对旧版本应用程序进行升级,升级完成之后生成组件校验和,该组件校验和可以是针对每个组件生成一个组件校验和,也可以是针对所有的组件最终生成一个组件校验和,然后将组件校验和发送至服务器,服务器接收到组件校验和之后,对存储在服务器的新版本应用程序中的组件也生成相应的组件校验和,相应的如果智能卡是对每个组件生成一个组件校验和,则服务器也是对每个组件生成一个组件校验和,如果智能卡是针对所有的组件最终生成一个组件校验和,则服务器也是针对所有的组件最终生成一个组件校验和,然后将智能卡的组件校验和和服务器的组件校验和进行比较,若相同,则表明智能卡升级成功,若不同,则表明智能卡升级失败,在确定出智能卡升级失败后,服务器将新版本应用程序发送给智能卡,以使智能卡根据新版本应用程序对旧版本应用程序进行升级,即智能卡若升级失败,则服务器将完整的应用程序最新版发送至智能卡,智能卡先删除本地旧版本应用程序,然后根据新版本的应用程序来升级。在应用程序的组件升级完成之后,若升级前对应用数据实现了备份,则此时还需要对备份的应用数据进行恢复,例如可通过调用upgradeDidCompleted(升级完成后处理)接口来实现。本申请实施例提供增量更新方法包括:智能卡接收服务器发送的增量更新文件,然后根据增量更新文件确定需要更新的旧版本应用程序,以及根据增量更新文件中的组件更新信息,对确定的旧版本应用程序中对应的组件进行升级。该方法智能卡在进行应用程序升级时,只需根据接收到的服务器发送来的增量更新文件中的组件更新信息对旧版本应用程序中对应的组件进行升级,而无需对整个旧版本应用程序进行更新,因而解决了现有技术中存在的对智能卡 进行升级时需要对原有应用删除,然后重新下载最新版本的应用程序进行安装,因而造成流量浪费的问题。下面对本申请实施例的增量更新方法做更加详细的描述。参考图5,为本申请实施例,为本申请实施例提供的一种增量更新方法完整流程图,包括:步骤501、智能卡与服务器互相进行安全认证。服务器生成8字节服务器随机数下发至智能卡,智能卡用卡内密钥对8字节服务器随机数进行加密,生成第一密文,同时生成智能卡随机数随同第一密文返回服务器,服务器接收后校验第一密文是否与自身密钥与服务器随机数加密所得结果一致,若不相同,则认证失败,结束请求;若相同则对收到的智能卡随机数使用服务器密钥进行加密得到第二密文返回智能卡,智能卡接收后校验第二密文是否与自身密钥与智能卡随机数加密卡片随机数所得结果一致,若不相同,拒绝后续指令,若一致则互认证通过步骤502、终端获取待更新的应用程序的当前版本号,并判断是否获取成功,若获取版本号成功,则转到步骤503,否则若获取当前版本号失败,则转到步骤504。终端若获取版本号失败,表明该智能卡是新卡,因此转到步骤504进行进行更新流程进行处理;若获取版本号成功,表明该智能卡是已经开通过的卡,可直接进行版本更新,转到步骤503进行后续处理。步骤503、终端判断待更新的应用程序是否在通道上被选中,若被选中则转到步骤507,否则转到步骤506。终端判断获取的待更新应用程序是否在通道上被选中,若被选中,表明该智能卡正在使用中,因此无法更新升级,转到步骤507进行处理,否则表明该智能卡未被占用,处于可更新状态,转到步骤506进行更新。步骤504、终端通知服务器下发完整的新版本应用程序,然后终端指示智能卡根据完整的新版本应用程序进行更新升级。由于该智能卡是新卡,因此下载完整版的新版本应用程序对智能卡进行更 新升级。步骤505、服务器下发所有的应用数据给智能卡。步骤506、判断是否实现了upgradeWillBegin接口,若是则转到步骤508,否则转到步骤509。由于组件更新的类型有很多,有的仅仅是很少量的BUG的修复,不涉及到数据结构的改变,因此就不需要进行组件更新前的数据备份等操作,而有的组件更新范围比较大,涉及到数据结构的改变,因此在组件更新前需要对应用数据进行备份处理。upgradeWillBegin接口是旧应用程序进行升级前的预处理入口,预处理包括应用数据备份等操作,若需要进行预处理,则转到步骤508,否则转到步骤510。步骤507、更新失败,终端提示使用终端的用户关闭应用程序后再重试。步骤508、终端调用upgradeWillBegin接口进行更新前预处理。调用upgradeWillBegin接口进行更新前预处理,主要包括应用数据的备份,可直接备份在智能卡中。步骤509、智能卡通过终端接收增量更新文件,并根据更改模式对组件进行修改。步骤510、终端接收智能卡发送的组件的校验和以及服务器发送的组件校验和,然后进行比对,若比对成功,则转到步骤511,否则转到步骤512。步骤511、提交更新。步骤512、回退之前已经做过的更新操作。步骤513、智能卡通过终端读取应用数据并上传至服务器进行备份。由于更新失败,因此需要使用全量更新方式进行更新,即从服务器下载完整的新版本应用程序进行更新。步骤514、智能卡删除旧版本应用程序。步骤515、服务器下发完整新版本应用程序以使智能卡进行更新升级。步骤516、服务器下发所有的应用数据给智能卡。步骤517、判断是否实现了upgradeDidCompleted接口,若是,则转到步骤518,否则转到步骤519。调用upgradeDidCompleted接口用于新应用程序对之前升级预处理过程的备份数据的恢复。步骤518、调用upgradeDidCompleted接口进行更新后处理。若之前调用upgradeWillBegin接口对数据进行了备份,则该步骤中就需要调用upgradeDidCompleted接口对数据进行恢复。步骤519、智能卡通过终端请求垃圾回收清理空间。步骤520、服务器下发新版本应用程序中相对旧版本应用程序增加的个人化数据。基于相同的技术构思,本发明实施例还提供一种服务器,该服务器可执行上述方法实施例。本发明实施例提供的服务器如图6所示。确定模块601,用于在确定智能卡需要进行应用程序升级后,根据新版本应用程序和所述智能卡中的旧版本应用程序,确定用于更新组件的组件更新信息;生成模块602,用于根据确定的所述组件更新信息,生成增量更新文件;发送模块603,用于将所述增量更新文件发送至所述智能卡,以使所述智能卡根据所述增量更新文件对所述旧版本应用程序中的组件进行升级。可选的,所述确定模块601,具体用于:针对一个组件,将所述旧版本应用程序中的组件与所述新版本应用程序的组件中相同位置的组件单元进行比较,确定组件中不同的组件单元;根据确定的每个不同的组件单元,生成每个组件对应的组件更新信息。可选的,每个组件对应的组件更新信息包括至少一个更改信息;所述更改信息包括:组件标识、更改模式、需要更改的组件单元的数量、需要更改的第一个组件单元的组件偏移量以及需要更改的每个组件单元的内容。可选的,所述更改模式包括下列中的一种:新增组件单元、删除组件单元和替换组件单元。可选的,所述发送模块603,还用于:接收所述智能卡在所述旧版本应用程序中的组件升级之后发送的组件校验和;若所述新版本应用程序中的组件校验和收到的组件校验和不同,则将所述新版本应用程序发送给所述智能卡,以使所述智能卡根据所述新版本应用程序对所述旧版本应用程序进行升级。基于相同的技术构思,本发明实施例还提供一种智能卡,该智能卡可执行上述方法实施例。本发明实施例提供的服务器如图7所示,包括:接收模块701,用于接收服务器发送的增量更新文件;确定模块702,用于根据所述增量更新文件,确定需要更新的旧版本应用程序;升级模块703,用于根据所述增量更新文件中的组件更新信息,对确定的所述旧版本应用程序中对应的组件进行升级。可选的,所述每个组件更新信息至少包含一条更改信息;所述升级模块703,具体用于:针对所述组件更新信息中的一条更改信息,根据所述更改信息中的组件标识确定所述旧版本应用程序中对应的组件;根据所述更改信息中的需要更改的第一个组件单元的组件偏移量、需要更改的组件单元的数量和更改模式,确定所述对应的组件中需要升级的位置;根据所述更改模式和需要更改的每个组件单元的内容,对所述对应的组件中需要升级的位置进行升级。可选的,所述升级模块703,具体用于:确定所述需要更改的第一个组件单元的组件偏移量开始到之后的N个组件单元之间的位置为所述对应的组件中需要升级的位置,其中,N为所述需要 更改的组件单元的数量。可选的,所述升级模块703,具体用于:若所述更改模式为新增组件单元,则将所述需要更改的每个组件单元的内容增加至所述对应的组件中需要升级的位置;若所述更改模式为删除组件单元,则将所述对应的组件中需要升级的位置的所有组件单元删除;若所述更改模式为替换组件单元,则将所述对应的组件中需要升级的位置的所有组件单元替换为所述需要修改的每个组件单元的内容。可选的,所述升级模块703,还用于:在所述旧版本应用程序中的组件升级之后将组件校验和发送给所述服务器,以使所述服务器根据所述组件校验和验证所述智能卡升级是否成功;若接收到所述服务器发送的所述新版本应用程序,则删除所述旧版本应用程序并根据所述新版本应用程序进行重新升级。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1