卡片上的每个小应用程序由一个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允许你定义默认小应用程序,但是不指定的如何做;其机理由厂家特定。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器