JavaCard开发教程之生存周期

王朝java/jsp·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

卡片上的每个小应用程序由一个application标识符(AID)唯一标识。 定义在ISO 7816 - 5中的AID是一段5到16字节之间的序列。 所有的小应用程序必须扩展Applet抽象基本类,这个类定义了JCRE使用的方法来控制小应用程序的生存周期,如图10概括:

图表1. java Card小应用程序生命周期方法

小应用程序生存周期在小应用程序被下载到卡片中并且JCRE调用小应用程序的static Applet.install ()方法的时候开始,并且小应用程序通过调用Applet.register ()在JCRE中注册。 一旦小应用程序被安装并且注册,它处于未选择的状态,可以进行选择并且处理APDU。 图表11.总结小应用程序方法的操作。

(图片较大,请拉动滚动条观看)

图表2、使用 Java Card小应用程序方法

当处在未选择的状态的时候,小应用程序是非激活状态。当主应用程序要求JCRE选择一个卡片中特定的小应用程序的时候(通过指示读卡器发送一个SELECT APDU或者MANAGE CHANNEL APDU),一个小应用程序被选择进行APDU处理。为了通知这个小应用程序主应用程序已经选择了它,JCRE调用它的select()方法;小应用程序一般执行相应的初始化来为进行APDU处理做预备。

一旦选择,JCRE传送输入的APDU命令到小应用程序,通过调用它的PRocess()方法来进行处理。JCRE捕捉任何小应用程序没能捕捉的异常。

当主应用程序告诉JCRE选择另一个小应用程序的时候,前一个小应用程序取消选择。 JCRE通知活动的小应用程序,它已经通过调用它的deselect()方法被取消了选择,小应用程序回到不活动的未经选择的状态。

Java Card会话和逻辑通道

卡片会话是卡片被加电并且和读卡器交换APDU的一段时间。

Java Card 2.2支持逻辑通道(logical channels)的概念,答应最多智能卡中的16个应用程序会话同时开启,每个逻辑通道一个会话。因为卡片中的APDU的处理不能中断,并且每个APDU包含一个到逻辑通道(在CLA字节)的引用,变动的APDU可以拟同步地访问卡片上的许多小应用程序。你可以设计一个小应用程序被多次选择;也就是说,每次和一个以上逻辑通道通信。多选的小应用程序必须实现javacard.framework.MultiSelectable接口和相应方法。

在一些卡片部署中,一个默认小应用程序可以被定义为在卡片复位以后被自动地选择,用于在基本逻辑通道(通路0)上通信。Java Card 2.2答应你定义默认小应用程序,但是不指定的如何做;其机理由厂家特定。进入讨论组讨论。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航