Java卡小应用程序中数据目标的动态内存管理的制作方法

文档序号:6333780阅读:139来源:国知局
专利名称:Java卡小应用程序中数据目标的动态内存管理的制作方法
技术领域
本发明涉及用于电子计算机装置的应用程序功能的编程和模式,该装置具有有限的计算能力,只能以次要的程度支持高级的现代程序设计概念。本发明特别涉及智能卡特别是Java卡中数据目标的动态内存管理的方法和装置。
与台式计算机相比较,在开始提到的装置主要是用于只具有低级计算能力和不能编程为支持高级程序设计概念的一般用途的装置。为了披露本发明,所引用的例子是智能卡,即安装其自己微处理器的小内存芯片的卡。数据能够存储在芯片上,这能进行多种多样的商务处理连同例如现金机中现金自动付款器程序的主应用程序。这些芯片卡的容纳程度非常高,它们可能的应用程序和它们可应用的领域正在迅速发展。
有两种智能卡第一种是文件面向系统的智能卡,其将ISO 7816-4接口用作与主应用程序通信的协议,当初始化该卡时,在卡上创建目录系统,该目录系统精确构造和指定访问智能卡的主应用程序数据的内存。这种目录系统管理智能卡上可用的所有内存。
然而,这些所谓的ISO智能卡的缺点在于需要使用汇编码来编程访问存储器的应用程序。这对于程序员来说非常不方便,高级编程技术不能用于这种卡的应用程序中。
第二种,是面向目标的智能卡,其符合智能卡上存储甚至小应用程序的需要,在该卡插入智能卡读卡器时运行该小应用程序。独立于主应用程序工作的这些程序能够自动根据应用程序的字段进行个别较少的商务处理。以Java编程语言写这些应用程序,这就是该卡叫做Java卡的原因。Java卡支持面向目标的编程,这打开了通向现代编程技术的接口。最终,借助于这些现代技术以高效方式可写应用程序,应用程序代码可以再利用、并且可以利用标准化接口。但是,智能卡的存储容量和计算能力通常特别有限。
为了符合对Java卡应用程序日益增长的需求,在一张卡上容纳不止一个应用程序的要求也在增加。
结果,倾向于所谓的“多应用程序”智能卡。响应于该趋势,多个业务供应商正加紧合作以便减轻顾客的某些任务、创建对顾客的特殊刺激、或启动特殊业务。实例包括航空公司与租车公司和/或连锁酒店合作以便基于特殊的折扣系统和预订设施为顾客提供专门的服务。
然而,这要求所涉及的所有公司的应用程序之间的逻辑链应该尽可能地存储在一张智能卡上,而且这些公司间的合作不需要三张单独的智能卡。在这种系统中从一张卡到另一张的数据交换非常不方便,也不会被顾客接受。在团体业务逐渐集中的过程中,如果依据上述的业务发行新版本的现有智能卡,以支持和相互作用于两家新公司提供的业务,则该卡的升级是必须的。在现有技术的Java智能卡上,很不便于执行只在Java小应用程序运行期间出现的这种升级或扩展内存要求,因为Java卡只存储程序,小应用程序一装到Java卡上,就静态分配由Java卡应用程序-所谓的Java小应用程序-访问的各个数据区的大小。如果出现变化或存储器升级时,这种静态分配内存非常不灵活。
而且,数据目标占用的内存是统计固定的,与数据目标中存储的数据大小无关。这首先意味着在小应用程序运行期间,当在预置位置的大数据目标中存储小量的数据时,大量的内存剩下没用。另一方面,只按照分配的数据目标逻辑构造存储的数据,特征在于不利于小应用程序的编程,因为每个数据区必须具有小应用程序可以访问的唯一单独的名称。

图1基于个人数据记录表示这种情况。每个圆圈内图表示Java卡小应用程序的数据目标,在Java卡小应用程序上存储两个人的地址数据-即,每个人姓名的内存位置Name1、Name2;电话号码的内存位置Tel.1、Tel.2;或地址数据的内存位置Str.1、Str.2、Adr.1、Adr.2。必须在创建小应用程序时设置这些数据目标的大小。无论在运行期间所有的目标是否需要分配内存。如智能卡示意图中各个分离的圆圈所示,彼此无关地单独定义这些数据目标。另一个缺点在于Java小应用程序不能访问另一个Java小应用程序的数据,因为每个小应用程序保护其自己的数据。结果,如果两个小应用程序需要两个相同的数据记录,则它们必须重复存储在卡上。这意味着不能有效利用内存。
因此当前的任务在于以动态和高效地管理可以得到的用于数据的Java卡上的内存和由若干不同的小应用程序可以寻址数据记录的方式编程Java卡。
由独立权利要求所述的特征实现所提到的目的。其从属权利要求有利地增强了本发明。
本发明的基本概念是基于结合目录面向系统的智能卡和Java卡的优点的想法以便实现上述的目的。
根据本发明实现Java卡的特殊优点-即它们易于在智能卡上实现目标和有关的方法-利用该优点以提供目录面向系统的智能卡的优点。
结果,下面是本发明面向目标的智能卡的一个方面,建议在智能卡上实现各个内存目标的目标和方法,该智能卡能够在卡程序特别是Java小应用程序的运行期间完全管理内存。内存管理包括诸如写、读、编辑、内存分配、去分配的传统功能和作为另一个附加的可选择的特点-去内存分段(de-frag-menting)。
本发明另一个特点在于易于使相同的内存管理目标对Java卡上所有的小应用程序可寻址。
在本发明的优选实施例中,上述动态内存管理创建的内存或数据目标不再使用数据的详细逻辑结构,只使用一个小应用程序的所有数据目标的粗略逻辑结构或由若干小应用程序可以访问的结构。
根据本发明适于面向目标智能卡概念的优选实施例,在数据目标中,用逻辑目录系统管理数据,该系统以所谓的具有相关方法的内存管理目标形式的代码驻留在Java卡上。根据应用程序的需要,用于管理目录系统的代码编码成小应用程序自身,也可能存储在卡的操作系统中或在另一个位置,并且可由一个或多个小应用程序调用。
通过将本发明概念转移到ISO文件系统卡上,因此在数据目标中使用作为结果的灵活文件系统也解决了动态生成布局的问题,即,由主应用程序或“离卡”应用程序来格式化卡上的整个内存系统。这特别在动态的面向目标的应用程序中尤其必要,其中只在所谓的高级目标运行期间生成卡布局。这些高级目标形成主应用程序和卡应用程序之间接口的通用成分,表示用于数据和命令交换运算的占位符(placeholder),直到运行期间不用相应的数据或命令的具体实现来填满这些占位符,然后生成内存需求,在小应用程序的运行期间或多或少地自发出现该内存需求。
因此可以总结本发明概念的优点如下借助于目录系统在小应用程序的数据目标内启用“自动内存管理”功能。结果,内存在小应用程序运行期间需要的位置动态可用。因此比传统的静态内存管理方法占用更少的内存。
而且,在小应用程序编程阶段,所有的数据结构不必陆续编入目标结构。某些可以只以粗略内存格式化允许的程度在以后的阶段加入,实际上能在数据输入之后“自身安装”。也只需要较少的数据目标,导致需要较少的目标管理。
最后,应用程序和工具有可能只在应用程序运行期间Java卡初始化之后定义它的数据结构,例如数据目标的卡布局。
附图中表示本发明的实施例,下面更详细地描述该实施例。附图中图1表示根据现有技术存储Java小应用程序数据目标的示意图,用于存储地址数据和卡/小应用程序数据。
图2表示根据本发明存储Java小应用程序的数据目标内目录系统数据的示意图。
图3表示根据本发明在Java小应用程序运行期间内存管理方法主要步骤的示意方框图。
参照图2,在有必要使智能卡升级的范例情况下,描述由本发明增强的动态内存管理。
在该情况下,由航空公司发行并已经发给一组顾客的专门Java卡系列被分配附加的功能,例如由于航空公司和连锁酒店之间新的合作协议。新功能的一个后果在于需要在这张卡的现有内存中容纳两组新的个人主数据,而且需要访问一组现有的个人主数据,例如本卡的持有者。
根据本发明现在可以很容易和灵活地将卡系列更新到新的状态。结果,当格式化这张新卡时,预先为数据目标保留专门的较大内存区。接着从图2生成基于本发明的新布局。
图2的例子表示具有两个数据目标的智能卡8的示意图数据目标10是个人数据的数据目标,数据目标12是卡/小应用程序管理数据的数据目标。
在初始化该卡期间,一方面对数据目标内存另一方面对小应用程序应用程序代码进行粗格式化。
在本例中,通过与卡的任何终端的主应用程序的对话,实际实现智能卡的上述新功能。通过将卡插入终端的智能卡读卡器,启动主应用程序。然后备份存储在智能卡上的所有数据,缓存它们并初始化它们用于对该卡进行新的写操作。
主应用程序接着执行粗格式化上述的数据目标和应用程序代码,并将新的具有扩展功能的所需小应用程序写入相应的内存区以及将卡上已有的旧数据以匹配的数据目标写在新的存储位置。
例如,在目前的情况下,卡持有者14的现有数据记录写在用于个人数据的数据目标10的目录系统中。本发明还规定上述的“内存管理目标”和诸如内存分配、内存去分配、去内存分段和从内存读/写到内存的常规内存管理方法一起存储在卡上。此后重新编程该智能卡,用户可以利用其扩展的功能。
用户从读卡器中取出该卡因此得到更新的卡,并能例如通过将卡插入航空公司的读卡器基于航空公司和连锁酒店间的新合作调出住宿提供和酒店地址来体验其优点。作为另一个特点,用户自身还需要输入另一组个人主数据以便能完全利用该卡的新功能。
如图3用示意图所示(为了清楚只通过摘要),用户将智能卡插入终端,小应用程序开始-步骤110-和提示用户-步骤120-输入他一组新的个人主数据。例如他经卡终端这么做,并提供了数据-步骤130,在有机会用于校正的“输入正确?”检验140之后,判决140-NO分支,在通过YES分支以后调用根据本发明的内存管理目标-步骤150,用于基于本发明所述的动态内存管理方法存储数据。
目标收到必要的参数,诸如输入姓名的字符数和字符本身,在小应用程序运行期间,以用于存储卡持有者自己的个人数据14相同的目录树生成图2新的内存结构16-步骤160。
因此,在优选操作模式中只为每条数据记录调用一次内存管理目标。或者,还可以分别为每个姓名或每个数据区调用。在这两种情况下,通过调用有关的分配方法和传递有关的参数,只分配存储所输入数据所必须的内存。
在用户或小应用程序采取其它的行动(参见图3的圆点)之后,终止小应用程序-步骤170-从终端中抽出智能卡。因此,在小应用程序运行期间已经分配内存,在处理和编程智能卡中产生更大的灵活性。
然而,除了图3表示的处理,其它大量的处理都能用本发明提供的内存管理概念实现。
图2中诸如在输入第一条数据记录之后,例如为第二条主数据记录18重复该过程(图3不再表示)。然后用户选择可得到的功能在主应用程序用于检验目的的显示器上观看最新输入的数据。该检验显示第二个名字是错误输入的,正确的拼写需要两个以上的字母。因此用户需要纠正姓名,并正确输入新名字。新的输入再次调用内存管理目标,释放分配给错误拼写姓名的内存并以连续数据块将新名字写在内存的不同位置。
同时释放的内存位置标记为可用的内存。
在自由选择一段时期之后,第三个合伙人-租车公司-加入前两个公司的合作协议。因此顾客的卡需要再一次装备扩展功能-由新合伙公司发行的新的小应用程序。写在该卡上的新的小应用程序必须能访问卡上的现有数据,和需要附加的内存存储附加的个人数据记录结果。
这种情况下,可以再次显示本发明所述内存管理方法的优点如上所述,该方法使得具有其ID的新的小应用程序装入该卡和作为新的入口22在现有小应用程序ID入口21之后并入数据目标12相关的小应用程序目录,反过来可以调用该目录。在新的小应用程序运行期间,如上所述可以输入所需新的特定于顾客的个人主数据记录。在该处理中,比现有技术智能卡更实际地更有效地利用内存,因为从开始就熟知个人主数据的数据目标所位于的内存区。这意味着对新的小应用程序可以知道标记所述内存区开始和结束的比特位置。新的小应用程序反过来调用内存管理目标以便读取和显示卡上现有的数据记录和存储新的数据记录。
通过观察小应用程序编程本身根据本发明方法的另一个优点将变得更加明显。因为正在编程的小应用程序只需要知道一个数据记录的结构,而不需要知道已经使用的数据记录数据区的大小,以便访问数据记录和能够创建相同结构的其它数据记录。新建的数据记录只以辅助的结构存储为具有相关数据区的新“目录”。这简化了小应用程序的编程。
此外,可以以硬件、软件或两者的组合来实现本发明的目的。任何一种的计算机系统或计算机装置都适于全部或部分地执行根据本发明的方法。可行的硬件/软件组合可以是具有计算机程序的标准计算机,当装载和运行时该硬件/软件组合控制计算机以便全部或部分地执行根据本发明的方法。
这种程序也可以在主机侧运行并控制智能卡的内存管理。本发明还可以嵌入到包含允许实现这里描述方法所有特点的计算机程序产品中,当装入计算机系统中时,它能执行所述方法。
当前上下文的“计算机程序系统”和“计算机程序”是指一组指令的任何语言或符号或代码的任何表示,设计该指令使得具有信息处理能力的系统直接或连续执行其中一个下面的功能或下面的两个功能a)翻译成不同的语言或符号或不同的代码;b)再生不同的材料形式。
权利要求
1.用于管理计算机装置(8)内存的方法,包括有限地支持数据目标(10,12)的高级编程概念在内,其特征在于步骤使用(150,160)具有相关内存管理方法的内存管理目标用于在小应用程序运行期间动态管理内存,其中用于存储数据记录(14、16、18、21、22)的数据目标(10、12)具有比存储一个数据记录所需内存更多的内存。
2.根据权利要求1的方法,其中实现内存管理目标的逻辑电路驻留在计算机装置(8)。
3.根据前面权利要求的方法,其中以数据目标(10、12)内的目录结构管理大多数的数据记录(14、16、18、21、22)。
4.根据权利要求2或3的方法,其中计算机装置是面向目标的智能卡(8)。
5.包括有限地支持高级编程概念在内的计算机装置(8),包括实现生成的代码段以利用具有相关方法的内存管理目标,用于在装置(8)上实现的程序运行期间动态管理内存。
6.根据权利要求5的装置,其中实现内存管理目标的逻辑电路驻留在计算机装置(8)上。
7.根据前面权利要求的计算机装置,其中装置(8)是面向目标的智能卡,特别是Java卡。
8.根据前面权利要求的智能卡,其特征在于智能卡(8)的内存空间包含至少一个数据目标(10、12)用于在目录结构中存储数据记录(14、16、18、21、22),该目录结构具有比存储一个数据记录所需内存更多的内存。
9.系统,包括运行主应用程序的计算机系统,创建该系统以便与储存在根据权利要求5到8其中一个的计算机装置(8)上的程序交互工作,和包括用于在计算机装置(8)和主应用程序之间交换数据或命令的接口。
10.计算机程序,该程序包含用于执行或准备程序代码区,当该程序装入计算机时,用于执行根据权利要求1到4其中一个方法的步骤。
全文摘要
本发明的主题是用于智能卡(8)特别是Java卡中数据目标(10、12)的动态内存管理方法和装置。建议在智能卡上实现各个内存目标(10,12)的目标和方法,其能在卡程序特别是Java小应用程序运行期间全部管理内存。内存管理包括诸如写、读、编辑、内存分配、去分配的传统功能和作为另一个可选择的特点-去内存分段。在本发明的优选实施例中,上述动态内存管理生成的内存或数据目标(10,12)不再使用数据详细的逻辑结构,只使用一个小应用程序或若干个小应用程序的所有数据目标的粗略逻辑结构。在数据目标内,用逻辑目录系统管理数据目标(14、16、18、21、22)。
文档编号G06F9/46GK1289967SQ0012868
公开日2001年4月4日 申请日期2000年9月19日 优先权日1999年9月24日
发明者U·翰斯曼恩, D·赫伦多尔弗, L·梅尔克, T·斯托伯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1