链接转换的小型应用程序文件的方法和设备的制作方法

文档序号:6670107阅读:183来源:国知局
专利名称:链接转换的小型应用程序文件的方法和设备的制作方法
技术领域
本发明一般涉及智能卡领域,更具体地涉及一种改进的智能卡以及用于在智能卡中装载的已转换的小型应用程序文件中解析出尚未解析的引用(reference)的方法。
背景技术
多数顾客都熟悉并使用过信用卡、借记卡、自动柜员机(ATM)卡、储值卡等。但是,对于许多交易来说,目前的趋势是逐渐不使用这些类型的卡,并使用一种通常被称为“智能卡”的装置。智能卡是一种塑料的、信用卡大小的卡,其包括在该卡的大部分塑料中嵌入的电子器件(芯片)。智能卡使用芯片内的嵌入的微处理器和存储元件而不是仅使用嵌入的存储信息的磁条。
由于智能卡具有芯片,所以它们可被编程以便以各种不同的性能进行操作,诸如储值卡、信用卡、借记卡、ATM卡、名片、个人身份卡、关键记录存储装置等。在这些不同的性能中,可以设计智能卡使用各种不同的应用程序。智能卡符合国际标准化组织(ISO)的7816号标准的第1-10部分,上述标准被引入至此作为参考,该标准一般称为“ISO 7816”。智能卡是资源受限装置,同样地,具有最低限度的存储器配置,典型地配置级别为随机存取(易失性)存储器(RAM)1K或2K、诸如电子可擦可编程只读存储器(EEPROM)之类的非易失性读/写存储器16K或32K、以及只读存储器(ROM)24K。术语“EEPROM”始终广泛地用于指代包括快闪存储器的非易失性(即,永久性)存储器。最初,智能卡的应用程序开发基本上是专有的。即,每一个智能卡的软件对于其上嵌入的微处理器的设计来说是特定的,所带来的最终结果是使对能在由不同制造商生产的各种卡上运行的应用程序的开发能力受到极大的限制。从而,智能卡应用程序的开发被限制在相对小的开发者范围内,这些开发者或者是服务于智能卡制造商或者是智能卡的发行者。
但是,近年来,智能卡应用程序开发得到了发展,使得其不再是专有的。现在尽管对应用程序采用了开放式体系结构,但是仍需要开发能够在不同制造商的智能卡以及其它类似智能卡的、具有小量可用存储器或其它存储数据装置(即存储器件)的资源受限装置上运行的应用程序。Java Card(娇娃卡)技术是这样的开放式开发体系结构的一个例子。它使用JavaTM编程语言并采用Java Card运行环境(JCRE)。JCRE遵循ISO 7816并定义了一种平台,在该平台中以Java编程语言编写的应用程序可在智能卡和其它资源受限装置上运行。为JCRE编写的应用程序称为AS applet(AS小型应用程序文件)。
但是,在applet能够被装载到智能卡上进行执行之前,applet的源代码必须转换成组成applet的类的对应二进制表示。这种对应二进制表示被称为CAP文件(转换的applet文件),并且是应用程序被装载到使用JCRE的智能卡时的文件格式。通过智能卡上装载的安装模块,CAP文件典型地被以字节块的形式装载在智能卡的非易失性读/写存储器中,并占用相邻的空间。
每一个CAP文件可以包括调用必须在执行前进行转换的各种符号或未解析的代码的引用。术语“调用”始终广泛地用于描述两片代码之间的关系,其中一片调用另一片。典型地,通过应用程序内的代码调用另一片代码,其中后一片代码驻留在应用程序自身中或在智能卡上的函数库中,命令、函数、定义等可以被调用。将这些调用解析成未解析代码引用的处理通常称为链接或分辨(resolution),该处理涉及查询存储器(常数存储库)或其它存储装置中的对应表中的符号引用、或计算未解析的相关代码引用、以及用实际存储器地址或存储有特定命令、函数、定义等的内部可访问符号引用来代替该引用。当链接或分辨处理典型地施加到计算机代码中的未解析引用时,该处理可以应用到用于存储或操作其中包含有未解析引用的数据的任何结构(即,数据结构)中。术语“解析”、“分辨”始终广泛地用于描述在代码或数据结构内使用内部可访问符号引用或实际存储器地址替换未解析代码或符号引用的上述处理。
传统上,通过利用非易失性读/写存储器的卡的安装模块,在卡上实现链接。如上所述,智能卡的非易失性读/写存储器典型地包括EEPROM。EEPROM技术的特点使得向EEPROM进行访问和写入所需的时间显著比向RAM进行相应的访问和写入所需的时间长。而且,EEPROM在可被写入的次数上存在局限(典型地,为几万或几十万次)。因此,在EEPROM中执行CAP文件的所需链接处理是耗时的,并且影响EEPROM的使用寿命。因此,找到一种使写入EEPROM的次数最小化的有效链接CAP文件的设备和方法将是有益的。


通过下面参考附图进行的详细描述,本发明的结构和运行将会变得清楚,其中图1示出了代表性的智能卡;图2以一些附加细节概念性地说明微处理器,其具有图1中代表性智能卡的模块105的集成存储器组件115;图3概念性地说明装载有CAP文件的非易失性读/写存储器230的一部分;图4是图3所述的CAP文件的常数存储库、指令集和再定位表组成部分的实例;图5说明了适合于根据本发明实施例的智能卡中使用的解析缓冲器;以及图6是进一步说明本发明的一个方面的流程图。
尽管本发明可有各种修改和替换形式,仍以举例形式在附图中示出其特定的实施例,并在此将给出详细说明。但应该明白的是,这里的附图和详细说明并不试图将本发明限制在所公开的具体实施例上。相反,本发明仅由权利说明书的内容来限制。
具体实施例方式
一般说来,本发明涉及智能卡及方法,其中智能卡可被配置来接收诸如文件中带有未解析的引用的转换的applet文件之类的计算机代码并解析这些未解析的引用以使写入到EEPROM的次数最少。
说明书和附图中,相同的组件将使用相同的附图标记。
图1示出了代表性的智能卡。智能卡100大约具有信用卡的尺寸,包括具有导电连接器110的模块105,导电连接器110与具有一集成存储组件的微处理器115相连接,导电连接器110与一终端接口,以典型地提供工作电源和在该终端和智能卡之间电传输数据。智能卡的其它实施例可不包括导电连接器110。这些“无连接器”智能卡通过诸如磁耦合之类的近程耦合或通过诸如无线通信之类的远程耦合可以交换信息并接收电源。智能卡100遵从ISO7816标准。
图2示出了图1的带集成存储组件的微处理器115的附加细节。微处理器115包括中央处理单元(CPU)205。微处理器115与存储器组件215协同工作。该“存储器”可以与微处理器115形成在同一集成电路上或可以作为单独器件形成。
通常,存储器组件215的配置包括RAM 220、ROM 225和非易失性读/写存储器230。只读存储器225的配置包括安装模块210。
在另一种配置中,RAM 220、ROM225和非易失性读/写存储器230不装载在同一存储器组件215中,而是装载在一些分离的电子单元的组合中。
图3概念性地说明装载有CAP文件的非易失性读/写存储器230的一部分。常数存储库部分305包括在链接处理中使用的符号引用的存储地址。还示出了CAP字节码程序组件(即,指令)315和相关再定位表320。常数存储库部分305、CAP字节码程序组件315与适当的相关再定位表320可以通过安装模块210装载到非易失性读/写存储器230中。
图4是图3所述的常数存储库305、CAP字节码组件315与适当的相关再定位表320中包含的样本信息、代码和数据的示例。在图4中,示出了非易失性读/写存储器230,其中CAP字节码程序组件315包括从存储地址100开始存储的第一指令代码405和后续指令代码410。指令代码405和410都是跟随在参数后的调用代码,当前的是一符号引用参数。
再定位表320包括再定位信息,其中分别描述了两个再定位入口420和425。第一再定位入口420包括指向存储地址100的信息。后一个再定位入口425包括指向存储地址613的信息。常数存储库部分305分别包括形式为入口430和435的符号引用A和B的实际存储地址信息。第一常数存储库部分入口430还包括再定位类型标识符440和相应的应用程序标识符445。后一个常数存储库部分入口435还包括再定位类型标识符450和相应的应用程序标识符455。
现有技术使用链接处理通常包括以下步骤从第一再定位入口420开始分析再定位表320,识别相关存储地址,访问相关存储地址(本例中为100),确定存储地址100处的可执行指令包含符号引用A的调用,标识符号引用A的相关再定位标识符440,访问常数存储库305中的相关存储地址信息445,以及通过将这个存储地址写成第一指令代码405更新具有相关符号引用430的存储地址的第一指令代码405的参数。使用包括再定位入口425的每一个后续再定位入口执行相同的步骤。通过这样的方式,处理CAP文件的再定位表中的每一个入口,解析相关的未解析引用,并使用已解析的存储地址更新EEPROM。应理解,再定位类型标识符可以指示绝对地址的解决方案,其中计算相关存储地址而不是在常数存储库305中访问获得该相关存储地址。
图5说明了适合于根据本发明实施例的智能卡中使用的、配置在随机存取存储器220中的解析缓冲器505。解析存储器505提供暂时存储区的功能,其中可以临时存储和更新数据,并用于更新未解析的引用。在本发明的实施例中,解析缓冲器505可以最优地配置为与非易失性读/写存储器230的一页相等的大小,因此通过对解析缓冲器505中未解析引用的相关更新次数进行分组以减少非易失性读/写存储器230的缓慢费时的更新总次数,促进了有效的链接处理。此外,解析缓冲器505的大小可以等于非易失性读/写存储器230一页的整数倍。为了对CAP文件的部分内容进行操作,解析缓冲器505可以被安装模块210访问以便存储CAP文件的那部分内容。
图6是说明本发明的方法600的流程图。在所示的实施例中,预先配置解析缓冲器505的大小(方框605)。在本发明的一个实施例中,方框605包括将解析缓冲器的大小配置为等于非易失性读/写存储器230页大小的整数倍的子方法。在本发明的另一个实施例中,方框605包括将解析缓冲器505的大小最优地配置为等于非易失性读/写存储器230的一页大小,以便通过对解析缓冲器505中未解析引用的相关更新次数进行分组来减少非易失性读/写存储器230的缓慢费时的更新总次数,促进有效的链接处理。CAP文件被分成逻辑包或块(方框610),其中每一包可等于所配置的解析存储器的大小。每一个逻辑包用做在非易失性读/写存储器230和随机存取存储器220之间的一次操作中可传输的数据区。检查第一逻辑包(方框612)以确定是否出现未解析的引用(方框615)。如果没有出现未解析的引用,则确定是否出现附加的逻辑包(方框640)。并且,如果出现附加的逻辑包,则检查下一个逻辑包(方框645)并确定是否出现未解析的引用(方框615)。如果没有出现附加的逻辑包(方框640),则完成该处理。
对于其中出现未解析引用的每一个逻辑包,该逻辑包的内容都被复制到解析缓冲器中(方框620),对未解析的引用进行解析(方框625),用解析的引用更新解析缓冲器的内容(方框630),非易失性读/写存储器230中逻辑包的内容被随机存取存储器中的更新的解析缓冲器的内容代替(方框635),并且对剩余的逻辑包再次进行方框615、620、625、630和635的步骤处理(方框640)。应理解,在逻辑包包含相互依赖的未解析引用的那些情况中,当逻辑包内另一个未解析的引用所依赖的一个未解析引用被解决之后,方框630和635的步骤必须立即执行。
另外,检查CAP文件以寻找未解析引用,并在接着的包中解析这些未解析的引用。在这种情况下,指针位于CAP文件中的一个位置上,例如位于CAP字节码组件315的开始处。检查该指针和第二地址之间存储的数据以寻找未解析的引用。如上所述,如果存在任何的未解析引用,就将该指针和第二地址之间的数据复制到解析缓冲器505中。对未解析的引用进行解析,并更新解析缓冲器505。在已经对未解析的引用进行解析和更新解析缓冲器505之后,解析缓冲器505的内容被复制回CAP文件中该指针开始处。然后,该指针前进到CAP文件的另一个位置。在一个实施例中,该指针立即前进到第二地址后面的位置上。
在另一个实施例中,在非易失性读/写存储器230中检测是否存在未解析的引用,并且仅在检测到未解析的引用时,将逻辑包复制到解析缓冲器505。在另一个替代实施例中,首先将每个逻辑包复制到解析缓冲器505中,并在解析缓冲器505中执行未解析引用的检测。在后一情况中,不需要将内容复制回非易失性读/写存储器230,除非检测到未解析的引用。
在一个替代的实施例中,不检查各种逻辑包,按顺序将它们解析。
进一步,应理解本发明的各部分可以在计算机可读介质中包含或存储的计算机可执行指令集(软件)的形式实现。计算机可读介质可包括诸如软盘、硬盘、快闪存储卡、ROM、CD ROM、DVD、磁带之类的非易失性介质或其它适合的介质。
如上所介绍的,参考图1所示的装置说明了术语“智能卡”。但是该例子仅适合随后的说明,应该明白本发明可广泛地应用于具有物理外形不同于该例子所述装置的一类资源受限装置。例如,本发明可容易地适用于安全接口模块(SIM)和安全访问模块(SAM)。SIM和SAM物理外形小于典型的智能卡并通常用在电话或其它小的空间内。尺寸、形状、特性以及封装或安装微处理器和存储组件的合成材料可与本发明是不相关,或不限于本发明。因此,如全文所用的,术语“智能卡”广泛地解释为包括任何独立的能执行与称为终端的另一种装置之间进行业务处理的微处理器和存储组件的组合。
对于受到本公开启示的本领域技术人员来说,本发明考虑了一种智能卡及方法,其能够有效地链接计算机代码,使写入EEPROM的次数最小化,从而本发明有益地减少了链接计算机代码所需的时间,并有益地增加了EEPROM的使用寿命。应该明白,在说明书和附图中详细说明和示出的本发明各种形式仅作为优选实施例,并且本发明的保护范围仅由权利要求书中的语言进行限制。
权利要求
1.一种对装载在智能卡(100)的存储器(215)中的计算机代码内的未解析的引用进行解析的方法,该方法包括步骤a)在存储器(215)的部分内容中的计算机代码内检测至少一个未解析的引用;b)响应在存储器(215)的部分内容中的计算机代码内检测至少一个未解析的引用,将存储器(215)的所述部分内容复制到解析缓冲器(505);c)确定所检测的未解析引用的解析引用;d)用所述解析引用更新解析缓冲器(505)的内容;以及e)用解析缓冲器(505)的更新的内容替换存储器(215)的所述部分内容。
2.如权利要求1所述的用于对计算机代码内的未解析引用进行解析的方法,还包括步骤f)将解析缓冲器(505)的大小配置为存储器(215)的一页大小的整数倍;以及g)将所述计算机代码分成多个逻辑包,其中每个逻辑包的大小等于解析缓冲器的大小。
3.如权利要求2所述的方法,其中在开始处理第一个逻辑包后继续下一个逻辑包之前,对每一个逻辑包集中执行步骤a)、b)、c)、d)和e)的每一个步骤,并且继续进行随后的逻辑包;以及解析缓冲器(505)的大小等于存储器(215)的一页的大小。
4.如权利要求1、2或3所述的用于对计算机代码内的未解析引用进行解析的方法,其中解析缓冲器(505)包括随机存取存储器(220);存储器(215)包括非易失性读/写存储器(230);以及计算机代码包括转换的applet文件(315)。
5.一种计算机可读介质,附带有使处理器(205)执行对装载在智能卡(100)的存储器(215)中的计算机代码内的未解析的引用进行解析的方法的可机读指令的程序,该方法包括步骤a)将存储器的部分内容复制到解析缓冲器(505);b)在存储器(215)的所述部分内容中的计算机代码内检测至少一个未解析的引用;c)确定所检测的未解析引用的解析引用;d)用所述解析引用更新解析缓冲器(505)的内容;以及e)用解析缓冲器(505)的内容替换存储器(215)的所述部分内容。
6.如权利要求5所述的计算机可读介质,还具有使处理器执行一种方法的指令,所述方法包括f)将解析缓冲器(505)的大小配置为存储器(215)的一页大小的整数倍;以及g)将所述计算机代码分成多个逻辑包,其中每个逻辑包的大小等于解析缓冲器的大小。
7.如权利要求6所述的计算机可读介质,还具有下述指令,该指令使处理器(205)在开始处理第一个逻辑包后继续下一个逻辑包之前,对每一个逻辑包集中执行步骤a)、b)、c)、d)和e)的每一个步骤,并且继续对随后的逻辑包进行处理。
8.一种智能卡(100),被构成为可接收计算机代码,所述计算机代码内包含未解析的引用,所述智能卡(100)包括存储器(215);解析缓冲器(505);连接至存储器(215)和解析缓冲器(505)的处理器(205);以及安装模块(210),具有可操作使处理器(205)接收计算机代码至存储器(215)的逻辑;以及还具有可操作使处理器(205)通过下述步骤解析所述计算机代码内的未解析引用的逻辑a)将存储器(215)的部分内容复制到解析缓冲器(505);b)在存储器的所述部分内容中的计算机代码内检测至少一个未解析的引用;c)确定所检测的未解析引用的解析引用;d)用所述解析引用更新解析缓冲器(505)的内容;以及e)用解析缓冲器(505)的内容替换存储器(215)的所述部分内容。
9.如权利要求8所述的智能卡,还具有可操作使处理器(205)通过下述步骤对计算机代码内的未解析引用进行解析的逻辑f)将解析缓冲器(505)的大小配置为存储器(215)的一页大小的整数倍;以及g)将计算机代码分成多个逻辑包,其中每个逻辑包的大小等于解析缓冲器(505)的大小。
10.如权利要求10所述的智能卡,其中在开始处理第一个逻辑包后继续下一个逻辑包之前,对每一个逻辑包集中执行步骤a)、b)、c)、d)和e)的每一个步骤,并且继续对随后的逻辑包进行处理。
11.如权利要求8、9或10所述的智能卡,其中解析缓冲器(505)包括随机存取存储器(220);存储器(215)包括非易失性读/写存储器(230);以及计算机代码包括转换的applet文件(315)。
12.一种对数据结构中的未解析引用进行解析的方法,包括步骤a)将位于第一存储装置上的包含未解析引用的数据结构划分成多个块;b)将数据结构中第一个位置上的数据块复制到解析缓冲器(505);c)在解析缓冲器(505)中,对所述数据块中的至少一个未解析引用进行解析;以及d)将解析缓冲器(505)的内容复制回第一存储装置的第一位置上。
13.如权利要求12所述的对未解析引用进行解析的方法,其中数据结构包括转换的applet文件(315)。
14如权利要求12或13所述的对未解析引用进行解析的方法,其中将位于第一存储装置上的包含未解析引用的数据结构划分成多个块的步骤包括将所述数据结构划分成逻辑包。
15.如权利要求12、13或14所述的对未解析引用进行解析的方法,其中解析缓冲器(505)包括随机存取存储器(220)。
16.如权利要求12、13、14或15所述的对未解析引用进行解析的方法,其中第一存储装置包括非易失性读/写存储器(230)。
17.如权利要求12、13、14、15或16所述的对未解析引用进行解析的方法,其中解析缓冲器(505)包括随机存取存储器(220)。
18.如权利要求12、13、14、15、16或17所述的对未解析引用进行解析的方法,其中响应在数据块中检测至少一个未解析的引用,将数据结构中第一位置上的数据块复制到解析缓冲器(505)。
全文摘要
一种智能卡(100)包括非易失性读/写存储器(230);解析缓冲器(505);连接至存储器(230)和解析缓冲器(505)的处理器(205);以及安装模块(210),其配置使处理器(205)接收具有未解析引用的计算机代码至存储器(230),并且其配置还使处理器(205)执行对未解析引用进行解析的方法。该方法包括步骤将存储器(230)的内容复制到解析缓冲器(505);在计算机代码内检测未解析的引用;对每一个所检测的未解析引用,确定解析引用;用所述解析引用更新解析缓冲器(505)的内容;以及用解析缓冲器(505)的内容替换存储器(230)的所述部分内容。
文档编号G07F7/10GK1559031SQ02818733
公开日2004年12月29日 申请日期2002年8月13日 优先权日2001年8月31日
发明者克希雷布迪·克里什纳, 蒂姆·威尔金森, 扬尼克·伯里安, 伯里安, 克希雷布迪 克里什纳, 威尔金森 申请人:施蓝姆伯格技术管理有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1