(57)【要約】【課題】実行されたＴＫアップレットを外部装置へ知らせるＩＣカード及び携帯可能電子装置を提供する。【解決手段】実施形態によれば、ＩＣカードは、通信部と、記録部と、処理部と、第１送信部と、を備える。通信部は、外部装置とデータを送受信する。記録部は、プロアクティブコマンドを生成するアプリケーションを格納する。処理部は、前記外部装置からのコマンドを実行する場合に、前記記録部が格納する前記アプリケーションを実行することで前記アプリケーションを示す情報を含むプロアクティブコマンドを生成する。第１送信部は、前記処理部が生成した前記プロアクティブコマンドを前記通信部を通じて前記外部装置へ送信する。【選択図】図５
2014186367.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からのコマンドを実行するＩＣカードにおいて、
外部装置とデータを送受信する通信部と、
プロアクティブコマンドを生成するアプリケーションを格納する記録部と、
前記外部装置からのコマンドを実行する場合に、前記記録部が格納する前記アプリケーションを実行することで前記アプリケーションを示す情報を含むプロアクティブコマンドを生成する処理部と、
前記処理部が生成した前記プロアクティブコマンドを前記通信部を通じて前記外部装置へ送信する第１送信部と、
を備えるＩＣカード。
【請求項２】
さらに、
前記処理部が前記アプリケーションを実行したことによってプロアクティブコマンドを生成した場合、プロアクティブコマンドを取り出す取出コマンドを要求するレスポンスを前記外部装置へ送信する第２送信部を備え、
前記第１送信部は、前記通信部を通じて前記取出コマンドを受信した場合に、前記プロアクティブコマンドを前記通信部を通じて前記外部装置へ送信する、
前記請求項１に記載のＩＣカード。
【請求項３】
前記処理部は、コマンドに応じたアプリケーションをコマンドに応じた実行順序に従って実行する、
前記請求項１又は２に記載のＩＣカード。
【請求項４】
前記処理部は、コマンドの実行に成功した場合に、前記記録部が格納するアプリケーションを実行する、
前記請求項１乃至３の何れか１項に記載のＩＣカード。
【請求項５】
前記アプリケーションを示す前記情報は、前記第１送信部が修正又は削除しないＴａｇ値を持つＴＬＶ形式のデータである、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
外部装置からのコマンドを実行するＩＣカードにおいて、
外部装置とデータを送受信する通信部と、プロアクティブコマンドを生成するアプリケーションを格納する記録部と、前記外部装置からのコマンドを実行する場合に、前記記録部が格納する前記アプリケーションを実行することで前記アプリケーションを示す情報を含むプロアクティブコマンドを生成する処理部と、前記処理部が生成した前記プロアクティブコマンドを前記通信部を通じて前記外部装置へ送信する第１送信部と、を備えるモジュールと、
前記モジュールを収納した本体と、
を備えるＩＣカード。
【請求項７】
外部装置からのコマンドを実行する携帯可能電子装置において、
外部装置とデータを送受信する通信部と、
プロアクティブコマンドを生成するアプリケーションを格納する記録部と、
前記外部装置からのコマンドを実行する場合に、前記記録部が格納する前記アプリケーションを実行することで前記アプリケーションを示す情報を含むプロアクティブコマンドを生成する処理部と、
前記処理部が生成した前記プロアクティブコマンドを前記通信部を通じて前記外部装置へ送信する第１送信部と、
を備える携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード及び携帯可能電子装置に関する。
【背景技術】
【０００２】
携帯可能電子装置であるＩＣカードは、ＥＴＳＩ  ＴＳ  １０２．２４１に規定されるＴｏｏｌｋｉｔ  Ａｐｐｌｅｔ（ＴＫアップレット）を有するものがある。ＩＣカードの外部装置は、ＩＣカードへコマンドを送信し、ＴＫアップレットを実行する。しかしながら、ＩＣカードは、実行されたＴＫアップレットを示す情報を外部装置へ通知することができないという課題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−５５６６９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、実行されたＴＫアップレットを外部装置へ通知するＩＣカード及び携帯可能電子装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、通信部と、記録部と、処理部と、第１送信部と、を備える。通信部は、外部装置とデータを送受信する。記録部は、プロアクティブコマンドを生成するアプリケーションを格納する。処理部は、前記外部装置からのコマンドを実行する場合に、前記記録部が格納する前記アプリケーションを実行することで前記アプリケーションを示す情報を含むプロアクティブコマンドを生成する。第１送信部は、前記処理部が生成した前記プロアクティブコマンドを前記通信部を通じて前記外部装置へ送信する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカード処理システムの構成例を示す図である。
【図２】図２は、実施形態に係るＩＣカードのプロアクティブコマンドの例を示す図である。
【図３】図３は、実施形態に係るＩＣカードのレスポンスの例を示す図である。
【図４】図４は、実施形態に係るＩＣカードのＮＶＭに格納されているイベントテーブルの例を示す図である。
【図５】図５は、実施形態に係るＩＣカードにおけるコマンドレスポンスの流れを概略的に説明するためのシーケンス図である。
【発明を実施するための形態】
【０００７】
以下、本実施形態について、図面を参照して説明する。  
図1は、実施形態に係る携帯可能電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置としてのＩＣカード処理装置１とを有するＩＣカード処理システムの構成例を示すブロック図である。  
まず、ＩＣカード処理装置１の構成例について説明する。  
ＩＣカード処理装置１は、図１に示す構成例において、ＣＰＵ１１、メモリ１２及び通信部１３などを有する。これらの各部は、システムバス１４を介して互いに電気的に接続されている。
【０００８】
ＣＰＵ１１は、ＩＣカード処理装置１全体の動作を制御する制御部として機能する。ＣＰＵ１１は、メモリ１２に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。ＣＰＵ１１は、プログラムを実行することにより、ＩＣカード処理装置１の基本的な動作制御およびＩＣカード処理装置１の運用形態に応じた種々の処理を行う。
【０００９】
ＣＰＵ１１は、通信部１３によりＩＣカード２へ命令（コマンド）を送信する機能、及び、ＩＣカード２から受信したデータを基に種々の処理を行う機能などを有する。たとえば、ＣＰＵ１１は、通信部１３を介してＩＣカード２にデータの書き込み命令を送信することによりＩＣカード２内の不揮発性メモリにデータを書き込む制御を行う。また、ＣＰＵ１１は、ＩＣカード２に読み取り命令（リードコマンド）を送信することによりＩＣカード２からデータを読み出す制御を行う。
【００１０】
なお、ＣＰＵ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ１１は、ハードウエア回路により実行される機能を制御する。
【００１１】
メモリ１２は、ＩＣカード処理装置１で利用される制御プログラム及び制御データなどを格納するメモリである。メモリ１２は、不揮発性メモリ及び揮発性メモリなどを備える。メモリ１２は、たとえば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、又はフラッシュメモリなどで構成されてもよい。
【００１２】
通信部１３は、ＩＣカード２との通信を行うためのインターフェース装置である。通信部１３は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、通信部１３は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１３】
また、ＩＣカード２が非接触型のＩＣカードである場合、通信部１３は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御部などにより構成される。通信部１３では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。
【００１４】
このような機能によって通信部１３は、ＣＰＵ１１による制御に基づいてＩＣカード２に対する電源供給、ＩＣカード２の活性化（起動）、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１５】
次に、ＩＣカード２の構成例について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの外部装置から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１６】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１７】
ＩＣカード２は、ＣＡＴ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＥＴＳＩ  ＴＳ  １０２．２４１に規定される）（ＣＡＴ−ＲＥ）をサポートする。即ち、ＩＣカード２は、ＣＡＴ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔに従って動作する。
【００１８】
ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信用の外部インターフェース（通信部）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。
【００１９】
また、図１が示すように、ＩＣカード２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４、及び通信部２５などを備えている。これらの各部は、システムバス２６を介して互いに電気的に接続されている。１つ又は複数のＩＣチップＣａは、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、及びＮＶＭ２４により構成される。ＩＣチップＣａは、通信部２５に接続された状態でモジュールＭを構成している。
【００２０】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２あるいはＮＶＭ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。ＣＰＵ２１は、プログラムを実行することにより、ＩＣカード２の基本的な動作制御およびＩＣカード２の運用形態に応じた種々の処理を行う。なお、ＩＣカード２の動作制御および処理などの各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。
【００２１】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２２】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、受信用バッファ、計算用バッファ、送信用バッファなどを備える。受信用バッファは、通信部２５を通じてＩＣカード処理装置１から送信された命令を保持する。計算用バッファは、ＣＰＵ２１が種々の計算をするため一時的な結果を保持する。送信用バッファは、通信部２５を通じてＩＣカード処理装置１に送信するためのデータを保持する。たとえば、ＣＰＵ２１は、受信用バッファに保持した命令を解釈し、命令に応じた処理を計算バッファを用いて実行し、実行した処理の結果を送信用バッファに格納する。
【００２３】
ＮＶＭ２４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュメモリなどにより構成される。ＮＶＭ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【００２４】
ＮＶＭ２４は、第１ＴＫアップレットを記録する記録領域２４ａ、第２ＴＫアップレットを記録する記録領域２４ｂ及びイベントテーブルを記録する記録領域２４ｃなどを有する。第１ＴＫアップレット、第２ＴＫアップレット及びイベントテーブルについては、後述する。
【００２５】
通信部２５は、ＩＣカード処理装置１の通信部１３との通信を行うためのインターフェースである。ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１の通信部１３と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、ＩＣカード２が非接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１の通信部１３との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【００２６】
次に、ＩＣカード２のＮＶＭ２４が格納する第１ＴＫアップレット及び第２ＴＫアップレットについて説明する。  
前述のとおり、第１ＴＫアップレット及び第２ＴＫアップレットは、それぞれ記録領域２４ａ及び記録領域２４ｂに格納される。  
記録領域２４ａが格納する第１ＴＫアップレット（第１ＴＫアップレット２４ａ）は、
ＴＫアップレット（Ｔｏｏｌｋｉｔ  Ａｐｐｌｅｔ（ＥＴＳＩ  ＴＳ  １０２．２４１に規定される））の１つである。ＴＫアップレットは、ＣＰＵ２１がＣＡＴ−ＲＥに従ってイベントを実行するとイベントに対応して動作するアプリケーションである。ＣＰＵ２１は、イベント発生ごとにイベントに対応するＴＫアップレットを実行する。
【００２７】
たとえば、ＴＫアップレットは、ＮＶＭにデータを書き込む回数をカウントするアプリケーションなどである。この場合、ＣＰＵ２１は、当該ＴＫアップレットが対応付けられたイベントが実行されるごとに当該ＴＫアップレットを実行し、ＮＶＭにデータを書き込む回数をカウントする。  
なお、ＴＫアップレットの動作内容は、特定の構成に限定されるものではない。
【００２８】
また、ＴＫアップレットは、プロアクティブコマンドを生成してもよい。ＴＫアップレットは、ＴＫアップレット自信を示す情報をプロアクティブコマンドに格納する。即ち、プロアクティブコマンドは、プロアクティブコマンドを生成したＴＫアップレットを示す情報を格納する。また、ＴＫアップレットは、その他の情報をプロアクティブコマンドに格納してもよい。プロアクティブコマンドについては後術する。
【００２９】
ＴＫアップレットは、ＩＣカード２の発行時にＮＶＭ２４に格納されてもよいし、後から追加されてもよい。ＩＣカード２の発行においてＴＫアップレットがＩＣカード２に格納される場合、ＴＫアップレットはＲＯＭ２２に格納されてもよい。
【００３０】
記録領域２４ｂが格納する第２ＴＫアップレット（第２ＴＫアップレット２４ｂ）は、第１ＴＫアップレットと同様にＴＫアップレットの１つである。  
なお、ＮＶＭ２４は、さらに多くのＴＫアップレットを格納してもよい。ＮＶＭ２４が格納するＴＫアップレットの個数は、特定の個数に限定されるものではない。
【００３１】
次に、プロアクティブコマンドについて説明する。  
図２は、ＩＣカード２のＣＰＵ２１が生成するプロアクティブコマンドの例を示す。  
コマンドヘッダの「ＣＬＡ」、「ＩＮＳ」は、コマンドの種類を示す情報を格納する。「Ｐ１」、「Ｐ２」には、コマンドのパラメータを格納する。コマンドボディの「Ｌｃ」は、「Ｄａｔａ」（データ部）の長さを示す情報を格納する。「Ｄａｔａ」は、当該コマンドでの処理対象となるデータを格納する。
【００３２】
プロアクティブコマンドのデータ部は、識別子（Ｔａｇ）、データ長（Ｌｅｎｇｔｈ）、値（Ｖａｌｕｅ）により構成されるＴＬＶ形式のデータ（ＴＬＶデータ）である。また、プロアクティブコマンドは、入れ子構造（親のＴＬＶデータの値（Ｖａｌｕｅ）の中に、１又は複数のＴＬＶデータが含まれる構造）になっている。
【００３３】
「Ｄａｔａ」は、プロアクティブコマンドを生成したＴＫアップレットを示す情報を格納する。図２が示すように、「Ｄａｔａ」の「Ｖａｌｕｅ」は、ＴＫアップレットを示すＴＫアップレットデータとして、「Ｔａｇ」が「０ｘ５０」であるＴＶＬ形式のデータを格納する。たとえば、ＴＫアップレットデータの「Ｖａｌｕｅ」が「０ｘ０２」である場合は、ＴＫアップレットデータは、プロアクティブコマンドを生成したＴＫアップレットが第２ＴＫアップレットであることを示す。
【００３４】
ＴＫアップレットデータの「Ｖａｌｕｅ」の値は、いかなるＴＫアップレットを示すものとしてもよい。ＴＫアップレットの「Ｖａｌｕｅ」の構成は、特定の構成に限定されるものではない。
【００３５】
なお、「Ｄａｔａ」が「Ｔａｇ」が「０ｘ５０」であるデータを格納しない場合は、プロアクティブコマンドは、所定のＴＫアップレット（たとえば、第１ＴＫアップレット２４ａ以外のＴＫアップレット）によって生成されたことを示すものとしてもよい。
【００３６】
ＴＫアップレットデータの「Ｔａｇ」の値は、ＣＡＴ−ＲＥに従って動作するＣＰＵ２１がデータを変更または破棄しないデータの「Ｔａｇ」の値であればよい。即ち、ＴＫアップレットデータの「Ｔａｇ」は、ＣＡＴ−ＲＥ規格において、ＣＰＵ２１が変更または破棄することなくＩＣカード処理装置１へ送信するデータの「Ｔａｇ」であればよい。図４が示す例において、「Ｔａｇ」の値は、「０ｘ５０」であるが、上記の条件を満たせば特定の値に限定されるものではない。
【００３７】
また、プロアクティブコマンドは、プロアクティブハンドラを用いて生成される。  
プロアクティブハンドラは、プロアクティブコマンドが使用するＩＣカード２の資源である。即ち、プロアクティブコマンドは、プロアクティブハンドラを利用して生成される。プロアクティブハンドラは、ＩＣカード２の規格によって定義される。プロアクティブハンドラは、規格上、ＩＣカード２に対して１つ存在する。即ち、ＩＣカード２は、同時に２つ以上のプロアクティブコマンドを生成することはできない。プロアクティブハンドラは、プロアクティブコマンドが送信されると解放され、他のプロアクティブコマンドの資源となる。
【００３８】
プロアクティブコマンドは、ＩＣカード処理装置１から送信される取出コマンド（ＦＥＴＣＨコマンド）への返信としてＩＣカード２からＩＣカード処理装置１へ送信される。取出コマンド（ＦＥＴＣＨコマンド）は、ＩＣカード２からプロアクティブコマンドを取り出すコマンドである。即ち、ＩＣカード２のＣＰＵ２１は、ＦＥＴＣＨコマンドを受信した後に、ＦＥＴＣＨコマンドへの返信としてプロアクティブコマンドを送信する。また、ＣＰＵ２１は、ＦＥＴＣＨコマンドを要求するレスポンスをＩＣカード処理装置１へ送信する。
【００３９】
図３は、ＩＣカード２のＣＰＵ２１がＦＥＴＣＨコマンドを要求するレスポンスの例である。  
図３が示すように、レスポンスは、ＳＷとデータ部を備える。ＳＷは、コマンドの実行結果、及び、ＦＥＴＣＨコマンドの要求の有無などを示す値である。即ち、ＣＰＵ２１は、ＦＥＴＣＨコマンドを要求する場合、レスポンスのＳＷに所定の値を格納する。ここでは、ＦＥＴＣＨコマンドを要求するＳＷは、「９１ｘｘ」（ｘｘは、プロアクティブコマンドの長さを示す。）である。即ち、ＦＥＴＣＨコマンドを要求する場合、ＣＰＵ２１は、レスポンスのＳＷを「９１ｘｘ」に書き換える。ＦＥＴＣＨコマンドを要求するＳＷの値は、特定の値に限定されるものではない。
【００４０】
データ部は、ＩＣカード処理装置１へ送信するデータを格納する。たとえば、コマンドがリードコマンドである場合、データ部は、リードコマンドで読み出されるデータを格納する。また、ＩＣカード処理装置１へ送信するデータがない場合（たとえば、コマンドがライトコマンドである場合）、データ部は、何も格納しない。
【００４１】
次に、イベントテーブルについて説明する。  
前述のとおり、イベントテーブルは、記録領域２４ｃに格納される。  
図４は、記録領域２４ｃが格納するイベントテーブルの例を示す。
【００４２】
記録領域２４ｃが格納するイベントテーブル（イベントテーブル２４ｃ）は、イベントと、ＴＫアップレットとを対応付けて格納する。また、イベントテーブルは、ＴＫアップレットを実行順序を付けて格納する。
【００４３】
イベントは、ＣＰＵ２１の所定の動作に対応している。即ち、イベントは、ＣＰＵ２１が所定の動作を行う際に実行される。たとえば、ＣＰＵ２１がＩＣカード処理装置１からライトコマンドを受信しデータをＮＶＭ２４に書き込む場合、ＣＰＵ２１は、イベントＥ１を実行する。イベントが対応している動作は、予め決定される。
【００４４】
また、イベントテーブル２４ｃは、イベントに対応しているＴＫアップレットを実行順序を付けて示す。ＣＰＵ２１は、イベントを実行する場合に、ＴＫアップレットを実行順序に従って順次実行する。
【００４５】
たとえば、イベントテーブル２４ｃは、イベントＥ１が第２ＴＫアップレット２４ｂと第１ＴＫアップレット２４ａに対応付けられていることを示している。また、イベントテーブル２４ｃは、イベントＥ１において、第２ＴＫアップレット２４ｂの実行順序が「１」であって、第１ＴＫアップレット２４ａの実行順序が「２」であることを示している。したがって、ＣＰＵ２１がイベントＥ１を実行する場合、ＣＰＵ２１は、第２ＴＫアップレット２４ｂを実行し、次に、第１ＴＫアップレット２４ａを実行する。
【００４６】
なお、イベントに対応付けられているＴＫアップレットは、１つでもよいし、３つ以上でもよい。イベントに対応付けられているＴＫアップレットの数は、特定の数に限定されるものではない。また、実行順序も特定の順序に限定されるものではない。
【００４７】
また、ＴＫアップレットがイントールされると、ＣＰＵ２１は、ＩＣカード処理装置１からの命令に基づいてイベントテーブル２４ｃを書き換えてもよい。たとえば、新たにＴＫアップレットがインストールされると、ＣＰＵ２１は、イベントに対応するＴＫアップレットを変更したり、実行順序を変更したりしてもよい。また、ＣＰＵ２１は、イベントテーブル２４ｃへ新たなイベントを追加してもよい。
【００４８】
次に、ＩＣカード２の動作例について説明する。
【００４９】
ここでは、ＩＣカード処理装置１のＣＰＵ１１は、通信部１３を通じてコマンドＣｏを送信するものとする。コマンドＣｏは、ライトコマンド又はリードコマンドなどであるが、特定のコマンドに限定されるものではない。また、ＩＣカード２において、コマンドＣｏはイベントＥ１に対応付けられているものとする。また、第１ＴＫアップレット２４ａ及び第２ＴＫアップレット２４ｂは、それぞれ第１プロアクティブコマンド及び第２プロアクティブコマンドを生成するものとする。
【００５０】
図５は、ＩＣカード処理装置１とＩＣカード２とのコマンドレスポンスの例を示すシーケンス図である。  
まず、ＩＣカード処理装置１のＣＰＵ１１は、通信部１３を通じてＩＣカード２へコマンドＣｏを送信する。  
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてコマンドＣｏを受信する。コマンドＣｏを受信すると、ＣＰＵ２１は、コマンドＣｏを実行する。ここでは、ＣＰＵ２１は、コマンドＣｏの実行に成功したものとする。コマンドＣｏの実行に成功すると、ＣＰＵ２１は、実行に成功したことを示すＳＷを格納したレスポンスを生成する。ＣＰＵ２１は、生成されたレスポンスをＲＡＭ２３の送信バッファなどに格納する。コマンドＣｏがデータをＩＣカード処理装置１へ送信するコマンドである場合（たとえば、コマンドＣｏがリードコマンドである場合）、ＣＰＵ２１は、コマンドＣｏの実行で得られたデータをレスポンスに格納する。
【００５１】
コマンドＣｏを実行すると、ＣＰＵ２１は、イベントＥ１を実行する。即ち、ＣＰＵ２１は、イベントＥ１に対応付けられたＴＫアップレットを実行順序に従って実行する。  
図４が示す例において、イベントテーブル２４ｃは、イベントＥ１に対応付けらえたＴＫアップレットが第２ＴＫアップレット２４ｂ及び第１ＴＫアップレット２４ａであること、第２ＴＫアップレット２４ｂの実行順序が「１」であること、及び第１ＴＫアップレット２４ａの実行順序が「２」であることを示す。
【００５２】
したがって、まず、ＣＰＵ２１は、第２ＴＫアップレット２４ｂを実行する。前述のとおり、第２ＴＫアップレット２４ｂは、プロアクティブコマンドを生成する。したがって、第２ＴＫアップレット２４ｂを実行すると、ＣＰＵ２１は、プロアクティブハンドラを用いて、第２プロアクティブコマンドを生成する。
【００５３】
第２プロアクティブコマンドを生成すると、ＣＰＵ２１は、第２プロアクティブコマンドをＲＡＭ２３へ格納する。第２プロアクティブコマンドをＲＡＭ２３へ格納すると、ＣＰＵ２１は、レスポンスが格納するＳＷの値をＩＣカード処理装置１にプロアクティブコマンドの取出コマンド（ＦＥＴＣＨコマンド）を要求する値（ＳＷ＝９１ｘｘ）に書き換える。
【００５４】
ＳＷを書き換えると、ＣＰＵ２１は、第１ＴＫアップレット２４ａを実行する。前述のとおり、第１ＴＫアップレット２４ａは、プロアクティブコマンドを生成する。しかしながら、プロアクティブハンドラがすでに使用されているので、ＣＰＵ２１は、第１ＴＫアップレット２４ａを実行しても、プロアクティブコマンドを生成できない。そのため、ＣＰＵ２１は、プロアクティブハンドラが解放された場合に第１ＴＫアップレット２４ａを実行しプロアクティブコマンドを生成するイベントＥ１１を設定する。
【００５５】
イベントを設定すると、ＣＰＵ２１は、通信部２５を通じてレスポンスをＩＣカード処理装置１へ送信する。  
ＩＣカード処理装置１のＣＰＵ１１は、通信部１３を通じて当該レスポンスを受信する。当該レスポンスを受信すると、ＣＰＵ１１は、通信部１３を通じてＦＥＴＣＨコマンドをＩＣカード２へ送信する。
【００５６】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてＦＥＴＣＨコマンドを受信する。ＦＥＴＣＨコマンドを受信すると、ＣＰＵ２１は、ＲＡＭ２３から第２プロアクティブコマンドを取り出し、通信部２５を通じて第２プロアクティブコマンドをＩＣカード処理装置１へ送信する。
【００５７】
ＩＣカード処理装置１のＣＰＵ１１は、通信部１３を通じて第２プロアクティブコマンドを受信する。第２プロアクティブコマンドを受信すると、ＣＰＵ１１は、通信部１３を通じてターミナルレスポンスをＩＣカード２へ送信する。ターミナルレスポンスは、プロアクティブコマンドに対するレスポンスである。
【００５８】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてターミナルレスポンスを受信する。ターミナルレスポンスを受信すると、ＣＰＵ２１は、イベントＥ１１に従って動作する。即ち、ＣＰＵ２１は、プロアクティブハンドラが解放されたか判定する。ここでは、ＣＰＵ２１がプロアクティブハンドラを使用していた第２プロアクティブコマンドを送信したので、プロアクティブハンドラは解放されている。したがって、ＣＰＵ２１は、プロアクティブハンドラが解放されていると判定する。
【００５９】
プロアクティブハンドラが解放されていると判定すると、ＣＰＵ２１は、第１ＴＫアップレット２４ａを実行する。前述のとおり、第１ＴＫアップレット２４ａは、プロアクティブコマンドを生成する。したがって、第１ＴＫアップレット２４ａを実行すると、ＣＰＵ２１は、プロアクティブハンドラを用いて、第１プロアクティブコマンドを生成する。
【００６０】
第１プロアクティブコマンドを生成すると、ＣＰＵ２１は、第２プロアクティブコマンドをＲＡＭ２３へ格納する。第２プロアクティブコマンドをＲＡＭ２３へ格納すると、ＣＰＵ２１は、レスポンスが格納するＳＷの値をＩＣカード処理装置１にプロアクティブコマンドの取出コマンド（ＦＥＴＣＨコマンド）を要求する値（ＳＷ＝９１ｘｘ）をＳＷとして格納するレスポンスを生成する。
【００６１】
レスポンスを生成すると、ＣＰＵ２１は、通信部２５を通じて生成されたレスポンスをＩＣカード処理装置１へ送信する。  
ＩＣカード処理装置１のＣＰＵ１１は、通信部１３を通じて当該レスポンスを受信する。当該レスポンスを受信すると、ＣＰＵ１１は、通信部１３を通じてＦＥＴＣＨコマンドをＩＣカード２へ送信する。
【００６２】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてＦＥＴＣＨコマンドを受信する。ＦＥＴＣＨコマンドを受信すると、ＣＰＵ２１は、ＲＡＭ２３から第２プロアクティブコマンドを取り出し、通信部２５を通じて第２プロアクティブコマンドをＩＣカード処理装置１へ送信する。
【００６３】
ＩＣカード処理装置１のＣＰＵ２１は、通信部１３を通じて当該レスポンスを受信する。  
なお、ＣＰＵ２１は、当該レスポンスを受信した後に、通信部１３を通じてターミナルレスポンスをＩＣカード２へ送信してもよい。この場合、ＩＣカード２のＣＰＵ２１は、ターミナルレスポンスに対するレスポンスを通信部２５を通じてＩＣカード処理装置１へ送信してもよい。
【００６４】
また、プロアクティブハンドラが使用中であるときにＣＰＵ２１がプロアクティブコマンドを生成するＴＫアップレットを実行した場合、ＣＰＵ２１は、上記の例とは異なるイベントを生成してもよい。また、この場合に、ＣＰＵ２１は、イベントを生成しなくともよい。
【００６５】
以上のように構成されるＩＣカードは、実行されたＴＫアップレットを示すプロアクティブコマンドをＩＣカード処理装置へ送信することができる。したがって、ＩＣカードは、実行されたＴＫアップレットをＩＣカード処理装置へ通知することができる。
【符号の説明】
【００６６】
１…ＩＣカード処理装置、２…ＩＣカード、１１…ＣＰＵ、１３…通信部、２１…ＣＰＵ、２３…ＲＡＭ、２４…ＮＶＭ、２４ａ…ＴＫアップレット、２４ｂ…ＴＫアップレット、２４ｃ…イベントテーブル、２５…通信部。
【図１】
2014186367.tif 000003
【図２】
2014186367.tif 000004
【図３】
2014186367.tif 000005
【図４】
2014186367.tif 000006
【図５】
2014186367.tif 000007
【手続補正書】
【提出日】平成26年2月21日(2014.2.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００３
【補正方法】変更
【補正の内容】
【０００３】
【特許文献１】特表２００９−５２８７３４号公報