大宝自习室

道路就在脚下

JavaCard 简介

| 评论

Java 历史

1991年,Sun公司的由James Gosling,Bill Joe等人组成的Green小组开发了一个名为Oak的软件,开发它的目的是用于电视等家用电器的嵌入式应用.在这之后,Oak发展成了当今的Java语言。伴随着近年来互联网迅猛的发展,Java语言逐渐成为最重要的网络编程语言之一。

Java Card的产生

在1995年后,SUN公司专门成立了JavaSoft部门来推广Java在各个领域的应用。 1996年10月,Schlumberger提出Java Card 1.0标准,但是它只包含API协议。 1997年,智能卡业的两巨头Schlumberger和Gemplus表示支持Java智能卡并联合成立了Java智能卡论坛(JavaCard Forum),随后,其它大的智能卡公司如Bull CP8 Transa等也表示支持Java智能卡并参加到这个论坛中来。论坛成立的目的就是根据厂商们的意见来完善Java Card API技术规范。 1997年,第一张运用了Java Card技术的智能卡发布。

Java Card规范 Java Card技术规范主要由3个部分组成,Java Card虚拟机(JCVM)、Java Card运行环境(JCRE)、Java Card应用编程接口(JC API). Java Card虚拟机(JCVM) JCVM是一般JVM的子集。它负责对Applet进行执行并返回执行的结果。JCVM存在于智能卡中,因此其不能占用过多的空间。 JCVM的生存周期是卡的生存周期,即使卡被拔出。在卡没有电源供应的时候,持续记忆的技术(ROM,EEPROM)可以保证卡在失去电源的情况下,其内部的信息不会丢失。当再次插入读卡器中供电之后,JCVM能够从(ROM,EEPROM)中重新恢复。

Java Card运行环境(JCRE) JCRE规范定义了智能卡运行时的行为。它定义了JCVM的生命周期,Java Card Applet的生命周期,及其中install,select等方法的执行规范,通讯的逻辑通道及应用的选择。

Java Card AIP Java Card API是传统Java语言API很小的一个子集。 不支持特性

语言特性不支持: 动态类装载、安全管理、多线程、对象克隆等不支持;

关键字不支持: 不支持native、synchronized、transient、volatile、strictfp关键字;

不支持类型: 不支持char、double、float、long及多维数组;

不支持类和接口:仅支持Object、Throwable部分方法,其他Java核心应用编程类和接口都不支持;

异常: 仅支持在Java Card平台中使用到的异常,其他Exception和Error子类多被精简。

Java Card特点 通用性 Java Card Applet符合通用标准后,能够在不同的芯片JCVM上运行。需要添加应用时,只需要将应用下载到卡片内即可,系统扩展性强。 安全性强 Java Card研发的初衷就是为了保护智能卡中核心敏感的信息。Java Card规范中规定了系统运行的安全需求,对卡内信息读取、写入和操作都有严格的权限限制。非法用户无法通过欺骗操作获取私密信息和进行超越权限的操作。

评论