用于JAVA卡的字节码优化系统和方法技术方案

技术编号:4261175 阅读:197 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及用于JAVA卡的字节码优化系统和方法,其中,JAVA卡包括应用域和安全域,该用于JAVA卡的字节码优化方法包括步骤:检测在安全域中应用程序的字节码序列是否存在优化代码;在检测结果为否定的情况下,将字节码序列传送给所述应用域;在应用域中,将接收到的字节码序列编译成安全域的本地代码,作为优化代码;并且将优化代码存储至安全域。利用本发明专利技术可以在JAVA卡的安全域中实现字节码的优化,提高JAVA卡执行程序的速度。

【技术实现步骤摘要】

本专利技术涉及智能卡技术,尤其涉及用于JAVA卡的字节码优化系统和方法。
技术介绍
JAVA卡是JAVA技术与传统智能卡技术相结合的产物,是一种能运行JAVA语言程 序的智能卡。 传统的JAVA卡主要用于安全性目的,只有一个操作系统,JAVA虚拟机运行在该操 作系统上。随着越来越多的复杂应用设置在JAVA卡上,传统JAVA卡已经满足不了处理更 多业务的需要。在这种情况下,双核的JAVA卡应运而生,并且得到越来越广泛的应用。双 核的JAVA卡主要包括两部分一部分称为安全域,相当于传统的JAVA卡,也主要用于安全 性的目的,实现传统JAVA卡所实现的功能;另一部分称为应用域,用于实现复杂应用。鉴于 JAVA语言的优越性,应用域通常也支持JAVA语言程序,并且为了实现复杂应用,应用域所 采用的软硬件都足够强大,甚至能与移动设备的软硬件资源相当。 —般而言,JAVA语言程序的执行过程如下。首先,开发人员编写的JAVA源代码 (.Java程序文件)经过编译器编译后生成由符合JAVA虚拟机规范的字节码组成的类文件 (.class文件)。当运行该JAVA语言程序时,类装载器装入来自类文件的字节码,经过检验 器安全验证后,由JAVA虚拟机通过解释字节码将其翻译成本地的机器代码,逐条读入,逐 条解释翻译。显然,经过解释执行,JAVA程序的执行速度必然会比可执行的二进制字节码 程序慢。因此,为了提高执行速度,当前常常采用即时编译(JIT)技术和Hotspot技术等字 节码优化技术,对字节码序列进行优化,将部分字节码编译成本地的机器代码保存起来备 用,这样JAVA虚拟机就没有必要每次都对这些字节码进行解释翻译,而是可以直接执行这 些字节码对应的本地机器代码。 然而,在软硬件条件可以与移动设备或服务器相媲美的双核JAVA卡的应用域中, 完全可以实现JIT或Hotspot等字节码优化技术,但是,由于自身软硬件条件的限制和安全 性等原因,在JAVA技术中发挥很大作用的JIT和Hotspot等字节码优化技术无法在传统 JAVA卡以及双核JAVA卡的安全域中实现,这极大地限制了智能卡特别是双核JAVA卡执行 程序的速度。
技术实现思路
本专利技术的目的在于提供一种用于JAVA卡的字节码优化系统和方法,利用本专利技术 可以在JAVA卡特别是双核JAVA卡的安全域中实现字节码的优化,提高JAVA卡执行程序的 速度。 为了实现上述目的,本专利技术提供一种用于JAVA卡的字节码优化方法,其中,该 JAVA卡包括应用域和安全域,该方法包括步骤 检测在所述安全域中应用程序的字节码序列是否存在优化代码; 在检测结果为否定的情况下,将所述字节码序列传送给所述应用域; 在所述应用域中,将接收到的字节码序列编译成所述安全域的本地代码,作为优 化代码;并且 将所述优化代码存储至所述安全域。 本专利技术还提供一种用于JAVA卡的字节码序列优化系统,其中,JAVA卡包括应用域 和安全域,该字节码序列优化系统包括 优化代码库,用于存储所述安全域中应用程序的字节码序列的优化代码; 检测单元,用于检测在所述优化代码库中所述安全域中的应用程序的字节码序列 是否存在优化代码,并在所述字节码序列不存在优化代码的情况下,将所述可优化字节码 序列传送给所述应用域;禾口 本地代码编译器,位于所述应用域中,用于将接收到的字节码序列编译成所述安 全域的本地代码,作为优化代码,并将优化代码存储至所述优化代码库。附图说明 本专利技术的其他特征、目的和益处通过以下结合附图的详细描述将变得更加显而易 见。其中 图1是根据本专利技术实施例一的字节码优化系统的方框图; 图2是根据本专利技术实施例二的字节码优化系统的方框图; 图3A和图3B是根据本专利技术实施例的校验单元的方框图; 图4是根据本专利技术实施例三的字节码优化系统的方框图; 图5是根据本专利技术实施例四的字节码优化系统的方框图; 图6是根据本专利技术一个实施例的字节码优化方法的流程图。具体实施例方式下面,将结合附图详细描述本专利技术的各个实施例。 在双核JAVA卡的应用域中,为了加速JAVA程序的执行速度,采用JIT技术来优化 JAVA程序的字节码序列,而安全域受到自身软硬件条件的限制,不能直接采用JIT技术,这 阻碍了安全域应用程序的执行速度。特别是,安全域中应用程序的字节码序列中有很大一 部分是常用的或者是重复的,对于这部分可优化的字节码序列,可以采用本专利技术所提供的 字节码优化系统和方法进行优化。 (实施例一 ) 图1示出了根据本专利技术实施例一的字节码优化系统的方框图。如图1所示,字节码 优化系统1包括优化代码库100、检测单元200和位于JAVA卡应用域中的JIT编译器300。 优化代码库100存储安全域应用程序的字节码序列的优化代码。优化代码库100 所存储的优化代码还包括那些在JAVA卡出厂之前预先存储的、通过运行标准测试程序和 模拟真正运行情况的字节码序列所获得的优化代码。 检测单元200当在安全域中安装或使用应用程序时,检测该应用程序的字节码序 列在优化代码库100中是否存在相应的优化代码,并在该应用程序的字节码序列不存在相 应的优化代码时,将字节码序列传送给JAVA卡的应用域。 JIT编译器300位于JAVA卡的应用域中,将接收到的字节码序列编译成JAVA卡安全域的本地代码,作为优化代码,存储至优化代码库100中。 (实施例二 ) 图2示出了根据本专利技术实施例二的字节码优化系统的方框图。如图2所示,字节 码优化系统2包括优化代码库101、检测单元200、 JIT编译器300、优化代码库管理单元400 和校验单元500。在图2中,与图1相似的元件采用了相同的附图标记,并且下文也不再赘 述其细节。 如参照图1所描述的优化代码库100 —样,在本实施例中,优化代码库101也存储 安全域中应用程序的字节码序列的优化代码。除此之外,优化代码库101还存储每个优化 代码的存入时间和使用次数,以便于统计哪些优化代码是最常被使用的,哪些优化代码是 最少被使用的。例如,对于优化代码库101存储的优化代码A,其存入时间为2008年1月1 日的上午10:00,当前时间为2008年1月1日的上午11:00,在这一个小时内,其使用次数 为5次,而优化代码B的存入时间为10:30,在半个小时内的使用次数为5次,则优化代码B 比优化代码A更常被使用。于是,照此方法,可以确定优化代码库101中最少被使用的优化 代码。 优化代码库管理单元400管理优化代码库101 ,更新优化代码库101中优化代码的 存入时间和使用次数,在JIT编译器300向优化代码库101存储优化代码之前,判断优化代 码库101是否有足够的存储空间来存储优化代码,并且在判断结果为否定时,从优化代码 库101中删除最少被使用的优化代码。 在本实施例中,还可以优选地包括校验单元500。检验单元500校验经JIT编译 器300编译的优化代码的有效性并拦截和删除无效的优化代码。在这里,优化代码的有效 性包括优化代码的安全性和优化代码是否是真正优化的。 尽管JAVA卡应用域和安全域由于芯片是集成在一起的,所以二者之间的安全通 信有保障,而且JIT编译器本身的安全性也很有保障,但是为了安全起见,避免字节码序列 在本文档来自技高网
...

【技术保护点】
一种用于JAVA卡的字节码优化方法,其中,该JAVA卡包括应用域和安全域,该方法包括步骤:检测在所述安全域中应用程序的字节码序列是否存在优化代码;在检测结果为否定的情况下,将所述字节码序列传送给所述应用域;在所述应用域中,将接收到的字节码序列编译成所述安全域的本地代码,作为优化代码;并且将所述优化代码存储至所述安全域。

【技术特征摘要】
一种用于JAVA卡的字节码优化方法,其中,该JAVA卡包括应用域和安全域,该方法包括步骤检测在所述安全域中应用程序的字节码序列是否存在优化代码;在检测结果为否定的情况下,将所述字节码序列传送给所述应用域;在所述应用域中,将接收到的字节码序列编译成所述安全域的本地代码,作为优化代码;并且将所述优化代码存储至所述安全域。2. 如权利要求l所述的字节码优化方法,还包括在将所述优化代码存储至所述安全域之前,判断所述安全域是否有足够的存储空间来 存储所述优化代码,并且在判断结果为否定时,从所述安全域中删除最少被使用的优化代码。3. 如权利要求l所述的字节码优化方法,还包括在检测所述安全域中应用程序的字节码序列是否存在优化代码之前,执行所述安全域 的标准测试程序,以获得并存储最初的优化代码。4. 如权利要求3所述的字节码优化方法,其中, 将所获得的最初的优化代码置于所述安全域的JAVA虚拟机中。5. 如权利要求1或2所述的字节码优化方法,其中,在所述应用域中,由即时编译器将 接收到的字节码序列编译成所述安全域的本地代码,作为优化代码。6. 如权利要求1所述的字节码优化方法,还包括 校验所述优化代码,以确定优化代码的有效性。7. 如权利要求6所述的字节码优化方法,其中,校验所述优化代码包括 分别执行字节码序列和所述优化代码;比较二者的执行结果;禾口 在二者执行结果不一致时,删除优化代码。8. 如权利要求6所述的字节码优化方法,其中,校验所述优化代码包括 分别执行字节码序列和所述优化代码;比较二者的执行时间;禾口在执行字节码序列所用的时间比执行优化代码所用的时间短时,删除优化代码。9. 如权利要求1所述的字节码优化方法,其中,在检测结果为否定的情况下,将所述字 节码序列传送给所述应用域,包括在检测结果为否定的情况下,判断所述字节码序列的安全等级是否达到预定的安全等 级;并且在所述字节码序列的安全等级没有达到预定的安全等级的情况下,将所述字节码序列 传送给所述应用域。10. 如权利要求1所述的字节码优化方法,其中,在检测结果为否定的情况下,将所述 字节码序列传送给所述应用域,包括在检测结果为否定的情况下,判断所述字节码序列是否达到预定的优化阈值;并且 在所述字节码序列达到预定的优化阈值的情况下,将所述字节码序列传送给所述应用域。11. 一种用于JAVA卡的字节码序列优化系统,其中,JAVA卡...

【专利技术属性】
技术研发人员:刘子瑛李丞倍金亨一罗栋元李相研
申请(专利权)人:爱思开电讯投资中国有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1