(57)【要約】【課題】個々のネイティブ型ＩＣカードのメモリの空き領域を気にすることなく、しかも、差分リストファイルを必要とせず、アプリケーションの開発を行える。【解決手段】同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかのリストを記憶する領域とを有するメモリと、  アプリケーションの実行コードをダウンロードする際、リストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、リストを更新する手段と、  実行コマンドを受信すると、リストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する手段とを備えるネイティブ型ＩＣカード。【選択図】図４
2013109383.tif 000002
【特許請求の範囲】
【請求項１】
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリと、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する手段と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する手段とを備えることを特徴とするネイティブ型ＩＣカード。
【請求項２】
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリを備えるネイティブ型ＩＣカードが実行する方法であって、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する工程と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する工程とを含むことを特徴とする方法。
【請求項３】
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリを備えるネイティブ型ＩＣカードに、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する工程と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する工程とを実行させることを特徴とするプログラムであるＩＣカードＯＳ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネイティブ型ＩＣカード、それが実行する方法、及びＩＣカードＯＳに関する。
【背景技術】
【０００２】
近年ＩＣカードの普及が高まるにつれて、１枚のカードに、個々のサービスを実行させるアプリケーションプログラム（以後アプリケーションと略称する）を複数提供することが可能であり、発行後でもアプリケーションを追加する機能を持つ、いわゆる、マルチアプリケーション機能を持つプラットホーム型ＩＣカードの需要が高くなっている。そのため、一般に、代表的なプラットホームとして、Ｊａｖａ（登録商標）ＣａｒｄＯＳを利用したカードがあるが、実行処理速度が遅いことが問題である。
【０００３】
これは、プラットホーム型ＩＣカードでは、アプリケーション開発者は、仮想マシン（ＶＭ）で処理されるコード、いわゆる中間コードを開発し作成してＩＣカードのメモリに格納し、ＩＣカードはアプリケーションがダウンロード完了時もしくは実行される時に、初めて物理的なメモリ領域を確保するからである。
【０００４】
これに対して、一般に、Ｃ言語に代表されるネイティブ（Ｎａｔｉｖｅ）型ＩＣカードでは、カードに送られる全てのコマンドを、ＯＳレベルで解釈実行するため実行処理速度が速いことが特徴であるが、発行後のアプリケーションの追加、変更、削除が困難である。
【０００５】
これは、ネイティブ型ＩＣカードのメモリには、図１に示すように、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭがあり、ＥＥＰＲＯＭは、追加アプリケーション領域と、データ領域に分れているが、従来、全てのメモリ領域をリニアのアドレスで管理しているために、アプリケーション開発者は、追加アプリケーション領域の空き領域の開始アドレスを認知した上で、この空き領域の開始アドレスに合わせてアプリケーションの実行コードを開発し作成して、この実行コードを、この空き領域の開始アドレスから格納する必要があるからである。
【０００６】
このように、追加アプリケーション領域の空き領域の開始アドレスが、追加アプリケーション領域に格納しているアプリケーションの状況によって変化するネイティブ型ＩＣカードでは、アプリケーションダウンロードセンターのように、様々なアプリケーションをサーバに置いて置き、ユーザが自由に好きなアプリケーションをダウンロードするような使い方ができない。
【０００７】
また、アプリケーション開発者も、アプリケーションの固定の実行コードを作成できない。
【０００８】
このような状況を打開するために、特許文献１では、デフォルト開始アドレス（アプリケーションが未搭載の場合の追加アプリケーション領域で実行コードの格納を開始するアドレス）で作成されたアプリケーションの実行コードと、このアプリケーションの実行コードにおいて、このアプリケーション内の自己関数或いは自己変数（アプリケーション内で作成した関数或いは変数）を絶対アドレスでコールするために必要なアドレス値を格納している箇所を表す差分リストファイルとを受信し、追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと同じ場合、受信した実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、受信した実行コードと関係付けて、データ領域に格納し、追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと異なる場合、受信した差分リストファイルに基づいて、受信した実行コードを変更して、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、変更した実行コードと関係付けて、データ領域に格納するネイティブ型ＩＣカードを開示している。
【０００９】
しかしながら、特許文献１のネイティブ型ＩＣカードでは、アプリケーションの実行コード以外に差分リストファイルが必要となる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１１−１２３６３９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、斯かる背景技術に鑑みてなされたもので、個々のネイティブ型ＩＣカードのメモリの空き領域を気にすることなく、しかも、差分リストファイルを必要とせず、アプリケーションの開発を行えることを課題とする。
【課題を解決するための手段】
【００１２】
本発明において上記課題を解決するために、まず請求項１の発明では、
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリと、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する手段と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する手段とを備えることを特徴とするネイティブ型ＩＣカードとしたものである。
【００１３】
また請求項２の発明では、
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリを備えるネイティブ型ＩＣカードが実行する方法であって、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する工程と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する工程とを含むことを特徴とする方法としたものである。
【００１４】
また請求項３の発明では、
同一のアドレスから開始する複数のページに分割された領域と、ページ毎に、アプリケ
ーションの実行コードが格納されて使用中か否か、使用中ならば、どのようなアプリケーションの実行コードが格納されているのかをリストにした追加アプリケーションリストを記憶する領域とを有するメモリを備えるネイティブ型ＩＣカードに、
アプリケーションの実行コードをダウンロードする際、追加アプリケーションリストを参照して、未使用のページを探し、このページに、アプリケーションの実行コードを格納し、追加アプリケーションリストを更新する工程と、
実行コマンドを受信すると、追加アプリケーションリストを参照して、実行コマンドが実行を命ずるアプリケーションの実行コードが格納されているページを探し、このページに格納されているアプリケーションの実行コードを実行する工程とを実行させることを特徴とするプログラムであるＩＣカードＯＳとしたものである。
【発明の効果】
【００１５】
本発明は、個々のネイティブ型ＩＣカードのメモリの空き領域を気にすることなく、しかも、差分リストファイルを必要とせず、アプリケーションの開発を行えるという効果がある。
【図面の簡単な説明】
【００１６】
【図１】従来のネイティブ型ＩＣカードのメモリ構成例を示す図。
【図２】アプリケーションをダウンロードするためのシステムのハードウェア構成例を示す図。
【図３】ＩＣカードのハードウエア構成例を示す図。
【図４】本発明のネイティブ型ＩＣカードのメモリ構成例を示す図。
【図５】追加アプリケーションリストの例を示す図。
【図６】アプリケーションの実行コードのダウンロードに係わる処理の流れを示すフローチャート。
【図７】アプリケーションの実行に係わる処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１７】
以下に、本発明の一実施形態を説明する。
【００１８】
１．構成
まず、アプリケーションをダウンロードするためのシステムは、図２に示すように、サーバと、ＩＣカードリーダライタを有する端末とを備え、これらサーバと端末とが、インターネット等のネットワークに接続されるものである。ここで、サーバは、ダウンロードセンターと呼ばれ、アプリケーションの実行コードを保存するデータベースを有する。
【００１９】
本実施形態では、ＩＣカードは、ネイティブ型であって、図３に示すように、ＣＰＵ、Ｉ／Ｆ、メモリを有するＩＣチップを備える。
【００２０】
ＣＰＵは、中央処理装置とも呼ばれ、プログラムを実行して処理を行う装置である。
【００２１】
Ｉ／Ｆは、通信インターフェースとも呼ばれ、ＩＣカードリーダライタから電力とクロックの供給を受けるとともに、ＩＣカードリーダライタとＣＰＵとの間の通信を仲介するインターフェースである。
【００２２】
メモリには、図４に示すように、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭがある。
【００２３】
ＲＯＭは、読み出し専用のメモリであり、ＩＣカードＯＳと呼ばれるプログラム、コマンドと呼ばれるプログラムが記憶される。
【００２４】
ＲＡＭは、ＣＰＵがプログラムを実行するために、一時的にデータを記憶する作業用のメモリである。
【００２５】
ＥＥＰＲＯＭは、電気的に内容の書き換えが可能なメモリであって、追加アプリケーション領域と、データ領域とに分かれている。
【００２６】
本実施形態では、図４に示すように、追加アプリケーション領域が、複数のページに分割され、個々のページはページ番号で識別され、個々のページは同一のアドレスから開始され、追加アプリケーション領域へのアクセスは、ページ番号と、ページ番号で識別されるページ内のアドレスとで行われるメモリ構造となるように、ＩＣチップのＥＥＰＲＯＭのメモリ空間が設計されている。
【００２７】
具体的には、ＩＣチップのＥＥＰＲＯＭのメモリ空間の設計において、従来は、リニアに追加アプリケーション領域を確保し、例えば、アドレス０ｘ００００００から０ｘ０１８０００の９６ｋｂｙｅと設計するが、これを例えば並列に２バイトアドレスで各ページを０ｘ００００から０ｘ０８００の２ｋｂｙｅ４８ページとし、１ｂｙｔｅのページ番号と、２ｂｙｔｅのアドレスでアクセスするよう設計する。
【００２８】
また、データ領域には、追加アプリケーションリストが記憶される。追加アプリケーションリストは、個々のページが、空いていて未使用なのか、空いておらず使用中ならば、どのアプリケーションの実行コードが格納されているのかを管理するためのもので、図５に示すように、「使用用途」、「ページ番号」、「アプリケーションＩＤ」の三つの項目の値の組のリストである。項目「ページ番号」は、値として、ページを識別するページ番号を取り、項目「アプリケーションＩＤ」は、値として、アプリケーションを識別するアプリケーションＩＤを取る。また、項目「使用用途」は、値として、５５、Ａ５、ＡＡの何れかを取り、５５は、項目「ページ番号」の値で識別されるページが未使用であることを意味し、Ａ５は、項目「ページ番号」の値で識別されるページが、項目「アプリケーションＩＤ」の値で識別されるアプリケーションの実行コードで使用中であり、このアプリケーションの種類がコマンドであることを意味し、ＡＡは、項目「ページ番号」の値で識別されるページが、そのアプリケーションＩＤで識別されるアプリケーションの実行コードで使用中であり、このアプリケーションの種類がライブラリであることを意味する。
【００２９】
そして、ＩＣカードＯＳは、アプリケーションの実行コードをダウンロードする際に、追加アプリケーションリストから未使用のページを探し、未使用のページにアプリケーションの実行コードを格納して、追加アプリケーションリストを更新する追加アプリケーションリスト機能と、いずれかのページに格納されているアプリケーションの実行コードを実行する際に、実行するアプリケーションの実行コードが格納されているページに切り替えてアクセスし、このアプリケーションの実行コードに制御を渡すアプリケーション実行機能とを有する。
【００３０】
具体的には、通常、オペコードを３ｂｙｔｅで管理するところを、上記ＩＣチップを用いて、１ｂｙｔｅのページ切り替えと２ｂｙｔｅのオペコードで制御する。ページ切り替えの１ｂｙｔｅには、切り替えるページのページ番号を格納し、こうすることで、このページ番号と、オペランドが示すページ内のアドレスとで、アクセスする追加アプリケーシ
ョン領域のアドレスをセットする。
【００３１】
こうして、アプリケーション開発者は、アプリケーションの実行コードを格納する開始アドレスを、追加アプリケーション領域の空き領域に応じて変化させる必要がなく、一定の開始アドレス（上記例では０ｘ００００から）で良くなり、しかも差分リストファイルが不要となる。
【００３２】
そのため、従来のネイティブ型のＩＣカードでは、ダウンロードセンターと呼ばれるデータベースを有するサーバを設け、このデータベースに、アプリケーションの固定値の実行コードを格納しておき、ユーザの好みで自由にアプリケーションの実行コードを選択しダウンロードすることは、差分リストファイルなしには不可能であったが、上記ＩＣチップ及びＩＣカードＯＳにより可能となる。
【００３３】
２．処理
まず、本実施形態のネイティブ型ＩＣカードが行う、アプリケーションの実行コードのダウンロードに係わる処理の流れを、図６のフローチャートに従って説明する。
【００３４】
Ｓ（ＳＴＥＰ）１；
端末のＩＣカードリーダライタからアプリケーションの実行コードを受信する。
【００３５】
Ｓ（ＳＴＥＰ）２；
追加アプリケーションリストを参照して、未使用のページがあるかを確かめ、
未使用のページがない場合、ＳＴＥＰ３に進み、
他方、未使用のページがある場合、ＳＴＥＰ４に進む。
【００３６】
Ｓ（ＳＴＥＰ）３；
領域不足エラーを端末のＩＣカードリーダライタに応答して、ＥＮＤに進む。
【００３７】
Ｓ（ＳＴＥＰ）４；
未使用のページを一つ選び、選んだ未使用のページに、ページ切り替えを実行して、アプリケーションの実行コードをダウンロードするように設定する。
【００３８】
Ｓ（ＳＴＥＰ）５；
選んだ未使用のページに、アプリケーションの実行コードをダウンロードして格納する。
【００３９】
Ｓ（ＳＴＥＰ）６；
追加アプリケーションリストにおいて、選んだページを識別するページ番号と組になっている項目「使用用途」及び項目「アプリケーションＩＤ」、それぞれの値を、使用中（ダウンロードしたアプリケーションの種類に応じてＡＡ又はＡ５）、ダウンロードしたアプリケーションを識別するアプリケーションＩＤに更新して、ＥＮＤに進む。
【００４０】
次に、本実施形態のネイティブ型ＩＣカードが行う、アプリケーションの実行に係わる処理の流れを、図７のフローチャートに従って説明する。
【００４１】
Ｓ（ＳＴＥＰ）１；
端末のＩＣカードリーダライタから実行コマンドを受信する。
【００４２】
Ｓ（ＳＴＥＰ）２；
追加アプリケーションリストに、実行コマンドが実行を命じるアプリケーションのアプ
リケーションＩＤが存在するかを確かめ、
存在しない場合、ＳＴＥＰ３に進み、
存在する場合、ＳＴＥＰ４に進む。
【００４３】
Ｓ（ＳＴＥＰ）３；
通常の実行コマンドとして処理を続行する。具体的には、ＲＯＭに、実行コマンドが命じるコマンドのプログラムが記憶されているかをチェックして、あれば、このプログラムを実行し、なければ、端末のＩＣカードリーダライタにエラーを応答して、ＥＮＤに進む。
【００４４】
Ｓ（ＳＴＥＰ）４；
追加アプリケーションリストから、実行コマンドが実行を命じるアプリケーションのアプリケーションＩＤと組になっているページ番号を読み出し、このページ番号に識別されるページに、ページ切り替えを行い、このページに格納されているアプリケーションの実行コードにおいて、ページ切り替えの１ｂｙｔｅに、このページ番号を格納することで、このページ番号と、オペランドが示すページ内のアドレスとで、アクセスする追加アプリケーション領域のアドレスをセットして、このアプリケーションにジャンプする。
【００４５】
Ｓ（ＳＴＥＰ）５；
切り替えたページに格納されているアプリケーションの実行コードを実行する。
【図１】
2013109383.tif 000003
【図２】
2013109383.tif 000004
【図３】
2013109383.tif 000005
【図４】
2013109383.tif 000006
【図５】
2013109383.tif 000007
【図６】
2013109383.tif 000008
【図７】
2013109383.tif 000009