java卡虚拟机的优化方法及系统的利记博彩app

文档序号:9887455阅读:493来源:国知局
java卡虚拟机的优化方法及系统的利记博彩app
【技术领域】
[0001 ]本发明涉及智能卡技术领域,特别涉及一种java卡虚拟机的优化方法及系统。
【背景技术】
[0002] Java卡是Sun微系统为智能卡开发平台而制定的一个开放的标准。使用Java卡平 台创建的智能卡上存有Java applet (Application缩写)。在卡发行后也可以把applet加到 卡上或修改卡上已有的applet。它们把数据存储在一个集成的微处理器芯片里,然后 applet被下载到微处理器的非易失存储器里,由Java虚拟机来运行。
[0003] Java卡充分利用了 Java语言的平台无关性,使得"一次编写,到处运行"的Java思 想在智能卡上得以实现。相对于普通智能卡,Java卡有着平台无关性,--^多用和重用,灵 活性,安全性等特点。
[0004] 但制约Java卡发展的一个很重要的方面问题其较低的执行效率,造成这种低效的 原因除了受限于智能卡的硬件资源和Java语言的字节码解释执行机制,更主要的原因是 JCVM( Java卡虚拟机)的应用存储结构和相关的机制严重影响到Java卡虚拟机的执行性能。

【发明内容】

[0005] 本发明的目的旨在至少解决所述技术缺陷之一。
[0006] 为此,本发明的目的在于提出一种java卡虚拟机的优化方法及系统,提高了 java 卡的运行效率,在不改变硬件设备的情况下,有效提升了 java卡虚拟机的运行效率。
[0007] 为了实现上述目的,本发明的实施例提供一种java卡虚拟机的优化方法,包括如 下步骤:
[0008] 步骤S1,下载java卡应用程序,该java卡应用程序为一个cap包,其中,所述cap包 中包括有多个用于虚拟机解析执行的组件component,以及用来索引所述component组件的 常量池组件constant pool,所述常量池组件constant_pool包括对内部和外部应用操作数 据的索引;
[0009] 步骤S2,在java卡应用程序的下载过程中,通过对所述cap包中的常量池组件 C〇nstant_p〇〇l进行遍历,以获取对组件的外部引用关系,作为引用信息,再通过预操作获 取所述引用信息所对应的目标信息;
[0010] 步骤S3,将引用信息所相应的目标信息以扩展的类型结构回填到所述常量池组件 constant_pool 中;
[0011] 步骤S4, java卡应用程序解释器在运行态可以直接在所述常量池组件constant_ pool中通过修改后的结构索引到目标信息。
[0012]进一步,在所述步骤S2中,所述引用信息包括:目标cap包引用信息、目标cap包的 类、方法、属性引用信息。
[0013] 进一步,在所述步骤S3中,
[0014] (1)当所述外部引用关系为方法信息时,将目标cap包引用信息、目标cap包的方法 偏移量回填到cons tan t_pool;
[0015] ⑵外部引用关系为属性信息时,将目标cap包的对象引用信息、目标cap包关联静 态对象的属性在静态对象中的偏移量回填到cons tan t_pool;
[0016] (3)外部引用关系为类信息时,将目标cap包引用信息、目标cap包的类信息的偏移 ^[hI j4|i|J cons tan t_pool 0
[0017]根据本发明实施例的java卡虚拟机的优化方法,可以省去java卡应用程序在运行 时为定位目标进行的大量内部跳转以及外部遍历等性能低下问题,直接定位到目标信息, 提高了 java卡的运行效率,在不改变硬件设备的情况下,有效提升了 java卡虚拟机的运行 效率。
[0018] 本发明实施例还提出一种java卡虚拟机的优化系统,包括:下载模块,用于下载 java卡应用程序,该java卡应用程序为一个cap包,其中,所述cap包中包括有多个用于虚拟 机解析执行的组件component,以及用来索引所述component组件的常量池组件constant pool,所述常量池组件constant_pool包括对内部和外部应用操作数据的索引;遍历模块, 所述遍历模块与所述下载模块相连,用于在所述下载模块下载java卡应用程序的过程中, 通过对所述cap包中的常量池组件constant_pool进行遍历,以获取对组件的外部引用关 系,作为引用信息;预操作模块,所述预操作模块与所述遍历模块相连,用于通过预操作获 取所述引用信息所对应的目标信息;回填模块,所述回填模块与所述预操作模块相连,用于 将引用信息所相应的目标信息以扩展的类型结构回填到所述常量池组件c 〇nstant_p〇〇l 中,则java卡应用程序解释器在运行态可以直接在所述常量池组件constant_pool中通过 修改后的结构索引到目标信息。
[0019] 进一步,所述引用信息包括:目标cap包引用信息、目标cap包的类、方法、属性引用 信息。
[0020] 进一步,(1)当所述外部引用关系为方法信息时,所述回填模块将目标cap包引用 信息、目标cap包的方法偏移量回填到constant_pool;
[0021] (2)外部引用关系为属性信息时,所述回填模块将目标cap包的对象引用信息、目 标cap包关联静态对象的属性在静态对象中的偏移量回填到constant_pool;
[0022] (3)外部引用关系为类信息时,所述回填模块将目标cap包引用信息、目标cap包的 类信息的偏移量回填到constant_pool。
[0023] 根据本发明实施例的java卡虚拟机的优化系统,可以省去java卡应用程序在运行 时为定位目标进行的大量内部跳转以及外部遍历等性能低下问题,直接定位到目标信息, 提高了 java卡的运行效率,在不改变硬件设备的情况下,有效提升了 java卡虚拟机的运行 效率。
[0024] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。
【附图说明】
[0025] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得 明显和容易理解,其中:
[0026] 图1为根据本发明实施例的java卡虚拟机的优化方法的流程图;
[0027] 图2为根据本发明实施例的java卡虚拟机的优化系统的结构图。
【具体实施方式】
[0028] 下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同 或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描 述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0029] 本发明提供一种java卡虚拟机的优化方法及系统,在应用下载的过程中对需要查 询引用操作的import数据、class数据、field数据和static method数据进行预判和定位, 并修改应用内容和结构为对以上数据的直接引用。本发明基于Java卡对象的生命周期特点 对Java虚拟机进行优化以满足Java卡业务对效率的要求,达到在执行过程中减少查询、遍 历和跳转等操作,进而提高Java卡虚拟机的解析和运行效率。
[0030] 如图1所示,本发明实施例的java卡虚拟机的优化方法,包括如下步骤:
[0031 ] 步骤S1,下载java卡应用程序,该java卡应用程序为一个cap包。
[0032]具体地,每个java卡应用程序均是以cap包为单位,即一个java卡应用程序就是一 个cap包。每个cap包中包括有多个用于虚拟机解析执行的组件component,以及用来索引 component组件的常量池组件constant pool。常量池组件constant_pool包括对内部和外 部应用操作数据的索引。
[0033]例如,在java卡内使用可实现空间动态管理的数据结构,堆(Heap)来管理可编程 存储器,所有包和对象都存储在Heap中。其中,用来索引Heap中单元的引用定义为HEAPREF, 指向Heap中包类型数据的HEAPREF定义为CAPREF,指向Heap中对象类型数据的HEAPREF定义 为0BJREF,类引用CLAREF采用CAPREF和cap内部偏移索引类信息,方法引用MSTREF采用 CAPREF和cap内部偏移索引类信息。每个对象都包含多个属性,每个属性都要占用一定存储 空间,某一具体属性在对象空间的内部偏移定义为FLD0FF。常量池用来存储常量信息。 [0034] 步骤S2,在java卡应用程序的下载过程中,通过对cap包中的常量池组件 C〇nstant_p〇〇l进行遍历,以获取对组件的外部引用关系,作为引用信息,再通过预操作获 取引用信息所对应的目标信息。
[0035]在本发明的一个实施例中,引用信息包括:目标cap包引用信息、目标cap包的类
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1