本发明专利技术公开一种基于Java卡的数据管理方法,包括:当Java卡虚拟机接收到包含有偏移地址组件的指令时,根据偏移地址组件、方法组件、常量池组件获取预设长度的数据;若该数据中第一预设位置上的数据为第一预设值时,根据该数据得到被管理数据的偏移地址,用被管理数据的偏移地址替换方法组件中的管理指令中的卡外偏移地址;在Java卡虚拟机解释执行应用的Java程序的过程中,当检测到调用静态方法指令时,从管理指令中提取被调用的静态数据基于第一(或第二)存储区的偏移地址,根据第一(或第二)存储区的基地址和被调用的静态数据的偏移地址计算被调用的静态数据的物理地址;将被调用的静态数据的物理地址存储到指令寄存器中。
【技术实现步骤摘要】
【专利摘要】本专利技术公开,包括:当Java卡虚拟机接收到包含有偏移地址组件的指令时,根据偏移地址组件、方法组件、常量池组件获取预设长度的数据;若该数据中第一预设位置上的数据为第一预设值时,根据该数据得到被管理数据的偏移地址,用被管理数据的偏移地址替换方法组件中的管理指令中的卡外偏移地址;在Java卡虚拟机解释执行应用的Java程序的过程中,当检测到调用静态方法指令时,从管理指令中提取被调用的静态数据基于第一(或第二)存储区的偏移地址,根据第一(或第二)存储区的基地址和被调用的静态数据的偏移地址计算被调用的静态数据的物理地址;将被调用的静态数据的物理地址存储到指令寄存器中。【专利说明】—种基于Java卡的数据管理方法
本专利技术涉及数据管理领域,尤其涉及。
技术介绍
Java卡是一种可以运行Java程序的CPU智能卡。根据数据性质,Java卡中的数据可分为静态数据、动态数据和临时数据,静态数据如程序代码等,动态数据如对象及变量等;按照存储位置,Java卡中的数据可分为ROM数据,Flash/EEPROM数据、RAM数据。在现有技术中,Java卡中的数据管理的方法也有多种,使用对象表管理是常用的一种方式,但是在访问数据之前首先要根据表偏移地址找到对象表,再从对象表中获取Java卡中数据的偏移地址,访问速度较慢。
技术实现思路
本专利技术的目的是为了克服现有技术的不足,提供。本专利技术提供了,包括下载管理指令的过程和访问数据的过程;其中,所述下载管理指令的过程包括:步骤SO:当Java卡虚拟机接收到主机下发的指令时,判断接收到的指令中是否包含有偏移地址组件,是则保存所述偏移地址组件,执行步骤SI,否则所述Java卡虚拟机等待接收主机下发指令,返回步骤SO ;步骤S1:所述Java卡虚拟机从所述偏移地址组件中获取第一偏移地址,根据所述第一偏移地址从保存的方法组件中获取第二偏移地址,根据所述第二偏移地址从保存的常量池组件中获取出预设长度的数据;步骤S2:所述Java卡虚拟机判断所述获取到的数据中第一预设位置上的数据是否为第一预设值,是则执行步骤S3,否则所述Java卡虚拟机等待接收主机下发指令,返回步骤SI ;步骤S3:所述Java卡虚拟机判断所述获取到的数据中第二预设位置的最高位上的数据是否为第二预设值,是则执行步骤S4,否则执行步骤S6 ;步骤S4:所述Java卡虚拟机根据所述获取到的数据中第二预设位置的除最高位之外的其他位上的数据,获取被管理数据信息所属的包的包ID,根据所述包ID从第二存储区中的包表中获取对应的导出表的地址;步骤S5:所述Java卡虚拟机根据所述导出表的地址和所述获取到的数据中第三预设位置上的数据得到被管理数据的偏移地址,执行步骤S7 ;步骤S6:所述Java卡虚拟机根据所述获取到的数据中第四预设位置上的数据和保存的被管理数据信息组件的起始地址得到所述被管理数据的偏移地址,执行步骤S7 ;步骤S7:所述Java卡虚拟机用所述被管理数据的偏移地址替换所述方法组件中的管理指令中的卡外偏移地址;所述访问数据的过程包括:步骤Pl:在所述Java卡虚拟机解释执行应用的Java程序的过程中,当检测到所述管理指令时,判断所述管理指令的类型是否为调用静态方法指令,是则执行步骤P2,否则所述Java卡虚拟机继续解释执行应用的其他Java程序,返回步骤Pl ;步骤P2:所述Java卡虚拟机判断所述管理指令是否为调用第一存储区中的静态数据的调用静态方法指令,是则执行步骤P3,否则执行步骤P4 ;步骤P3:所述Java卡虚拟机从所述管理指令中提取所述被调用的静态数据基于所述第一存储区的偏移地址,根据所述第一存储区的基地址和所述被调用的静态数据基于所述第一存储区的偏移地址计算所述被调用的静态数据的物理地址,执行步骤P5 ;步骤P4:所述Java卡虚拟机从所述管理指令中提取所述被调用的静态数据基于所述第二存储区的偏移地址,根据所述第二存储区的基地址和所述被调用的静态数据基于所述第二存储区的偏移地址计算所述被调用的静态数据的物理地址,执行步骤P5 ;步骤P5:所述Java卡虚拟机将所述被调用的静态数据的物理地址存储到指令寄存器中,所述Java卡虚拟机继续解释执行应用的其他Java程序,返回步骤Pl。进一步地,所述被管理数据为静态方法,所述被管理数据信息为被调用静态方法,所述被管理数据信息组件为方法组件,所述管理指令为调用静态方法指令;所述步骤S5包括:步骤S501:所述Java卡虚拟机判断所述包ID是否小于第三预设值,是则执行步骤S502,否则执行步骤S503 ;步骤S502:所述Java卡虚拟机将所述方法组件中的调用第二存储区中的静态方法的调用静态方法指令更改为调用第一存储区中的静态方法的调用静态方法指令,执行步骤 S503 ;步骤S503:所述Java卡虚拟机根据所述导出表的地址和所述获取到的数据中第三预设位置上的数据,从所述导出表中获取所述静态方法的偏移地址,执行步骤S7 ;所述步骤S6包括:步骤S601:所述Java卡虚拟机根据所述获取到的数据中第四预设位置上的数据获取第三偏移地址;步骤S602:所述Java卡虚拟机根据所述第三偏移地址和所述方法组件的起始地址得到所述静态方法的物理地址;步骤S603:所述Java卡虚拟机根据所述静态方法的物理地址和所述第二存储区的基地址得到所述静态方法基于所述第二存储区的偏移地址,执行步骤S7。进一步地,所述被管理数据为被创建对象的类型信息,所述被管理数据信息为被引用类型信息,所述被管理数据信息组件为类型信息组件,所述管理指令为创建对象指令;所述步骤S5包括:步骤S511:所述Java卡虚拟机判断所述包ID是否小于第三预设值,是则执行步骤S512,否则执行步骤S513 ;步骤S512:所述Java卡虚拟机将所述方法组件中的被创建对象的类型信息在第二存储区中的创建对象指令更改为被创建对象的类型信息在第一存储区中的创建对象指令,执行步骤S513 ;步骤S513:所述Java卡虚拟机根据所述导出表的地址和所述获取到的数据中第 三预设位置上的数据,从所述导出表中获取所述被创建对象的类型信息的偏移地址,执行 步骤S7 ;所述步骤S6包括:步骤S611:所述Java卡虚拟机根据所述获取到的数据中第四预设位置上的数据 获取第三偏移地址;步骤S612:所述Java卡虚拟机根据所述第三偏移地址和所述类型信息组件的起 始地址得到所述被创建对象的类型信息的物理地址;步骤S613:所述Java卡虚拟机根据所述被创建对象的类型信息的物理地址和所 述第二存储区的基地址得到所被创建对象的类型信息基于所述第二存储区的偏移地址,执 行步骤S7。进一步地,上述方法还包括创建对象的过程,所述创建对象的过程包括:步骤B1:在所述Java卡虚拟机解释执行应用的Java程序的过程中,当检测到创 建对象指令时,从所述创建对象指令的参数中获取指令码和被创建对象的类型信息的偏移 地址;步骤B2:所述Java卡虚拟机根据所述指令码判断被创建对象的类型信息是否在 所述第一存储区中,是则执行步骤B3,否则执行步骤B4 ;步骤B3:所述Java卡虚拟机根据所述第一存储区的基地址和所述被创建对象的 类型信息的偏移地址得到被创建本文档来自技高网...
【技术保护点】
一种基于Java卡的数据管理方法,其特征在于,包括下载管理指令的过程和访问数据的过程;其中,所述下载管理指令的过程包括:步骤S0:当Java卡虚拟机接收到主机下发的指令时,判断接收到的指令中是否包含有偏移地址组件,是则保存所述偏移地址组件,执行步骤S1,否则所述Java卡虚拟机等待接收所述主机下发指令,返回步骤S0;步骤S1:所述Java卡虚拟机从所述偏移地址组件中获取第一偏移地址,根据所述第一偏移地址从保存的方法组件中获取第二偏移地址,根据所述第二偏移地址从保存的常量池组件中获取出预设长度的数据;步骤S2:所述Java卡虚拟机判断所述获取到的数据中第一预设位置上的数据是否为第一预设值,是则执行步骤S3,否则所述Java卡虚拟机等待接收所述主机下发指令,返回步骤S1;步骤S3:所述Java卡虚拟机判断所述获取到的数据中第二预设位置的最高位上的数据是否为第二预设值,是则执行步骤S4,否则执行步骤S6;步骤S4:所述Java卡虚拟机根据所述获取到的数据中第二预设位置的除最高位之外的其他位上的数据,获取被管理数据信息所属的包的包ID,根据所述包ID从第二存储区中的包表中获取对应的导出表的地址;步骤S5:所述Java卡虚拟机根据所述导出表的地址和所述获取到的数据中第三预设位置上的数据得到被管理数据的偏移地址,执行步骤S7;步骤S6:所述Java卡虚拟机根据所述获取到的数据中第四预设位置上的数据和保存的被管理数据信息组件的起始地址得到所述被管理数据的偏移地址,执行步骤S7;步骤S7:所述Java卡虚拟机用所述被管理数据的偏移地址替换所述方法组件中管理指令的卡外偏移地址;所述访问数据的过程包括:步骤P1:在所述Java卡虚拟机解释执行应用的Java程序的过程中,当检测到所述管理指令时,判断所述管理指令的类型是否为调用静态方法指令,是则执行步骤P2,否则所述Java卡虚拟机继续解释执行应用的其他Java程序,返回步骤P1;步骤P2:所述Java卡虚拟机判断所述管理指令是否为调用第一存储区中的静态数据的调用静态方法指令,是则执行步骤P3,否则执行步骤P4;步骤P3:所述Java卡虚拟机从所述管理指令中提取所述被调用的静态数据基于所述第一存储区的偏移地址,根据所述第一存储区的基地址和所述被调用的静态数据基于所述第一存储区的偏移地址计算所述被调用的静态数据的物理地址,执行步骤P5;步骤P4:所述Java卡虚拟机从所述管理指令中提取所述被调用的静态数据基于所述第二存储区的偏移地址,根据所述第二存储区的基地址和所述被调用的静态数据基于所述第二存储区的偏移地址计算所述被调用的静态数据的物理地址,执行步骤P5;步骤P5:所述Java卡虚拟机将所述被调用的静态数据的物理地址存储到指令寄存器中,所述Java卡虚拟机继续解释执行应用的其他Java程序,返回步骤P1。...
【技术特征摘要】
【专利技术属性】
技术研发人员:陆舟,于华章,
申请(专利权)人:飞天诚信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。