一种智能卡的应用实现方法及系统
技术领域
本发明涉及智能卡技术领域,尤其涉及一种智能卡的应用实现方法及系统。
背景技术
随着智能卡技术的发展,其在各个领域的应用越来越普及。智能卡操作系统平台包括私有平台和公开技术平台如Java卡操作系统。为了使应用开发不仅仅局限于智能卡操作系统平台供应商,公开技术平台的应用更受运营商的青睐。他们希望有更多的参与者提供更多应用程序,以提高吸引客户的能力。由于应用程序的地需求有时差别很大,有时差别很小。现有技术中,只要需求发生变化,就需要投入开发工程师重新编写应用程序代码。
随着与智能卡相关的电信及其它行业增值业务的发展,智能卡操作系统开发商会遇到越来越多的STK增值应用的开发。这些应用需求都具有统一的特点,都是一个菜单应用的开发,传统的开发模式是孤立的将这类应用看作独立的小应用程序来开发,需要耗费大量的人力物力,同时也不便于改动。
发明内容
本发明实施例提供一种智能卡的应用实现方法及系统,以节省开发及人力物力成本。
一方面,本发明实施例提供了一种智能卡的应用实现方法,所述方法包括:对应用需求中的菜单数据用一种标记规则进行标注;将标注过的所述应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用;根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;利用所述字节码在智能卡上实现应用。智能卡操作系统平台可以是私有平台,也可以是公开技术平台如Java卡操作系统。所述应用可以是电信领域的应用,如用户识别模块SIM基本应用、STK(SIMTOOLKIT,SIM卡应用工具集,其中,SIM为个人身份认证模块)应用等,也可以是支付领域的应用,如网银应用,也可以是其它使用智能卡领域的应用,如一卡通、社保卡、公交卡等。还可以是以智能卡操作系统为基础的其它产品上的应用,如USB密钥卡(USBKEY)。通常,应用需求以菜单形式呈现。当然,也可能以文本描述的方式或其它方式呈现。但无论应用需求以何种方式呈现,可以将应用需求转化为菜单形式呈现。本文中的菜单形式是指具有一类似列表形式的描述方式,至少可以表示列表中两个选项之间的关系。
可选的,在本发明一实施例中,所述菜单数据可以通过Excel表或Word表格表示,所述菜单数据可以包括:菜单级别和功能。当然也可以是其它可以形成菜单形式的工具来表示,如WPS软件、PowerPoint软件、绘图工具、数据结构描述软件等。
可选的,在本发明一实施例中,所述标记语言可以是如下任意一种:可扩展标记语言XML(eXtensibleMarkupLanguage)、超文本置标语言HTML(HyperTextMarkupLanguage)、通用标记语言GML(GeneralizedMarkupLanguage)、标准通用标记语言SGML(StandardGeneralizedMarkupLanguage)、可扩展超文件标示语言XHTML(eXtensibleHyperTextMarkupLanguage)、可扩展应用标记语言XAML(ExtensibleApplicationMarkupLanguage)、无线标记语言WML(WirelessMarkupLanguage),也可以是其它可以被看作是标记语言的各种编程语言。所述字节码可以通过十六进位hex数据表示或二进位数据表示。
可选的,在本发明一实施例中,所述利用所述字节码在具有私有平台操作系统的智能卡上实现应用,如SIM基本应用、STK应用,可以包括:将所述字节码下载到所述智能卡上,然后通过所述智能卡上常驻的应用引擎解释执行以实现应用。
可选的,在本发明一实施例中,所述利用所述字节码在公开技术平台的智能卡上实现应用,如SIM基本应用、STK应用,可以包括:将所述字节码下载到所述公开技术平台的智能卡上,然后通过所述公开技术平台智能卡上常驻的应用引擎解释执行以实现应用。公开技术平台可以是JAVA平台、MultOS平台,WindowsForSmartCard平台。
这里描述的公开技术平台与开放式操作系统平台具有相同的技术概念,或其它公开技术平台的卡片操作系统平台。微软智能IC卡视窗(WindowsForSmartCard)与微软Windows操作系统相结合,将在电子商务、网络安全有广阔前景。MULTOS是一个多应用OS,它卡片有效生命周期内允许动态地装载、更新或删除卡片应用。
可选的,在本发明一实施例中,所述将所述字节码下载到所述智能卡上可以采用如下三种方式之一:应用协议数据单元APDU命令传输、小应用程序Applet数据共享接口、贴片卡或SD卡数据共享。所述智能卡可以是具有私有平台操作系统的智能卡,也可以是具有公开技术平台的卡片操作系统。
可选的,在本发明一实施例中,所述将所述字节码下载到所述智能卡上,可以包括:通过所述智能卡与卡下装置的身份互认证操作后,将所述字节码下载到所述智能卡上。所述智能卡可以是具有私有平台操作系统的智能卡,也可以是具有公开技术平台的卡片操作系统。
可选的,在本发明一实施例中,所述利用所述字节码在智能卡上实现应用,可以包括:利用应用引擎将所述字节码生成所述智能卡上的小应用程序,然后将生成的所述智能卡上的小应用程序下载到所述智能卡上解释执行以实现应用。所述智能卡可以是具有私有平台操作系统的智能卡,也可以是具有公开技术平台的卡片操作系统。小应用程序可以是JAVA卡的Applet,也可以是私有平台定义的小应用程序,也可以是其它公开平台定义的小应用程序。
可选的,在本发明一实施例中,将所述一种标记语言文件格式的API函数调用下载到所述智能卡上,由所述智能卡根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码,然后通过所述智能卡上常驻的应用引擎解释执行所述字节码以实现应用。
可选的,在本发明一实施例中,将所述一种标记语言文件格式的API函数调用下载到所述智能卡上,由所述智能卡根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码,然后利用应用引擎将所述字节码生成所述智能卡上的小应用程序,由所述智能卡上解释执行所述小应用程序以实现应用。小应用程序可以是JAVA卡的Applet,也可以是私有平台定义的小应用程序,也可以是其它公开平台定义的小应用程序。
可选的,在本发明一实施例中,将标注过的所述应用需求中的菜单数据下载到所述智能卡上,由所述智能卡将标注过的所述应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用,并根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码,然后通过所述智能卡上常驻的应用引擎解释执行所述字节码以实现应用。
可选的,在本发明一实施例中,将标注过的所述应用需求中的菜单数据下载到所述智能卡上,由所述智能卡将标注过的所述应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用,并根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码,然后利用应用引擎将所述字节码生成所述智能卡上的小应用程序,由所述智能卡上解释执行所述小应用程序以实现应用。小应用程序可以是JAVA卡的Applet,也可以是私有平台定义的小应用程序,也可以是其它公开平台定义的小应用程序。
可选的,在本发明一实施例中,所述应用引擎可以包括依次相连的如下模块:API模块、执行模块及智能卡的工具箱小应用程序框架模块;其中,所述API模块包含STKAPI模块和扩展API模块。
上述中标记规则是可以按多种方式进行定义,只要定义的规则可以标识菜单的级别与关联关系,按照所定义的标记规则可以区分每个菜单选项的级别和菜单选项之间的位置关系。比如,0级菜单或根菜单或应用入口菜单用M0表示,1级菜单的第一个选项用M1表示,1级菜单的第二个选项用M2表示,以此类推,其中1级菜单是0级菜单的下级菜单;同理,1级菜单的第一个选项的下级是第二级菜单,第二级菜单的第一个选项用M11表示,第二级菜单的的第二个选项用M12表示。以此可以对于任何复杂菜单结构的应用进行标记。这里的M0、M1、M2、M11、M12是示例性,相关领域的技术人员可以完全理解,可以采用任意一种可区分的符号进行标记。
上述中,为了能够实现将标注过的所述应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用,菜单数据中,包含每级的菜单选项,当一个菜单之下还有下级菜单时,表明点击或选中该菜单项,将显示其下级菜单项,需要调用与之相关的API函数调用,比如在STK应用中为SETUPMENUAPI函数;除了各级菜单选项外,当某个菜单项没有下级菜单项时,该菜单项是需要完成一个特定的功能,如显示字符串或者发起语音呼叫或发送短信或发出提示音等等。为了能够实现自动转换,需要对于菜单数据中的各种表示功能的字符或数据可以识别,比如,菜单选项为“DisplayText”或“显示文本”,则转换为一种标记语言文件格式的API函数调用时,转换模块需要识别菜单选项的具体文本,当识别为“DisplayText”或“显示文本”,则检索到与之对应的API函数,将与此API函数对应的参数填入后实现了将该菜单项菜单数据转换为一种标记语言文件格式的API函数调用了。在STK应用中,还包含其它功能,分别对应相应的API函数调用。例如SETUPCall函数调用对应于“建立呼叫”,SENDSMS对应于“发送短信”,PlayTone对应于“发出提示音”等等。当然其它应用需求则对应于其它API函数调用,相关领域的技术人员可以完全理解,功能与函数之间的对应关系不一定是一一对应关系,即一个功能可以需要多个API函数实现,相应地在进行转换时,当检测到该功能项时,需要用多个API函数调用来实现。如“群发短信”,需要调用多个“发送短信”对应的API函数。标记语言通常都有一个标记头和标记尾,在标记头和标记尾之间的内容是与该标记相应的实体内容,如为API函数调用内容。对应于STK应用,其功能有几十个,每个功能对应有相应的API函数定义和参数定义,如果要实现STK应用,则转换功能模块需要能够识别所有这些功能,以完成相应的API函数调用的转换。
另一方面,根据上述方法,本发明实施例提供了一种智能卡的应用实现系统,所述系统包括:卡下装置,用于对应用需求中的菜单数据用一种标记规则进行标注;将标注过的所述应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用;根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;智能卡,其中,所述智能卡包括应用引擎,所述智能卡用于将所述字节码下载到所述智能卡上,然后通过所述智能卡上常驻的所述应用引擎解释执行以实现应用。智能卡操作系统平台可以是私有平台,也可以是公开技术平台如Java卡操作系统。所述应用可以是电信领域的应用,如用户识别模块SIM基本应用、STK(SIMToolKit)应用等,也可以是支付领域的应用,如网银应用,也可以是其它使用智能卡领域的应用,如一卡通、社保卡、公交卡等。还可以是以智能卡操作系统为基础的其它产品上的应用,如USB密钥卡(USBKEY)。通常,应用需求以菜单形式呈现。当然,也可能以文本描述的方式或其它方式呈现。但无论应用需求以何种方式呈现,可以将应用需求转化为菜单形式呈现。本文中的菜单形式是指具有一类似列表形式的描述方式,至少可以表示列表中两个选项之间的关系。
可选的,在本发明一实施例中,所述卡下装置的所述菜单数据可以通过Excel表或Word表格表示,所述菜单数据可以包括:菜单级别和功能。当然也可以是其它可以形成菜单形式的工具来表示,如WPS软件、PowerPoint软件、绘图工具、数据结构描述软件等。
可选的,在本发明一实施例中,所述卡下装置的所述标记语言可以是如下任意一种:可扩展标记语言XML、超文本置标语言HTML、通用标记语言GML、标准通用标记语言SGML、可扩展超文件标示语言XHTML、可扩展应用标记语言XAML、无线标记语言WML。所述字节码可以通过十六进位hex数据表示或二进位数据表示。
可选的,在本发明一实施例中,所述利用所述字节码在具有私有平台操作系统的智能卡上实现应用,如SIM基本应用、STK应用,可以包括:将所述字节码下载到所述智能卡上,然后通过所述智能卡上常驻的应用引擎解释执行以实现应用。
可选的,在本发明一实施例中,所述利用所述字节码在公开技术平台的智能卡上实现应用,如SIM基本应用、STK应用,可以包括:将所述字节码下载到所述公开技术平台的智能卡上,然后通过所述公开技术平台智能卡上常驻的应用引擎解释执行以实现应用。公开技术平台可以是JAVA平台、MultOS平台,WindowsForSmartCard平台。
可选的,在本发明一实施例中,所述应用引擎将所述字节码下载到所述智能卡上可以采用如下三种方式之一:应用协议数据单元APDU命令传输、小应用程序数据共享接口、贴片卡或SD卡数据共享。
可选的,在本发明一实施例中,所述应用引擎,进一步可以用于通过所述智能卡与卡下装置的身份互认证操作后,将所述字节码下载到所述智能卡上。
可选的,在本发明一实施例中,所述应用引擎可以包括依次相连的如下模块:API模块、执行模块及智能卡的工具箱小应用程序框架模块;其中,所述API模块包括STKAPI模块和扩展API模块。
再一方面,本发明实施例提供了一种智能卡的应用实现系统,所述系统包括:卡下装置,用于对应用需求中的菜单数据用一标记规则进行标注;将标注过的所述应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用;根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;其中,所述卡下装置包括:应用引擎,用于将所述字节码生成智能卡上的小应用程序;智能卡,用于将生成的所述智能卡上的小应用程序下载到所述智能卡上解释执行以实现应用。
可选的,在本发明一实施例中,所述卡下装置的所述菜单数据可以通过Excel表或Word表格表示,所述菜单数据可以包括:菜单级别和功能。当然也可以是其它可以形成菜单形式的工具来表示,如WPS软件、PowerPoint软件、绘图工具、数据结构描述软件等。
可选的,在本发明一实施例中,所述卡下装置的所述标记语言可以是如下任意一种:可扩展标记语言XML、超文本置标语言HTML、通用标记语言GML、标准通用标记语言SGML、可扩展超文件标示语言XHTML、可扩展应用标记语言XAML、无线标记语言WML。所述字节码可以通过十六进位hex数据表示或二进位数据表示。
可选的,在本发明一实施例中,将生成的所述智能卡上的小应用程序下载到所述智能卡上采用如下三种方式之一:应用协议数据单元APDU命令传输、小应用程序数据共享接口、贴片卡或SD卡数据共享。
可选的,在本发明一实施例中,通过所述智能卡与卡下装置的身份互认证操作后,将生成的所述智能卡上的小应用程序下载到所述智能卡上。
可选的,在本发明一实施例中,所述应用引擎可以包括依次相连的如下模块:API模块、执行模块及智能卡的工具箱小应用程序框架模块;其中,所述API模块包括STKAPI模块和扩展API模块。
再一方面,本发明实施例提供了一种智能卡的应用实现系统,所述系统包括:
卡下装置,用于对应用需求中的菜单数据用一种标记规则进行标注;将标注过的所述应用需求中的菜单数据转换为所述一种标记语言文件格式的API函数调用;
智能卡,其中,所述智能卡包括应用引擎,所述智能卡用于将所述一种标记语言文件格式的API函数调用下载到所述智能卡上,由所述智能卡根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;然后通过所述智能卡上常驻的所述应用引擎解释执行所述字节码以实现应用,或者通过所述智能卡上常驻的所述应用引擎将所述字节码生成智能卡上的小应用程序,由所述智能卡解释执行所述小应用程序以实现应用。
可选的,在本发明一实施例中,,所述卡下装置的所述菜单数据通过Excel表或Word表格表示,所述菜单数据包括:菜单级别和功能。
可选的,在本发明一实施例中,所述卡下装置的所述标记语言是如下任意一种:可扩展标记语言XML、超文本置标语言HTML、通用标记语言GML、标准通用标记语言SGML、可扩展超文件标示语言XHTML、可扩展应用标记语言XAML、无线标记语言WML。
可选的,在本发明一实施例中,将所述一种标记语言文件格式的API函数调用下载到所述智能卡上采用如下三种方式之一:应用协议数据单元APDU命令传输、小应用程序数据共享接口、贴片卡或SD卡数据共享。
可选的,在本发明一实施例中,通过所述智能卡与卡下装置的身份互认证操作后,将所述一种标记语言文件格式的API函数调用下载到所述智能卡上。
可选的,在本发明一实施例中,所述应用引擎包括依次相连的如下模块:API模块、执行模块及智能卡的工具箱小应用程序框架模块;其中,所述API模块包括STKAPI模块和扩展API模块。
再一方面,本发明实施例提供了一种智能卡的应用实现系统,所述系统包括:
卡下装置,用于对应用需求中的菜单数据用一种标记规则进行标注;
智能卡,其中,所述智能卡包括应用引擎,所述智能卡用于将所述标注过的所述应用需求中的菜单数据下载到所述智能卡上,由所述智能卡将标注过的所述应用需求中的菜单数据转换为所述一种标记语言文件格式的API函数调用,并根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;然后通过所述智能卡上常驻的所述应用引擎解释执行所述字节码以实现应用,或者通过所述智能卡上常驻的所述应用引擎将所述字节码生成智能卡上的小应用程序,由所述智能卡解释执行所述小应用程序以实现应用。
可选的,在本发明一实施例中,所述卡下装置的所述菜单数据通过Excel表或Word表格表示,所述菜单数据包括:菜单级别和功能。
可选的,在本发明一实施例中,所述卡下装置的所述标记语言是如下任意一种:可扩展标记语言XML、超文本置标语言HTML、通用标记语言GML、标准通用标记语言SGML、可扩展超文件标示语言XHTML、可扩展应用标记语言XAML、无线标记语言WML。
可选的,在本发明一实施例中,将所述标注过的所述应用需求中的菜单数据下载到所述智能卡上采用如下三种方式之一:应用协议数据单元APDU命令传输、小应用程序数据共享接口、贴片卡或SD卡数据共享。
可选的,在本发明一实施例中,通过所述智能卡与卡下装置的身份互认证操作后,将所述标注过的所述应用需求中的菜单数据下载到所述智能卡上。
可选的,在本发明一实施例中,所述应用引擎包括依次相连的如下模块:API模块、执行模块及智能卡的工具箱小应用程序框架模块;其中,所述API模块包括STKAPI模块和扩展API模块。
上述技术方案具有如下有益效果:因为采用对应用需求中的菜单数据用一标记规则进行标注;将标注过的所述应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用;根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;利用所述字节码在智能卡上实现应用的技术手段,所以节省了开发及人力物力成本;其实现简单化,开发者不需要熟悉智能卡规范;其具有便宜性,可以随时随地响应客户的需求变化;且其具有通用性,支持基于短信、语音、支付等的多种业务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。下面所举的应用实例是以在JAVA智能卡上的STK应用为例,对于本领域的技术人员可以完全理解,非STK应用是十分类似的。其实现的原理是相同的。
另外,本发明中包含卡下装置和智能卡,而实现本发明包含多个步骤或多个功能模块,除了“对应用需求中的菜单数据用一标记规则进行标注”无法在智能卡上实现,其它每个步骤或每个功能模块既可以在卡下装置实现,也可以在智能卡上实现,这在发明内容中给出了多种实现方式。作为优选的实现方式,下面只给出了其中优选的具体实现方式。显然,本领域的技术人员根据发明内容可以完全实现其它具体实现方式。
图1为本发明实施例一种基于Java智能卡的STK应用实现方法流程图;
图2为本发明实施例应用引擎(APPENGINE)的结构示意图;
图3为本发明实施例一种基于Java智能卡的STK应用实现系统结构示意图;
图4为本发明实施例另一种基于Java智能卡的STK应用实现系统结构示意图;
图5为本发明实施例菜单需求示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实际上可以将STK应用看作一类整体,以实现自动生成STK应用,如图1所示,为本发明实施例一种基于Java智能卡的STK应用实现方法流程图,所述方法包括:
101、对STK应用需求中的菜单数据用一标记规则进行标注;
102、将标注过的所述STK应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用;
103、根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;
104、利用所述字节码在Java智能卡上实现STK应用。
可选的,所述菜单数据可以通过Excel表或Word表格表示,所述菜单数据可以包括:菜单级别和功能。
可选的,所述标记语言可以是如下任意一种:可扩展标记语言XML、超文本置标语言HTML、通用标记语言GML、标准通用标记语言SGML、可扩展超文件标示语言XHTML、可扩展应用标记语言XAML、无线标记语言WML。所述字节码可以通过十六进位hex数据表示或二进位数据表示。
可选的,所述利用所述字节码在Java智能卡上实现STK应用,可以包括:将所述字节码下载到所述Java智能卡上,然后通过所述Java智能卡上常驻的应用引擎解释执行以实现STK应用。
可选的,所述将所述字节码下载到所述Java智能卡上可以采用如下三种方式之一:应用协议数据单元APDU命令传输、小应用程序Applet数据共享接口、贴片卡或SD卡数据共享。
可选的,所述将所述字节码下载到所述Java智能卡上,可以包括:通过所述Java智能卡与卡下装置的身份互认证操作后,将所述字节码下载到所述Java智能卡上。
可选的,所述利用所述字节码在Java智能卡上实现STK应用,可以包括:利用应用引擎将所述字节码生成所述Java智能卡上的小应用程序Applet,然后将生成的所述Java智能卡上的小应用程序Applet下载到所述Java智能卡上解释执行以实现STK应用。
可选的,所述应用引擎可以包括依次相连的如下模块:API模块、执行模块及Java智能卡的工具箱小应用程序框架模块;其中,所述API模块包括STKAPI模块和扩展API模块。
如图2所示,为本发明实施例应用引擎(APPENGINE)的结构示意图,包含以下几个部分:
a)API模块:为XML表示的API函数提供调用的程序实体,包括STKAPI模块21和EXTENDAPI(扩展API)模块22两部分。STKAPI模块21提供GSM11.14等标准规范接口,EXTENDAPI模块22提供私有的扩展API,诸如文件操作,应用的逻辑跳转及其它特殊API。
b)执行模块(EXECUTEDMODULE)23,其为:执行模块,是在STKAPPENGINE里执行API的模块。
c)Java智能卡的工具箱小应用程序框架模块(JAVATOOLKITAPPLETSTRUCT)24:java卡toolkitapplet框架模块,该模块负责和javacardOS的交互,展现Applet对外的接口,同时调用执行模块23执行菜单。
本发明实施例上述方法技术方案具有如下有益效果:因为采用对STK应用需求中的菜单数据用一标记规则进行标注;将标注过的所述STK应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用;根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;利用所述字节码在Java智能卡上实现STK应用的技术手段,所以节省了开发及人力物力成本;其实现简单化,开发者不需要熟悉Java智能卡规范;其具有便宜性,可以随时随地响应客户的需求变化;且其具有通用性,支持基于短信、语音的STK业务。另外为确保数据安全,可以加入身份认证操作,在传输数据前,可以再增加几条APDU来做身份认证,如通过方可传输数据。
对应于上述方法实施例,如图3所示,为本发明实施例一种基于Java智能卡的STK应用实现系统结构示意图,所述系统包括:卡下装置31,用于对STK应用需求中的菜单数据用一标记规则进行标注;将标注过的所述STK应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用;根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;Java智能卡32,其中,所述Java智能卡包括应用引擎321,所述Java智能卡32用于将所述字节码下载到所述Java智能卡32上,然后通过所述Java智能卡32上常驻的所述应用引擎321解释执行以实现STK应用。
可选的,所述卡下装置31的所述菜单数据可以通过Excel表或Word表格表示,所述菜单数据可以包括:菜单级别和功能。
可选的,所述卡下装置31的所述标记语言可以是如下任意一种:可扩展标记语言XML、超文本置标语言HTML、通用标记语言GML、标准通用标记语言SGML、可扩展超文件标示语言XHTML、可扩展应用标记语言XAML、无线标记语言WML。所述字节码可以通过十六进位hex数据表示或二进位数据表示。
可选的,所述应用引擎321将所述字节码下载到所述Java智能卡上可以采用如下三种方式之一:应用协议数据单元APDU命令传输、小应用程序Applet数据共享接口、贴片卡或SD卡数据共享。
可选的,所述应用引擎321,进一步可以用于通过所述Java智能卡与卡下装置的身份互认证操作后,将所述字节码下载到所述Java智能卡上。
可选的,所述应用引擎321可以包括依次相连的如下模块:API模块、执行模块及Java智能卡的工具箱小应用程序框架模块;其中,所述API模块包括STKAPI模块和扩展API模块。
本发明实施例上述装置技术方案具有如下有益效果:节省了开发及人力物力成本;其实现简单化,开发者不需要熟悉Java智能卡规范;其具有便宜性,可以随时随地响应客户的需求变化;且其具有通用性,支持基于短信、语音的STK业务。另外为确保数据安全,可以加入身份认证操作,在传输数据前,可以再增加几条APDU来做身份认证,如通过方可传输数据。
如图4所示,为本发明实施例另一种基于Java智能卡的STK应用实现系统结构示意图,所述系统包括:卡下装置41,用于对STK应用需求中的菜单数据用一标记规则进行标注;将标注过的所述STK应用需求中的菜单数据转换为一种标记语言文件格式的API函数调用;根据所述标记语言的标识符将所述标记语言文件格式的API函数调用转换为字节码;其中,所述卡下装置41包括:应用引擎411,用于将所述字节码生成Java智能卡上的小应用程序Applet;Java智能卡42,用于将生成的所述Java智能卡上的小应用程序Applet下载到所述Java智能卡42上解释执行以实现STK应用。
可选的,所述卡下装置41的所述菜单数据可以通过Excel表或Word表格表示,所述菜单数据可以包括:菜单级别和功能。
可选的,所述卡下装置41的所述标记语言可以是如下任意一种:可扩展标记语言XML、超文本置标语言HTML、通用标记语言GML、标准通用标记语言SGML、可扩展超文件标示语言XHTML、可扩展应用标记语言XAML、无线标记语言WML。所述字节码可以通过十六进位hex数据表示或二进位数据表示。
可选的,所述应用引擎411可以包括依次相连的如下模块:API模块、执行模块及Java智能卡的工具箱小应用程序框架模块;其中,所述API模块包括STKAPI模块和扩展API模块。
本发明实施例上述装置技术方案具有如下有益效果:节省了开发及人力物力成本;其实现简单化,开发者不需要熟悉Java智能卡规范;其具有便宜性,可以随时随地响应客户的需求变化;且其具有通用性,支持基于短信、语音的STK业务。另外为确保数据安全,可以加入身份认证操作,在传输数据前,可以再增加几条APDU来做身份认证,如通过方可传输数据。
以下举实例进行说明:如图5所示,为本发明实施例菜单需求示意图。
第一步,进行菜单标注:
第二步,XML文件API函数标注:
第三步,Bytecode转换:
说明:以上加粗字体为说明文字。
第四步,Bytecode执行:
如上述例子中,应用引擎(APPENGINE)首先找到菜单名:094D61696E204D656E75//STK菜单入口名(LV),通过调用javacardAPIinitmenuEntry()将菜单入口加入。
当用户点击菜单入口名mainmenu时,javacardtoolkitapplet引擎开始执行该应用的bytecode,从变量定义处开始执行,上例中有三个应用变量,S1长度4,内容为ascii编码66000040,S2长度为2,内容为ascii编码4651,S3长度为9,内容为ucs2编码0883DC53554F8B5B50,分别调用扩展API函数setVar()完成。
接着顺序执行子菜单,从子过程索引号000000处开始执行,第一条指令是selectItem,则调用APIselectItem()完成,按用户操作顺序完成其它子过程。
当用户操作到最后一级时,引擎默认执行回到上级菜单操作。
本发明实施例上述应用实施例节省了开发及人力物力成本;其实现简单化,开发者不需要熟悉智能卡规范;其具有便宜性,可以随时随地响应客户的需求变化;且其具有通用性,支持基于短信、语音、支付等的业务。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电脑、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。