CN101794310A - 一种处理智能卡数据库的方法、系统及装置 - Google Patents

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

Info

Publication number
CN101794310A
CN101794310A CN 201010118313 CN201010118313A CN101794310A CN 101794310 A CN101794310 A CN 101794310A CN 201010118313 CN201010118313 CN 201010118313 CN 201010118313 A CN201010118313 A CN 201010118313A CN 101794310 A CN101794310 A CN 101794310A
Authority
CN
China
Prior art keywords
data
application protocol
information
operational order
data unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201010118313
Other languages
English (en)
Other versions
CN101794310B (zh
Inventor
邵玲玲
刘庆海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Watchdata Co ltd
Original Assignee
Beijing WatchData System Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing WatchData System Co Ltd filed Critical Beijing WatchData System Co Ltd
Priority to CN2010101183139A priority Critical patent/CN101794310B/zh
Publication of CN101794310A publication Critical patent/CN101794310A/zh
Application granted granted Critical
Publication of CN101794310B publication Critical patent/CN101794310B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明公开了一种处理智能卡数据库的方法、系统及装置,用以提高数据库卡的通用性,扩展数据库卡的应用领域。该方法包括:访问端根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令;所述访问端向智能卡下发所述应用协议数据单元操作指令,使所述智能卡根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端;所述访问端根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。

Description

一种处理智能卡数据库的方法、系统及装置
技术领域
本发明涉及智能卡技术领域,特别涉及一种处理智能卡数据库的方法、系统及装置。
背景技术
随着集成电路(IC,Integrated Circuit)卡技术的发展,IC卡在电信,金融,政府,交通等领域应用越来越广泛,发卡量逐年快速增长,而且卡片容量不断增加,从几十KBytes到几个GBytes的容量。卡片内的数据内容属性也越来越丰富。为了对IC卡上的数据进行有效的管理,在智能卡的软件平台中引入一个数据管理平台,从而能够利用卡上有限的资源,灵活、高效地管理卡上的各类数据应用。这种引入了数据管理平台的智能卡也叫数据库卡。
数据库卡在应用时需要从个人电脑(PC,Personal Computer)端或其他终端对卡中的数据库进行处理,现有的一些处理智能卡上数据库的方法,都是根据特定的应用环境设计成固定的处理形式,每一种处理方法都只能静态的在一种特定的应用背景环境中使用,例如金融、电信、医疗等应用所用的智能卡,都只能限定在各自的单一的应用中去使用,因为这些应用于不同环境下的智能卡,都是针对某种应用而预先在数据库卡上定义好了表的总字段个数和表中每个字段的长度,即数据库卡中的表全都采用固定不变的结构。
但是,金融行业中应用的智能卡和医疗行业中应用的智能卡的数据库中的表包含的字段个数以及每个字段长度一般不相同。而且,同一行业中的不同应用的智能卡中设计的表包含的字段个数以及每个字段长度一般也不相同。
如此一来,一旦智能卡数据库的应用背景环境发生变化,或者在同一应用背景环境中需要进行功能的拓展,比如想让应用于金融行业的智能卡能够支持医疗方面的应用,则都需要重新设计数据库卡的处理方法,需要重新下载智能卡底层的操作系统,这样既提高了成本,又很不灵活、不方便。
因此,现有的处理智能卡数据库的方法,受数据库卡的具体应用的限制,缺乏使用的通用性,不便于数据库卡的应用推广。
发明内容
本发明实施例提供一种处理智能卡数据库的方法、系统及装置,用以提高数据库卡的通用性,扩展数据库卡的应用领域。
本发明实施例提供一种处理智能卡数据库的方法,包括:
访问端根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令;
所述访问端向智能卡下发所述应用协议数据单元操作指令,使所述智能卡根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端;
所述访问端根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。
本发明实施例提供一种处理智能卡数据库的系统,包括:
访问端,用于根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令,向智能卡下发经过确定的所述应用协议数据单元操作指令,接收所述智能卡返回的应用协议数据单元响应指令,并根据所述约定的数据通信协议,对所述应用协议数据单元响应指令进行解析,获得处理结果;
智能卡,用于根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端。
本发明实施例提供了一种处理智能卡数据库的装置,包括:
封装单元,用于根据约定的数据通信协议,将根据数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令中对应属性的信息;
通信单元,用于向智能卡下发所述应用协议数据单元操作指令,以及接收所述智能卡返回的应用协议数据单元响应指令;
解析单元,用于根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。
本发明实施例提供了一种智能卡,包括:
通信单元,用于接收访问端下发的应用协议数据单元操作指令,以及向所述访问端发送应用协议数据单元响应指令;
解析单元,用于根据约定的数据通信协议解析接收的应用协议数据单元操作指令,获取操作数据库的指令信息;
处理单元,用于根据所述指令信息,处理对应的数据库;
封装单元,用于根据约定的数据通信协议,,将处理后的响应数据封装为应用协议数据单元响应指令将处理后得到的响应数据中每个参数中每个元素的值组成一个数据包,确定所述数据包的长度,根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息。
本发明实施例中,访问端可以根据数据库操作请求中每个参数的信息,确定对应的应用协议数据单元(APDU,Application Protocol Data Unit)操作指令中对应属性的信息,而并不是根据智能卡中定义好的表的字段个数和每个字段长度来设置APDU操作指令中对应属性的信息,这样,访问端不需要针对每种类型的智能卡下载对应的操作系统,从而,提高智能卡的通用性,扩展智能卡的应用领域。
附图说明
图1为本发明实施例中处理智能卡数据库系统的架构图;
图2为本发明实施例中处理智能卡数据库的流程图;
图3为本发明实施例一中处理智能卡数据库系统的架构图;
图4为本发明实施例一中处理智能卡数据库的流程图;
图5为本发明实施例中处理智能卡数据库装置的结构图;
图6为本发明实施例中智能卡的结构图。
具体实施方式
本发明实施例中,智能卡为数据库卡,智能卡的数据库中包括各种各样的表格,其中,表格之间的结构可能不一样,一些表格是根据金融应用环境设计的,一些表格是根据电信应用环境设计的,或者,一些表格是根据医疗应用环境设计的。这样,可能每个表格的总字段个数不一致,或者,表格中的每个字段的长度不一致。
本发明实施例公开的处理智能卡数据库的方法中,访问端与智能卡之间约定了一种数据通信协议,这样,访问端可以处理智能卡数据库中任一格式的表格,从而实现智能卡在多领域中的应用,提高智能卡的通用性。
参见图1,数据库卡在应用时,其处理智能卡数据库的系统包括:访问端100和智能卡200。在该系统中,访问端100根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的APDU操作指令,然后,向智能卡200下发该APDU操作指令,这样,智能卡200根据约定的数据通信协议解析接收的APDU操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,然后,根据约定的数据通信协议,将处理后的响应数据封装为APDU响应指令返回给访问端。
参见图2,处理智能卡数据库的过程包括:
步骤201:访问端获取数据库操作请求中每个参数的信息。
这里,访问端包括:PC端,或其他终端。当访问端的应用程序发起数据库操作请求时,访问端获取该数据库操作请求中每个参数的信息。
其中,数据库操作请求的内容可以包括要对智能卡的数据库执行的操作,比如创建、查询、插入、删除或修改数据库表等的其中一种,同时还可以包括该操作需要的参数,例如数据库表的名称等。需要说明的是,每种操作对应的参数的个数和内容可以是不相同的;
参数的信息包括:元素个数,每个元素的值,以及每个元素的值的长度。
步骤202:访问端根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的APDU操作指令。
访问端与智能卡之间的通讯是依照ISO7816-4规范的APDU来完成的。APDU操作指令的基本格式如表1所示:
  首标   主体
  CLA  INS  P1P2   [数据长度Lc][数据内容DATA]
表1
其中,表1中每个属性标识的含义如表2所示:
  属性   名称   长度   描述
  CLAINSP1P2   类别指令参数1参数2   1111   指令的类别指令代码指令参数1指令参数2
  数据长度Lc数据内容DATA   长度数据   变量1变量=Lc   在指令的数据字段中呈现的字节数在指令的数据字段中发送的字节串
表2
本发明实施例中,访问端可以根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应APDU操作指令中数据内容属性的信息,根据所述数据内容属性的信息的长度,确定对应的APDU操作指令中数据长度属性的信息。
即根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应APDU操作指令DATA中的信息,以及根据DATA中的信息的长度,确定对应APDU操作指令中Lc的值。
其中,约定的数据通信协议中可以定义APDU操作指令DATA中的组包方式为LV格式,或者,VM格式,或者,LVM格式,其中,L为每个元素的值的长度,V为每个元素的值,M为标志符号。当然,本发明实施例中,约定的数据通信协议中还可以定义其他类似的组包方式。
步骤203:访问端将生成的APDU操作指令下发给智能卡。
这里,可以通过符合ISO7816-3或ISO7816-12规范的通讯通道将生成的APDU操作指令下传到智能卡。
步骤204:智能卡对接收到APDU操作指令进行解析,获取操作数据库的指令信息。
这里,智能卡根据约定的数据通信协议对接收的APDU操作指令进行解析,获取到APDU操作指令中每个属性的信息,然后,将APDU操作指令中数据内容属性的信息进行解包,获得操作数据库的指令信息。
在获得操作数据库的指令信息之前,智能卡可以根据APDU操作指令中数据长度属性的信息分配内存空间,而在获得操作数据库的指令信息之后,释放对应的内存空间。
可见,本发明实施例中,当APDU操作指令中数据长度属性的信息不同时,分配的内存空间也不同,这样,智能卡可以动态分配内存空间和释放内存空间,有效利用了智能卡中有限的内存资源。
步骤205:智能卡根据获取的指令信息,处理对应的数据库。
智能卡根据获取的指令信息,调用对应的数据库接口函数,对数据库进行处理。
步骤206:智能卡根据约定的数据通信协议,将处理后的响应数据封装为对应的APDU响应指令反馈给访问端。
智能卡对数据库进行处理后,得到响应数据;根据约定的数据通信协议,将该响应数据中每个参数的信息封装为对应APDU响应指令,然后将APDU响应指令发送给访问端。
APDU响应指令的基本格式如表3所示:
  [数据内容]     SW1  SW2
表3
其中,表3中每个属性标识的含义如表4所示:
  代码   名称   长度 描述
  数据内容   数据   变量=Lr 在响应的数据内容属性中收到的字节串
  SW1   状态字节1   1 命令处理状态
  SW2   状态字节2   1 命令处理受限字符
表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=\xFF,其对应的P2=\x82,表明是是第一帧。这里,\xFF为“255”的十六进制表示,同样,\x82也是十六进制表示。将另外45个字节的数据作为第二帧APDU操作指令中DATA的信息,该帧APDU操作指令中Lc=\x2D其对应的P2=\x81,表明是第二帧,同时也是最后一帧。当然,可以将该数据包分为三个数据子包,每个数据子包的长度都为100,确定每帧APDU操作指令对应的属性的信息过程与上相似,此处不再累述。
上述步骤202中,确定对应APDU操作指令中数据长度属性的信息包括:
根据APDU操作指令中数据内容属性的信息的长度,确定对应APDU操作指令中数据长度的信息。例如:数据库操作请求中有3个参数,第1个参数有1个元素,其值的长度为2字节;第2个参数有1个元素,其值的长度为3字节;第3个参数有4个元素,其值的长度分别为2,2,3,4字节,那么,当在确定APDU操作指令中数据内容属性的信息时,采用每个元素的值,与标志符号“\x00”的组包方式,因此,APDU操作指令DATA中信息的长度=2+1+3+1+2+1+2+1+3+1+4+1=22,则APDU操作指令中数据长度Lc的值=\x16,这里\x16为22的十六进制值。
在上述步骤206中,可以直接将数据包,以及长度,组成APDU响应指令中数据内容属性的信息。但是,APDU响应指令中对数据包的长度也有一个最大的限制,即为第二设定值,第二设定值与第一设定值可以一致。因此,确定APDU响应指令中数据内容属性的信息还包括:
将数据包的长度与第二设定值进行比较,当第二长度大于设定值时,设置一个多帧标识,即约定的数据通信协议在APDU响应指令中数据内容属性的信息中配置多帧标识,并将该数据包分成至少两个数据子包,并根据每个数据子包,数据子包的长度,以及对应的多帧标识,确定对应的APDU响应指令中数据内容属性的信息。
并且,步骤206中,将所有元素的值组成一个数据包可以包括:
当约定的数据通信协议中定义APDU响应指令数据内容中的组包方式为V格式时,直接将所有元素的值组成一个十六进制的字符串;或者
当约定的数据通信协议中定义APDU响应指令数据内容中的组包方式为VM格式时,将所有元素的值组成一个十六进制的字符串,其中,每个元素的值有一个标志符号。
下面结合说明书附图对本发明实施例作进一步详细描述。
实施例一:本实施例中,访问端为PC端,访问端与智能卡之间约定了数据通信协议,处理智能卡数据库的系统如图3所示,包括PC端100和智能卡200,其中,PC端中包括应用单元110和PC端数据库(DB)操作接口120,而智能卡中包括DB管理平台210和智能卡端DB操作接口220。PC端与智能卡之间的通讯是依照ISO7816-4规范的APDU来完成的。APDU操作指令的基本格式如表1所示,APDU响应指令的基本格式如表3。其中,APDU操作指令或APDU响应指令的属性的信息都用十六进制数表示。则在该系统架构下,处理智能卡数据库的过程参见图4,包括:
步骤401:PC端中的应用单元发起数据库操作请求。
这里,数据库操作请求为“打开一个数据库”。因此,该数据库操作请求中的参数中包括:数据库名称。
步骤402:PC端DB操作接口接收数据库操作请求,并获取数据库操作请求中每个参数的信息。
这里,获取到的每个参数的信息包括:数据库名称的值,数据库名称的值的长度。例如:数据库名称的值为“x68\x66,数据库名称的值的长度为2个字节,其对应的数据库名称为“DB”。
步骤403:PC端DB操作接口根据约定的数据通信协议,确定对应的APDU操作指令。
这里,只有一个参数,该参数也只有一个元素,其长度为2个字节。若约定的数据通信协议中定义采用长度、值的组包格式,则确定APDU操作指令DATA中的信息为“\x02\x68\x66”,确定APDU操作指令Lc=\x03。或者,
若约定的数据通信协议中定义采用值,标志符号的组包格式,则确定APDU操作指令DATA中的信息为“\x68\x66\x00”,其中“\x00”为标志符号,确定APDU操作指令Lc=\x03。或者,
若约定的数据通信协议中定义采用长度、值,以及标志符号的组包格式,则确定APDU操作指令DATA中的信息为“\x03\x68\x66\x00”,其中“\x00”为标志符号,确定APDU操作指令Lc=\x04。
本发明实施例中,因只有一个参数,其对应的APDU操作指令DATA中的信息的长度不可能大于255个字节长度,因此,不需要设置APDU操作指令中P2的值,若另一实施例中,对应的APDU操作指令DATA中的信息的长度大于255时,则需设置中P2的值。其中,可以用一个字节(b0~b7,其中b0为最低位,b7为最高位),来标识P2的值。其中b1为1,该帧为首帧,否则为非首帧;当b0为1,该帧为最后1帧,否则为非最后帧。
当然,具体的数据库操作请求为“打开一个数据库”,因此,该APDU中的其他属性的信息都可以根据ISO7816-4规范确定。例如:CLA为0x80;INS为0x10;以及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”,并且智能卡能正常处理,因此,SW1可以确定为“0x90”。因此,这里只是打开一个数据库,因此,APDU响应指令中数据内容属性的信息为空。
若在另一实施例中,如读取一个数据库中的内容,约定的数据通信协议定义直接采用值的组包方式,该数据库中有3个参数,其中,第一个参数有两个元素,其值的长度分别为2,160字节;第二个参数有一个元素,其值的长度为2字节,第三个参数有4个元素,其值的长度分别为150,8,9,3字节。
这样,总长度为2+160+2+150+8+9+3=334个字节,334字节大于255字节,因此,可以生成两帧APDU响应指令。并在每帧APDU响应指令中数据内容属性的信息中配置多帧标识。可以用一个字节(b0~b7,其中b0为最低位,b7为最高位),来标识多帧标识的值。其中,b7为1,表示后面的数据内容有效,需要解析,否则不需要解析;当b1为1,该帧为首帧,否则为非首帧;当b0为1,该帧为最后1帧,否则为非最后帧。
从而,第一帧APDU响应指令中数据内容属性的信息包括:多帧标识“\x82”,总长度“\xFF”,以及255个字节的数据值。第二帧APDU响应指令中数据内容属性的信息包括:多帧标识“\x81”,总长度“\x4F\”,以及79个字节的数据值。
步骤408:PC端DB操作接口对接收的APDU响应指令进行解析,获得处理结果,并将处理结果反馈给PC端应用单元。
PC端DB操作接口根据约定的数据通信协议,对接收的APDU响应指令进行解析,例如:对“\x90\x00”进行解析,得到打开成功的处理结果,将处理结果反馈给PC端应用单元。或者对“\x82\xFF\x06\.....\x08\x90\x00”进行解析,获得有效数据为“\x06\.....\x08”,从而,将该有效数据对应的处理结果反馈给PC端应用单元。
本发明实施例中,处理智能卡数据库的系统的结构如图1所示,包括:访问端100和智能卡200,其中,
访问端100,用于根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令,向智能卡下发经过确定的所述应用协议数据单元操作指令,接收所述智能卡返回的应用协议数据单元响应指令,并根据所述约定的数据通信协议,对所述应用协议数据单元响应指令进行解析,获得处理结果。
智能卡200,用于根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端。
并且,访问端100,还用于根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应的应用协议数据单元操作指令中数据内容属性的信息,根据所述数据内容属性的信息的长度,确定对应的应用协议数据单元操作指令中数据长度属性的信息。
访问端100,还用于根据所述约定的数据通信协议,将每个元素的值,以及标志符号组成每个数据组;或者,将每个元素的值,以及对应的值的长度组成每个数据组;或者,将每个元素的值,对应的值的长度,以及标志符号组成每个数据组;以及将上述任意一种情况中的所有的数据组合成一个数据包,将该数据包确定为应用协议数据单元操作指令中数据内容属性的信息。
访问端100,还用于将所述数据包的长度与第一设定值进行比较,当所述长度大于所述第一设定值时,将所述数据包分成至少两个数据子包,将每个数据子包确定为对应的应用协议数据单元操作指令中数据内容属性的信息,并将每帧应用协议数据单元操作指令中的空闲属性作为多帧标识进行配置。
而智能卡200,还用于根据所述应用协议数据单元操作指令中数据长度属性的信息分配内存空间。
智能卡200,还用于根据所述约定的数据通信协议,将所述响应数据中每个参数中每个元素的值组成一个数据包,并确定所述数据包的长度,根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息,将确定的所述应用协议数据单元响应指令发送给访问端。
智能卡200,还用于将所述总长度与第二设定值进行比较,当所述总长度大于所述第二设定值时,将所述数据包分成至少两个数据子包,并根据每个数据子包,对应数据子包的长度,以及对应的多帧标识,确定对应的应用协议数据单元响应指令中数据内容属性的信息。
根据上述处理智能卡数据库的方法,可以构造一种处理智能卡数据库的装置,参见图5,该装置包括:封装单元510,通信单元520,以及解析单元530。
封装单元510,用于根据约定的数据通信协议,将根据数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令中对应属性的信息。
通信单元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指令不能正常执行。因此,有效利用了智能卡中有限的内存资源。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (17)

1.一种处理智能卡数据库的方法,其特征在于,包括:
访问端根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令;
所述访问端向智能卡下发所述应用协议数据单元操作指令,使所述智能卡根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端;
所述访问端根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。
2.如权利要求1所述的方法,其特征在于,所述将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令包括:
所述访问端根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应的应用协议数据单元操作指令中数据内容属性的信息;
根据所述数据内容属性的信息的长度,确定对应的应用协议数据单元操作指令中数据长度属性的信息。
3.如权利要求2所述的方法,其特征在于,所述确定对应的应用协议数据单元操作指令中数据内容属性的信息包括:
根据所述约定的数据通信协议,将每个元素的值,以及标志符号组成每个数据组;或者,将每个元素的值,以及对应的值的长度组成每个数据组;或者,将每个元素的值,对应的值的长度,以及标志符号组成每个数据组;以及,
将上述任意一种情况中的所有的数据组合并成一个数据包,并将所述数据包确定为所述应用协议数据单元操作指令中数据内容属性的信息。
4.如权利要求3所述的方法,其特征在于,将所述数据包确定为应用协议数据单元操作指令中数据内容属性的信息包括:
将所述数据包的长度与第一设定值进行比较;
当所述长度大于所述第一设定值时,将所述数据包分成至少两个数据子包,将每个数据子包确定为对应的应用协议数据单元操作指令中数据内容属性的信息,并将每帧应用协议数据单元操作指令中的空闲属性作为多帧标识进行配置。
5.如权利要求1所述的方法,其特征在于,所述智能卡获取操作数据库的指令信息之前,还包括:
根据所述应用协议数据单元操作指令中数据长度属性的信息分配内存空间;
则所述智能卡获取操作数据库的指令信息之后,还包括:
释放所述分配的内存空间。
6.如权利要求1的方法,其特征在于,所述智能卡根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端包括:
根据所述约定的数据通信协议,将所述响应数据中每个参数中每个元素的值组成一个数据包,并确定所述数据包的长度;
根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息;
将确定的所述应用协议数据单元响应指令发送给访问端。
7.如权利要求6的方法,其特征在于,确定所述应用协议数据单元响应指令中数据内容属性的信息包括:
将所述长度与第二设定值进行比较;
当所述长度大于所述第二设定值时,将所述数据包分成至少两个数据子包,并根据每个数据子包,数据子包的长度,以及对应的多帧标识,确定对应的应用协议数据单元响应指令中数据内容属性的信息。
8.一种处理智能卡数据库的系统,其特征在于,包括:
访问端,用于根据约定的数据通信协议,将数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令,向智能卡下发经过确定的所述应用协议数据单元操作指令,接收所述智能卡返回的应用协议数据单元响应指令,并根据所述约定的数据通信协议,对所述应用协议数据单元响应指令进行解析,获得处理结果;
智能卡,用于根据约定的数据通信协议解析所述应用协议数据单元操作指令,获取操作数据库的指令信息,并根据所述指令信息,处理对应的数据库,,以及根据所述约定的数据通信协议,将处理后的响应数据封装为应用协议数据单元响应指令返回给所述访问端。
9.如权利要求8所述的系统,其特征在于,
所述访问端,还用于根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应的应用协议数据单元操作指令中数据内容属性的信息,根据所述数据内容属性的信息的长度,确定对应的应用协议数据单元操作指令中数据长度属性的信息。
10.如权利要求8所述的系统,其特征在于,
所述智能卡,还用于根据所述约定的数据通信协议,将所述响应数据中每个参数中每个元素的值组成一个数据包,并确定所述数据包的长度,根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息,将确定的所述应用协议数据单元响应指令发送给访问端。
11.一种处理智能卡数据库的装置,其特征在于,包括:
封装单元,用于根据约定的数据通信协议,将根据数据库操作请求中每个参数的信息封装为对应的应用协议数据单元操作指令中对应属性的信息;
通信单元,用于向智能卡下发所述应用协议数据单元操作指令,以及接收所述智能卡返回的应用协议数据单元响应指令;
解析单元,用于根据所述约定的数据通信协议,对接收的所述应用协议数据单元响应指令进行解析,获得处理结果。
12.如权利要求11所述的装置,其特征在于,所述封装单元包括:
第一确定子单元,用于根据约定的数据通信协议,以及每个参数中每个元素的值,确定对应的应用协议数据单元操作指令中数据内容属性的信息;
第二确定子单元,用于根据所述数据内容属性的信息的长度,确定对应的应用协议数据单元操作指令中数据长度属性的信息。
13.如权利要求12所述的装置,其特征在于,
第一确定子单元,还用于根据所述约定的数据通信协议,将每个元素的值,以及标志符号组成每个数据组;或者,将每个元素的值,以及对应的值的长度组成每个数据组;或者,将每个元素的值,对应的值的长度,以及标志符号组成每个数据组;以及将上述任意一种情况中的所有的数据组合并成一个数据包,将该数据包确定为所述应用协议数据单元操作指令中数据内容属性的信息。
14.如权利要求12所述的装置,其特征在于,
所述第一确定子单元,还用于将所述数据包的长度与第一设定值进行比较,当所述长度大于所述第一设定值时,将所述数据包分成至少两个数据子包,将每个数据子包确定为对应的应用协议数据单元操作指令中数据内容属性的信息,并将每帧应用协议数据单元操作指令中的空闲属性作为多帧标识进行配置。
15.一种智能卡,其特征在于,包括:
通信单元,用于接收访问端下发的应用协议数据单元操作指令,以及向所述访问端发送应用协议数据单元响应指令;
解析单元,用于根据约定的数据通信协议解析接收的应用协议数据单元操作指令,获取操作数据库的指令信息;
处理单元,用于根据所述指令信息,处理对应的数据库;
封装单元,用于根据约定的数据通信协议,,将处理后的响应数据封装为应用协议数据单元响应指令将处理后得到的响应数据中每个参数中每个元素的值组成一个数据包,确定所述数据包的长度,根据所述数据包,以及所述长度,确定所述应用协议数据单元响应指令中数据内容属性的信息。
16.如权利要求15所述的智能卡,其特征在于,
所述解析单元,还用于根据所述应用协议数据单元操作指令中数据长度属性的信息分配内存空间。
17.如权利要求15所述的智能卡,其特征在于,
所述封装单元,还用于将所述长度与第二设定值进行比较,当所述长度大于所述第二设定值时,将所述数据包分成至少两个数据子包,并根据每个数据子包,数据子包的长度,以及对应的多帧标识,确定对应的应用协议数据单元响应指令中数据内容属性的信息。
CN2010101183139A 2010-03-04 2010-03-04 一种处理智能卡数据库的方法、系统及装置 Expired - Fee Related CN101794310B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101183139A CN101794310B (zh) 2010-03-04 2010-03-04 一种处理智能卡数据库的方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101183139A CN101794310B (zh) 2010-03-04 2010-03-04 一种处理智能卡数据库的方法、系统及装置

Publications (2)

Publication Number Publication Date
CN101794310A true CN101794310A (zh) 2010-08-04
CN101794310B CN101794310B (zh) 2011-09-14

Family

ID=42587009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101183139A Expired - Fee Related CN101794310B (zh) 2010-03-04 2010-03-04 一种处理智能卡数据库的方法、系统及装置

Country Status (1)

Country Link
CN (1) CN101794310B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521626A (zh) * 2011-11-30 2012-06-27 北京握奇数据系统有限公司 一种智能卡的多应用管理方法和系统
CN103559073A (zh) * 2013-10-28 2014-02-05 飞天诚信科技股份有限公司 一种基于Java卡的数据管理方法
CN104715217A (zh) * 2013-12-13 2015-06-17 中国移动通信集团公司 一种非接触参数冲突的解决方法、设备及系统
CN104836639A (zh) * 2015-04-02 2015-08-12 中国科学院信息工程研究所 一种可传输多种算法参数的数据传输方法
CN105550604A (zh) * 2015-12-02 2016-05-04 恒宝股份有限公司 一种数据封装方法及装置
CN106204031A (zh) * 2016-07-01 2016-12-07 中国联合网络通信集团有限公司 卡应用处理方法及装置
CN108664327A (zh) * 2018-03-29 2018-10-16 北京中电华大电子设计有限责任公司 一种Java+Native应用的系统架构

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968085A (zh) * 2005-11-17 2007-05-23 北京握奇数据系统有限公司 一种实现智能卡高速安全通讯的方法
CN101076026A (zh) * 2007-06-19 2007-11-21 北京握奇数据系统有限公司 通讯协议中自适应功能的实现装置及方法
CN101488952A (zh) * 2008-12-10 2009-07-22 华中科技大学 一种移动存储装置及数据安全传输方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968085A (zh) * 2005-11-17 2007-05-23 北京握奇数据系统有限公司 一种实现智能卡高速安全通讯的方法
CN101076026A (zh) * 2007-06-19 2007-11-21 北京握奇数据系统有限公司 通讯协议中自适应功能的实现装置及方法
CN101488952A (zh) * 2008-12-10 2009-07-22 华中科技大学 一种移动存储装置及数据安全传输方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《计算机应用》 20010430 辛丽虹等 智能卡系统Java软件设计与应用 69-71 1-17 第2l卷, 第4期 2 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521626B (zh) * 2011-11-30 2014-12-24 北京握奇数据系统有限公司 一种智能卡的多应用管理方法和系统
CN102521626A (zh) * 2011-11-30 2012-06-27 北京握奇数据系统有限公司 一种智能卡的多应用管理方法和系统
CN103559073B (zh) * 2013-10-28 2016-05-25 飞天诚信科技股份有限公司 一种基于Java卡的数据管理方法
CN103559073A (zh) * 2013-10-28 2014-02-05 飞天诚信科技股份有限公司 一种基于Java卡的数据管理方法
CN104715217A (zh) * 2013-12-13 2015-06-17 中国移动通信集团公司 一种非接触参数冲突的解决方法、设备及系统
CN104715217B (zh) * 2013-12-13 2017-06-20 中国移动通信集团公司 一种非接触参数冲突的解决方法、设备及系统
CN104836639A (zh) * 2015-04-02 2015-08-12 中国科学院信息工程研究所 一种可传输多种算法参数的数据传输方法
CN104836639B (zh) * 2015-04-02 2018-04-27 中国科学院信息工程研究所 一种可传输多种算法参数的数据传输方法
CN105550604A (zh) * 2015-12-02 2016-05-04 恒宝股份有限公司 一种数据封装方法及装置
CN105550604B (zh) * 2015-12-02 2018-07-06 恒宝股份有限公司 一种数据封装方法及装置
CN106204031A (zh) * 2016-07-01 2016-12-07 中国联合网络通信集团有限公司 卡应用处理方法及装置
CN106204031B (zh) * 2016-07-01 2020-03-31 中国联合网络通信集团有限公司 卡应用处理方法及装置
CN108664327A (zh) * 2018-03-29 2018-10-16 北京中电华大电子设计有限责任公司 一种Java+Native应用的系统架构

Also Published As

Publication number Publication date
CN101794310B (zh) 2011-09-14

Similar Documents

Publication Publication Date Title
CN101794310B (zh) 一种处理智能卡数据库的方法、系统及装置
EP1145107B1 (en) Token-based linking
US7376942B2 (en) Method of managing memory for class variables
US6275830B1 (en) Compile time variable size paging of constant pools
CN105550345A (zh) 文件操作方法和装置
US20120259822A1 (en) Method for compressing identifiers
CN105094983A (zh) 计算机,控制设备和数据处理方法
CN110769015B (zh) 定点资源分配的方法
CN101840332A (zh) 一种java智能卡的数据处理方法、装置及系统
WO2023000673A1 (zh) 硬件加速器设备管理方法、装置及电子设备和存储介质
CN100378663C (zh) 将应用程序动态下载到用户识别模块的方法、系统及模块
CN105681346A (zh) 一种基于工厂类实现报文解析的方法
CN113240336A (zh) 一种基于标签的任务管理系统
US6829761B1 (en) Method and apparatus for managing shared memory in a run-time environment
CN103309621A (zh) 读取分段压缩包中数据的方法
CN102508839B (zh) 数据处理装置和方法
CN108664249B (zh) 提高string字符串存储效率的方法、装置、电子设备及计算机可读存储介质
CN102541639A (zh) 一种cpu 卡数据处理方法、系统及cpu 卡
CN104657281B (zh) 一种Java卡包数据管理方法
CN111324357A (zh) 应用程序接入风控平台的方法及相关设备
CN116032614A (zh) 容器网络微隔离方法、装置、设备和介质
JPH03209526A (ja) オブジェクト指向コンピュータシステム
CN107480210A (zh) 内存数据操作方法及装置
CN115604331A (zh) 一种数据的处理系统、方法以及装置
CN112698912A (zh) 一种Java Card虚拟机运行环境及内存管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden

Patentee after: BEIJING WATCHDATA Co.,Ltd.

Address before: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden

Patentee before: BEIJING WATCH DATA SYSTEM Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110914