説明

ネイティブ型ICカード、それが実行する方法、及びICカードOS

【課題】個々のネイティブ型ICカードのメモリの空き領域を気にすることなく、しかも、差分リストファイルを必要とせず、アプリケーションの開発を行える。
【解決手段】同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかのリストを記憶する領域とを有するメモリと、
アプリケーションの実行コードをダウンロードする際、リストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、リストを更新する手段と、
実行コマンドを受信すると、リストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する手段とを備えるネイティブ型ICカード。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネイティブ型ICカード、それが実行する方法、及びICカードOSに関する。
【背景技術】
【0002】
近年ICカードの普及が高まるにつれて、1枚のカードに、個々のサービスを実行させるアプリケーションプログラム(以後アプリケーションと略称する)を複数提供することが可能であり、発行後でもアプリケーションを追加する機能を持つ、いわゆる、マルチアプリケーション機能を持つプラットホーム型ICカードの需要が高くなっている。そのため、一般に、代表的なプラットホームとして、Java(登録商標)CardOSを利用したカードがあるが、実行処理速度が遅いことが問題である。
【0003】
これは、プラットホーム型ICカードでは、アプリケーション開発者は、仮想マシン(VM)で処理されるコード、いわゆる中間コードを開発し作成してICカードのメモリに格納し、ICカードはアプリケーションがダウンロード完了時もしくは実行される時に、初めて物理的なメモリ領域を確保するからである。
【0004】
これに対して、一般に、C言語に代表されるネイティブ(Native)型ICカードでは、カードに送られる全てのコマンドを、OSレベルで解釈実行するため実行処理速度が速いことが特徴であるが、発行後のアプリケーションの追加、変更、削除が困難である。
【0005】
これは、ネイティブ型ICカードのメモリには、図1に示すように、ROM、RAM、EEPROMがあり、EEPROMは、追加アプリケーション領域と、データ領域に分れているが、従来、全てのメモリ領域をリニアのアドレスで管理しているために、アプリケーション開発者は、追加アプリケーション領域の空き領域の開始アドレスを認知した上で、この空き領域の開始アドレスに合わせてアプリケーションの実行コードを開発し作成して、この実行コードを、この空き領域の開始アドレスから格納する必要があるからである。
【0006】
このように、追加アプリケーション領域の空き領域の開始アドレスが、追加アプリケーション領域に格納しているアプリケーションの状況によって変化するネイティブ型ICカードでは、アプリケーションダウンロードセンターのように、様々なアプリケーションをサーバに置いて置き、ユーザが自由に好きなアプリケーションをダウンロードするような使い方ができない。
【0007】
また、アプリケーション開発者も、アプリケーションの固定の実行コードを作成できない。
【0008】
このような状況を打開するために、特許文献1では、デフォルト開始アドレス(アプリケーションが未搭載の場合の追加アプリケーション領域で実行コードの格納を開始するアドレス)で作成されたアプリケーションの実行コードと、このアプリケーションの実行コードにおいて、このアプリケーション内の自己関数或いは自己変数(アプリケーション内で作成した関数或いは変数)を絶対アドレスでコールするために必要なアドレス値を格納している箇所を表す差分リストファイルとを受信し、追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと同じ場合、受信した実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、受信した実行コードと関係付けて、データ領域に格納し、追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと異なる場合、受信した差分リストファイルに基づいて、受信した実行コードを変更して、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、変更した実行コードと関係付けて、データ領域に格納するネイティブ型ICカードを開示している。
【0009】
しかしながら、特許文献1のネイティブ型ICカードでは、アプリケーションの実行コード以外に差分リストファイルが必要となる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2011−123639号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、斯かる背景技術に鑑みてなされたもので、個々のネイティブ型ICカードのメモリの空き領域を気にすることなく、しかも、差分リストファイルを必要とせず、アプリケーションの開発を行えることを課題とする。
【課題を解決するための手段】
【0012】
本発明において上記課題を解決するために、まず請求項1の発明では、
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリと、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する手段と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する手段とを備えることを特徴とするネイティブ型ICカードとしたものである。
【0013】
また請求項2の発明では、
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリを備えるネイティブ型ICカードが実行する方法であって、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する工程と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する工程とを含むことを特徴とする方法としたものである。
【0014】
また請求項3の発明では、
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケ
ーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリを備えるネイティブ型ICカードに、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する工程と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する工程とを実行させることを特徴とするプログラムであるICカードOSとしたものである。
【発明の効果】
【0015】
本発明は、個々のネイティブ型ICカードのメモリの空き領域を気にすることなく、しかも、差分リストファイルを必要とせず、アプリケーションの開発を行えるという効果がある。
【図面の簡単な説明】
【0016】
【図1】従来のネイティブ型ICカードのメモリ構成例を示す図。
【図2】アプリケーションをダウンロードするためのシステムのハードウェア構成例を示す図。
【図3】ICカードのハードウエア構成例を示す図。
【図4】本発明のネイティブ型ICカードのメモリ構成例を示す図。
【図5】追加アプリケーションリストの例を示す図。
【図6】アプリケーションの実行コードのダウンロードに係わる処理の流れを示すフローチャート。
【図7】アプリケーションの実行に係わる処理の流れを示すフローチャート。
【発明を実施するための形態】
【0017】
以下に、本発明の一実施形態を説明する。
【0018】
1.構成
まず、アプリケーションをダウンロードするためのシステムは、図2に示すように、サーバと、ICカードリーダライタを有する端末とを備え、これらサーバと端末とが、インターネット等のネットワークに接続されるものである。ここで、サーバは、ダウンロードセンターと呼ばれ、アプリケーションの実行コードを保存するデータベースを有する。
【0019】
本実施形態では、ICカードは、ネイティブ型であって、図3に示すように、CPU、I/F、メモリを有するICチップを備える。
【0020】
CPUは、中央処理装置とも呼ばれ、プログラムを実行して処理を行う装置である。
【0021】
I/Fは、通信インターフェースとも呼ばれ、ICカードリーダライタから電力とクロックの供給を受けるとともに、ICカードリーダライタとCPUとの間の通信を仲介するインターフェースである。
【0022】
メモリには、図4に示すように、ROM、RAM、EEPROMがある。
【0023】
ROMは、読み出し専用のメモリであり、ICカードOSと呼ばれるプログラム、コマンドと呼ばれるプログラムが記憶される。
【0024】
RAMは、CPUがプログラムを実行するために、一時的にデータを記憶する作業用のメモリである。
【0025】
EEPROMは、電気的に内容の書き換えが可能なメモリであって、追加アプリケーション領域と、データ領域とに分かれている。
【0026】
本実施形態では、図4に示すように、追加アプリケーション領域が、複数のページに分割され、個々のページはページ番号で識別され、個々のページは同一のアドレスから開始され、追加アプリケーション領域へのアクセスは、ページ番号と、ページ番号で識別されるページ内のアドレスとで行われるメモリ構造となるように、ICチップのEEPROMのメモリ空間が設計されている。
【0027】
具体的には、ICチップのEEPROMのメモリ空間の設計において、従来は、リニアに追加アプリケーション領域を確保し、例えば、アドレス0x000000から0x018000の96kbyeと設計するが、これを例えば並列に2バイトアドレスで各ページを0x0000から0x0800の2kbye48ページとし、1byteのページ番号と、2byteのアドレスでアクセスするよう設計する。
【0028】
また、データ領域には、追加アプリケーションリストが記憶される。追加アプリケーションリストは、個々のページが、空いていて未使用なのか、空いておらず使用中ならば、どのアプリケーションの実行コードが格納されているのかを管理するためのもので、図5に示すように、「使用用途」、「ページ番号」、「アプリケーションID」の三つの項目の値の組のリストである。項目「ページ番号」は、値として、ページを識別するページ番号を取り、項目「アプリケーションID」は、値として、アプリケーションを識別するアプリケーションIDを取る。また、項目「使用用途」は、値として、55、A5、AAの何れかを取り、55は、項目「ページ番号」の値で識別されるページが未使用であることを意味し、A5は、項目「ページ番号」の値で識別されるページが、項目「アプリケーションID」の値で識別されるアプリケーションの実行コードで使用中であり、このアプリケーションの種類がコマンドであることを意味し、AAは、項目「ページ番号」の値で識別されるページが、そのアプリケーションIDで識別されるアプリケーションの実行コードで使用中であり、このアプリケーションの種類がライブラリであることを意味する。
【0029】
そして、ICカードOSは、アプリケーションの実行コードをダウンロードする際に、追加アプリケーションリストから未使用のページを探し、未使用のページにアプリケーションの実行コードを格納して、追加アプリケーションリストを更新する追加アプリケーションリスト機能と、いずれかのページに格納されているアプリケーションの実行コードを実行する際に、実行するアプリケーションの実行コードが格納されているページに切り替えてアクセスし、このアプリケーションの実行コードに制御を渡すアプリケーション実行機能とを有する。
【0030】
具体的には、通常、オペコードを3byteで管理するところを、上記ICチップを用いて、1byteのページ切り替えと2byteのオペコードで制御する。ページ切り替えの1byteには、切り替えるページのページ番号を格納し、こうすることで、このページ番号と、オペランドが示すページ内のアドレスとで、アクセスする追加アプリケーシ
ョン領域のアドレスをセットする。
【0031】
こうして、アプリケーション開発者は、アプリケーションの実行コードを格納する開始アドレスを、追加アプリケーション領域の空き領域に応じて変化させる必要がなく、一定の開始アドレス(上記例では0x0000から)で良くなり、しかも差分リストファイルが不要となる。
【0032】
そのため、従来のネイティブ型のICカードでは、ダウンロードセンターと呼ばれるデータベースを有するサーバを設け、このデータベースに、アプリケーションの固定値の実行コードを格納しておき、ユーザの好みで自由にアプリケーションの実行コードを選択しダウンロードすることは、差分リストファイルなしには不可能であったが、上記ICチップ及びICカードOSにより可能となる。
【0033】
2.処理
まず、本実施形態のネイティブ型ICカードが行う、アプリケーションの実行コードのダウンロードに係わる処理の流れを、図6のフローチャートに従って説明する。
【0034】
S(STEP)1;
端末のICカードリーダライタからアプリケーションの実行コードを受信する。
【0035】
S(STEP)2;
追加アプリケーションリストを参照して、未使用のページがあるかを確かめ、
未使用のページがない場合、STEP3に進み、
他方、未使用のページがある場合、STEP4に進む。
【0036】
S(STEP)3;
領域不足エラーを端末のICカードリーダライタに応答して、ENDに進む。
【0037】
S(STEP)4;
未使用のページを一つ選び、選んだ未使用のページに、ページ切り替えを実行して、アプリケーションの実行コードをダウンロードするように設定する。
【0038】
S(STEP)5;
選んだ未使用のページに、アプリケーションの実行コードをダウンロードして格納する。
【0039】
S(STEP)6;
追加アプリケーションリストにおいて、選んだページを識別するページ番号と組になっている項目「使用用途」及び項目「アプリケーションID」、それぞれの値を、使用中(ダウンロードしたアプリケーションの種類に応じてAA又はA5)、ダウンロードしたアプリケーションを識別するアプリケーションIDに更新して、ENDに進む。
【0040】
次に、本実施形態のネイティブ型ICカードが行う、アプリケーションの実行に係わる処理の流れを、図7のフローチャートに従って説明する。
【0041】
S(STEP)1;
端末のICカードリーダライタから実行コマンドを受信する。
【0042】
S(STEP)2;
追加アプリケーションリストに、実行コマンドが実行を命じるアプリケーションのアプ
リケーションIDが存在するかを確かめ、
存在しない場合、STEP3に進み、
存在する場合、STEP4に進む。
【0043】
S(STEP)3;
通常の実行コマンドとして処理を続行する。具体的には、ROMに、実行コマンドが命じるコマンドのプログラムが記憶されているかをチェックして、あれば、このプログラムを実行し、なければ、端末のICカードリーダライタにエラーを応答して、ENDに進む。
【0044】
S(STEP)4;
追加アプリケーションリストから、実行コマンドが実行を命じるアプリケーションのアプリケーションIDと組になっているページ番号を読み出し、このページ番号に識別されるページに、ページ切り替えを行い、このページに格納されているアプリケーションの実行コードにおいて、ページ切り替えの1byteに、このページ番号を格納することで、このページ番号と、オペランドが示すページ内のアドレスとで、アクセスする追加アプリケーション領域のアドレスをセットして、このアプリケーションにジャンプする。
【0045】
S(STEP)5;
切り替えたページに格納されているアプリケーションの実行コードを実行する。

【特許請求の範囲】
【請求項1】
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリと、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する手段と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する手段とを備えることを特徴とするネイティブ型ICカード。
【請求項2】
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリを備えるネイティブ型ICカードが実行する方法であって、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する工程と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する工程とを含むことを特徴とする方法。
【請求項3】
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリを備えるネイティブ型ICカードに、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する工程と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する工程とを実行させることを特徴とするプログラムであるICカードOS。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−109383(P2013−109383A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−251435(P2011−251435)
【出願日】平成23年11月17日(2011.11.17)
【出願人】(000003193)凸版印刷株式会社 (10,630)
【Fターム(参考)】