一种Java卡扩展库更新方法、装置和Java卡与流程

文档序号:12008562阅读:190来源:国知局
一种Java卡扩展库更新方法、装置和Java卡与流程
本发明涉及一种更新JavaCard扩展库的方法,属于数据业务领域。

背景技术:
Java卡是Sun公司为智能卡开发平台制定的一个开放标准。使用Java卡平台创建的智能卡上存有Javaapplet。在卡发行后也可以把applet加到卡上或修改卡上已有的applet。它们把数据存储在一个集成的微处理器芯片里。然后applet被下载到微处理器的内存里,由Java虚拟机来运行。类似于另一个智能卡的开发技术MULTOS,Java卡使多个应用程序被安装并且各自独立地共存。每个applet都被防火墙保护以维护其完整性以及防止干扰。应用程序可以动态地升级。如图1所示,Java卡中包含标准库(StandardLibrary)及扩展库(ExtensionalLibrary),应用(Applet)通过引用可调用库提供的API(ApplicationProgrammingInterface)接口,创建一个或多个实例(Instance),其中,图2展现了一种标准的Java卡的构成图,其包括:卡硬件(SMARTCARDHWANDNATIVESYSTEM)、Java卡虚拟机(JavaCardVMBYTECODEINTERETER)、本地方法(NATIVEMETHOD)、系统库(SYSTEMCLASSES)、安装管理器(INSTALLER)、标准Java卡API(FRAMEWORKCLASSESAPIS)、扩展库(INDUSTRYSPECIFICEXTENSIONS),其中,一般地,系统库中存在着appletmanagement、transactionmanagement、I/Onetworkcommunication以及其他services,一般地,Java卡的API为智能卡指定了一个Java语言的特殊子集,同时由于Java虚拟机的使用,上述applet能够得到跨平台的运行。其中,Java虚拟机实现了卡接口的统一和编程语言的统一,其中,API接口主要负责执行Java卡applet以及提供applet执行所需要的环境,其中,扩展库则是服务方提供的类,使得企业和公司能够提供属于自己的服务程序,这些类在本申请中简称方法(method),其在Java卡中存在对应的地址;而Java卡applet即是开发的应用,其中,每个applet与扩展库中的方法具有一定的引用关系,且上述applet通过引用方法的地址信息执行相关的方法,其中,Java卡的执行环境并不支持多线程,所以一次只能执行一个Applet,且每个applet之间都有防火墙的阻隔。目前,若要更新Java卡中的扩展库,必须先删除引用它的实例及应用。如图3所示,如要更新扩展库,必须先删除实例(Instance),接下来删除Applet2、Applet3,然后再删除扩展库;重新安装扩展库,安装Applet2、Applet3,安装Instance。其中,在库的安装过程中,需要设置一个引用关系表,将库的名字转换成引用项,将方法转换成实际的调用地址;Java程序在更新库时,需要删除对应表项中的内容。从上述描述中可以发现,现有技术存在的问题:1)要更新扩展库,必须先删除引用该扩展库的实例、应用/扩展库;2)要删除实例,必须先备份(迁出)实例数据,待重新安装实例后再恢复(迁入)实例数据;当扩展库被大量应用及实例引用时,这一操作将变得异常繁琐,甚至不可执行。

技术实现要素:
本发明要解决的技术问题是更新扩展库时无需先删除引用它的实例及应用,并且,该方法不会因为更新扩展库造成Java卡出现工作异常。其中,根据本发明的一个目的,本发明提供了一种Java卡扩展库更新方法,包括:A、获取待更新的扩展库与应用和/或实例和/或第二扩展库的引用关系;获取所述待更新的扩展库中的所有方法及其存储地址的第一映射关系;B、更新所述扩展库,根据更新后的扩展库的存储状态建立更新后的扩展库中的所有方法和其存储地址之间的第二映射关系;C、根据所述引用关系和第二映射关系,更新上述应用和/或实例和/或扩展库中针对所述扩展库中的方法所对应的存储地址信息。其中,优选的是,在步骤A中,还包括:禁用上述应用和/或实例和/或第二扩展库在所述Java卡中的运行。其中,优选的是,所述应用和/或实例和/或第二扩展库直接或者间接引用所述扩展库中的一个或者多个方法,其中,所述应用和/或实例和/或第二扩展库通过引用所述方法的存储地址信息执行对应的方法。其中,优选的是,步骤A中,具体包括:遍历Java卡上以第一扩展库为根的所有应用、扩展库及实例,获取并保存所述应用、第二扩展库及实例与所述扩展库之间的引用关系;根据第一扩展库的存储信息获取第一扩展库中的方法和其存储地址之间的第一映射关系。其中,优选的是,步骤C中,具体包括:根据所述引用关系获取引用所述第一扩展库的所有应用、扩展库和实例;根据所述第二映射关系将所述应用、扩展库和实例中引用的方法的旧的物理地址修改为新的物理地址,同时将这些应用、扩展库及实例的状态修改为启用状态。其中,优选的是,进一步还包括:检查应用和/或实例和/或第二扩展库中对应的方法和更新后的第一扩展库中的方法之间的对应关系;其中,当在所述更新后的第一扩展库中不存在相应的方法时,发出提示Java扩展库更新失败的报警信息。其中,优选的是,步骤C之中,在上述存储地址信息更新完成后,还包括:所述应用和/或实例和/或第二扩展库根据更新后的地址信息,进行对应的应用和/或实例和/或第二扩展库在Java卡中的运行。本申请通过上述方法的引用关系,进而替换掉对应的方法的旧的地址信息,从而使得更新后的扩展库能够被原先的应用和/或实例和/或其他扩展库所引用,该种方法克服了现有技术必须删除旧有的应用、实例和扩展库方可以更新扩展库的缺点,具有很好的技术效果。此外,本发明还提供了一种Java卡中扩展库更新装置,包括:关联关系管理单元,用于获取待更新的第一扩展库与应用和/或实例和/或第二扩展库的引用关系;地址关系获取单元,用于获取第一扩展库中的方法及其存储地址之间的第一映射关系;扩展库安装单元,用于删除旧的第一扩展库并安装新的第一扩展库;所述地址关系获取单元,还用于根据更新后的第一扩展库的存储信息建立更新后的第一扩展库中的方法和其存储地址之间的第二映射关系;地址信息更新单元,用于根据所述引用关系和第二映射关系,更新上述应用和/或实例和/或第二扩展库中针对所述第一扩展库中的方法所对应的存储地址信息。其中,优选的是,还包括:状态管理单元,用于禁用或者启动上述应用和/或实例和/或第二扩展库的运行。其中,优选的是,所述应用和/或实例和/或第二扩展库直接或者间接引用所述第一扩展库中的一个或者多个方法。其中,优选的是,还包括:应用方法地址管理单元,用于保存所述应用和/或实例和/或第二扩展库中包含有所述一个或者多个方法的存储地址信息。其中,优选的是,还包括:对应关系检测单元,用于检查应用和/或实例和/或第二扩展库中对应的方法和更新后的第一扩展库中的方法之间的对应关系;信息报警单元,用于当在所述更新后的第一扩展库中不存在相应的方法时,发出提示Java扩展库更新失败的报警信息。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明下面结合附图对本发明进行详细的描述,以使得本发明的上述优点更加明确。图1是现有技术中一个Java卡的示意图;图2是现有技术中一个Java卡的结构示意图图3是现有技术中一个Java卡中扩展库的更新示意图;图4是本发明Java卡中扩展库更新方法的流程示意图图5是本发明一个实施例的Java卡中扩展库的更新方法流程示意图;图6是本发明一个实施例中Java卡中扩展库的更新装置的结构示意图。具体实施方式以下结合附图和具体实施例对本发明进行详细的说明。方法实施例一:图4是本发明Java卡中扩展库更新方法的流程示意图;如图4所示,所示Java卡中扩展库更新方法,主要包括:S101:获取待更新的扩展库与应用和/或实例和/或第二扩展库的引用关系;包括:遍历Java卡上以第一扩展库为根的所有应用、扩展库及实例,获取并保存所述应用、第二扩展库及实例与所述扩展库之间的引用关系;S102:获取所述待更新的扩展库中的所有方法及其存储地址的第一映射关系;包括:根据扩展库的存储信息获取第一扩展库中的方法和其存储地址之间的第一映射关系。S103:更新所述扩展库,包括:删除旧的扩展库并用新的扩展库替换掉旧有的扩展库,其中,所述新的扩展库具有旧的扩展库所有的方法;S104:根据更新后的扩展库的存储状态建立更新后的扩展库中的所有方法和其存储地址之间的第二映射关系;S105:根据所述引用关系和第二映射关系,更新上述应用和/或实例和/或扩展库中针对所述扩展库中的方法所对应的存储地址信息。其中,本申请通过上述方法的引用关系,进而替换掉对应的方法的旧的地址信息,从而使得更新后的扩展库能够被原先的应用和/或实例和/或其他扩展库所引用,该种方法克服了现有技术必须删除旧有的应用、实例和扩展库方可以更新扩展库的缺点,具有很好的技术效果。其中,可以理解的是,在S101之前,需要禁用上述应用和/或实例和/或第二扩展库在所述Java卡中的运行,以便于获取和保存上述引用关系和/或地址和方法之间的对应关系。其中所述应用和/或实例和/或第二扩展库直接或者间接引用所述扩展库中的一个或者多个方法,其中,所述应用和/或实例和/或第二扩展库通过引用所述方法的存储地址信息执行对应的方法。其中,S105中,具体包括:根据所述引用关系获取引用所述第一扩展库的所有应用、扩展库和实例;根据所述第二映射关系将所述应用、扩展库和实例中引用的方法的旧的物理地址修改为新的物理地址,同时将这些应用、扩展库及实例的状态修改为启用状态。此外,为了尽可能降低出错的频率,在更新完成以后或者在更新之前,需要检查应用和/或实例和/或第二扩展库中对应的方法和更新后的第一扩展库中的方法之间的对应关系;其中,当在所述更新后的第一扩展库中不存在相应的方法时,发出提示Java扩展库更新失败的报警信息。并且,上述存储地址信息更改完成以后,所述应用和/或实例和/或第二扩展库根据更新后的地址信息,进行对应的应用和/或实例和/或第二扩展库在Java卡中的运行。其中,本发明采取了上述的更新方法以后,其更新扩展库时无需先删除引用它的实例及应用;并且,该发明不会因为更新扩展库造成Java卡出现工作异常,具有很好的技术优点。方法实施例二:其中,结合更具体的实施例对本发明进行详细说明;图5是本发明一个实施例的Java卡中扩展库的更新方法流程示意图。其中,所述方法包括两个主要的步骤,其中,S101~S102主要涉及到更新扩展库之前的操作,具体如下:修改状态:检查卡上以该扩展库为根的所有应用、扩展库及实例,将这些应用、扩展库及实例的状态修改为禁用状态;也就是,S1011:保存库中的方法和库的实际地址之间的引用关系,即哪些应用、扩展库引用了该扩展库,并将上述信息放入到一个引用关系表中;S1022:保存该扩展库的方法及旧真实地址的映射关系表,即:method—addressold的一个对应关系;删除扩展库。其中,所谓的原子操作,指上述操作要么全部执行成功,要么不执行,不会出现执行一半无法恢复的情况,下同。步骤S103~S105涉及到更新扩展库的主要步骤,其中,在一个具体的实施例中,主要执行以下的原子操作:安装扩展库;形成该扩展库中的方法及新真实地址的映射关系表,即:method—addressnew;根据之前保存的引用关系表,遍历所有引用该扩展库的应用及扩展库,将addressold修改为addressnew;将这些应用、扩展库及实例的状态修改为启用状态。其中,同样可以理解的是,为避免因更新库而造成原有应用、扩展库调用的方法出现更新或删除的情况,必须在安装库之前执行检查操作,若出现上述情况则提示更新失败。其中,本案改进了Java卡的库的更新方法,无需删除过多的应用和个人数据,其解决了现有的Java程序中更新库的机制,不按照现有树形结构的顺序删除机制,适用于特定场景,有很好的优点。装置实施例一:其中,本发明还公开了一种Java卡,其包括一个或多个扩展库和应用和/或实例,并且,还设有一个扩展库更新装置,由于在不删除应用的情况下更新Java卡中的一个或者多个扩展库。其中,图6是本发明一个实施例中Java卡中扩展库的更新装置的结构示意图;如图6所示,所述更新装置,具体包括:关联关系管理单元,用于获取待更新的第一扩展库与应用和/或实例和/或第二扩展库的引用关系;地址关系获取单元,用于获取第一扩展库中的方法及其存储地址之间的第一映射关系;扩展库安装单元,用于删除旧的第一扩展库并安装新的第一扩展库;所述地址关系获取单元,还用于根据更新后的第一扩展库的存储信息建立更新后的第一扩展库中的方法和其存储地址之间的第二映射关系;地址信息更新单元,用于根据所述引用关系和第二映射关系,更新上述应用和/或实例和/或第二扩展库中针对所述第一扩展库中的方法所对应的存储地址信息。其中,还包括:状态管理单元,用于禁用或者启动上述应用和/或实例和/或第二扩展库的运行。其中,所述应用和/或实例和/或第二扩展库直接或者间接引用所述第一扩展库中的一个或者多个方法。其中,还包括:应用方法地址管理单元,用于保存所述应用和/或实例和/或第二扩展库中包含有所述一个或者多个方法的存储地址信息。其中,还包括:对应关系检测单元,用于检查应用和/或实例和/或第二扩展库中对应的方法和更新后的第一扩展库中的方法之间的对应关系;信息报警单元,用于当在所述更新后的第一扩展库中不存在相应的方法时,发出提示Java扩展库更新失败的报警信息。其中,本发明采取了上述的更新装置以后,其更新扩展库时无需先删除引用它的实例及应用;并且,该发明不会因为更新扩展库造成Java卡出现工作异常,具有很好的技术优点。其中,本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(ReadOnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟、终端手机软件或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1