一种处理智能卡数据库的方法、系统及装置的制作方法

文档序号:6598800阅读:169来源:国知局

专利名称::一种处理智能卡数据库的方法、系统及装置的制作方法
技术领域
:本发明涉及智能卡
技术领域
,特别涉及一种处理智能卡数据库的方法、系统及装置。
背景技术
:随着集成电路(IC,IntegratedCircuit)卡技术的发展,IC卡在电信,金融,政府,交通等领域应用越来越广泛,发卡量逐年快速增长,而且卡片容量不断增加,从几十KBytes到几个GBytes的容量。卡片内的数据内容属性也越来越丰富。为了对IC卡上的数据进行有效的管理,在智能卡的软件平台中引入一个数据管理平台,从而能够利用卡上有限的资源,灵活、高效地管理卡上的各类数据应用。这种引入了数据管理平台的智能卡也叫数据库卡。数据库卡在应用时需要从个人电脑(PC,PersonalComputer)端或其他终端对卡中的数据库进行处理,现有的一些处理智能卡上数据库的方法,都是根据特定的应用环境设计成固定的处理形式,每一种处理方法都只能静态的在一种特定的应用背景环境中使用,例如金融、电信、医疗等应用所用的智能卡,都只能限定在各自的单一的应用中去使用,因为这些应用于不同环境下的智能卡,都是针对某种应用而预先在数据库卡上定义好了表的总字段个数和表中每个字段的长度,即数据库卡中的表全都采用固定不变的结构。但是,金融行业中应用的智能卡和医疗行业中应用的智能卡的数据库中的表包含的字段个数以及每个字段长度一般不相同。而且,同一行业中的不同应用的智能卡中设计的表包含的字段个数以及每个字段长度一般也不相同。如此一来,一旦智能卡数据库的应用背景环境发生变化,或者在同一应用背景环境中需要进行功能的拓展,比如想让应用于金融行业的智能卡能够支持医疗方面的应用,则都需要重新设计数据库卡的处理方法,需要重新下载智能卡底层的操作系统,这样既提高了成本,又很不灵活、不方便。因此,现有的处理智能卡数据库的方法,受数据库卡的具体应用的限制,缺乏使用的通用性,不便于数据库卡的应用推广。
发明内容本发明实施例提供一种处理智能卡数据库的方法、系统及装置,用以提高数据库卡的通用性,扩展数据库卡的应用领域。本发明实施例提供一种处理智能卡数据库的方法,包括访问端根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令;所述访问端向智能卡下发所述应用协议数据单元操作指令,使所述智能卡根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端;所述访问端根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。本发明实施例提供一种处理智能卡数据库的系统,包括访问端,用于根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令,向智能卡下发经过确定的所述应用协议数据单元操作指令,接收所述智能卡返回的应用协议数据单元响应指令,并根据所述约定的数据通信协议,对所述应用协议数据单元响应指令进行解析,获得处理结果;智能卡,用于根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问丄山顺。本发明实施例提供了一种处理智能卡数据库的装置,包括封装单元,用于根据约定的数据通信协议,将根据数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令中对应属性的信息;通信单元,用于向智能卡下发所述应用协议数据单元操作指令,以及接收所述智能卡返回的应用协议数据单元响应指令;解析单元,用于根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。本发明实施例提供了一种智能卡,包括通信单元,用于接收访问端下发的应用协议数据单元操作指令,以及向所述访问端发送应用协议数据单元响应指令;解析单元,用于根据约定的数据通信协议解析接收的应用协议数据单元操作指令,获取操作数据库的指令信息;处理单元,用于根据所述指令信息,处理对应的数据库;封装单元,用于根据约定的数据通信协议,,将处理后的响应数据封装为应用协议数据单元响应指令将处理后得到的响应数据中每个参数中每个元素的值组成一个数据包,确定所述数据包的长度,根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息。本发明实施例中,访问端可以根据数据库操作请求中每个参数的信息,确定对应的应用协议数据单元(APDU,ApplicationProtocolDataUnit)操作指令中对应属性的信息,而并不是根据智能卡中定义好的表的字段个数和每个字段长度来设置APDU操作指令中对应属性的信息,这样,访问端不需要针对每种类型的智能卡下载对应的操作系统,从而,提高智能卡的通用性,扩展智能卡的应用领域。图1为本发明实施例中处理智能卡数据库系统的架构图;图2为本发明实施例中处理智能卡数据库的流程图;图3为本发明实施例一中处理智能卡数据库系统的架构图4为本发明实施例一中处理智能卡数据库的流程图;图5为本发明实施例中处理智能卡数据库装置的结构图;图6为本发明实施例中智能卡的结构图。具体实施例方式本发明实施例中,智能卡为数据库卡,智能卡的数据库中包括各种各样的表格,其中,表格之间的结构可能不一样,一些表格是根据金融应用环境设计的,一些表格是根据电信应用环境设计的,或者,一些表格是根据医疗应用环境设计的。这样,可能每个表格的总字段个数不一致,或者,表格中的每个字段的长度不一致。本发明实施例公开的处理智能卡数据库的方法中,访问端与智能卡之间约定了一种数据通信协议,这样,访问端可以处理智能卡数据库中任一格式的表格,从而实现智能卡在多领域中的应用,提高智能卡的通用性。参见图l,数据库卡在应用时,其处理智能卡数据库的系统包括访问端100和智能卡200。在该系统中,访问端100根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的APDU操作指令,然后,向智能卡200下发该APDU操作指令,这样,智能卡200根据约定的数据通信协议解析接收的APDU操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,然后,根据约定的数据通信协议,将处理后的响应数据封装为APDU响应指令返回给访问端。参见图2,处理智能卡数据库的过程包括步骤201:访问端获取数据库操作请求中每个参数的信息。这里,访问端包括PC端,或其他终端。当访问端的应用程序发起数据库操作请求时,访问端获取该数据库操作请求中每个参数的信息。其中,数据库操作请求的内容可以包括要对智能卡的数据库执行的操作,比如创建、查询、插入、删除或修改数据库表等的其中一种,同时还可以包括该操作需要的参数,例如数据库表的名称等。需要说明的是,每种操作对应的参数的个数和内容可以是不相同的;参数的信息包括元素个数,每个元素的值,以及每个元素的值的长度。步骤202:访问端根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的APDU操作指令。访问端与智能卡之间的通讯是依照IS07816-4规范的APDU来完成的。APDU操作指令的基本格式如表1所示<table>tableseeoriginaldocumentpage7</column></row><table>表1其中,表1中每个属性标识的含义如表2所示<table>tableseeoriginaldocumentpage8</column></row><table>表2本发明实施例中,访问端可以根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应APDU操作指令中数据内容属性的信息,根据所述数据内容属性的信息的长度,确定对应的APDU操作指令中数据长度属性的信息。即根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应APDU操作指令DATA中的信息,以及根据DATA中的信息的长度,确定对应APDU操作指令中Lc的值。其中,约定的数据通信协议中可以定义APDU操作指令DATA中的组包方式为LV格式,或者,VM格式,或者,LVM格式,其中,L为每个元素的值的长度,V为每个元素的值,M为标志符号。当然,本发明实施例中,约定的数据通信协议中还可以定义其他类似的组包方式。步骤203:访问端将生成的APDU操作指令下发给智能卡。这里,可以通过符合IS07816-3或IS07816-12规范的通讯通道将生成的APDU操作指令下传到智能卡。步骤204:智能卡对接收到APDU操作指令进行解析,获取操作数据库的指令信息。这里,智能卡根据约定的数据通信协议对接收的APDU操作指令进行解析,获取到APDU操作指令中每个属性的信息,然后,将APDU操作指令中数据内容属性的信息进行解包,获得操作数据库的指令信息。在获得操作数据库的指令信息之前,智能卡可以根据APDU操作指令中数据长度属性的信息分配内存空间,而在获得操作数据库的指令信息之后,释放对应的内存空间。可见,本发明实施例中,当APDU操作指令中数据长度属性的信息不同时,分配的内存空间也不同,这样,智能卡可以动态分配内存空间和释放内存空间,有效利用了智能卡中有限的内存资源。步骤205:智能卡根据获取的指令信息,处理对应的数据库。智能卡根据获取的指令信息,调用对应的数据库接口函数,对数据库进行处理。步骤206:智能卡根据约定的数据通信协议,将处理后的响应数据封装为对应的APDU响应指令反馈给访问端。智能卡对数据库进行处理后,得到响应数据;根据约定的数据通信协议,将该响应数据中每个参数的信息封装为对应APDU响应指令,然后将APDU响应指令发送给访问端cAPDU响应指令的基本格式如表3所示<table>tableseeoriginaldocumentpage9</column></row><table>表3其中,表3中每个属性标识的含义如表4所示<table>tableseeoriginaldocumentpage9</column></row><table>表4本发明实施例中,约定的数据通信协议中可以定义APDU响应指令数据内容中的组包方式为VM格式,或者直接为V格式,其中,V为每个元素的值,M为标志符号。这样,智能卡根据约定的数据通信协议,将响应数据中每个参数中每个元素的值组成一个数据包,并确定所述数据包的长度,然后,根据数据包,以及长度,确定APDU响应指令中数据内容属性的信息。同样,本发明实施例中,约定的数据通信协议中还可以定义其他类似的组包方式。步骤207:访问端根据约定的数据通信协议,对接收的APDU响应指令进行解析,获得处理结果。这里,访问端根据约定的数据通信协议,对APDU响应指令中数据内容属性的信息进行解析,获得有效数据,这里有效数据为每个元素的值,从而得到处理结果,实现对智能卡的处理。在上述实施例中,步骤202中,访问端根据约定的数据通信协议,以及根据每个元素的值,确定对应APDU操作指令中数据内容属性的信息包括当约定的数据通信协议中定义的APDU操作指令DATA中的组包方式为V格式时,直接将所有元素的值组成一个数据包,将该数据包确定为APDU操作指令中数据内容属性的信息。或者,当约定的数据通信协议中定义的APDU操作指令DATA中的组包方式为VM格式时,将每个元素的值,以及标志符号组成每个数据组,将所有的数据组合成一个数据包,并将该数据包确定为APDU操作指令中数据内容属性的信息。或者,当约定的数据通信协议中定义的APDU操作指令DATA中的组包方式为LV格式时,将每个元素的值,以及对应的值的长度组成每个数据组,将所有的数据组合成一个数据包,并将该数据包确定为APDU操作指令中数据内容属性的信息。这里,元素的值对应的长度一般用字节的个数表示。或者,当约定的数据通信协议中定义的APDU操作指令DATA中的组包方式为LVM格式时,将每个元素的值,对应的值的长度,以及标志符号组成每个数据组,将所有的数据组合成一个数据包,并将该数据包确定为APDU操作指令中数据内容属性的信息。上述实施例只是列举了几种APDU操作指令中数据内容属性的信息的确定方式,其他类似的方式也可以用来确定APDU操作指令中数据内容属性的信息。本发明实施例中,可以直接将合成后的数据包确定为APDU操作指令中数据内容属性的信息。但APDU操作指令中Lc的值一般都有一个最大值,例如255,或者其他设定值,这里为第一设定值,因此,上述将数据包确定为APDU操作指令中数据内容属性的信息还可以包括将数据包的长度与第一设定值进行比较,当该长度大于第一设定值时,将该数据包分成至少两个数据子包,将每个数据子包确定为对应的APDU操作指令中数据内容属性的信息,并将每帧APDU操作指令中的空闲属性作为多帧标识进行设置。这里,APDU操作指令中指令参数2还未定义,即P2是空闲属性,因此,约定的数据通信协议中可以将P2作为多帧标识。通过设置P2的信息,来确定对应的APDU操作指令是否是多帧操作指令中的一帧,以及是否是多帧操作首帧,末帧,或者中间帧。例如P2=\x82时,该帧APDU操作指令为多帧操作指令中的首帧,或者,P2=\x81,该帧APDU操作指令为多帧操作指令中的末帧。当然,还可以有别的设置方法。下面以一个实例来描述将数据包确定为APDU操作指令中数据内容属性的信息的过程。例如第一设定值为255,根据约定的数据通信协议可以确定数据包的长度为300个字节,因此,将该数据包分为两个数据子包,其中一个数据子包的长度为255个字节,另一个数据子包的长度为45个字节。这样,将255个字节的数据作为第一帧APDU操作指令中DATA的信息,该帧APDU操作指令中Lc=VcFF,其对应的P2=\x82,表明是是第一帧。这里,\xFF为"255"的十六进制表示,同样,\x82也是十六进制表示。将另外45个字节的数据作为第二帧APDU操作指令中DATA的信息,该帧APDU操作指令中Lc=\x2D其对应的P2=Vc81,表明是第二帧,同时也是最后一帧。当然,可以将该数据包分为三个数据子包,每个数据子包的长度都为100,确定每帧APDU操作指令对应的属性的信息过程与上相似,此处不再累述。上述步骤202中,确定对应APDU操作指令中数据长度属性的信息包括根据APDU操作指令中数据内容属性的信息的长度,确定对应APDU操作指令中数据长度的信息。例如数据库操作请求中有3个参数,第1个参数有1个元素,其值的长度为2字节;第2个参数有1个元素,其值的长度为3字节;第3个参数有4个元素,其值的长度分别为2,2,3,4字节,那么,当在确定APDU操作指令中数据内容属性的信息时,采用每个元素的值,与标志符号'、xOO"的组包方式,因此,APDU操作指令DATA中信息的长度=2+1+3+1+2+1+2+1+3+1+4+1=22,则APDU操作指令中数据长度Lc的值=、xl6,这里\xl6为22的十六进制值。在上述步骤206中,可以直接将数据包,以及长度,组成APDU响应指令中数据内容属性的信息。但是,APDU响应指令中对数据包的长度也有一个最大的限制,即为第二设定10值,第二设定值与第一设定值可以一致。因此,确定APDU响应指令中数据内容属性的信息还包括将数据包的长度与第二设定值进行比较,当第二长度大于设定值时,设置一个多帧标识,即约定的数据通信协议在APDU响应指令中数据内容属性的信息中配置多帧标识,并将该数据包分成至少两个数据子包,并根据每个数据子包,数据子包的长度,以及对应的多帧标识,确定对应的APDU响应指令中数据内容属性的信息。并且,步骤206中,将所有元素的值组成一个数据包可以包括当约定的数据通信协议中定义APDU响应指令数据内容中的组包方式为V格式时,直接将所有元素的值组成一个十六进制的字符串;或者当约定的数据通信协议中定义APDU响应指令数据内容中的组包方式为VM格式时,将所有元素的值组成一个十六进制的字符串,其中,每个元素的值有一个标志符号。下面结合说明书附图对本发明实施例作进一步详细描述。实施例一本实施例中,访问端为PC端,访问端与智能卡之间约定了数据通信协议,处理智能卡数据库的系统如图3所示,包括PC端100和智能卡200,其中,PC端中包括应用单元110和PC端数据库(DB)操作接口120,而智能卡中包括DB管理平台210和智能卡端DB操作接口220。PC端与智能卡之间的通讯是依照IS07816-4规范的APDU来完成的。APDU操作指令的基本格式如表1所示,APDU响应指令的基本格式如表3。其中,APDU操作指令或APDU响应指令的属性的信息都用十六进制数表示。则在该系统架构下,处理智能卡数据库的过程参见图4,包括步骤401:PC端中的应用单元发起数据库操作请求。这里,数据库操作请求为"打开一个数据库"。因此,该数据库操作请求中的参数中包括数据库名称。步骤402:PC端DB操作接口接收数据库操作请求,并获取数据库操作请求中每个参数的信息。这里,获取到的每个参数的信息包括数据库名称的值,数据库名称的值的长度。例如数据库名称的值为"x68Vc66,数据库名称的值的长度为2个字节,其对应的数据库名称为"DB"。步骤403:PC端DB操作接口根据约定的数据通信协议,确定对应的APDU操作指令。这里,只有一个参数,该参数也只有一个元素,其长度为2个字节。若约定的数据通信协议中定义采用长度、值的组包格式,则确定APDU操作指令DATA中的信息为"\x02\x68Xx66",确定APDU操作指令Lc=\x03。或者,若约定的数据通信协议中定义采用值,标志符号的组包格式,则确定APDU操作指令DATA中的信息为"\x68\x66\x00",其中"\xOO"为标志符号,确定APDU操作指令Lc=\x03。或者,若约定的数据通信协议中定义采用长度、值,以及标志符号的组包格式,则确定APDU操作指令DATA中的信息为'、x03Xx68Xx66Xx00",其中"\xOO"为标志符号,确定APDU操作指令Lc=\x04。本发明实施例中,因只有一个参数,其对应的APDU操作指令DATA中的信息的长度不可能大于255个字节长度,因此,不需要设置APDU操作指令中P2的值,若另一实施例中,对应的APDU操作指令DATA中的信息的长度大于255时,则需设置中P2的值。其中,可以用一个字节(b0b7,其中b0为最低位,b7为最高位),来标识P2的值。其中bl为l,该帧为首帧,否则为非首帧;当b0为l,该帧为最后1帧,否则为非最后帧。当然,具体的数据库操作请求为"打开一个数据库",因此,该APDU中的其他属性的信息都可以根据IS07816-4规范确定。例如CLA为0x80;INS为OxlO;以及P1为0x83。步骤404:PC端DB操作接口将确定的APDU操作指令发送给智能卡。步骤405:智能卡端DB操作接口根据约定的数据通信协议,对接收的APDU操作指令进行解析,获得操作数据库的指令信息。这里,当获得APDU操作指令中Lc=4时,只需要分配对应大小的内存来处理本次处理流程。例如,获得APDU操作指令中的数据内容属性的信息为"\x03\x68\x66\x00",约定的数据通信协议中定义采用采用长度、值,以及标志符号的组包格式,这样,其有效数据为"\x68\x66",则获得数据库名称,例如"DB"。并根据操作指令中的CLA,INS以及P1的值,确定具体的操作指令,以及指令信息。步骤406:智能卡端DB操作接口根据获取的指令信息,处理对应的数据库。这里,智能卡端DB操作接口调用DB管理平台提供的数据库接口函数对智能卡中数据库文件进行处理,打开指令信息指定的数据库,即打开"DB"这个数据库。步骤407:智能卡端DB操作接口根据约定的数据通信协议,将处理后的响应数据封装为APDU响应指令反馈给PC端。这里,智能卡根据响应数据,生成APDU响应指令。APDU响应指令的格式如表3所述。这里,打开数据库成功,因此,SW2可以确定为"0x00",并且智能卡能正常处理,因此,SWl可以确定为"0x90"。因此,这里只是打开一个数据库,因此,APDU响应指令中数据内容属性的信息为空。若在另一实施例中,如读取一个数据库中的内容,约定的数据通信协议定义直接采用值的组包方式,该数据库中有3个参数,其中,第一个参数有两个元素,其值的长度分别为2,160字节;第二个参数有一个元素,其值的长度为2字节,第三个参数有4个元素,其值的长度分别为150,8,9,3字节。这样,总长度为2+160+2+150+8+9+3=334个字节,334字节大于255字节,因此,可以生成两帧APDU响应指令。并在每帧APDU响应指令中数据内容属性的信息中配置多帧标识。可以用一个字节(b0b7,其中b0为最低位,b7为最高位),来标识多帧标识的值。其中,b7为l,表示后面的数据内容有效,需要解析,否则不需要解析;当bl为l,该帧为首帧,否则为非首帧;当b0为l,该帧为最后1帧,否则为非最后帧。从而,第一帧APDU响应指令中数据内容属性的信息包括多帧标识'、x82",总长度'、xFF",以及255个字节的数据值。第二帧APDU响应指令中数据内容属性的信息包括多帧标识'、x81",总长度"\x4F\",以及79个字节的数据值。步骤408:PC端DB操作接口对接收的APDU响应指令进行解析,获得处理结果,并将处理结果反馈给PC端应用单元。PC端DB操作接口根据约定的数据通信协议,对接收的APDU响应指令进行解析,例如对'、x9(Ax00"进行解析,得到打开成功的处理结果,将处理结果反馈给PC端应用单元。或者对'、x82XxFFXx06X……Xx08Xx9(Ax00"进行解析,获得有效数据为"\』6\……\x08",从而,将该有效数据对应的处理结果反馈给PC端应用单元。本发明实施例中,处理智能卡数据库的系统的结构如图1所示,包括访问端100和智能卡200,其中,访问端100,用于根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令,向智能卡下发经过确定的所述应用协议数据单元操作指令,接收所述智能卡返回的应用协议数据单元响应指令,并根据所述约定的数据通信协议,对所述应用协议数据单元响应指令进行解析,获得处理结果。智能卡200,用于根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端。并且,访问端IOO,还用于根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应的应用协议数据单元操作指令中数据内容属性的信息,根据所述数据内容属性的信息的长度,确定对应的应用协议数据单元操作指令中数据长度属性的信息。访问端IOO,还用于根据所述约定的数据通信协议,将每个元素的值,以及标志符号组成每个数据组;或者,将每个元素的值,以及对应的值的长度组成每个数据组;或者,将每个元素的值,对应的值的长度,以及标志符号组成每个数据组;以及将上述任意一种情况中的所有的数据组合成一个数据包,将该数据包确定为应用协议数据单元操作指令中数据内容属性的信息。访问端IOO,还用于将所述数据包的长度与第一设定值进行比较,当所述长度大于所述第一设定值时,将所述数据包分成至少两个数据子包,将每个数据子包确定为对应的应用协议数据单元操作指令中数据内容属性的信息,并将每帧应用协议数据单元操作指令中的空闲属性作为多帧标识进行配置。而智能卡200,还用于根据所述应用协议数据单元操作指令中数据长度属性的信息分配内存空间。智能卡200,还用于根据所述约定的数据通信协议,将所述响应数据中每个参数中每个元素的值组成一个数据包,并确定所述数据包的长度,根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息,将确定的所述应用协议数据单元响应指令发送给访问端。智能卡200,还用于将所述总长度与第二设定值进行比较,当所述总长度大于所述第二设定值时,将所述数据包分成至少两个数据子包,并根据每个数据子包,对应数据子包的长度,以及对应的多帧标识,确定对应的应用协议数据单元响应指令中数据内容属性的信息。根据上述处理智能卡数据库的方法,可以构造一种处理智能卡数据库的装置,参见图5,该装置包括封装单元510,通信单元520,以及解析单元530。封装单元510,用于根据约定的数据通信协议,将根据数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令中对应属性的信息。13通信单元520,用于向智能卡下发所述应用协议数据单元操作指令,以及接收所述智能卡返回的应用协议数据单元响应指令。解析单元530,用于根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。而封装单元510包括第一确定子单元,用于根据约定的数据通信协议,以及每个参数中每个元素的值的长度,确定对应的应用协议数据单元操作指令中数据内容属性的信息。第二确定子单元,用于根据所述数据内容属性的信息的长度,确定对应的应用协议数据单元操作指令中数据长度属性的信息。该第一确定子单元,还用于根据所述约定的数据通信协议,将每个元素的值,以及标志符号组成每个数据组;或者,将每个元素的值,以及对应的值的长度组成每个数据组;或者,将每个元素的值,对应的值的长度,以及标志符号组成每个数据组;以及将上述任意一种情况中的所有的数据组合并成一个数据包,将该数据包确定为应用协议数据单元操作指令中数据内容属性的信息。该第一确定子单元,还用于将所述数据包的长度与第一设定值进行比较,当所述长度大于所述第一设定值时,将所述数据包分成至少两个数据子包,将每个数据子包确定为对应的应用协议数据单元操作指令中数据内容属性的信息,并将每帧应用协议数据单元操作指令中的空闲属性作为多帧标识进行配置。本发明实施例中,该处理智能卡数据库的装置可以为上述的访问端,可具体为上述实施例一中PC端的DB操作接口。参见图6,本发明实施例中的智能卡包括通信单元610、解析单元620、处理单元630以及封装单元640。其中,通信单元610,用于接收访问端下发的应用协议数据单元操作指令,以及向所述访问端发送应用协议数据单元响应指令。解析单元620,用于根据约定的数据通信协议解析接收的应用协议数据单元操作指令,获取操作数据库的指令信息。处理单元630,用于根据所述指令信息,处理对应的数据库。封装单元640,用于根据约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令将处理后得到的响应数据中每个参数中每个元素的值组成一个数据包,确定所述数据包的长度,根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息。解析单元620,还用于根据所述应用协议数据单元操作指令中数据长度属性的信息分配内存空间。封装单元640具体可以包括组成子单元,确定子单元和发送子单元。组成子单元,用于将所述响应数据中每个参数中每个元素的值组成一个数据包,并确定所述数据包的长度。确定子单元,用于根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息。发送子单元,用于将确定的所述应用协议数据单元响应指令发送给访问端。而确定子单元,还用于将所述总长度与第二设定值进行比较,当所述总长度大于所述第二设定值时,将所述数据包分成至少两个数据子包,并根据每个数据子包,数据子包的长度,以及对应的多帧标识,确定对应的应用协议数据单元响应指令中数据内容属性的信息。即封装单元640,还用于将所述长度与第二设定值进行比较,当所述长度大于所述第二设定值时,将所述数据包分成至少两个数据子包,并根据每个数据子包,数据子包的长度,以及对应的多帧标识,确定对应的应用协议数据单元响应指令中数据内容属性的信息。上述实施例一中智能卡端DB操作接口的功能包括了上述通信单元、、解析单元处理单元以及封装单元的功能。综上所述,本发明实施例中,访问端与智能卡之间已经约定好了数据通信协议,访问端可以根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的APDU操作指令,而并不是根据智能卡中定义好的表的字段个数和每个字段长度的来设置APDU操作指令中对应属性的信息,这样,访问端不需要针对每种类型的智能卡下载对应的操作系统,从而,提高智能卡的通用性,扩展智能卡的应用领域。并且,数据库处理完毕后,智能卡根据约定的数据通信协议,,确定对应APDU响应指令中数据内容属性的信息,这样访问端不需要另外再解析获得的APDU响应指令,提高系统的效率。另外,智能卡可以根据APDU操作指令中数据长度属性的信息动态分配APDU指令所需要的内存空间,或者,当APDU指令存在多帧的情况下,智能卡根据APDU指令中第一帧中数据长度属性的信息来动态分配整个APDU指令所需要的内存空间。并根据参数的个数来动态分配相应参数的指针所需要的内存空间,通过指针指向智能卡内存中的APDU指令中DATA中对应的参数,然后把指针指向的参数传给数据库管理平台对应处理单元进行处理。而在获得操作数据库的指令信息之后,释放对应的内存空间。这样,智能卡根据APDU指令数据长度属性的信息动态分配内存空间,而不是预先分配APDU指令所需要的内存空间,也避免了因预先分配的空间不能存放下APDU指令,而使该APDU指令不能正常执行。并且通过指针指向参数,可以节省内存空间,参数的数据越多,节省的内存空间就越多,否则智能卡需要预先分配参数所需要的内存空间,这样会增大智能卡内存空间的消耗,如果内存空间不够,将使对应的APDU指令不能正常执行。因此,有效利用了智能卡中有限的内存资源。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求一种处理智能卡数据库的方法,其特征在于,包括访问端根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令;所述访问端向智能卡下发所述应用协议数据单元操作指令,使所述智能卡根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端;所述访问端根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。2.如权利要求1所述的方法,其特征在于,所述将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令包括所述访问端根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应的应用协议数据单元操作指令中数据内容属性的信息;根据所述数据内容属性的信息的长度,确定对应的应用协议数据单元操作指令中数据长度属性的信息。3.如权利要求2所述的方法,其特征在于,所述确定对应的应用协议数据单元操作指令中数据内容属性的信息包括根据所述约定的数据通信协议,将每个元素的值,以及标志符号组成每个数据组;或者,将每个元素的值,以及对应的值的长度组成每个数据组;或者,将每个元素的值,对应的值的长度,以及标志符号组成每个数据组;以及,将上述任意一种情况中的所有的数据组合并成一个数据包,并将所述数据包确定为所述应用协议数据单元操作指令中数据内容属性的信息。4.如权利要求3所述的方法,其特征在于,将所述数据包确定为应用协议数据单元操作指令中数据内容属性的信息包括将所述数据包的长度与第一设定值进行比较;当所述长度大于所述第一设定值时,将所述数据包分成至少两个数据子包,将每个数据子包确定为对应的应用协议数据单元操作指令中数据内容属性的信息,并将每帧应用协议数据单元操作指令中的空闲属性作为多帧标识进行配置。5.如权利要求1所述的方法,其特征在于,所述智能卡获取操作数据库的指令信息之前,还包括根据所述应用协议数据单元操作指令中数据长度属性的信息分配内存空间;则所述智能卡获取操作数据库的指令信息之后,还包括释放所述分配的内存空间。6.如权利要求l的方法,其特征在于,所述智能卡根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端包括根据所述约定的数据通信协议,将所述响应数据中每个参数中每个元素的值组成一个数据包,并确定所述数据包的长度;根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息;将确定的所述应用协议数据单元响应指令发送给访问端。7.如权利要求6的方法,其特征在于,确定所述应用协议数据单元响应指令中数据内容属性的信息包括将所述长度与第二设定值进行比较;当所述长度大于所述第二设定值时,将所述数据包分成至少两个数据子包,并根据每个数据子包,数据子包的长度,以及对应的多帧标识,确定对应的应用协议数据单元响应指令中数据内容属性的信息。8.—种处理智能卡数据库的系统,其特征在于,包括访问端,用于根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令,向智能卡下发经过确定的所述应用协议数据单元操作指令,接收所述智能卡返回的应用协议数据单元响应指令,并根据所述约定的数据通信协议,对所述应用协议数据单元响应指令进行解析,获得处理结果;智能卡,用于根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端。9.如权利要求8所述的系统,其特征在于,所述访问端,还用于根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应的应用协议数据单元操作指令中数据内容属性的信息,根据所述数据内容属性的信息的长度,确定对应的应用协议数据单元操作指令中数据长度属性的信息。10.如权利要求8所述的系统,其特征在于,所述智能卡,还用于根据所述约定的数据通信协议,将所述响应数据中每个参数中每个元素的值组成一个数据包,并确定所述数据包的长度,根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息,将确定的所述应用协议数据单元响应指令发送给访问端。11.一种处理智能卡数据库的装置,其特征在于,包括封装单元,用于根据约定的数据通信协议,将根据数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令中对应属性的信息;通信单元,用于向智能卡下发所述应用协议数据单元操作指令,以及接收所述智能卡返回的应用协议数据单元响应指令;解析单元,用于根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。12.如权利要求11所述的装置,其特征在于,所述封装单元包括第一确定子单元,用于根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应的应用协议数据单元操作指令中数据内容属性的信息;第二确定子单元,用于根据所述数据内容属性的信息的长度,确定对应的应用协议数据单元操作指令中数据长度属性的信息。13.如权利要求12所述的装置,其特征在于,第一确定子单元,还用于根据所述约定的数据通信协议,将每个元素的值,以及标志符号组成每个数据组;或者,将每个元素的值,以及对应的值的长度组成每个数据组;或者,将每个元素的值,对应的值的长度,以及标志符号组成每个数据组;以及将上述任意一种情况中的所有的数据组合并成一个数据包,将该数据包确定为所述应用协议数据单元操作指令中数据内容属性的信息。14.如权利要求12所述的装置,其特征在于,所述第一确定子单元,还用于将所述数据包的长度与第一设定值进行比较,当所述长度大于所述第一设定值时,将所述数据包分成至少两个数据子包,将每个数据子包确定为对应的应用协议数据单元操作指令中数据内容属性的信息,并将每帧应用协议数据单元操作指令中的空闲属性作为多帧标识进行配置。15.—种智能卡,其特征在于,包括通信单元,用于接收访问端下发的应用协议数据单元操作指令,以及向所述访问端发送应用协议数据单元响应指令;解析单元,用于根据约定的数据通信协议解析接收的应用协议数据单元操作指令,获取操作数据库的指令信息;处理单元,用于根据所述指令信息,处理对应的数据库;封装单元,用于根据约定的数据通信协议,,将处理后的响应数据封装为应用协议数据单元响应指令将处理后得到的响应数据中每个参数中每个元素的值组成一个数据包,确定所述数据包的长度,根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息。16.如权利要求15所述的智能卡,其特征在于,所述解析单元,还用于根据所述应用协议数据单元操作指令中数据长度属性的信息分配内存空间。17.如权利要求15所述的智能卡,其特征在于,所述封装单元,还用于将所述长度与第二设定值进行比较,当所述长度大于所述第二设定值时,将所述数据包分成至少两个数据子包,并根据每个数据子包,数据子包的长度,以及对应的多帧标识,确定对应的应用协议数据单元响应指令中数据内容属性的信息。全文摘要本发明公开了一种处理智能卡数据库的方法、系统及装置,用以提高数据库卡的通用性,扩展数据库卡的应用领域。该方法包括访问端根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令;所述访问端向智能卡下发所述应用协议数据单元操作指令,使所述智能卡根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端;所述访问端根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。文档编号G06K7/00GK101794310SQ20101011831公开日2010年8月4日申请日期2010年3月4日优先权日2010年3月4日发明者刘庆海,邵玲玲申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1