(57)【要約】【課題】ＩＣカード等の電子情報記憶媒体において、一のアプリにコマンド処理を実行させた後に、他のアプリを選択し直すことなく、当該他のアプリにコマンド処理を実行させることを可能とする。【解決手段】複数のアプリを同時に選択状態とし、複数のアプリが選択状態にある場合において、コマンドを受信した場合に、選択状態にあるアプリのうち、当該コマンドに応じたコマンド処理を実行可能なアプリによりコマンド処理を実行する電子情報記憶媒体とする。【選択図】図４
2018060455.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体であって、
前記処理部は、
前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させ、
前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行し、
複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行することを特徴とする電子情報記憶媒体。
【請求項２】
請求項１に記載の電子情報記憶媒体であって、
前記記憶部は、ＯＳと、前記アプリケーション毎に当該アプリケーションが実行可能なコマンド処理を示す可能処理情報を更に記憶し、
前記処理部は、
前記ＯＳを実行することにより、前記非選択コマンドを受信した場合に、前記選択状態情報及び前記可能処理情報を参照して、選択状態にあるアプリケーションであって、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションを特定し、
特定したアプリケーションを実行することにより、受信した前記非選択コマンドに応じたコマンド処理を実行することを特徴とする電子情報記憶媒体。
【請求項３】
請求項１に記載の電子情報記憶媒体であって、
前記処理部は、
前記選択コマンドを受信した場合に、当該選択コマンドにより選択されたアプリケーションを実行することにより、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させ、
前記非選択コマンドを受信した場合に、アプリケーションを実行することにより、前記選択状態情報を参照して当該アプリケーションが選択状態にある場合であって、当該非選択コマンドに応じたコマンド処理を実行可能な場合に、当該コマンド処理を実行することを特徴とする電子情報記憶媒体。
【請求項４】
請求項１乃至３の何れか一項に記載の電子情報記憶媒体であって、
前記記憶部は、複数のアプリケーションが選択状態にある場合において、当該複数のアプリケーションの何れもがアクセス可能なデータを記憶することを特徴とする電子情報記憶媒体。
【請求項５】
複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体によるコマンド処理方法であって、
前記処理部が、
前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させる工程と、
前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行する工程と、
複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行する工程と、
を含むことを特徴とするコマンド処理方法。
【請求項６】
複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体における前記処理部を、
前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させる手段、
前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行する手段、
複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行する手段、
として機能させることを特徴とするコマンド処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣチップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
近年、Java（登録商標）言語に代表されるプログラム言語の解釈機能を備えた仮想マシン（VM:Virtual Machine）が組み込まれ、アプリケーション（以下、「アプリ」という場合がある）の追加／削除が可能なマルチアプリケーションＩＣカードが普及しつつある（例えば、特許文献１）。
【０００３】
こうした複数のアプリを搭載可能なＩＣカードでは、ＳＥＬＥＣＴコマンドにより一つのアプリを選択してからコマンドを送信することにより、選択状態にあるアプリに当該コマンドに応じたコマンド処理を実行させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２０６７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来、ＳＥＬＥＣＴコマンドにより選択することができるアプリは一つだけであるため、選択したアプリ以外のアプリが実行可能なコマンド処理を実行させるためには、改めてＳＥＬＥＣＴコマンドを送信してアプリを選択し直す必要がある。
【０００６】
そこで、本発明は、一のアプリを選択コマンドにより選択して当該アプリにコマンド処理を実行させた後に、他のアプリを選択コマンドにより選択し直すことなく、当該他のアプリにコマンド処理を実行させることができる電子情報記憶媒体等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体であって、前記処理部は、前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させ、前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行し、複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行することを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体であって、前記記憶部は、ＯＳと、前記アプリケーション毎に当該アプリケーションが実行可能なコマンド処理を示す可能処理情報を更に記憶し、前記処理部は、前記ＯＳを実行することにより、前記非選択コマンドを受信した場合に、前記選択状態情報及び前記可能処理情報を参照して、選択状態にあるアプリケーションであって、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションを特定し、特定したアプリケーションを実行することにより、受信した前記非選択コマンドに応じたコマンド処理を実行することを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１に記載の電子情報記憶媒体であって、前記処理部は、前記選択コマンドを受信した場合に、当該選択コマンドにより選択されたアプリケーションを実行することにより、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させ、前記非選択コマンドを受信した場合に、アプリケーションを実行することにより、前記選択状態情報を参照して当該アプリケーションが選択状態にある場合であって、当該非選択コマンドに応じたコマンド処理を実行可能な場合に、当該コマンド処理を実行することを特徴とする。
【００１０】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体であって、前記記憶部は、複数のアプリケーションが選択状態にある場合において、当該複数のアプリケーションの何れもがアクセス可能なデータを記憶することを特徴とする。
【００１１】
請求項５に記載の発明は、複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体による処理方法であって、前記処理部が、前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させる工程と、前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行する工程と、複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行する工程と、を含むことを特徴とする。
【００１２】
請求項６に記載の発明は、複数のアプリケーションを記憶する記憶部と、外部装置からコマンドを受信した場合に処理を行う処理部とを備える電子情報記憶媒体における前記処理部を、前記アプリケーションを選択する選択コマンドを受信した場合に、当該アプリケーションが選択状態にあることを示す選択状態情報を前記記憶部に記憶させる手段、前記選択コマンド以外の非選択コマンドを受信した場合に、前記選択状態にあるアプリケーションにより当該非選択コマンドに応じたコマンド処理を実行する手段、複数のアプリケーションが選択状態にある場合において、前記非選択コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該非選択コマンドに応じたコマンド処理を実行可能なアプリケーションによりコマンド処理を実行する手段、として機能させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、コマンド処理を実行させる複数のアプリを同時に選択状態としておくことにより、一のアプリを選択して当該アプリにコマンド処理を実行させた後に、他のアプリを選択し直すことなく、当該他のアプリにコマンド処理を実行させることができる。
【図面の簡単な説明】
【００１４】
【図１】（Ａ）は、ＩＣチップ１ａのハードウェア構成例を示す図である。（Ｂ）は、ＩＣチップ１ａの機能ブロック例を示す図である。
【図２】（Ａ）は、アプリにコマンド処理を実行させる場合の従来例を示す概念図であり、（Ｂ）は、アプリにコマンド処理を実行させる場合の本実施形態の例を示す概念図である。
【図３】第１実施例における記憶領域Ｍの構成例を示す図である。
【図４】第１実事例におけるＣＰＵ１０動作例を示すフローチャートである。
【図５】第２実施例における記憶領域Ｍの構成例を示す図である。
【図６】第２実事例におけるＣＰＵ１０動作例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について詳細に説明する。まず、図１等を参照して、ＩＣカード１に搭載されたＩＣチップ１ａの概要構成及び機能について説明する。図１（Ａ）は、ＩＣチップ１ａのハードウェア構成例を示す図であり、図１（Ｂ）は、ＩＣチップ１ａの機能ブロック例を示す図である。なお、ＩＣカード１は、キャッシュカード、クレジットカード、電子マネーカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ＩＣチップ１ａは本発明における電子情報記憶媒体を構成するが、この電子情報記憶媒体は通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
【００１６】
［１．ＩＣチップ１ａの概要構成及び機能］
図１（Ａ）に示すように、ＩＣチップ１ａは、ＣＰＵ１０、ＲＯＭ（Read Only Memory）１１、データを一時的に記憶するための揮発性メモリであるＲＡＭ（Random Access Memory）１２、不揮発性メモリであるフラッシュメモリ１３、及びＩ／Ｏ回路１４を備えて構成される。なお、フラッシュメモリの代わりに「Electrically Erasable Programmable Read-Only Memory」を採用しても構わない。
【００１７】
Ｉ／Ｏ回路１４は、外部端末２とのインターフェイスを担う。これにより、ＩＣチップ１ａは、ＩＣリーダ・ライタを備える外部端末２との間で接触又は非接触で通信を行うことができる。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部端末２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１ａが通信機器に組み込まれる場合、外部端末２には通信機器の機能を担う制御部が該当する。
【００１８】
ＲＡＭ１２は、ＯＳやアプリに関する情報を記憶する記憶領域を有する。また、ＲＡＭ１２は、外部端末２から受信したＳＥＬＥＣＴコマンドにより選択されたアプリを示す選択状態情報を記憶する。更に、ＲＡＭ１２は、アプリ毎に実行可能なコマンド処理に対応するコマンドを示すコマンドリストを記憶する。
【００１９】
フラッシュメモリ１３には、ＯＳやアプリといった各種プログラムを記憶する。
【００２０】
ＣＰＵ１０は、コンピュータの一例であり、図１（Ｂ）に示すハードウェアとして、フラッシュメモリ１３に記憶された各種プログラムを実行する演算装置である。各種プログラムには、仮想マシンプログラム、Ｊａｖａ等のプログラム言語で記述されるアプリが含まれる。ＯＳ、及び仮想マシンプログラムは、複数のネイティブコード（実行コード群）で記述される。ＯＳは、ＩＣチップ１ａの動作を直接コントロールするソフトウェアである。ＯＳ、及び仮想マシンプログラムは、ＲＯＭ１１に記憶されてもよい。なお、以下、ＯＳ又はアプリを主語として処理の説明をする場合、実際には、ＣＰＵ１０がＯＳ又はアプリを実行することにより処理が行われる。
【００２１】
仮想マシンプログラムは、ＣＰＵ１０を仮想マシンとして機能させるプログラムである。ＯＳ上で動作する仮想マシンは、ソースコードとネイティブコードとの間の中間コードであるバイトコードを解釈、実行する。プログラマーにより作成されたアプリには、ソースコードが例えば実行順に記述される。そして、このようなアプリは、コンパイラによって仮想マシンの実行形式に変換（つまり、ソースコードからバイトコードに変換）され、インストール（フラッシュメモリ１３に記憶）されることになる。このため、フラッシュメモリ１３に記憶されているアプリは、複数の命令それぞれを示すバイトコードを例えば実行順に記述する。
【００２２】
仮想マシンは、アプリに記述されたバイトコードを実行順に取得し、該取得したバイトコードを解釈して当該バイトコードが示す命令を実行する。当該命令の実行による処理を、バイトコード処理という。バイトコード処理の内容は、仮想マシンプログラムに規定されている。また、仮想マシンは、アプリに記述された複数のバイトコードのうち、次に実行するべきバイトコードの位置（アプリにおける位置）を特定可能な特定情報を指し示すプログラムカウンタを備える。ここで、特定情報の例として、バイトコードのアドレス（バイトコードが記憶されたフラッシュメモリ１３におけるアドレス）、バイトコードのオフセット、バイトコードのラベル値が挙げられる。例えば、公知のＣｏｍｐｕｔｅｄ  ｇｏｔｏアルゴリズムでは、ＧＮＵ  Ｃ対応の拡張機能であるｌａｂｅｌ  ａｓ  ｖａｌｕｅにより、ラベル値としてのアドレスに直接ジャンプすることができる。
【００２３】
次に、図２を用いて、ＩＣチップ１ａが外部端末２からコマンドを受信した際のＣＰＵ１０の動作について簡単に説明する。外部端末２がＩＣチップ１ａにインストールされているアプリにコマンドを送信し、コマンドに応じたコマンド処理を実行させるためには、予め当該コマンド処理を実行させるアプリを選択してＩＣチップ１ａ内において選択状態としておく必要がある。例えば、ＩＣチップ１ａにアプリ１、アプリ２がインストールされている場合に、外部端末２がアプリ１にコマンド処理を実行させるためには、まず、アプリ１を選択するＳＥＬＥＣＴコマンドをＩＣチップ１ａに送信し、ＩＣチップ１ａ内においてアプリ１が選択状態となった後に、アプリ１が処理可能なコマンドを送信することにより、コマンド処理を実行させることができる。そして、ＩＣチップ１ａのＣＰＵ１０は、コマンド処理を実行すると、その結果を含むレスポンスを外部端末２に送信する。
【００２４】
なお、従来、ＩＣチップ１ａ内において選択状態とすることができるアプリの数は１つであった。したがって、図２（Ａ）に示すように、アプリＸにコマンド処理Ａを実行させ、次いで、アプリＹにコマンド処理Ｃを実行させ、次いで、アプリＸにコマンド処理Ｂを実行させる場合には、
（１）アプリＸを選択するＳＥＬＥＣＴコマンドを送信
→（２）アプリＸにコマンド処理Ａを実行させるためのコマンドを送信
→（３）アプリＹを選択するＳＥＬＥＣＴコマンドを送信
→（４）アプリＹにコマンド処理Ｃを実行させるためのコマンドを送信
→（５）アプリＸを選択するＳＥＬＥＣＴコマンドを送信
→（６）アプリＸにコマンド処理Ｂを実行させるためのコマンドを送信
という手順を踏まなければならなかった。
【００２５】
これに対して、本実施形態のＩＣチップ１ａでは、同時に複数のアプリを選択状態として保持することができるように構成されている（具体的な構成例については後述する）。したがって、上記例と同様に、アプリＸにコマンド処理Ａを実行させ、次いで、アプリＹにコマンド処理Ｃを実行させ、次いで、アプリＸにコマンド処理Ｂを実行させる場合には、
（１）アプリＸを選択するＳＥＬＥＣＴコマンドを送信
→（２）アプリＹを選択するＳＥＬＥＣＴコマンドを送信
→（３）アプリＸにコマンド処理Ａを実行させるためのコマンドを送信
→（４）アプリＹにコマンド処理Ｃを実行させるためのコマンドを送信
→（５）アプリＸにコマンド処理Ｂを実行させるためのコマンドを送信
という手順を踏めばよい。
【００２６】
すなわち、本実施形態のＩＣチップ１ａでは、同時に複数のアプリを選択状態として保持することができることから、アプリを選択し直す必要がないため外部端末２とＩＣチップ１ａ間でのコマンド及びレスポンスをやりとりする回数を減少させることができる。なお、このとき、ＩＣチップ１ａは、アプリＸ及びアプリＹによりアクセスされるデータを共用データとして保持することとする。これにより、アプリＸとアプリＹを、一つの共用データについて処理可能ないわば一つのアプリとして取り扱うことができる。
【００２７】
また、従来では、例えば、アプリＰがコマンド処理Ｄ及びコマンド処理Ｅを実行可能である場合において、更に、コマンド処理Ｆを実行可能とするためには、アプリＰを削除して、コマンド処理Ｆに対応するプログラムを含む改訂版のアプリＰをインストールする必要があった。これに対して、本実施形態のＩＣチップ１ａでは、同時に複数のアプリを選択状態として保持することができることから、コマンド処理Ｆに対応するプログラムを含むアプリＱを追加でインストールし、アプリＰ及びアプリＱを選択状態とすることにより、適宜、コマンド処理Ｄ、コマンド処理Ｅ及びコマンド処理Ｆを実行させることができるようになる。すなわち、コマンド処理Ｆに対応するパッチアプリをインストールすることでアプリＰが実行できなかったコマンド処理を実行させることができるようになる。なお、このときも、ＩＣチップ１ａは、アプリＰ及びアプリＱによりアクセスされるデータを共用データとして保持することとする。これにより、アプリＱをアプリＰの一部（パッチアプリ）として取り扱うことができる。
【００２８】
なお、従来であれば一つのアプリしか選択状態とすることができなかったため、異なるアプリを選択するＳＥＬＥＣＴコマンドを複数回受信した場合には、直近に受信したＳＥＬＥＣＴコマンドにより選択されたアプリのみが選択状態として保持されていた。これに対して、本実施形態のＩＣチップ１ａは、例えば、ＳＥＬＥＣＴコマンドを受信する度に、当該ＳＥＬＥＣＴコマンドにより選択されたアプリを選択状態として保持し、選択状態にあるアプリを指定するＳＥＬＥＣＴ解除コマンドを受信した場合に、当該指定されたアプリを非選択状態とする。
【００２９】
本実施形態のＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、複数のアプリを記憶するフラッシュメモリ１３（「記憶部」の一例）と、外部端末２（「外部装置」の一例）からコマンドを受信した場合に処理を行うＣＰＵ１０（「処理部」の一例）とを備え、ＣＰＵ１０は、アプリを選択するＳＥＬＥＣＴコマンド（「選択コマンド」の一例）を受信した場合に、当該アプリが選択状態にあることを示す選択状態情報をＲＡＭ１２（「記憶部」の一例）に記憶させ、ＳＥＬＥＣＴコマンド以外のコマンドを受信した場合に、選択状態にあるアプリにより当該コマンドに応じたコマンド処理を実行し、複数のアプリが選択状態にある場合において、当該コマンドを受信した場合に、選択状態にあるアプリケーションのうち、当該コマンドに応じたコマンド処理を実行可能なアプリによりコマンド処理を実行する。
【００３０】
したがって、本実施形態のＩＣチップ１ａによれば、コマンド処理を実行させる複数のアプリを同時に選択状態としておくことにより、一のアプリを選択して当該アプリにコマンド処理を実行させた後に、他のアプリを選択し直すことなく、当該他のアプリにコマンド処理を実行させることができる。
【００３１】
次に、本発明に係るＩＣチップ１ａの実施例を第１実施例、第２実施例に分けて説明する。第１実施例は、ＯＳが選択状態にあるアプリを管理する実施例であり、第２実施例は、各アプリが自らが選択状態にあるかを管理する実施例である。なお、何れの実施例においても、ＩＣチップ１ａには、アプリ１、アプリ２、アプリ３、アプリ４がインストールされている。また、第１実施例を図３、図４を用いて説明し、第２実施例を図５、図６を用いて説明する。
【００３２】
［２．第１実施例］
図３は、第１実施例におけるＲＡＭ１２上の記憶領域Ｍを示す概念図である。記憶領域Ｍには、ＩＣチップ１ａのＯＳが使用するＯＳ用記憶領域２００と、選択状態にあるアプリ（複数のアプリが選択状態にある場合は当該複数のアプリ）が使用する選択状態アプリ用記憶領域２１０と、アプリ１が使用するアプリ１用記憶領域２２０と、アプリ２が使用するアプリ２用記憶領域２３０と、アプリ３が使用するアプリ３用記憶領域２４０と、アプリ４が使用するアプリ４用記憶領域２５０を有する。
【００３３】
ＯＳ用記憶領域２００には、ＯＳ用データ２０１、選択状態情報２０２、及びコマンドリスト２０３が記憶されている。選択状態情報２０２は、外部端末２から受信したＳＥＬＥＣＴコマンドにより選択されたアプリを識別するための情報である。図３の例では、「○」で示されているアプリ（すなわち、アプリ１及びアプリ４）が選択状態にあることを示し、「Ｘ」で示されているアプリ（すなわち、アプリ２及びアプリ３）が非選択状態にあることを示している。また、コマンドリスト２０３は、アプリ毎に、受信した場合にコマンド処理が実行可能なコマンド（「ＣＬＡ」及び「ＩＮＳ」の組み合わせで識別されるコマンド）を示している。図３の例では、アプリ１は、「ＣＬＡ」、「ＩＮＳ」の組み合わせが「００」、「０１」又は「００」、「０２」であるコマンドについてコマンド処理を実行可能であることを示している。ＯＳ用データ２０１は、選択状態情報２０２、及びコマンドリスト２０３以外のＯＳが処理を行うために必要なデータを含む。
【００３４】
選択状態アプリ用記憶領域２１０には、選択状態にあるアプリがアクセス可能な共用データ２１１が記憶される。例えば、共用データ２１１が、ポイントデータであると仮定した場合に、選択状態にあるアプリ１のコマンド処理によりポイントの加算や減算がなされ、選択状態にあるアプリ４のコマンド処理によりポイントが外部端末２に参照するために取得される。
【００３５】
また、アプリ１用記憶領域２２０には、アプリ１がアクセス可能なアプリ１用データ２２１が記憶され、アプリ２用記憶領域２３０には、アプリ２がアクセス可能なアプリ２用データ２３１が記憶され、アプリ３用記憶領域２４０には、アプリ３がアクセス可能なアプリ３用データ２４１が記憶され、アプリ４用記憶領域２５０には、アプリ４がアクセス可能なアプリ４用データ２５１が記憶されている。
【００３６】
図４は、第１実施例におけるＣＰＵ１０の動作例を示すフローチャートである。なお、本フローチャートに示す処理は、外部端末２からコマンドを受信した場合に実行される。
【００３７】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、外部端末２から受信したコマンドがＳＥＬＥＣＴコマンド（「選択コマンド」の一例）であるか否かを判定する（ステップＳ１０１）。ＯＳは、ＳＥＬＥＣＴコマンドを受信したと判定した場合には（ステップＳ１０１：ＹＥＳ）、ＳＥＬＥＣＴコマンドで選択されたアプリを選択状態とする（ステップＳ１０２）。例えば、アプリ１が選択されたのであれば、選択状態情報２０２におけるアプリ１について選択状態を「〇」に更新する。次いで、ＯＳは、選択状態情報２０２の更新結果を含むレスポンスを外部端末２に送信し（ステップＳ１０６）、当該フローチャートに示す処理を終了する。
【００３８】
一方、ＯＳは、ＳＥＬＥＣＴコマンドを受信していない（すなわち、ＳＥＬＥＣＴコマンド以外のコマンド（「非選択コマンド」の一例）を受信したと判定した場合には（ステップＳ１０１：ＮＯ）、選択状態情報２０２及びコマンドリスト２０３を参照し、アプリを特定する（ステップＳ１０３）。具体的には、まず、選択状態情報２０２を参照し、選択状態にあるアプリを特定し、次いで、特定したアプリの中から、受信したコマンドに含まれる「ＣＬＡ」及び「ＩＮＳ」の組み合わせとコマンドリスト２０３に含まれる「ＣＬＡ」及び「ＩＮＳ」の組み合わせを比較し、一致するアプリを特定する。なお、図示しないが、該当するアプリが存在しない場合には、エラーを示すレスポンスを外部端末２に送信する。
【００３９】
次に、ＯＳは、ステップＳ１０３の処理で特定したアプリに、受信したコマンドを受け渡す（ステップＳ１０４）。
【００４０】
これに対して、アプリ（を実行するＣＰＵ１０）は、ＯＳからコマンドを受け取ると（ステップＳ２０１）、コマンド処理を実行し（ステップＳ２０２）、次いで、コマンド処理の結果を示すコマンド処理結果情報をＯＳに受け渡す（ステップＳ２０３）。
【００４１】
これに対して、ＯＳ（を実行するＣＰＵ１０）は、アプリからコマンド処理結果情報を受け取ると（ステップＳ１０５）、コマンド処理結果情報を含むレスポンスを外部端末２に送信し（ステップＳ１０６）、当該フローチャートに示す処理を終了する。
【００４２】
以上説明したように第１実施例におけるＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、ＲＡＭ１２（「記憶部」の一例）が、ＯＳと、アプリ毎に当該アプリが実行可能なコマンド処理を示すコマンドリスト２０３（「可能処理情報」の一例）を記憶し、ＣＰＵ１０は、ＯＳを実行することにより、ＳＥＬＥＣＴコマンド以外のコマンド（「非選択コマンド」の一例）を受信した場合に、選択状態情報２０２及びコマンドリスト２０３を参照して、選択状態にあるアプリであって、当該コマンドに応じたコマンド処理を実行可能なアプリを特定し、特定したアプリを実行することにより、受信したコマンドに応じたコマンド処理を実行する。
【００４３】
［３．第２実施例］
図５は、第２実施例におけるＲＡＭ１２の記憶領域Ｍを示す概念図である。記憶領域Ｍには、ＩＣチップ１ａのＯＳが使用するＯＳ用記憶領域２００と、選択状態にあるアプリ（複数のアプリが選択状態にある場合は当該複数のアプリ）が使用する選択状態アプリ用記憶領域２１０と、アプリ１が使用するアプリ１用記憶領域２２０と、アプリ２が使用するアプリ２用記憶領域２３０と、アプリ３が使用するアプリ３用記憶領域２４０と、アプリ４が使用するアプリ４用記憶領域２５０を有する。
【００４４】
ＯＳ用記憶領域２００には、ＯＳ用データ２０１が記憶されている。
【００４５】
選択状態アプリ用記憶領域２１０には、選択状態にあるアプリがアクセス可能な共用データ２１１が記憶される。共用データ２１１は、例えば、ポイントデータであって、選択状態にあるアプリ１のコマンドにより加算や減算され、選択状態にアプリ４のコマンドにより外部端末２が参照するために取得される。
【００４６】
また、アプリ１用記憶領域２２０には、アプリ１がアクセス可能なアプリ１用データ２２１、選択状態情報２２２、及びコマンドリスト２２３が記憶されている。選択状態情報２２２は、アプリ１が選択状態にあるか否かを示す情報であり、「〇」が格納されている場合にはアプリ１が選択状態にあることを示し、「Ｘ」が格納されている場合にはアプリ１が選択状態にないことを示している。選択状態情報２２２は、アプリ１がアプリ１を選択するＳＥＬＥＣＴコマンドを受け取った場合に「〇」に更新する。コマンドリスト２２３は、アプリ１が、受信した場合にコマンド処理が実行可能なコマンド（「ＣＬＡ」及び「ＩＮＳ」の組み合わせで識別されるコマンド）を示している。図５の例では、アプリ１は、「ＣＬＡ」、「ＩＮＳ」の組み合わせが「００」、「０１」又は「００」、「０２」であるコマンドについてコマンド処理を実行可能であることを示している。
【００４７】
アプリ１用記憶領域２２０と同様に、アプリ２用記憶領域２３０には、アプリ２がアクセス可能なアプリ２用データ２３１、選択状態情報２３２、及びコマンドリスト２３３が記憶され、アプリ３用記憶領域２４０には、アプリ３がアクセス可能なアプリ３用データ２４１、選択状態情報２４２、及びコマンドリスト２４３が記憶され、アプリ４用記憶領域２５０には、アプリ４がアクセス可能なアプリ４用データ２５１、選択状態情報２５２、及びコマンドリスト２５３が記憶される。なお、選択状態情報２３２、選択状態情報２４２、選択状態情報２５２は、選択状態情報２２２と同様なので説明を省略する。また、コマンドリスト２３３、コマンドリスト２４３、コマンドリスト２５３についてもコマンドリスト２２３と同様なので説明を省略する。
【００４８】
図６は、第２実施例におけるＣＰＵ１０の動作例を示すフローチャートである。なお、本フローチャートに示す処理は、外部端末２からコマンドを受信した場合に実行される。
【００４９】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、外部端末２から受信したコマンドがＳＥＬＥＣＴコマンド（「選択コマンド」の一例）であるか否かを判定する（ステップＳ３０１）。ＯＳは、ＳＥＬＥＣＴコマンドを受信したと判定した場合には（ステップＳ３０１：ＹＥＳ）、ＳＥＬＥＣＴコマンドで選択されたアプリに、選択されたことを示す選択情報を受け渡す（ステップＳ３０２）。
【００５０】
これに対して、アプリ（を実行するＣＰＵ１０）は、ＯＳから選択情報を受け取ると（ステップＳ４０１）、選択状態情報を選択状態に更新し（ステップＳ４０２）、更新結果を示す更新結果情報をＯＳに受け渡す（ステップＳ４０３）。ステップＳ４０２の処理について、例えば、選択情報を受け取ったアプリがアプリ１である場合には、アプリ１が選択状態情報２２２を「〇」に更新する。
【００５１】
これに対して、ＯＳ（を実行するＣＰＵ１０）は、更新結果情報を受け取ると（ステップＳ３０３）、更新結果情報を含むレスポンスを外部端末２に送信し（ステップＳ３０９）、当該フローチャートに示す処理を終了する。
【００５２】
一方、ＯＳは、ステップＳ３０１の処理において、ＳＥＬＥＣＴコマンドを受信していない（すなわち、ＳＥＬＥＣＴコマンド以外のコマンド（「非選択コマンド」の一例）を受信したと判定した場合には（ステップＳ３０１：ＮＯ）、インストールされているアプリの中から一つのアプリを選択する（ステップＳ３０４）。次いで、ステップＳ３０４の処理で選択したアプリに、受信したコマンドを受け渡す（ステップＳ３０５）。
【００５３】
これに対して、アプリ（を実行するＣＰＵ１０）は、ＯＳからコマンドを受け取ると（ステップＳ４１１）、自アプリが選択状態であり、且つ、当該コマンドに対応するコマンド処理を実行可能か否かを判定する（ステップＳ４１２）。例えば、コマンドを受け取ったアプリがアプリ１である場合には、アプリ１は、選択状態情報２２２を参照して「〇」である場合には自アプリが選択状態であると判定する。また、アプリ１は、受け取ったコマンドに含まれる「ＣＬＡ」及び「ＩＮＳ」の組み合わせとコマンドリスト２２３に含まれる「ＣＬＡ」及び「ＩＮＳ」の組み合わせを比較し、一致した場合に、受け取ったコマンドに対応するコマンド処理を実行可能と判定する。
【００５４】
アプリは、自アプリが選択状態であり、且つ、当該コマンドに対応するコマンド処理を実行可能と判定した場合には（ステップＳ４１２：ＹＥＳ）、当該コマンド処理を実行し（ステップＳ４１３）、次いで、コマンド処理の結果を示すコマンド処理結果情報をＯＳに受け渡す（ステップＳ４１４）。
【００５５】
一方、アプリは、自アプリが選択状態でない、又は、当該コマンドに対応するコマンド処理を実行可能でないと判定した場合には（ステップＳ４１２：ＮＯ）、自アプリでは処理を行えないことを示す処理不能情報をＯＳに受け渡す（ステップＳ４１５）。
【００５６】
これに対して、ＯＳ（を実行するＣＰＵ１０）は、アプリからコマンド処理結果情報又は処理不能情報を受け取る（ステップＳ３０６）。次いで、ＯＳは、アプリからコマンド処理結果情報を受け取ったか否かを判定する（ステップＳ３０７）。
【００５７】
このとき、ＯＳは、アプリからコマンド処理結果情報を受け取ったと判定した場合には（ステップＳ３０７：ＹＥＳ）、次いで、コマンド処理結果情報を含むレスポンスを外部端末２に送信し（ステップＳ３０９）、当該フローチャートに示す処理を終了する。一方、ＯＳは、アプリからコマンド処理結果情報を受け取っていないと判定した場合（処理不能情報を受け取ったと判定した場合）には（ステップＳ３０７：ＮＯ）、次いで、全てのアプリを選択したか否かを判定する（ステップＳ３０８）。ＯＳは全てのアプリを選択していないと判定した場合には（ステップＳ３０８：ＮＯ）、ステップＳ３０４の処理に移行する。つまり、ＯＳは、コマンド処理結果情報が返されるまで順次アプリにコマンドを受け渡していく。ＯＳは、全てのアプリを選択したと判定した場合には（ステップＳ３０８：ＹＥＳ）、処理不能情報を含むレスポンスを外部端末２に送信し（ステップＳ３０９）、当該フローチャートに示す処理を終了する。
【００５８】
以上説明したように、第２実施例におけるＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、ＣＰＵ１０が、ＳＥＬＥＣＴコマンドを受信した場合に、当該ＳＥＬＥＣＴコマンドにより選択されたアプリを実行することにより、当該アプリが選択状態にあることを示す選択状態情報２２２、２３２、２４２、２５２をＲＡＭ１２（「記憶部」の一例）に記憶させ、ＳＥＬＥＣＴコマンド以外のコマンド（「非選択コマンド」の一例）を受信した場合に、アプリを実行することにより、選択状態情報２２２、２３２、２４２、２５２を参照して当該アプリが選択状態にある場合であって、当該コマンドに応じたコマンド処理を実行可能な場合に、当該コマンド処理を実行する。
【００５９】
また、第１実施例及び第２実施例におけるＩＣチップ１ａは、ＲＡＭ１２（「記憶部」の一例）は、複数のアプリが選択状態にある場合において、当該複数のアプリケーションの何れもがアクセス可能な共用データ２１１を記憶する。これにより複数のアプリを、一つの共用データ２１１について処理可能ないわば一つのアプリとして取り扱うことができる。
【００６０】
なお、第１実施例及び第２実施例では、記憶領域ＭをＲＡＭ１２上の領域として説明したが、記憶領域Ｍ又はその一部をフラッシュメモリ１３上に設けることとしてもよい。
【符号の説明】
【００６１】
１  ＩＣカード
２  外部端末
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  フラッシュメモリ
１４  Ｉ／Ｏ回路
【図１】
2018060455.tif 000003
【図２】
2018060455.tif 000004
【図３】
2018060455.tif 000005
【図４】
2018060455.tif 000006
【図５】
2018060455.tif 000007
【図６】
2018060455.tif 000008