- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java智能卡平台及其优化技术展望
摘要 Java智能卡的跨平台、多应用、高安全的特性已经使它成为未来智能卡的标准,但这些优点是以牺牲应用的执行性能为代价。本文分析了Java卡的平台体系及其存在的性能问题,在总结分析已有的典型优化方法的基础上,提出了未来优化的一些可行的方向,为相关研究人员提供有用的参考。
关键词 Java智能卡;平台体系;内存管理模型;优化技术
中图分类号TP391 文献标识码A 文章编号1674-6708(201 0)28―0176―03
引言
智能卡(smartcard)在包括电信、银行、公交、医疗、身份证件、数字电视、安全认证等与普通消费者息息相关的领域均获得了广泛的应用。在未来移动支付、信用卡等更加普及、对个人信息安全有更高诉求的时代,智能卡仍将发挥不可替代的重要作用。
传统的Native卡存在先天缺陷,概括为如下3点:
1)应用开发的难度大、周期长、成本高:native卡以汇编或C语言进行开发。缺乏通用开发平台,开发、调试困难,要求开发人员对硬件的底层细节熟悉;
2)不能很好的支持跨行业应用和一卡多用,而一卡多用是智能卡发展的趋势;
3)应用在卡发行时便已经固定下来,无法实现应用的更新或升级,无法满足客户个性化的需求,也使供应商在增值服务方面无法有所作为;
Native卡在互操作性和多功能应用上的不足,在应用开发时的高难度、高成本已经成为限制智能卡进一步发展的最大障碍。在探索如何解决这些矛盾的过程中,以Sun为代表的公司开始尝试将更通用和安全的Java平台引入智能卡行业,Java卡便应运而生。
1 Java智能卡平台
Java卡是一种可以运行Java程序的微处理器智能卡,在卡中运行的程序叫Java Card Applet。Applet可以由用户动态装载到卡上。Java卡是Java体系中最小的一个平台,Applet可以在任何符合Java卡规范的卡上运行,主要规范包括:Java卡虚拟机规范(JCVM),编程接口规范(API)和运行时环境规范(JCRE),目前最新的规范是3.0版本。
1.1 Java卡体系结构及优点
1.1.1 Java卡体系结构
Java卡的内部结构由COS、Native Functions、Java VM、JavaFramework以及架构在此上的应用程序Applet所构成,Java卡内部结构如图1所示:
1.1.2 Java卡虚拟机结构
与Java平台相同。Java卡实现跨平台和高安全的关键是虚拟机,同样受限与硬件资源,Java卡虚拟机(JCVM)和普通Java虚拟机(JVM)的最重要的区别就在于JCVM是一个分离的结构――卡外和卡内虚拟机:
如图2所示:卡外虚拟机部分主要包括一个conventer,它运行在PC或者工作站,主要用来装载和预处理输入的class文件.并将其转化输出为一种Java卡字节码文件(即CAP,ConvenedAp#et);卡内虚拟机部分包括Java卡字节码解释器Interpreter。用来解释执行Java卡字节码文件。两者结合,就构成了完整的Java卡虚拟机,它们在卡外安装程序和卡上安装器的共同工作下,完成CAP文件下载、安装过程,如图3所示:
1.1.3 Java卡优点
Java卡的优点可以概括如下:
1)平台无关性和互操作性:通过Java卡虚拟机技术实现了跨平台和互操作的能力;
2)支持一卡多用,应用的动态下载及管理;
3)通用和开放:Java卡不但兼容了现有的智能卡行业标准,它还提供了一整套标准的API,使智能卡应用开发回到主流的面向对象编程,开发人员无需了解复杂的智能卡硬件和专用技术;
4)安全:Java卡继承了Java语言的安全特性,包括原子事务、应用防火墙等,从而提供了+安全高效的执行环境。
1.2 Java智能卡内存管理和对象管理
1 2.1 Java卡内存管理模型和对象类型
作为低端嵌入式设备的Java卡,内存是最宝贵的资源。通常在Java卡内有3种存储体:
1)ROM:通常存储有Java卡虚拟机、API类库、卡内操作系统和卡商预先装入的applet等,并在发卡前将它们掩膜到ROM中;
2)RAM:断电后数据丢失,因此用来存储暂态数据,包括局部变量、方法参数、中间运算结果等:
3)EEPROM:用来存储持久数据,包括下载到卡中的appletclass和创建的持久对象。
目前在Java卡中执行应用时,Java卡虚拟机调用new指令创建对象,并默认存储于EEPROM中。对象包括两类:
1)暂态对象(T
文档评论(0)