诞生于 1997 年的 Java Card 技术旨在让智能卡、安全令牌及其他内存受限设备能够运行 Java Applet。Sun 宣称世界上有 35 亿多个 Java 智能卡设备,因此我们能够看出该项技术的应用范围是相当广泛的。自从 1997 年以来 Sun 针对该平台发布了 6 个更新,而核心架构却基本没变。但随着 Java Card 3 的发布,Sun 对其进行了大刀阔斧的改革以充分利用高端智能卡硬件领域日新月异的变革。
Java Card 3 具有两个版本:Classic Edition 和 Connected Edition。这两个版本都以具有持久化对象的持久化虚拟机为特色,多个应用能够在虚拟机上运行,同时可以基于防火墙的上下文隔离机制来防止外来的侵袭。他们都兼容于 Java Card 2,现有的 Applet(称作“Classic Applet”)也都能运行于其上。以上就是两个版本相似的一面。
Classic Edition 基于现有的 2.2.2 架构并引入了一些增强,如支持新的加密算法(s4096-bit RSA 及 NSA Suite B 等)。像旧版本的 Java Card 平台一样,Classic Edition 使用了一种分离的虚拟机技术,这充分考虑了加载到卡片上的应用的预处理问题。这种方式可以保证实现 Java Card 平台所需的内存和 CPU 可以降到最低,同时 Classic Edition 还适合于那些只有 8 位或 16 位 CPU 的低成本卡片。
Connected Edition 的目标在于具有 32 位 CPU 的高端智能卡。它引入了一个全新的虚拟机和大量新 API 与服务,但却没有使用分离的虚拟机技术来加载应用而是充分利用高端智能卡的优势,使用标准的 Java Archive(JAR)文件格式和卡片上的类文件验证来直接加载类文件。
新架构旨在让智能卡成为安全的网络结点,要么为网络提供安全服务,要么请求访问网络资源。开发者可以通过一个兼容于 Servlet 2.5 的嵌入式 Web 容器或是直接管理连接的方式将智能卡与 IP 网络和 Web Services 集成起来。由于充分利用了新虚拟机中多线程的优势,该 Web 容器可以同时分发多个 HTTP 和 HTTPS 请求。平台为那些想要直接管理网络连接的开发者提供了 Generic Connection Framework,该框架提供了一套相关的抽象层来请求和管理网络与 I/O 连接。除了 HTTP 与 HTTPS 以外,Generic Connection Framework 还支持很多其他的协议,如 TCP、TLS 以及可选的 UDP。
Connected Edition 的虚拟机基于 Connected Limited Device Configuration(CLDC)VM 1.1 之上,而由 Java ME 平台所定义的 CLDC 在移动电话上得到了广泛的应用。 相对于 Classic Edition 虚拟机来说,Connected Edition 虚拟机除了支持多线程以外还支持多位包装(multiple package)和垃圾收集。Connected Edition 虚拟机兼容于 JDK 6,除了浮点数以外支持所有的 Java 语言特性包括注解和泛型。使用新特性的 Applet 叫做“Extended Applet”。
尽管提供了这么多的增强,内存使用量依然是非常小的。James Gosling说到它适合于“24K RAM,128K EEPROM,512K ROM,32 位处理器”。
大家可以访问项目团队的 Kenai 主页来进一步了解相关信息。目前 Sun 正在开发一个 NetBeans 插件以简化 Smart Card 的 Applet 开发工作。
查看英文原文: Java Card 3 Includes Java 6 Support and an Embedded Servlet Container
评论