JP2018060455A - 電子情報記憶媒体、コマンド処理方法、及びコマンド処理プログラム - Google Patents
電子情報記憶媒体、コマンド処理方法、及びコマンド処理プログラム Download PDFInfo
- Publication number
- JP2018060455A JP2018060455A JP2016199121A JP2016199121A JP2018060455A JP 2018060455 A JP2018060455 A JP 2018060455A JP 2016199121 A JP2016199121 A JP 2016199121A JP 2016199121 A JP2016199121 A JP 2016199121A JP 2018060455 A JP2018060455 A JP 2018060455A
- Authority
- JP
- Japan
- Prior art keywords
- command
- application
- processing
- received
- selection
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000000034 method Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】ICカード等の電子情報記憶媒体において、一のアプリにコマンド処理を実行させた後に、他のアプリを選択し直すことなく、当該他のアプリにコマンド処理を実行させることを可能とする。【解決手段】複数のアプリを同時に選択状態とし、複数のアプリが選択状態にある場合において、コマンドを受信した場合に、選択状態にあるアプリのうち、当該コマンドに応じたコマンド処理を実行可能なアプリによりコマンド処理を実行する電子情報記憶媒体とする。【選択図】図4
Description
ICチップ等の電子情報記憶媒体の技術分野に関する。
近年、Java(登録商標)言語に代表されるプログラム言語の解釈機能を備えた仮想マシン(VM:Virtual Machine)が組み込まれ、アプリケーション(以下、「アプリ」という場合がある)の追加/削除が可能なマルチアプリケーションICカードが普及しつつある(例えば、特許文献1)。
こうした複数のアプリを搭載可能なICカードでは、SELECTコマンドにより一つのアプリを選択してからコマンドを送信することにより、選択状態にあるアプリに当該コマンドに応じたコマンド処理を実行させることができる。
しかしながら、従来、SELECTコマンドにより選択することができるアプリは一つだけであるため、選択したアプリ以外のアプリが実行可能なコマンド処理を実行させるためには、改めてSELECTコマンドを送信してアプリを選択し直す必要がある。
そこで、本発明は、一のアプリを選択コマンドにより選択して当該アプリにコマンド処理を実行させた後に、他のアプリを選択コマンドにより選択し直すことなく、当該他のアプリにコマンド処理を実行させることができる電子情報記憶媒体等を提供することを目的とする。
上記課題を解決するために、請求項1に記載の発明は、複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体であって、前記処理部は、前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させ、前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行し、複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行することを特徴とする。
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体であって、前記記憶部は、OSと、前記アプリケーション毎に当該アプリケーションが実行可能なコマンド処理を示す可能処理情報を更に記憶し、前記処理部は、前記OSを実行することにより、前記非選択コマンドを受信した場合に、前記選択状態情報及び前記可能処理情報を参照して、選択状態にあるアプリケーションであって、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションを特定し、特定したアプリケーションを実行することにより、受信した前記非選択コマンドに応じたコマンド処理を実行することを特徴とする。
請求項3に記載の発明は、請求項1に記載の電子情報記憶媒体であって、前記処理部は、前記選択コマンドを受信した場合に、当該選択コマンドにより選択されたアプリケーションを実行することにより、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させ、前記非選択コマンドを受信した場合に、アプリケーションを実行することにより、前記選択状態情報を参照して当該アプリケーションが選択状態にある場合であって、当該非選択コマンドに応じたコマンド処理を実行可能な場合に、当該コマンド処理を実行することを特徴とする。
請求項4に記載の発明は、請求項1乃至3の何れか一項に記載の電子情報記憶媒体であって、前記記憶部は、複数のアプリケーションが選択状態にある場合において、当該複数のアプリケーションの何れもがアクセス可能なデータを記憶することを特徴とする。
請求項5に記載の発明は、複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体による処理方法であって、前記処理部が、前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させる工程と、前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行する工程と、複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行する工程と、を含むことを特徴とする。
請求項6に記載の発明は、複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体における前記処理部を、前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させる手段、前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行する手段、複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行する手段、として機能させることを特徴とする。
本発明によれば、コマンド処理を実行させる複数のアプリを同時に選択状態としておくことにより、一のアプリを選択して当該アプリにコマンド処理を実行させた後に、他のアプリを選択し直すことなく、当該他のアプリにコマンド処理を実行させることができる。
以下、図面を参照して本発明の実施形態について詳細に説明する。まず、図1等を参照して、ICカード1に搭載されたICチップ1aの概要構成及び機能について説明する。図1(A)は、ICチップ1aのハードウェア構成例を示す図であり、図1(B)は、ICチップ1aの機能ブロック例を示す図である。なお、ICカード1は、キャッシュカード、クレジットカード、電子マネーカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ICチップ1aは本発明における電子情報記憶媒体を構成するが、この電子情報記憶媒体は通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
[1.ICチップ1aの概要構成及び機能]
図1(A)に示すように、ICチップ1aは、CPU10、ROM(Read Only Memory)11、データを一時的に記憶するための揮発性メモリであるRAM(Random Access Memory)12、不揮発性メモリであるフラッシュメモリ13、及びI/O回路14を備えて構成される。なお、フラッシュメモリの代わりに「Electrically Erasable Programmable Read-Only Memory」を採用しても構わない。
図1(A)に示すように、ICチップ1aは、CPU10、ROM(Read Only Memory)11、データを一時的に記憶するための揮発性メモリであるRAM(Random Access Memory)12、不揮発性メモリであるフラッシュメモリ13、及びI/O回路14を備えて構成される。なお、フラッシュメモリの代わりに「Electrically Erasable Programmable Read-Only Memory」を採用しても構わない。
I/O回路14は、外部端末2とのインターフェイスを担う。これにより、ICチップ1aは、ICリーダ・ライタを備える外部端末2との間で接触又は非接触で通信を行うことができる。接触式のICチップ1aの場合、I/O回路14には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子(ICチップ1aへ電源供給する端子)、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部端末2との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末2の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップ1aが通信機器に組み込まれる場合、外部端末2には通信機器の機能を担う制御部が該当する。
RAM12は、OSやアプリに関する情報を記憶する記憶領域を有する。また、RAM12は、外部端末2から受信したSELECTコマンドにより選択されたアプリを示す選択状態情報を記憶する。更に、RAM12は、アプリ毎に実行可能なコマンド処理に対応するコマンドを示すコマンドリストを記憶する。
フラッシュメモリ13には、OSやアプリといった各種プログラムを記憶する。
CPU10は、コンピュータの一例であり、図1(B)に示すハードウェアとして、フラッシュメモリ13に記憶された各種プログラムを実行する演算装置である。各種プログラムには、仮想マシンプログラム、Java等のプログラム言語で記述されるアプリが含まれる。OS、及び仮想マシンプログラムは、複数のネイティブコード(実行コード群)で記述される。OSは、ICチップ1aの動作を直接コントロールするソフトウェアである。OS、及び仮想マシンプログラムは、ROM11に記憶されてもよい。なお、以下、OS又はアプリを主語として処理の説明をする場合、実際には、CPU10がOS又はアプリを実行することにより処理が行われる。
仮想マシンプログラムは、CPU10を仮想マシンとして機能させるプログラムである。OS上で動作する仮想マシンは、ソースコードとネイティブコードとの間の中間コードであるバイトコードを解釈、実行する。プログラマーにより作成されたアプリには、ソースコードが例えば実行順に記述される。そして、このようなアプリは、コンパイラによって仮想マシンの実行形式に変換(つまり、ソースコードからバイトコードに変換)され、インストール(フラッシュメモリ13に記憶)されることになる。このため、フラッシュメモリ13に記憶されているアプリは、複数の命令それぞれを示すバイトコードを例えば実行順に記述する。
仮想マシンは、アプリに記述されたバイトコードを実行順に取得し、該取得したバイトコードを解釈して当該バイトコードが示す命令を実行する。当該命令の実行による処理を、バイトコード処理という。バイトコード処理の内容は、仮想マシンプログラムに規定されている。また、仮想マシンは、アプリに記述された複数のバイトコードのうち、次に実行するべきバイトコードの位置(アプリにおける位置)を特定可能な特定情報を指し示すプログラムカウンタを備える。ここで、特定情報の例として、バイトコードのアドレス(バイトコードが記憶されたフラッシュメモリ13におけるアドレス)、バイトコードのオフセット、バイトコードのラベル値が挙げられる。例えば、公知のComputed gotoアルゴリズムでは、GNU C対応の拡張機能であるlabel as valueにより、ラベル値としてのアドレスに直接ジャンプすることができる。
次に、図2を用いて、ICチップ1aが外部端末2からコマンドを受信した際のCPU10の動作について簡単に説明する。外部端末2がICチップ1aにインストールされているアプリにコマンドを送信し、コマンドに応じたコマンド処理を実行させるためには、予め当該コマンド処理を実行させるアプリを選択してICチップ1a内において選択状態としておく必要がある。例えば、ICチップ1aにアプリ1、アプリ2がインストールされている場合に、外部端末2がアプリ1にコマンド処理を実行させるためには、まず、アプリ1を選択するSELECTコマンドをICチップ1aに送信し、ICチップ1a内においてアプリ1が選択状態となった後に、アプリ1が処理可能なコマンドを送信することにより、コマンド処理を実行させることができる。そして、ICチップ1aのCPU10は、コマンド処理を実行すると、その結果を含むレスポンスを外部端末2に送信する。
なお、従来、ICチップ1a内において選択状態とすることができるアプリの数は1つであった。したがって、図2(A)に示すように、アプリXにコマンド処理Aを実行させ、次いで、アプリYにコマンド処理Cを実行させ、次いで、アプリXにコマンド処理Bを実行させる場合には、
(1)アプリXを選択するSELECTコマンドを送信
→(2)アプリXにコマンド処理Aを実行させるためのコマンドを送信
→(3)アプリYを選択するSELECTコマンドを送信
→(4)アプリYにコマンド処理Cを実行させるためのコマンドを送信
→(5)アプリXを選択するSELECTコマンドを送信
→(6)アプリXにコマンド処理Bを実行させるためのコマンドを送信
という手順を踏まなければならなかった。
(1)アプリXを選択するSELECTコマンドを送信
→(2)アプリXにコマンド処理Aを実行させるためのコマンドを送信
→(3)アプリYを選択するSELECTコマンドを送信
→(4)アプリYにコマンド処理Cを実行させるためのコマンドを送信
→(5)アプリXを選択するSELECTコマンドを送信
→(6)アプリXにコマンド処理Bを実行させるためのコマンドを送信
という手順を踏まなければならなかった。
これに対して、本実施形態のICチップ1aでは、同時に複数のアプリを選択状態として保持することができるように構成されている(具体的な構成例については後述する)。したがって、上記例と同様に、アプリXにコマンド処理Aを実行させ、次いで、アプリYにコマンド処理Cを実行させ、次いで、アプリXにコマンド処理Bを実行させる場合には、
(1)アプリXを選択するSELECTコマンドを送信
→(2)アプリYを選択するSELECTコマンドを送信
→(3)アプリXにコマンド処理Aを実行させるためのコマンドを送信
→(4)アプリYにコマンド処理Cを実行させるためのコマンドを送信
→(5)アプリXにコマンド処理Bを実行させるためのコマンドを送信
という手順を踏めばよい。
(1)アプリXを選択するSELECTコマンドを送信
→(2)アプリYを選択するSELECTコマンドを送信
→(3)アプリXにコマンド処理Aを実行させるためのコマンドを送信
→(4)アプリYにコマンド処理Cを実行させるためのコマンドを送信
→(5)アプリXにコマンド処理Bを実行させるためのコマンドを送信
という手順を踏めばよい。
すなわち、本実施形態のICチップ1aでは、同時に複数のアプリを選択状態として保持することができることから、アプリを選択し直す必要がないため外部端末2とICチップ1a間でのコマンド及びレスポンスをやりとりする回数を減少させることができる。なお、このとき、ICチップ1aは、アプリX及びアプリYによりアクセスされるデータを共用データとして保持することとする。これにより、アプリXとアプリYを、一つの共用データについて処理可能ないわば一つのアプリとして取り扱うことができる。
また、従来では、例えば、アプリPがコマンド処理D及びコマンド処理Eを実行可能である場合において、更に、コマンド処理Fを実行可能とするためには、アプリPを削除して、コマンド処理Fに対応するプログラムを含む改訂版のアプリPをインストールする必要があった。これに対して、本実施形態のICチップ1aでは、同時に複数のアプリを選択状態として保持することができることから、コマンド処理Fに対応するプログラムを含むアプリQを追加でインストールし、アプリP及びアプリQを選択状態とすることにより、適宜、コマンド処理D、コマンド処理E及びコマンド処理Fを実行させることができるようになる。すなわち、コマンド処理Fに対応するパッチアプリをインストールすることでアプリPが実行できなかったコマンド処理を実行させることができるようになる。なお、このときも、ICチップ1aは、アプリP及びアプリQによりアクセスされるデータを共用データとして保持することとする。これにより、アプリQをアプリPの一部(パッチアプリ)として取り扱うことができる。
なお、従来であれば一つのアプリしか選択状態とすることができなかったため、異なるアプリを選択するSELECTコマンドを複数回受信した場合には、直近に受信したSELECTコマンドにより選択されたアプリのみが選択状態として保持されていた。これに対して、本実施形態のICチップ1aは、例えば、SELECTコマンドを受信する度に、当該SELECTコマンドにより選択されたアプリを選択状態として保持し、選択状態にあるアプリを指定するSELECT解除コマンドを受信した場合に、当該指定されたアプリを非選択状態とする。
本実施形態のICチップ1a(「電子情報記憶媒体」の一例)は、複数のアプリを記憶するフラッシュメモリ13(「記憶部」の一例)と、外部端末2(「外部装置」の一例)からコマンドを受信した場合に処理を行うCPU10(「処理部」の一例)とを備え、CPU10は、アプリを選択するSELECTコマンド(「選択コマンド」の一例)を受信した場合に、当該アプリが選択状態にあることを示す選択状態情報をRAM12(「記憶部」の一例)に記憶させ、SELECTコマンド以外のコマンドを受信した場合に、選択状態にあるアプリにより当該コマンドに応じたコマンド処理を実行し、複数のアプリが選択状態にある場合において、当該コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該コマンドに応じたコマンド処理を実行可能なアプリによりコマンド処理を実行する。
したがって、本実施形態のICチップ1aによれば、コマンド処理を実行させる複数のアプリを同時に選択状態としておくことにより、一のアプリを選択して当該アプリにコマンド処理を実行させた後に、他のアプリを選択し直すことなく、当該他のアプリにコマンド処理を実行させることができる。
次に、本発明に係るICチップ1aの実施例を第1実施例、第2実施例に分けて説明する。第1実施例は、OSが選択状態にあるアプリを管理する実施例であり、第2実施例は、各アプリが自らが選択状態にあるかを管理する実施例である。なお、何れの実施例においても、ICチップ1aには、アプリ1、アプリ2、アプリ3、アプリ4がインストールされている。また、第1実施例を図3、図4を用いて説明し、第2実施例を図5、図6を用いて説明する。
[2.第1実施例]
図3は、第1実施例におけるRAM12上の記憶領域Mを示す概念図である。記憶領域Mには、ICチップ1aのOSが使用するOS用記憶領域200と、選択状態にあるアプリ(複数のアプリが選択状態にある場合は当該複数のアプリ)が使用する選択状態アプリ用記憶領域210と、アプリ1が使用するアプリ1用記憶領域220と、アプリ2が使用するアプリ2用記憶領域230と、アプリ3が使用するアプリ3用記憶領域240と、アプリ4が使用するアプリ4用記憶領域250を有する。
図3は、第1実施例におけるRAM12上の記憶領域Mを示す概念図である。記憶領域Mには、ICチップ1aのOSが使用するOS用記憶領域200と、選択状態にあるアプリ(複数のアプリが選択状態にある場合は当該複数のアプリ)が使用する選択状態アプリ用記憶領域210と、アプリ1が使用するアプリ1用記憶領域220と、アプリ2が使用するアプリ2用記憶領域230と、アプリ3が使用するアプリ3用記憶領域240と、アプリ4が使用するアプリ4用記憶領域250を有する。
OS用記憶領域200には、OS用データ201、選択状態情報202、及びコマンドリスト203が記憶されている。選択状態情報202は、外部端末2から受信したSELECTコマンドにより選択されたアプリを識別するための情報である。図3の例では、「○」で示されているアプリ(すなわち、アプリ1及びアプリ4)が選択状態にあることを示し、「X」で示されているアプリ(すなわち、アプリ2及びアプリ3)が非選択状態にあることを示している。また、コマンドリスト203は、アプリ毎に、受信した場合にコマンド処理が実行可能なコマンド(「CLA」及び「INS」の組み合わせで識別されるコマンド)を示している。図3の例では、アプリ1は、「CLA」、「INS」の組み合わせが「00」、「01」又は「00」、「02」であるコマンドについてコマンド処理を実行可能であることを示している。OS用データ201は、選択状態情報202、及びコマンドリスト203以外のOSが処理を行うために必要なデータを含む。
選択状態アプリ用記憶領域210には、選択状態にあるアプリがアクセス可能な共用データ211が記憶される。例えば、共用データ211が、ポイントデータであると仮定した場合に、選択状態にあるアプリ1のコマンド処理によりポイントの加算や減算がなされ、選択状態にあるアプリ4のコマンド処理によりポイントが外部端末2に参照するために取得される。
また、アプリ1用記憶領域220には、アプリ1がアクセス可能なアプリ1用データ221が記憶され、アプリ2用記憶領域230には、アプリ2がアクセス可能なアプリ2用データ231が記憶され、アプリ3用記憶領域240には、アプリ3がアクセス可能なアプリ3用データ241が記憶され、アプリ4用記憶領域250には、アプリ4がアクセス可能なアプリ4用データ251が記憶されている。
図4は、第1実施例におけるCPU10の動作例を示すフローチャートである。なお、本フローチャートに示す処理は、外部端末2からコマンドを受信した場合に実行される。
まず、ICチップ1aのOS(を実行するCPU10)は、外部端末2から受信したコマンドがSELECTコマンド(「選択コマンド」の一例)であるか否かを判定する(ステップS101)。OSは、SELECTコマンドを受信したと判定した場合には(ステップS101:YES)、SELECTコマンドで選択されたアプリを選択状態とする(ステップS102)。例えば、アプリ1が選択されたのであれば、選択状態情報202におけるアプリ1について選択状態を「〇」に更新する。次いで、OSは、選択状態情報202の更新結果を含むレスポンスを外部端末2に送信し(ステップS106)、当該フローチャートに示す処理を終了する。
一方、OSは、SELECTコマンドを受信していない(すなわち、SELECTコマンド以外のコマンド(「非選択コマンド」の一例)を受信したと判定した場合には(ステップS101:NO)、選択状態情報202及びコマンドリスト203を参照し、アプリを特定する(ステップS103)。具体的には、まず、選択状態情報202を参照し、選択状態にあるアプリを特定し、次いで、特定したアプリの中から、受信したコマンドに含まれる「CLA」及び「INS」の組み合わせとコマンドリスト203に含まれる「CLA」及び「INS」の組み合わせを比較し、一致するアプリを特定する。なお、図示しないが、該当するアプリが存在しない場合には、エラーを示すレスポンスを外部端末2に送信する。
次に、OSは、ステップS103の処理で特定したアプリに、受信したコマンドを受け渡す(ステップS104)。
これに対して、アプリ(を実行するCPU10)は、OSからコマンドを受け取ると(ステップS201)、コマンド処理を実行し(ステップS202)、次いで、コマンド処理の結果を示すコマンド処理結果情報をOSに受け渡す(ステップS203)。
これに対して、OS(を実行するCPU10)は、アプリからコマンド処理結果情報を受け取ると(ステップS105)、コマンド処理結果情報を含むレスポンスを外部端末2に送信し(ステップS106)、当該フローチャートに示す処理を終了する。
以上説明したように第1実施例におけるICチップ1a(「電子情報記憶媒体」の一例)は、RAM12(「記憶部」の一例)が、OSと、アプリ毎に当該アプリが実行可能なコマンド処理を示すコマンドリスト203(「可能処理情報」の一例)を記憶し、CPU10は、OSを実行することにより、SELECTコマンド以外のコマンド(「非選択コマンド」の一例)を受信した場合に、選択状態情報202及びコマンドリスト203を参照して、選択状態にあるアプリであって、当該コマンドに応じたコマンド処理を実行可能なアプリを特定し、特定したアプリを実行することにより、受信したコマンドに応じたコマンド処理を実行する。
[3.第2実施例]
図5は、第2実施例におけるRAM12の記憶領域Mを示す概念図である。記憶領域Mには、ICチップ1aのOSが使用するOS用記憶領域200と、選択状態にあるアプリ(複数のアプリが選択状態にある場合は当該複数のアプリ)が使用する選択状態アプリ用記憶領域210と、アプリ1が使用するアプリ1用記憶領域220と、アプリ2が使用するアプリ2用記憶領域230と、アプリ3が使用するアプリ3用記憶領域240と、アプリ4が使用するアプリ4用記憶領域250を有する。
図5は、第2実施例におけるRAM12の記憶領域Mを示す概念図である。記憶領域Mには、ICチップ1aのOSが使用するOS用記憶領域200と、選択状態にあるアプリ(複数のアプリが選択状態にある場合は当該複数のアプリ)が使用する選択状態アプリ用記憶領域210と、アプリ1が使用するアプリ1用記憶領域220と、アプリ2が使用するアプリ2用記憶領域230と、アプリ3が使用するアプリ3用記憶領域240と、アプリ4が使用するアプリ4用記憶領域250を有する。
OS用記憶領域200には、OS用データ201が記憶されている。
選択状態アプリ用記憶領域210には、選択状態にあるアプリがアクセス可能な共用データ211が記憶される。共用データ211は、例えば、ポイントデータであって、選択状態にあるアプリ1のコマンドにより加算や減算され、選択状態にアプリ4のコマンドにより外部端末2が参照するために取得される。
また、アプリ1用記憶領域220には、アプリ1がアクセス可能なアプリ1用データ221、選択状態情報222、及びコマンドリスト223が記憶されている。選択状態情報222は、アプリ1が選択状態にあるか否かを示す情報であり、「〇」が格納されている場合にはアプリ1が選択状態にあることを示し、「X」が格納されている場合にはアプリ1が選択状態にないことを示している。選択状態情報222は、アプリ1がアプリ1を選択するSELECTコマンドを受け取った場合に「〇」に更新する。コマンドリスト223は、アプリ1が、受信した場合にコマンド処理が実行可能なコマンド(「CLA」及び「INS」の組み合わせで識別されるコマンド)を示している。図5の例では、アプリ1は、「CLA」、「INS」の組み合わせが「00」、「01」又は「00」、「02」であるコマンドについてコマンド処理を実行可能であることを示している。
アプリ1用記憶領域220と同様に、アプリ2用記憶領域230には、アプリ2がアクセス可能なアプリ2用データ231、選択状態情報232、及びコマンドリスト233が記憶され、アプリ3用記憶領域240には、アプリ3がアクセス可能なアプリ3用データ241、選択状態情報242、及びコマンドリスト243が記憶され、アプリ4用記憶領域250には、アプリ4がアクセス可能なアプリ4用データ251、選択状態情報252、及びコマンドリスト253が記憶される。なお、選択状態情報232、選択状態情報242、選択状態情報252は、選択状態情報222と同様なので説明を省略する。また、コマンドリスト233、コマンドリスト243、コマンドリスト253についてもコマンドリスト223と同様なので説明を省略する。
図6は、第2実施例におけるCPU10の動作例を示すフローチャートである。なお、本フローチャートに示す処理は、外部端末2からコマンドを受信した場合に実行される。
まず、ICチップ1aのOS(を実行するCPU10)は、外部端末2から受信したコマンドがSELECTコマンド(「選択コマンド」の一例)であるか否かを判定する(ステップS301)。OSは、SELECTコマンドを受信したと判定した場合には(ステップS301:YES)、SELECTコマンドで選択されたアプリに、選択されたことを示す選択情報を受け渡す(ステップS302)。
これに対して、アプリ(を実行するCPU10)は、OSから選択情報を受け取ると(ステップS401)、選択状態情報を選択状態に更新し(ステップS402)、更新結果を示す更新結果情報をOSに受け渡す(ステップS403)。ステップS402の処理について、例えば、選択情報を受け取ったアプリがアプリ1である場合には、アプリ1が選択状態情報222を「〇」に更新する。
これに対して、OS(を実行するCPU10)は、更新結果情報を受け取ると(ステップS303)、更新結果情報を含むレスポンスを外部端末2に送信し(ステップS309)、当該フローチャートに示す処理を終了する。
一方、OSは、ステップS301の処理において、SELECTコマンドを受信していない(すなわち、SELECTコマンド以外のコマンド(「非選択コマンド」の一例)を受信したと判定した場合には(ステップS301:NO)、インストールされているアプリの中から一つのアプリを選択する(ステップS304)。次いで、ステップS304の処理で選択したアプリに、受信したコマンドを受け渡す(ステップS305)。
これに対して、アプリ(を実行するCPU10)は、OSからコマンドを受け取ると(ステップS411)、自アプリが選択状態であり、且つ、当該コマンドに対応するコマンド処理を実行可能か否かを判定する(ステップS412)。例えば、コマンドを受け取ったアプリがアプリ1である場合には、アプリ1は、選択状態情報222を参照して「〇」である場合には自アプリが選択状態であると判定する。また、アプリ1は、受け取ったコマンドに含まれる「CLA」及び「INS」の組み合わせとコマンドリスト223に含まれる「CLA」及び「INS」の組み合わせを比較し、一致した場合に、受け取ったコマンドに対応するコマンド処理を実行可能と判定する。
アプリは、自アプリが選択状態であり、且つ、当該コマンドに対応するコマンド処理を実行可能と判定した場合には(ステップS412:YES)、当該コマンド処理を実行し(ステップS413)、次いで、コマンド処理の結果を示すコマンド処理結果情報をOSに受け渡す(ステップS414)。
一方、アプリは、自アプリが選択状態でない、又は、当該コマンドに対応するコマンド処理を実行可能でないと判定した場合には(ステップS412:NO)、自アプリでは処理を行えないことを示す処理不能情報をOSに受け渡す(ステップS415)。
これに対して、OS(を実行するCPU10)は、アプリからコマンド処理結果情報又は処理不能情報を受け取る(ステップS306)。次いで、OSは、アプリからコマンド処理結果情報を受け取ったか否かを判定する(ステップS307)。
このとき、OSは、アプリからコマンド処理結果情報を受け取ったと判定した場合には(ステップS307:YES)、次いで、コマンド処理結果情報を含むレスポンスを外部端末2に送信し(ステップS309)、当該フローチャートに示す処理を終了する。一方、OSは、アプリからコマンド処理結果情報を受け取っていないと判定した場合(処理不能情報を受け取ったと判定した場合)には(ステップS307:NO)、次いで、全てのアプリを選択したか否かを判定する(ステップS308)。OSは全てのアプリを選択していないと判定した場合には(ステップS308:NO)、ステップS304の処理に移行する。つまり、OSは、コマンド処理結果情報が返されるまで順次アプリにコマンドを受け渡していく。OSは、全てのアプリを選択したと判定した場合には(ステップS308:YES)、処理不能情報を含むレスポンスを外部端末2に送信し(ステップS309)、当該フローチャートに示す処理を終了する。
以上説明したように、第2実施例におけるICチップ1a(「電子情報記憶媒体」の一例)は、CPU10が、SELECTコマンドを受信した場合に、当該SELECTコマンドにより選択されたアプリを実行することにより、当該アプリが選択状態にあることを示す選択状態情報222、232、242、252をRAM12(「記憶部」の一例)に記憶させ、SELECTコマンド以外のコマンド(「非選択コマンド」の一例)を受信した場合に、アプリを実行することにより、選択状態情報222、232、242、252を参照して当該アプリが選択状態にある場合であって、当該コマンドに応じたコマンド処理を実行可能な場合に、当該コマンド処理を実行する。
また、第1実施例及び第2実施例におけるICチップ1aは、RAM12(「記憶部」の一例)は、複数のアプリが選択状態にある場合において、当該複数のアプリケーションの何れもがアクセス可能な共用データ211を記憶する。これにより複数のアプリを、一つの共用データ211について処理可能ないわば一つのアプリとして取り扱うことができる。
なお、第1実施例及び第2実施例では、記憶領域MをRAM12上の領域として説明したが、記憶領域M又はその一部をフラッシュメモリ13上に設けることとしてもよい。
1 ICカード
2 外部端末
1a ICチップ
10 CPU
11 ROM
12 RAM
13 フラッシュメモリ
14 I/O回路
2 外部端末
1a ICチップ
10 CPU
11 ROM
12 RAM
13 フラッシュメモリ
14 I/O回路
Claims (6)
- 複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体であって、
前記処理部は、
前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させ、
前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行し、
複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行することを特徴とする電子情報記憶媒体。 - 請求項1に記載の電子情報記憶媒体であって、
前記記憶部は、OSと、前記アプリケーション毎に当該アプリケーションが実行可能なコマンド処理を示す可能処理情報を更に記憶し、
前記処理部は、
前記OSを実行することにより、前記非選択コマンドを受信した場合に、前記選択状態情報及び前記可能処理情報を参照して、選択状態にあるアプリケーションであって、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションを特定し、
特定したアプリケーションを実行することにより、受信した前記非選択コマンドに応じたコマンド処理を実行することを特徴とする電子情報記憶媒体。 - 請求項1に記載の電子情報記憶媒体であって、
前記処理部は、
前記選択コマンドを受信した場合に、当該選択コマンドにより選択されたアプリケーションを実行することにより、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させ、
前記非選択コマンドを受信した場合に、アプリケーションを実行することにより、前記選択状態情報を参照して当該アプリケーションが選択状態にある場合であって、当該非選択コマンドに応じたコマンド処理を実行可能な場合に、当該コマンド処理を実行することを特徴とする電子情報記憶媒体。 - 請求項1乃至3の何れか一項に記載の電子情報記憶媒体であって、
前記記憶部は、複数のアプリケーションが選択状態にある場合において、当該複数のアプリケーションの何れもがアクセス可能なデータを記憶することを特徴とする電子情報記憶媒体。 - 複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体によるコマンド処理方法であって、
前記処理部が、
前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させる工程と、
前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行する工程と、
複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行する工程と、
を含むことを特徴とするコマンド処理方法。 - 複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体における前記処理部を、
前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させる手段、
前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行する手段、
複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行する手段、
として機能させることを特徴とするコマンド処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016199121A JP2018060455A (ja) | 2016-10-07 | 2016-10-07 | 電子情報記憶媒体、コマンド処理方法、及びコマンド処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016199121A JP2018060455A (ja) | 2016-10-07 | 2016-10-07 | 電子情報記憶媒体、コマンド処理方法、及びコマンド処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018060455A true JP2018060455A (ja) | 2018-04-12 |
Family
ID=61908673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016199121A Pending JP2018060455A (ja) | 2016-10-07 | 2016-10-07 | 電子情報記憶媒体、コマンド処理方法、及びコマンド処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018060455A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021056815A (ja) * | 2019-09-30 | 2021-04-08 | 大日本印刷株式会社 | 電子情報記憶媒体、データ保存及び復元方法、及びプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002279371A (ja) * | 2001-03-15 | 2002-09-27 | Nippon Telegr & Teleph Corp <Ntt> | Icカードのアプリケーション起動制御システム |
JP2003030608A (ja) * | 2001-07-12 | 2003-01-31 | Dainippon Printing Co Ltd | 携帯可能情報記録媒体へのデータアクセス方法 |
JP2003162698A (ja) * | 2001-11-27 | 2003-06-06 | Dainippon Printing Co Ltd | 携帯可能情報記録媒体 |
-
2016
- 2016-10-07 JP JP2016199121A patent/JP2018060455A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002279371A (ja) * | 2001-03-15 | 2002-09-27 | Nippon Telegr & Teleph Corp <Ntt> | Icカードのアプリケーション起動制御システム |
JP2003030608A (ja) * | 2001-07-12 | 2003-01-31 | Dainippon Printing Co Ltd | 携帯可能情報記録媒体へのデータアクセス方法 |
JP2003162698A (ja) * | 2001-11-27 | 2003-06-06 | Dainippon Printing Co Ltd | 携帯可能情報記録媒体 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021056815A (ja) * | 2019-09-30 | 2021-04-08 | 大日本印刷株式会社 | 電子情報記憶媒体、データ保存及び復元方法、及びプログラム |
JP7334566B2 (ja) | 2019-09-30 | 2023-08-29 | 大日本印刷株式会社 | 電子情報記憶媒体、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9183400B2 (en) | IC card and IC card control method | |
US10498671B2 (en) | IC card, portable electronic apparatus, and IC card processing apparatus | |
CN102662688A (zh) | 一种Nor flash更新方法及装置 | |
US8082395B2 (en) | Portable electronic device | |
JP4896842B2 (ja) | 携帯可能電子装置 | |
JP2018060455A (ja) | 電子情報記憶媒体、コマンド処理方法、及びコマンド処理プログラム | |
JP4742469B2 (ja) | 複数のosを用いるicカード、icカード処理装置および処理方法 | |
JP5795921B2 (ja) | Icカード、携帯可能電子装置、icカードの制御方法 | |
JP6798157B2 (ja) | 電子情報記憶媒体、異常検知方法、及び異常検知プログラム | |
JP2010211516A (ja) | 携帯可能電子装置および携帯可能電子装置におけるアクセス制御方法 | |
JP6769150B2 (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP2006293706A (ja) | アプリケーションの更新機能を有するマルチアプリケーションicカード | |
US10732955B2 (en) | Electronic apparatus and information processing system | |
JP6447219B2 (ja) | 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード | |
JP4836707B2 (ja) | 携帯可能電子装置およびicカード | |
JP7420179B1 (ja) | 電子情報記憶媒体、icカード、発行処理方法、及びプログラム | |
JP2006338311A (ja) | 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム | |
JP7323328B2 (ja) | カード処理システム及びカード処理装置 | |
JP2012133656A (ja) | 携帯可能電子装置及びicカード | |
JP2016153945A (ja) | 電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム | |
JP2017021443A (ja) | 電子情報記憶媒体、情報処理方法及び代表アプリケーション | |
JP6915338B2 (ja) | Icカード | |
JP2023007750A (ja) | 電子情報記憶媒体、アプリケーション選択処理方法、及びプログラム | |
JP7043886B2 (ja) | 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos | |
JP7021465B2 (ja) | 電子情報記憶装置、icカード、データ復元方法、及びデータ復元プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190829 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201006 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210420 |