Java Card技术是专门为资源受限的设备,如智能卡,设计的一种平台,允许使用Java编程语言编写应用程序。这个平台由Classic Edition和Connected Edition两个版本组成。Classic Edition是基于2.2.2版本的,主要适用于资源有限且仅支持基于Applet的应用。而Connected Edition则提供了更强大的运行时环境和新的虚拟机,支持网络应用,如Servlet API,以及增强的Applet功能。这两个版本可以协同工作,以满足不同层次的需求。
1.1 动机
Java Card技术的诞生旨在让Java程序能够在小型、资源受限的设备上运行。通过使用标准的Java开发工具,开发者可以编写程序,然后将其转化为Java Card支持的格式,即Applet。这些Applet具有移植性,能够在各种Java Card支持的设备上运行,尽管智能卡等设备的资源有限,Java Card平台仅选择了Java平台的一小部分功能,以确保在小型设备上的适应性和效率。
1.2 Java Card Virtual Machine (JCVM)
Java Card虚拟机是Java Card平台的核心组成部分,它与Java虚拟机(JVM)类似,负责加载和执行CAP文件,这是Java Card特有的代码格式,用于保证代码在不同设备上的移植性。开发者首先编写Java类文件,通过Java Card Converter将这些类文件转换成CAP文件。Converter还会处理应用包(包含Applet子类的包)和库包(不包含Applet的包),以及可能的导出文件,这些文件包含了类之间的依赖信息。
开发流程如下:
1. 开发者编写Java类文件。
2. 使用模拟器在模拟环境中测试和调试应用程序。
3. Converter将类文件转换为CAP文件。
4. 将CAP文件复制到卡片终端,如配备读卡器的计算机。
5. 终端上的安装工具将CAP文件装载并发送到Java Card设备。
6. 设备上的安装程序处理CAP文件内容,准备Applet在Java Card虚拟机上运行。
在Java Card平台上,虚拟机并不直接处理CAP文件,而是由安装程序负责解析和准备应用程序的运行环境。Java Card虚拟机的角色在于确保这些转换后的应用程序能在智能卡这样的受限设备上正确、高效地执行。
Java Card技术为智能卡和其他资源有限的设备提供了运行Java程序的能力,通过精心设计的Java Card虚拟机和CAP文件格式,实现了跨设备的代码移植性,简化了开发和部署流程。这对于智能卡行业的软件分发和管理具有重要意义,因为它降低了对不同处理器和配置的智能卡的支持成本。