一种针对电信智能卡实现任意目录应用管理的方法
技术领域
本发明涉及一种针对电信智能卡实现在任意目录下应用管理的方法,属于电信智能卡技术领域。
背景技术
电信智能卡是在电信领域使用的各类智能卡(Smart Card)的统称,包括GSM蜂窝移动通信系统所使用的SIM卡,CDMA通信系统所使用的UIM卡,PHS通信系统使用的PIM卡等。这些卡都具有与之相对应的智能卡应用开发工具,例如SIM卡为STK(SIM TOOL KIT),UIM卡为UTK应用开发包,PIM卡为PTK应用开发包。
以目前使用最为广泛的SIM卡为例,参见图1所示,一个典型的SIM卡包括位于底层的卡片操作系统(Card OS),与卡片操作系统直接对接的STK(SIM TOOL KIT,“用户识别应用发展工具”的简称)和文件管理(file management)模块,由STK负责管理的多项应用业务。
随着移动通信技术的广泛应用,人们已经不再满足于手机的简单通话功能。移动娱乐、移动理财、移动上网等数据类需求已成为移动运营商们拓展市场、提高移动通信附加值、增强用户忠诚度的重要手段。但是,现有的移动数据业务往往需要用户更换电信智能卡才能使用,这种限制大大延缓了各种增值服务推出的速度和增值服务推广的效果。基于短消息系统(SMS)的空中下载技术(Over the Air,简写为OTA)可以很好地解决这个问题。
OTA技术是通过移动通信(GSM或CDMA)的空中接口对SIM卡数据及应用进行远程管理的技术。它的实现基础是SIM卡的STK功能和短消息通道。支持空中下载的OTA卡提供方便的人机接口界面,供用户发起下载申请等菜单管理命令,OTA服务器则根据用户请求,以数据短消息(SIMDATA DOWNLOAD模式)的形式将相应的菜单管理数据给SIM卡处理。对于支持OTA功能的SIM卡,可以处理接收到的菜单管理数据短信,并分别进行菜单生成、删除和菜单列表更新等菜单管理操作。
参见图2所示的OTA应用下载系统,利用OTA技术,移动通信服务商不但可以提供移动语音和数据服务,而且还可以提供更多的移动新业务下载。应用及内容服务商可以不受平台的局限,不断开发出更具个性化的、贴近用户需求的服务。如信息点播、互动娱乐、位置服务以及银行交易等。另外,通过菜单定制,空中下载技术可以让用户根据自己的需要选取感兴趣的业务,删除不需要的业务,随时下载、更新,以实现个性化的SIM卡配置。
根据目前在中国市场应用的中国移动OTA2规范,一个典型的OTA菜单结构如如图3所示。按照规范要求,OTA的应用信息在SIM卡的二级菜单中显示,每个菜单存放一个OTA应用。OTA应用的数据顺次保存在SIM卡2700/6F03文件中,每个OTA应用数据由服务索引AID+应用所需空间+应用菜单名称+应用变量定义+OTA空间分配变量定义+业务数据组成,其中:
1)服务索引AID为固定3字节,用于标识不同的应用。
2)应用菜单名称组成为LV格式,即:后续长度+服务名称,服务名称编码格式与ADN编码格式相符。
3)应用所需空间为2个字节,从AID开始计算到业务数据结束。
4)业务数据:业务数据由过程组成,而过程由CMD组成。
SP提供的服务由OTA卡里的STK应用层进行解释并完成相应的功能。一个业务称为应用(APPLICATION),一个应用由多个过程(PROCESS)组成,应用的执行过程就是某些过程的连接执行。
一个OTA应用数据实例如下所示:
天气预报
010002 ;AID目录索引为1,业务编号为2)
0041 ;业务大小,从AID开始到业务数据结束
09 80 59296C14988462A5 ;天气预报(菜单名称)
FD ;应用变量定义
000A ;应用变量长度
02 ;变量个数
03 ;变量长度
81 51 8f ;变量数据(158)
04 ;变量长度
2B 54 51 20 ;变量数据(+TQ)
FA ;OTA空间分配变量定义
0000
00 00 00 ;PID PROCESS 000000
1E 23 11 00 8D 0B 08 95 7F 90 14 53 3A 53 F7 FF 1A 03 04 13 09 01 00
04 06 10 0D 02 11 00
在现有的OTA体系下,每个应用完成一个独立的功能,应用和应用间没有联系。这种设计使得SIM卡上的应用功能受到限制。执行复杂应用程序代码量大,下载和更新应用程序需要大量短信且操作方式呆板,缺乏灵活性,同时也使用户增加了不必要的开销。
其他的电信智能卡如UIM卡、PIM卡等也与之情况类似,在此不一一赘述。
发明内容
本发明的目的在于提供一种能够在电信智能卡任意一级目录(即菜单)下实现应用下载的方法。该方法能够实现对于智能卡内目录的灵活下载、更新操作。
为实现上述的发明目的,本发明采用下述的技术方案:
一种针对电信智能卡实现任意目录应用管理的方法,其特征在于:
在电信智能卡中建立栏目和应用两种存储结构,所述栏目进行分级管理,在栏目下管理应用;
建立栏目注册表文件,以树形循环链表的数据结构把栏目信息保存在栏目注册表中。
其中,所述树形循环链表中的每一个节点都包含两个指针:子栏目指针和兄弟/父栏目指针;
所述子栏目指针指向其下一级的第一个栏目,兄弟/父栏目指针指向其下一个兄弟栏目。
如果当前栏目为同级栏目中的最后一个,则所述指针指向其同级栏目共有的父栏目。
每个栏目中还具有两个指针:应用头指针和应用尾指针,分别指向该栏目下的第一个应用和最后一个应用。
每个应用有两个指针:上一应用指针和下一应用指针,其中上一应用指针指向当前应用的前一个应用,下一应用指针指向当前应用的后一个应用。
所述上一应用指针中,如果当前应用是第一个应用,则该指针指向其父栏目。
所述下一应用指针中,如果当前应用是最后一个应用,则该指针指向其父栏目。
添加应用到指定栏目的处理流程为:
(1)根据栏目指针在栏目下查找是否已存在要添加的应用,如果已存在则删除原有应用,否则转到(2);
(2)查询是否有足够的空间,是则保存新应用,否则提示剩余空间不足,退出;
(3)修改栏目下的应用指针,把原来的最后一个应用的下一应用指针指向新加入的应用,同时把新加入应用的上一应用指针指向原有的最后一个应用,下一应用指针指向其父栏目。
从指定栏目下的应用链中删除应用的操作流程为:
(1)读取要删除应用上一应用指针保存为A,下一应用指针保存为B;
(2)读取指针A指向的应用,修改其下一应用指针为B;
(3)读取下一应用,设置其上一应用指针为A。
所述电信智能卡包括但不限于SIM卡、UIM卡和PIM卡中的任意一种。
本发明提供了一种适合电信智能卡内应用下载、更新的新方法。该方法通过各种应用之间的关联和调用机制,使得复杂的应用程序可以灵活下载,并且可以在任意应用下下载不同的信息。程序更新工作中,可以只更新修改的部分,从而减少短信数量,降低系统负担和用户的手机通讯费。
附图说明
下面结合附图和具体实施方式对本发明作进一步的说明。
图1是一个典型的电信智能卡的内部结构示意图。
图2是OTA应用下载系统的示意图。
图3显示了一个典型的OTA菜单(目录)的基本结构。
图4为本发明中建立的栏目和应用两种存储基本结构的逻辑关系示意图。
图5为图4所示的栏目和应用存储的树形循环链表数据结构示意图。
图6为应用本发明之后,一个典型的OTA目录的结构示意图。
图7为图6所示的OTA目录结构的数据结构示意图。
图8为图6所示的OTA目录结构中,实施应用更新操作后的数据结构示意图。
图9为图6所示的OTA目录结构中,实施应用删除操作后的数据结构示意图。
具体实施方式
参见图4所示,本发明的技术思路在于首先在电信智能卡中建立两种存储基本结构:栏目和应用。使用栏目作为构建目录的基本结构。设立一个根栏目对所有的二级栏目进行管理,二级栏目下还可以设立三级栏目,依此类推。在各级栏目下可以设置相应的应用,由各级栏目分别加以管理。同时,在电信智能卡中建立栏目注册表文件,以多叉树形循环链表的数据结构把栏目信息保存在栏目注册表中。
上述栏目和应用存储的多叉树形循环链表数据结构如图5所示。对于此树形结构的每一个节点,都包含两个指针:子栏目指针和兄弟/父栏目指针。子栏目指针指向其下一级的第一个栏目,兄弟/父栏目指针指向其下一个兄弟栏目,如果当前栏目为同级栏目中的最后一个,则该指针指向其同级栏目共有的父栏目。在每个栏目数据中,还存在有两个指针:应用头指针和应用尾指针,分别指向该栏目下的第一个应用和最后一个应用;每个应用有两个指针:上一应用指针和下一应用指针,上一应用指针指向当前应用的前一个应用,如果当前应用是本栏目中的第一个应用,该指针指向其父栏目;下一应用指针指向当前应用的后一个应用,如果当前应用是本栏目中的最后一个应用则指向其父栏目。因此栏目和应用构成多叉树形循环链表结构,通过这样的设计可以实现应用数据和目录在任意目录下的灵活下载和更新操作。
在上述的多叉树形循环链表数据结构下,添加应用到指定栏目的处理流程为:
1)根据栏目指针在栏目下查找是否已存在要添加的应用,如果已存在则删除原有应用,否则转到步骤2;
2)查询本栏目下是否有足够的空间,是则保存新应用,否则提示剩余空间不足,退出;
3)修改栏目下的应用指针,把原来的最后一个应用的下一应用指针指向新加入的应用,同时把新加入应用的上一应用指针指向原有的最后一个应用,下一应用指针指向其父栏目。
在上述的多叉树形循环链表数据结构下,从指定栏目下的应用链中删除应用的操作流程为:
(1)读取要删除应用上一应用指针保存为A,下一应用指针保存为B;
(2)读取指针A指向的应用,修改其下一应用指针为B;
(3)读取下一应用,设置其上一应用指针为A
对于典型的OTA目录,应用本发明后可以建立如图6所示的目录结构。其中,动感地带为0级目录即根栏目,其指针为0001,其子栏目指针指向0002即我的精品推荐,而我的精品推荐的兄弟栏目指针指向0003,即我的聊天交友,我的聊天交友的兄弟栏目指针指向0004:我的新闻资讯;由于我的新闻资讯没有兄弟栏目,其父栏目指针指向0001:动感地带,依次类推。上述应用的数据结构示意图如图7所示。
利用本发明,可以实现电信智能卡中任意目录下的应用和目录的动态管理。如果要在任意目录下的任意应用位置插入新的应用,只需要修改应用链表中的对应插入位置的前后应用和插入新应用的的应用指针,使得插入应用后的应用链表保持链通。例如对于图7所示的数据结构,如需要在0009与000A应用之间加入我的动感助手(000C)应用,只需在应用下载完成后修改0009的下一应用指针,令其指向000C,再把000C的下一应用指针指向000A,上一应用指针指向0009,再把000A的上一应用指针指向000C即完成了应用更新操作。修改后的数据结构示意图如图8所示。另外,为了便于时间索引和管理,较优的方案是直接在该应用链表尾部直接添加新的应用,此时把原来的最后一个应用的下一应用指针指向新加入的应用,同时把新加入应用的上一应用指针指向原有的最后一个应用,下一应用指针指向其父栏目即可。
同样地,如果需要执行应用删除操作,可以通过修改链表中上一应用以及下一应用的指针方便地实现。例如,要删除车展快报(0009)应用,只要把体育快报(000D)的下一应用指针指向我的动感助手(000C),我的动感助手(000C)的上一应用指针指向体育快报(000D),就可以删除车展快报应用。修改后的数据结构示意图如图9所示。
上面对本发明所述的针对电信智能卡实现任意目录应用管理的方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。