Java卡

JAVA卡与智能卡

2020-04-21 10:24:13 包盛杰 806

JAVA 卡是一种可以运行 JAVA 程序的接触式微处理器智能卡

为什么会在最近出现 JAVA 卡的呢?为什么 JAVA 卡会变得如此受欢迎?为了回答这个问题,我们先来回顾一下 JAVA 卡出现之前的智能卡,看看它存在着什么样的问题。

JAVA卡之前的智能卡

早期的智能卡主要是以一种介质形式出现的,它可以在卡体内存储金额,从而能在公共电话机或自动售货机上被使用。它完成的是一种存储信息的应用。这时卡的需求量并不大。同时卡的应用也不多。而近来,随着智能卡地越来越“智能”,由于智能卡的优点越来越被人认可,它的应用范围也越来越广泛:从银行的借贷卡,存放个人医疗信息的医疗卡,到有线和无线网络的安全模块卡等等。智能卡的应用可以说是涉及到了各个领域,几乎每个人都要与智能卡打交道。市场的需求量急剧上升,同时越来越多的智能卡新应用也随之诞生。

但与智能卡需求量急剧上升所矛盾的是:智能卡应用的研发是一个复杂漫长的过程。尽管对智能卡的结构大小和通信协议,国际规范 ISO7816 早已规定,但各个卡生产商对智能卡的研制都各不相同。各个卡生产商对自己的智能卡操作都有自己独特的一套指令集。

此外,智能卡编程接口(APIs)非常复杂,用之编程,需要开发人员非常熟悉低层通信接口协议,内存管理和一些智能卡硬件的细节。因此,在开发智能卡应用之前,开发人员就需要花费大量时间来了解智能卡的复杂开发环境,而且在他们研究后会发现并不存在现代化的开发工具(象 Visual Studio 那样工具)。更糟糕的是:对不同的智能卡并没有一个通用的开发环境。每次你要开发一种新的应用,可能你都必须从新了解一种新的开发环境。

情况有可能还没有这么简单。由于所有的智能卡都是在专门的开发环境中开发出来的,不同的卡的生产商生产出来的相同应用的卡可能并不兼容,这使同一系统中使用不同生产商的卡变得很复杂。

据估计,2001 年,智能卡的需求量为 10-30 亿片。而了解智能卡编程的人员少之又少。智能卡编程的复杂性,不统一性将严重阻碍智能卡的发展。市场的需求为智能卡的发展提出了新的要求。然而这一切将随着 JAVA 卡的出现而改变。

JAVA卡的出现

JAVA 卡是一种可以运行 JAVA 程序的接触式微处理器智能卡,在卡中运行的程序叫 Applet。Applet 可以动态装载到 JAVA 卡上。JAVA 卡的 API(JAVA Card 2.1.1 Application Programming Interfaces Specification )为智能卡制定了一个 JAVA 语言的特殊子集。如今95%智能卡制造商已经支持了 JAVA 卡的 API。JAVA 卡和 JAVA 卡 API 的出现使智能卡的编程变得既快又简单,同时这些卡的应用程序(Applet)可以在任何支持 JAVA 卡 API 的智能卡上运行。可以说 JAVA 卡的出现立刻解决了 JAVA 卡出现之前智能卡所遇到的问题。

JAVA 卡是如何完成这一巨大的功能的呢?原来在 JAVA 卡内有一个能执行 JAVA 字节码(Applet)的 JAVA 虚拟机-它提供一整套标准的 JAVA 卡编程的 API,使得开发人员无需了解复杂的智能卡硬件和智能卡专用的技术,就可以进行智能卡应用的开发,从而大大减少开发时间和降低开发难度。据粗略的统计,用 JAVA 来编程可以比用 C 语言来编程节约 60% 的开发时间,如与智能卡特殊的汇编语言来比,这种优势将更为明显。同时由于 JAVA 虚拟机的使用,JAVA 卡的 Applet 能够在不同卡片的 JCAE(JAVA Card Application Environment)上执行,即透过 JAVA 虚拟机的机制来达到跨平台的能力。

JAVA 是一种面对对象的编程语言,智能卡的基于对象的 API 大大简化了卡内 Applet 与终端或后台服务器的通信。

JAVA 卡的另一巨大优势是:开发人员可以任意选择他们所熟悉和喜欢的开发工具。由于对 JAVA 卡的编程是用 JAVA 语言,所有几乎当今所有流行的 JAVA 开发环境,如 VJ++,Vcafe 等,都可以被用来进行 JAVA 卡的开发。正因如此,快速完成和调试 JAVA 卡的应用程序也变为了可能。而在这之前,调试卡的应用程序是一个极复杂漫长的过程,因为应用程序首先要被装载到卡的 ROM 中,而装载到卡的 ROM 中的程序是无法更新的,所以对一个应用程序的调试将占用大量的时间。

同时由于任何 JAVA 开发人员都可以变为 JAVA 卡开发人员,这就为智能卡的发展提供了强有力的保证。

JAVA 卡还有两大优点:支持一卡多用途和重用。支持一卡多用途是指 JAVA 卡上可以同时存在多个不同的应用。这些应用可以来自同一个卡供应商,也可以来自不同的卡供应商。这样一张 JAVA 卡就可以完成不同的功能,例如,它可以有电子钱包功能,同时也可以有身份鉴别功能。重用是指 JAVA 卡上的应用可以根据需要进行删除或重新添加新的应用,而无需更换新的智能卡,这样大大增强智能卡的灵活性。

综上所述,JAVA 卡的出现统一了智能卡的编程接口(API),统一了智能卡的编程语言(JAVA 语言),为智能卡的更大范围的使用提供了基础,真正使智能卡行业成为一个统一标准的产业。


首页
产品
新闻
联系