一种JAVA智能卡的数据处理方法、装置及系统制造方法及图纸

技术编号:3940382 阅读:205 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种JAVA智能卡的数据处理方法、装置及系统,以解决现有技术中JAVA智能卡处理CAP文件耗时长、运行效率较低的问题。该方法包括:确定出程序转换包CAP文件中需要通过调用NATIVE函数实现相应功能的方法,并将该方法的方法体设置为空;配置NATIVE函数与方法的对应关系;根据所述对应关系修改方法头:针对确定出的每一个方法,将该方法的方法头的标志位设置为表征该方法调用NATIVE函数的特征值以及在该方法的方法头中记录该方法所对应的NATIVE函数的标识信息。采用本发明专利技术技术方案降低了智能卡处理数据的时延、提高了运行效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种JAVA智能卡的数据处理方法、装置及 系统。
技术介绍
目前,较为常用的智能卡采用JAVA语言实现,后续称该类卡为Java智能卡,一般 来说Java智能卡的应用程序通过调用API (Application ProgrammingInterface,应用程 序编程接口)类数据包实现相应的功能。API类数据包(如Java. io,Java. Iang等数据包) 主要以CAP (Converted Applet Package,程序转换包)文件的格式下载到Java智能卡中。 CAP文件的格式由Java智能卡的JCVM (Java Card Virtual Machine JAVA卡虚拟机)规范 定义统一的格式,一个API类数据包对应一个CAP文件,一个CAP文件包括以下几种组件 Header 组件、Directory 组件、Applet 组件、Import 组件、ConstantPool 组件、Class 组件、 Method StaticFieldReferenceLocationExportDescriptor Μ Ψ 以及Debug组件等,每个组件都为TLV结构,并且组件顺序存储,可根据长度信息确定出每 个组件的起始位置和结束位置,如图1所示,存储有每个组件的Tag值、长度值以及value 值。目前,CAP文件的Method组件中包含有该API类数据包所声明的所有方法,并且 针对每个方法都有相应的方法头与方法体,方法头中存储有该方法的参数与堆栈特征,方 法头中还设有标志位(该标志位用于标识方法类型),方法体中存储有可执行的字节码(该 字节码都是通过JAVA语言编程实现)。当方法的类型为ACC_ABSTRACT时,则将该方法的方 法头的数据结构设置为2字节数据,第一字节的高4bit为标志位(用flag表示)取值为 0X4,低4bit为运行该方法时需要用到的最大堆栈单元,第二个字节的高4bit为该方法的 参数的数量,低4bit为该方法的最大本地变量的数量;当方法的类型为ACC_EXTENDED时, 则将该方法的方法头的数据结构设置为4字节数据,第一字节的高4bit为标志位(用flag 表示)取值为0X8,低4bit无意义,第二个字节为运行该方法时需要用到的最大堆栈单元; 第三个字节为该方法的参数的数量;第四字节为方法的最大本地变量的数量。当将API类 数据包对应的CAP文件下载到Java智能卡之后,在JAVA智能卡中对CAP文件进行解析,当 解析该CAP文件中的Method组件时,针对该Method组件中的每一种方法,从该方法的方法 头中解析出标志位,并根据该标志位的取值进行相应的操作。现有技术中,由于每种方法对应的bytecode字节码都是采用JAVA语言编程,因 此,在执行所有方法对应的bytecode字节码时,都需要首先将该bytecode字节码翻译成底 层的语言程序(如C语言、C++语言等),再将底层语言程序翻译成机器码,最后再根据机器 码执行相应的指令,以完成该方法所有实现的功能;因此,采用现有的技术方案对Method 组件进行解析,由于执行该Method组件中的每一种方法对应的bytecode码都需要进行两 次翻译,从而导致Java智能卡在执行各个程序时耗时较长、运行效率较低且耗费大量的资 源等技术问题。
技术实现思路
本专利技术实施例提供一种JAVA智能卡的数据处理方法、装置及系统,以解决现有技术中JAVA智能卡对CAP文件处理耗时长、运行效率较低的问题。一种JAVA智能卡的数据处理方法,包括确定出程序转换包CAP文件中需要通过调用NATIVE函数实现相应功能的方法,并 将该方法的方法体设置为空;配置NATIVE函数与方法的对应关系;根据所述对应关系修改方法头针对确定出的每一个方法,将该方法的方法头的 标志位设置为表征该方法调用NATIVE函数的特征值以及在该方法的方法头中记录该方法 所对应的NATIVE函数的标识信息。一种JAVA智能卡的数据处理装置,包括确定模块,用于确定出程序转换包CAP文件中需要通过调用NATIVE函数实现相应 功能的方法,并将该方法的方法体设置为空;配置模块,用于配置NATIVE函数与方法的对应关系;处理模块,用于根据所述配置模块配置的所述对应关系修改方法头针对确定出 的每一个方法,将该方法的方法头的标志位设置为表征该方法调用NATIVE函数的特征值 以及在该方法的方法头中记录该方法所对应的NATIVE函数的标识信息。一种JAVA智能卡,包括接收模块,用于接收程序转换包CAP文件;该CAP文件中包含有需要通过调用 NATIVE函数实现相应功能的方法,所述需要调用NATIVE函数实现相应功能的方法的方法 头中的标志位的取值为用于表征该方法调用NATIVE函数的特征值,方法头中记录有该方 法所对应的NATIVE函数的标识信息,并且该方法的方法体为空;处理模块,用于对所述CAP文件进行解析,针对该CAP文件中需要通过调用NATIVE 函数实现相应功能的方法,则根据该方法的方法头中记录的标识信息调用相应函数运行所 述方法。一种JAVA智能卡的数据处理系统,包括JAVA智能卡的数据处理装置,用于确定出程序转换包CAP文件中需要通过调用 NATIVE函数实现相应功能的方法,并将该方法的方法体设置为空;配置NATIVE函数与方法 的对应关系,并根据所述对应关系修改方法头针对确定出的每一个方法,将该方法的方法 头的标志位设置为表征该方法调用NATIVE函数的特征值以及在该方法的方法头中记录该 方法所对应的NATIVE函数的标识信息;将处理后的所述CAP文件发送至JAVA智能卡;JAVA智能卡,用于接收所述CAP文件并进行解析,针对该CAP文件中需要通过调用 NATIVE函数实现相应功能的方法,则根据该方法的方法头中记录的标识信息调用相应函数 运行所述方法。本专利技术实施例中,首先,确定出CAP文件中需要通过调用NATIVE函数实现相应功 能的方法,并将该方法的方法头标志位设置为表征该方法需要调用NATIVE函数的特征值 以及在方法的方法头中记录该方法需要调用的函数的标识信息,并将该方法的方法体设置 为空;智能卡接收到该CAP文件之后并解析,针对该CAP文件中需要通过调用NATIVE函数实现相应功能的方法,则根据该方法的方法头中记录的标识信息调用相应函数运行所述方 法。采用本专利技术技术方案,由于对CAP文件中全部或部分方法通过调用NATIVE函数即可实 现相应的功能,因此,不需要对CAP文件中所有的方法都通过执行该方法的方法体来实现 相应的功能,从而降低了 JAVA智能卡对CAP文件的处理时延、提高运行效率。附图说明图1为现有技术中CAP文件中的各组件的结构示意图;图2为本专利技术实施例中处理数据的方法流程图;图3为本专利技术实施例中处理数据的系统结构示意图。具体实施例方式下面结合说明书附图对本专利技术实施例进行详细的描述。为解决上述技术问题,本专利技术实施例中,对Method组件中的各方法的方法头中的 标志位进行了扩展,如,当标志位的取值为0X8时,则表示该方法的类型为ACC_EXTENDED ; 当标志位的取值为0X4时,则表示该方法的类型为ACC_ABS本文档来自技高网
...

【技术保护点】
一种JAVA智能卡的数据处理方法,其特征在于,包括:确定出程序转换包CAP文件中需要通过调用NATIVE函数实现相应功能的方法,并将该方法的方法体设置为空;配置NATIVE函数与方法的对应关系;根据所述对应关系修改方法头:针对确定出的每一个方法,将该方法的方法头的标志位设置为表征该方法调用NATIVE函数的特征值以及在该方法的方法头中记录该方法所对应的NATIVE函数的标识信息。

【技术特征摘要】

【专利技术属性】
技术研发人员:王卫霞刘承涛臧宏伟
申请(专利权)人:北京握奇数据系统有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1