程式呼叫方法及行动装置转让专利

申请号 : CN201210203137.8

文献号 : CN103514050B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蔡毓芬周一芬

申请人 : 蔡毓芬周一芬

摘要 :

一种程式呼叫方法,于一控制模块执行,该控制模块储存数个Java程式,本呼叫方法是首先接收由一输入模块所传送的信号,并根据接收到的信号,确认对应各个Java程式对应的通道状态,系统若所接收到的信号包含一多通道管理指令,则根据该多通道管理指令进行通道设定,并判断该被开启的虚拟通道是否仍为开启,若是,则接收设定开启的虚拟通道所对应的Java程式所输出的信号并重复执行上述动作;若所接收到的信号未包含该多通道管理指令,则根据该输入模块所传送信号的类型,执行对应的处理程序。

权利要求 :

1.一种程式呼叫方法,于一控制模块中执行,该控制模块储存有数个Java程式,且该控制模块是建构于Java卡的虚拟机架构上;其特征在于:该Java程式呼叫方法包含以下步骤:

(A)接收由一输入模块所传送的信号;

(B)根据接收到的信号,确认对应各该Java程式的一虚拟通道的状态;

(C)判断接收到的信号是否包含一多通道管理指令,若是,则根据该多通道管理指令进行通道设定,并执行步骤(D);若否,则执行步骤(F);

(D)判断被设定开启的虚拟通道是否仍为开启,若是,则执行步骤(E);若否,则执行步骤(A);

(E)接收该设定开启的虚拟通道所对应的Java程式所输出的信号,并返回执行步骤(B);及(F)根据该输入模块所传送信号的类型,执行对应的处理程序。

2.根据权利要求1所述的程式呼叫方法,其特征在于:该步骤(D)是根据该被设定开启的虚拟通道所对应的Java程式是否被其他Java程式呼叫而判断该被设定开启的虚拟通道是否仍为开启。

3.根据权利要求2所述的程式呼叫方法,其特征在于:该步骤(D)根据该被开启的虚拟通道所对应的Java程式输出的信号所包含的一旗标是否被标注使用中而判断是否被其他Java程式呼叫。

4.根据权利要求1所述的程式呼叫方法,其特征在于:该步骤(D)是根据该被设定开启的虚拟通道所对应的Java程式输出的指令是否属于虚拟通道与其Java程式相关返回指令而判断该被设定开启的虚拟通道是否仍为开启。

5.根据权利要求1所述的程式呼叫方法,其特征在于:该程式呼叫方法还包含一位于该步骤(A)之前的步骤(G),该输入模块传送一重置指令至该控制模块。

6.根据权利要求3或4所述的程式呼叫方法,其特征在于:该步骤(F)包括以下子步骤:(F-1)判断该输入模块所传送信号是否为一认证鉴权指令,若是,则控制该Java程式与对应该认证鉴权指令的Java程式相互沟通以传输资讯;若否,则执行步骤(F-2);

(F-2)判断该输入模块所传送信号是否为一标准Java Applet指令,若是,则根据该标准Java Applet指令执行,呼叫其他对应的Java程式;若否,则执行步骤(F-3);及(F-3)回传该信号至该输入模块。

7.根据权利要求6所述的程式呼叫方法,其特征在于:该步骤(F-2)根据该标准Java Applet指令执行,并通过一特殊虚拟通道命令格式去呼叫其他对应的Java程式。

8.根据权利要求1所述的程式呼叫方法,其特征在于:该步骤(B)系根据对应各该虚拟通道的一旗标是否被注册而确认各该虚拟通道的使用状态。

9.根据权利要求1所述的程式呼叫方法,其特征在于:该步骤(C)中若接收到的信号包含该多通道管理指令,则根据该多通道管理指令进行通道设定,将执行其关联通道设定为开启,且将该通道开启期间设定此虚拟通道对应的一旗标标注为占用。

10.一种行动装置;其特征在于包含:

一输入模块;及

一控制模块,建构于Java卡的虚拟机架构并包括一电连接于该输入模块的输入输出埠、一储存有数个Java程式的程式储存区,及一电连接于该输入输出埠及该程式储存区的控制单元,该控制单元于Java卡状态接收由该输入模块所传送的信号,并根据接收到的信号,确认对应各该Java程式的一虚拟通道的状态,并判断若所接收到的信号包含一多通道管理指令,则根据该多通道管理指令进行通道设定,并判断被设定开启的虚拟通道是否仍为开启,若是,则接收该设定开启的虚拟通道所对应的Java程式所输出的信号并重复执行通道设定不返回该输入模块;若所接收到的信号未包含该等虚拟通道调用Java程式的流程与此虚拟通道关联多通道管理指令,则根据该输入模块所传送信号的类型,执行对应的处理程序。

11.根据权利要求10所述的行动装置,其特征在于:该控制单元是根据该被设定开启的虚拟通道所对应的Java程式是否被其他Java程式呼叫而判断该被设定开启的虚拟通道是否仍为开启。

12.根据权利要求11所述的行动装置,其特征在于:该控制单元根据该被设定开启的虚拟通道所对应的Java程式输出的信号所包含的一旗标是否被标注使用中而判断是否被其他Java程式呼叫。

13.根据权利要求10所述的行动装置,其特征在于:该控制单元是根据该被设定开启的虚拟通道所对应的Java程式输出的指令是否属于虚拟通道与其Java程式相关返回指令而判断该被设定开启的虚拟通道是否仍为开启。

14.根据权利要求12或13所述的行动装置,其特征在于:若该输入模块所传送信号未包含该多通道管理指令,则该控制单元判断该输入模块所传送信号是否为一认证鉴权指令,若是,则控制该Java程式与对应该认证鉴权指令的Java程式相互沟通以传输资讯,若否,则该控制单元判断该输入模块所传送信号是否为一标准Java Applet指令,若是,则根据该标准Java Applet指令,呼叫其他对应的Java程式,否则回传该信号至该输入模块。

15.根据权利要求10所述的行动装置,其特征在于:该输入模块为一基频模块。

16.根据权利要求10所述的行动装置,其特征在于:该控制单元根据对应各该虚拟通道的一旗标是否被注册而确认各该虚拟通道的状态。

17.根据权利要求10所述的行动装置,其特征在于:该控制单元若判断所接收到的信号包含该多通道管理指令,则根据该多通道管理指令进行通道设定,将执行其关联通道设定为开启,且将该通道开启期间设定此虚拟通道对应的一旗标标注为占用。

说明书 :

程式呼叫方法及行动装置

技术领域

[0001] 本发明涉及一种程式呼叫方法,特别是涉及一种应用于Java卡虚拟机架构的Java程式(Applet)呼叫方法。

背景技术

[0002] 随着行动终端设备上的应用越趋于多样性,以及商务环节的复杂性增加,行动终端的服务也越来越多元。
[0003] 以往的个人服务认证识别终端,例如用户识别模块(Subscriber Identity Module,SIM)卡、身分识别(ID)卡、银行卡等,皆是一种符合Java卡与Java SIM架构且为单一输入输出埠(I/O)界面的Java COS智能卡,而该些智能卡属于被动的元件,其是借由行动终端通过协议而呼叫,因此,该些卡片的应用Java程式若要操作于同一张卡片内Java卡虚拟机上的Java程式(Applet),就必须在Java Applet中实践SIO(Shareable Interface Object),也就是说,目前Java Applet的呼叫皆是行动终端或外部读卡设备通过指令调用而执行,若要执行JavaApplet与Java Applet之间的呼叫,则必须更改现今Java Applet的相关规范。但现今Java卡与Java SIM架构已经运行多年,发出去市面的相关智能卡已超过上亿张,并不可能更改规范,且SIO介面的实践也会有安全性的顾虑。此外,现今有很多国际组织公布的银行卡等安全性应用程式规范,并不包含此等SIO设计调用规范,更别遑论Java Applet之间的呼叫。
[0004] 因此,如何在不更改现今Java Applet规范的前提下,执行Java Applet与Java Applet之间的呼叫遂为本案的发明重点。

发明内容

[0005] 本发明的目的在于提供一种可以执行Java Applet之间沟通呼叫的程式呼叫方法。
[0006] 本发明程式呼叫方法,于一控制模块中执行,该控制模块储存有数个Java程式(Applet),程式呼叫方法包含以下步骤:
[0007] (A)接收由一输入模块所传送的信号;
[0008] (B)根据接收到的信号,确认对应各个Java程式的实际通道与虚拟通道的状态,并进行虚拟通道的旗标设定;
[0009] (C)判断接收到的信号是否包含一多通道管理指令,若是,则根据该多通道管理指令进行通道设定,并执行步骤(D);若否,则执行步骤(F);
[0010] (D)判断该被设定开启的虚拟通道是否仍为开启,若是,则执行步骤(E);若否,则执行步骤(A);
[0011] (E)接收设定开启的虚拟通道所对应的Java程式所输出的信号,并返回执行步骤(B);及
[0012] (F)根据该输入模块所传送信号的类型,执行对应的处理程序。如此,借由将Java程式之间的沟通信号回传给呼叫的Java程式,使得该Java程式可取代输入模块而传送相关资讯至被呼叫的Java程式,进而达成各个Java Applet之间相互沟通的功效。
[0013] 较佳地说,上述步骤(D)是根据被设定开启的虚拟通道所对应的Java程式是否被其他Java程式呼叫,或是该被设定开启的虚拟通道所对应的Java程式输出的指令是否属于虚拟通道与其Java程式相关返回指令而判断该被设定开启的虚拟通道是否仍为开启。当然,呼叫开启虚拟通道的Java程式再次呼叫通道指令将虚拟通道关闭也可关闭虚拟通道。
[0014] 详细来说,步骤(D)是根据被开启的虚拟通道所对应的Java程式输出的信号所包含的旗标(Flag)是否被标注使用中而判断是否被其他Java程式呼叫。
[0015] 此外,步骤(F)包括以下子步骤:
[0016] (F-1)判断输入模块所传送信号是否为一认证鉴全指令,若是,则控制Java程式与对应该认证鉴全指令的Java程式相互沟通以传输资讯;若否,则执行步骤(F-2);
[0017] (F-2)判断输入模块所传送信号是否为一标准Java Applet指令,若是,则根据标准Java Applet指令执行,若需要呼叫其他Java程式可以通过特殊虚拟通道命令格式去呼叫其他对应的Java程式;若否,则执行步骤(F-3);及
[0018] (F-3)回传信号至输入模块。
[0019] 再者,本程式呼叫方法还包含一位于步骤(A)之前的步骤(G),输入模块传送一重置指令至控制模块,以在每次系统重设定或开机等操作前先将控制模块重置。
[0020] 步骤(B)是根据对应各该虚拟通道的一旗标是否被注册而确认各该虚拟通道的使用状态。
[0021] 在步骤(C)中,若接收到的信号包含多通道管理指令,则根据多通道管理指令进行通道设定,将执行其关联通道设定为开启,且将通道开启期间设定此虚拟通道对应的一旗标标注为占用。
[0022] 另外,本发明的另一目的,即在提供一种可以执行上述程式呼叫方法的行动装置。
[0023] 本发明行动装置包含一输入模块及一控制模块。其中,控制模块包括一电连接于输入模块的输入输出埠、一储存有数个Java程式的程式储存区,及一电连接于输入输出埠及程式储存区的控制单元。
[0024] 控制单元接收由输入模块所传送的信号,并根据接收到的信号,确认对应各个Java程式的一虚拟通道的状态,Java程式可自行呼叫一没占用的通道并定义成一虚拟通道的状态并在本虚拟通道调用卡内其他Java程式,系统若所接收到的信号包含一多通道管理指令,则根据该多通道管理指令进行通道设定,并判断该被开启的虚拟通道是否仍为开启,若是,则接收该设定开启的虚拟通道所对应的Java程式所输出的信号并重复执行系统程式不返回输入模块;若所接收到的信号未包含该等虚拟通道调用Java程式的流程与此虚拟通道关联多通道管理指令,则根据该输入模块所传送信号的类型,执行对应的处理程序。如此同样能达到各个Java Applet之间相互沟通的功效。
[0025] 较佳地,输入模块为一基频模块。
[0026] 较佳地说,控制单元是根据被设定开启的虚拟通道所对应的Java程式是否被其他Java程式呼叫,或是该被设定开启的虚拟通道所对应的Java程式输出的指令是否属于虚拟通道与其Java程式相关返回指令而判断该被设定开启的虚拟通道是否仍为开启。当然,呼叫开启虚拟通道的Java程式再次呼叫通道指令将虚拟通道关闭也可关闭虚拟通道。
[0027] 详细地说,控制单元是根据被开启的虚拟通道所对应的Java程式输出的信号所包含的旗标是否被标注使用中而判断是否呼叫其他Java程式。
[0028] 此外,控制单元判断该被设定开启的虚拟通道所对应的Java程式是否被其他Java程式呼叫或是该被设定开启的虚拟通道所对应的Java程式输出的指令是否属于虚拟通道与其Java程式相关返回指令,若是,则接收Java程式所输出的信号并进行虚拟通道的旗标设定。
[0029] 此外,若输入模块所传送信号未包含多通道管理指令,则控制单元判断输入模块所传送信号是否为一认证鉴全指令,若是,则控制Java程式与对应该认证鉴全指令的Java程式相互沟通以传输资讯,若否,则控制单元判断输入模块所传送信号是否为一标准Java Applet指令,若是,则根据该标准Java Applet指令执行,若需要呼叫其他Java Applet程式可以通过特殊虚拟通道命令格式去呼叫其他对应的Java程式,否则回传信号至输入模块。
[0030] 控制单元若判断所接收到的信号包含多通道管理指令,则根据该多通道管理指令进行通道设定,将执行其关联通道设定为开启,且将该通道开启期间设定此虚拟通道对应的一旗标(Flag)标注为占用。
[0031] 此外,控制单元是根据对应各该虚拟通道的一旗标是否被注册而确认各该虚拟通道的状态。
[0032] 本发明的有益效果在于:通过本程式呼叫方法可以在不更改现今Java Applet的规范下,执行Java Applet之间的相互沟通。

附图说明

[0033] 图1是说明本发明行动装置的电路方块示意图;
[0034] 图2是说明本行动装置在出厂前所执行的初始化设定流程;
[0035] 图3是说明本实施例的控制模块运作时所执行的细部流程。

具体实施方式

[0036] 下面结合附图及实施例对本发明进行详细说明。
[0037] 参阅图1,为本发明行动装置100的较佳实施例,本行动装置100可为移动电话或个人数字助理(Personal Digital Assistant,PDA)等需要通过用户识别模块(Subscriber Identity Module,SIM)与移动网络通讯的装置。
[0038] 在本实施例中,行动装置100包含一输入模块10及一控制模块20。
[0039] 输入模块10为一基频模块(base band),或是包括各种与ISO7816/UART相关的输入装置,不以本实施例为限。
[0040] 控制模块20是基于Java卡设计的集成电路应用晶片(Chip),且包括一电连接于输入模块10的输入输出埠(I/O port)21、一程式储存区22及一电连接于输入输出埠21及程式储存区22的控制单元23。输入输出埠21是以ISO-7816协定与输入模块10通讯,以相互传输资讯;程式储存区22提供数个Java程式(Java Applet)存放,该些Java Applet可由使用者根据需求而对应从空中(Over The Air,OTA)下载取得,其可为用户识别应用开发工具(SIM Application Toolkit,STK)程式或银行Java Applet等;控制单元23用以根据输入模块10所传送的信号的内容,控制将输入输出埠21与程式储存区22电连接而供输入模块10与程式储存区22相互传输资讯,并且控制程式储存区22中多个Java Applet相互沟通。
[0041] 在本发明中,控制模块20是建构于Java卡的虚拟机架构上,可以使行动装置100中其他同样符合Java卡标准规范的应用程式,例如:EMV、PBOC、认证机构(Certificate Authority,CA)、公钥基础建设(Public Key Infrastructure,PKI)等,能移植到控制模块20的Java虚拟机上执行,且由于Java卡的虚拟机架构为一个可支持全球平台(Global Platform)的架构,具有空中更新的能力,可更新控制模块20中程式储存区22的Java Applet、安全认证元件及系统等,是一个安全性的电路元件(Security Element)。特别说明的是,控制模块20可制作于输入模块10中,并与输入模块10整合成同一晶片,也可以独立为单一晶片,并不以何种制作方式为限。
[0042] 参阅图1及图2,由于控制模块20是基于Java卡设计的集成电路应用晶片,每个行动装置100的控制模块20从工厂出厂前的产业链上,皆需要进行初始化的设定。如步骤S 11,工厂相关人员可利用读卡机或初始化设备判断控制模块20是否为一初始状态(Native Status),若控制模块20为初始状态,表示控制模块20为一初始卡(Native Card),则会执行步骤S 12,针对控制模块20进行初始化设定,将作业系统、卡片管理程式等软件,以及相关使用者个人化数据载入至控制模块20中。若控制模块20非为初始状态,即表示控制模块20已为Java卡(或为Java卡状态),则该控制模块20将不需要进行初始化设定,即结束流程。
[0043] 接着参阅图1及图3,以下将详细说明控制模块20运作时所执行的细部流程。
[0044] 步骤S10,于使用者将行动装置100开机后或主动重置时,输入模块10在需要重置控制单元23时会送出一个重置(reset)指令到控制模块20。
[0045] 步骤S20,控制单元23通过输入输出埠21接收输入模块10所传送的信号。
[0046] 步骤S30,控制单元23根据接收到的信号,确认程式储存区22中对应各个Java Applet的实际通道与虚拟通道(Virtual Channel)的状态。在本实施例中,各个实际通道及虚拟通道皆具有一对应的旗标(Flag),控制单元23即是根据该些旗标是否被注册而确认各个实际通道及虚拟通道的使用状态。此外,若该信号含有通道设定指令,例如:新增通道(Create Channel)指令、关闭通道(Close Channel)指令等,则控制单元23根据该通道设定指令,设定其对应的实际通道或虚拟通道,例如:将当前Java程式(Current Applet)设定执行于其中一虚拟通道。若该信号中并无通道设定指令,则在确认各个实际通道及虚拟通道的状态后直接执行步骤S40。
[0047] 步骤S40,控制单元23判断接收到的信号是否包含一多通道(Multi-Channel)管理指令,该多通道管理指令中包括数个通道设定,而每一通道设定会对应程式储存区22中指定的Java Applet。若控制单元23所接收的信号包含多通道管理指令,则执行步骤S50;若否,则执行步骤S80。
[0048] 步骤S50,控制单元23根据多通道管理指令进行各个通道的设定,例如:将特定通道设定为开启(ON),并将其余通道关闭(OFF),且将执行中关闭的通道内讯息存入记忆体暂存区内,或是同时将多个虚拟通道设定为开启等。在本实施例中,控制单元23是将先前根据通道设定指令所设定的虚拟通道开启,以供对应该虚拟通道的JavaApplet(即Current Applet)可与其他Java Applet或输入模块10沟通,结束后执行步骤S60。
[0049] 步骤S60,控制单元23判断被设定开启的虚拟通道是否仍为开启。在本实施例中,控制单元23是根据该被设定开启的虚拟通道所对应的Java程式(Applet)是否被其他Java程式(Applet)所呼叫,或是返回输入模块10的指令(即被设定开启的虚拟通道所对应的Java程式输出的指令)是否属于虚拟通道与其Java程式相关返回指令而判断该虚拟通道是否仍为开启,更详细地说,控制单元23是根据被开启的虚拟通道所对应的Current Applet所输出的信号所包含的旗标是否被标注使用中,若有,则执行步骤S70,控制单元23接收被设定开启的虚拟通道所对应的Current Applet所输出的信号,并于接收到后执行步骤S30。若控制单元23判断Current Applet所输出的信号不在虚拟通道设定中,则执行步骤S20。特别说明的是,呼叫开启虚拟通道的Java程式再次呼叫通道指令将虚拟通道关闭也可关闭虚拟通道。
[0050] 步骤S 80,控制单元23根据其所接收的信号的类型,切换至对应的处理程序。在本实施例中,步骤S80可包括以下步骤:
[0051] 步骤S81,控制单元23判断接收到的信号是否为一认证鉴全指令(例如:SIM/USIM Applet),若是,即表示该信号为全球移动通讯系统(Global System for Mobile Communications,GSM)指令,则执行步骤S82;否则执行步骤S83。
[0052] 步骤S82,控制单元23控制Current Applet与程式储存区22中对应该认证鉴全指令的Java Applet相互沟通以传输资讯。
[0053] 步骤S83,控制单元23判断接收到的信号是否为标准JavaApplet指令或Java SIM Applet指令,若是,则执行步骤S84。若控制单元23所接收的信号不是GSM指令也不是标准Java Applet指令或Java SIM Applet指令,则认定为Java卡执行环境(Java Card Runtime Environment,JCRE)指令或测试指令,控制单元23会执行步骤S85。
[0054] 步骤S84,控制单元23根据该标准Java Applet指令或Java SIM Applet指令,通过特殊虚拟通道命令格式去呼叫程式储存区22中其他对应的Java Applet,使Current Applet可与被呼叫的Java Applet相互沟通以传输资讯,并于呼叫后返回执行步骤S60。
[0055] 步骤S85,控制单元23通过输入输出埠21将该信号回传至输入模块10。特别说明的是,所有要传送至输入模块10的信号,都会通过步骤S60的判断,以确认该信号是Java Applet之间的沟通资讯,还是Java Applet与输入模块10之间的沟通资讯。当然,配合不同的设定,控制单元23也可以将该信号递交给特定JCRE电路执行,或通过特定Java Applet指令呼叫特定的程序去调用其特定的服务指令与信号流程,并不以本实施例为限。
[0056] 因此,由上述步骤S10至步骤S80可知,本行动装置100实现了一个多通道呼叫安全认证元件以符合Java虚拟机运行的架构,在整个运行的过程中,通道管理的机制完全是控制单元23根据信号中的多通道管理指令在管理,且在步骤S80中的切换通讯模式也全部遵循Java卡虚拟机的架构,根据各个虚拟通道中的应用程式介面(Application Programming Interface,API)或物件(Object)等去调用对应初始层(Native layer)中的指令资料库(Library)与记忆体(Memory)。此外,在Java Applet调用应用程式介面(API)时,都会先呼叫新增通道(Create Channel)指令,设定对应的虚拟通道,并于调用后呼叫关闭通道(Close Channel)指令,以释放占用的虚拟通道,如此以确保输入模块10服务指令的正常操作。
[0057] 此外,本Java Applet呼叫方法不仅能应用在单一输入输出埠的行动装置100,对于多输入输出埠的Java卡虚拟机架构同样可通过本Java Applet呼叫方法而达到Java Applet之间的相互沟通,所以并不以本实施例为限。
[0058] 综上所述,本发明行动装置100借由控制模块20为Java卡的虚拟机架构,并于控制单元23的应用程式介面(API)中新增用以设定虚拟通道的开启通道(Open Channel)指令、关闭通道(Close Channel)指令,以及让各Java Applet的应用程序能调用与返回相关服务指令转至虚拟通道上的Java Applet(Send-Out Going Data to Virtual Channel),如此以达到各个Java Applet之间相互沟通以传输资讯,所以确实能达成本发明的目的。