(57)【要約】【課題】マルチアプリケーション型のＩＣカードにおいて、指定のアプリケーションを選択して設定する処理時間の短縮化を図ることができるＩＣカードを提供することにある。【解決手段】マルチアプリケーション型のＩＣカードにおいて、複数のアプリケーションを識別するＡＩＤ群が設定された優先テーブル情報及び通常テーブル情報が格納されたフラッシュＥＥＰＲＯＭ１３０を備えたＩＣカード１０が開示されている。ＣＰＵ１００は、指定されたアプリケーションを選択するときに、優先テーブル情報を優先的に使用する。【選択図】    図１
2004334316.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションを記憶する第１のメモリ手段と、
前記各アプリケーションを識別する識別情報群を含むテーブル情報であって、優先的に設定可能なアプリケーションに対応する識別情報を有する優先テーブル情報を記憶する第２のメモリ手段と、
外部からの指示に応じて、優先的に前記優先テーブル情報から該当する識別情報を検索し、検索された当該識別情報に対応するアプリケーションを前記第１のメモリ手段から読出して実行可能に設定する制御手段と
を具備したことを特徴とするＩＣカード。
【請求項２】
前記第２のメモリ手段は、前記テーブル情報として、前記優先テーブル情報に含まれる識別情報以外の識別情報を含む通常テーブル情報を記憶し、
前記制御手段は、前記優先テーブル情報から該当する識別情報を検索できないときには、前記通常テーブル情報から検索することを特徴とする請求項１に記載のＩＣカード。
【請求項３】
前記第２のメモリ手段は、前記テーブル情報として、前記優先テーブル情報に含まれる識別情報を含む全識別情報を有する通常テーブル情報を記憶し、
前記制御手段は、前記優先テーブル情報から該当する識別情報を検索できないときには、前記通常テーブル情報から検索することを特徴とする請求項１に記載のＩＣカード。
【請求項４】
複数のアプリケーションを記憶する第１のメモリ手段と、
前記各アプリケーションを識別する識別情報群を含むテーブル情報を記憶する第２のメモリ手段と、
前記各アプリケーションのそれぞれの使用頻度を示す使用頻度情報を記憶する第３のメモリ手段と、
外部からの指示に応じて前記テーブル情報から該当する識別情報を検索し、検索された当該識別情報に対応するアプリケーションを前記第１のメモリ手段から読出して実行可能に設定するときに、前記使用頻度情報に基づいて相対的に高い使用頻度を示す識別情報を前記テーブル情報から優先的に検索する制御手段と
を具備したことを特徴とするＩＣカード。
【請求項５】
前記制御手段は、前記第１のメモリ手段から読出して実行可能に設定したアプリケーションに対応し、前記第３のメモリ手段に記憶された前記使用頻度情報を更新し、
相対的に高い使用頻度を示すアプリケーションに対応する識別情報の検索優先順位が高くなるように前記第２のメモリ手段に記憶された前記テーブル情報を更新することを特徴とする請求項４に記載のＩＣカード。
【請求項６】
複数のアプリケーションを選択的に実行するＩＣカードに適用するアプリケーション設定方法であって、
外部からの指示に応じて、優先的に設定可能なアプリケーションに対応する識別情報を有する優先テーブル情報から該当する識別情報を検索する第１の検索ステップと、
前記第１の検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する第１の設定ステップと、
前記第１の検索ステップにより検索できない場合には、前記優先テーブル情報に含まれない識別情報を有する通常テーブル情報から該当する識別情報を検索する第２の検索ステップと、
前記第２の検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する第２の設定ステップと
を有する手順を実行することを特徴とするアプリケーション設定方法。
【請求項７】
複数のアプリケーションを選択的に実行するＩＣカードに適用するアプリケーション設定方法であって、
前記ＩＣカードは、
前記各アプリケーションに対応する識別情報群であって、アプリケーションの使用頻度を示す使用頻度情報に基づいて当該識別情報群の検索順序が設定されたテーブル情報を有し、
外部からの指示に応じて前記テーブル情報から該当する識別情報を検索する検索ステップと、
前記検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する設定ステップと、
前記設定ステップにより設定されたアプリケーションに対応する前記使用頻度情報を更新する第１の更新ステップと、
前記第１の更新ステップにより更新された使用頻度情報に従って、相対的に高い使用頻度を示す識別情報の検索順位が高くなるように前記テーブル情報を更新する第２の更新ステップと
を有する手順を実行することを特徴とするアプリケーション設定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的には、マルチアプリケーション型のＩＣカードに関し、特に、優先順の高いアプリケーションを実行可能に設定できる技術に関する。
【０００２】
【従来の技術】
近年、複数のアプリケーションを実行できるマルチアプリケーション型のＩＣカードが開発されている。このＩＣカードは、例えばＭＵＬＴＯＳ（登録商標）規格のカード用ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）やＪａｖａ（登録商標）等のＯＳが組み込まれて、内部メモリ（例えばフラッシュＥＥＰＲＯＭ）に格納された複数のアプリケーション（Ｊａｖａではアプレット）から選択されたアプリケーションを実行する機能を有する。
【０００３】
このようなマルチアプリケーション型のＩＣカードであれば、例えばクレジットカード、商品やサービスの販売用のポイントカード、あるいは鉄道などの自動改札で使用される定期券やプリペイドカードなどの各種の機能を１枚のカードに統合したマルチ機能カードを実現することができる。
【０００４】
【発明が解決しようとする課題】
マルチアプリケーション型のＩＣカードでは、内部のＣＰＵが指定された機能を実現するアプリケーション（又はアプレット）を選択して実行する。各アプリケーションのそれぞれには、例えば５〜１６バイトのＡＩＤ（Ａｐｐｌｉｃａｔｉｏｎ  ＩＤ）と称する識別情報が割り当てられている。この各ＡＩＤは、テーブル情報として例えばフラッシュＥＥＰＲＯＭ等の内部メモリに保存されている。ＣＰＵは、外部から指定されたＡＩＤに対応するＡＩＤをテーブル情報から検索し、検索されたＡＩＤに対応するアプリケーションを実行可能に設定する。
【０００５】
ここで、ＣＰＵは、テーブル情報を検索するときに、固定的に順序が設定されたＡＩＤを順次検索していく。このため、使用形態に従って、選択される確率が高いアプリケーションがあるにもかかわらず、ＣＰＵは、常にテーブル情報の先頭から検索する。従って、特にＩＣカードの内部に用意されるアプリケーション数が多くなると、指定のアプリケーションを選択して設定する処理時間が、アプリケーションの実行効率に影響することになる。
【０００６】
そこで、本発明の目的は、マルチアプリケーション型のＩＣカードにおいて、指定のアプリケーションを選択して設定する処理時間の短縮化を図ることができるＩＣカードを提供することにある。
【０００７】
【課題を解決するための手段】
本発明の観点は、マルチアプリケーション型のＩＣカードにおいて、指定のアプリケーションを選択して実行可能に設定する処理時間の短縮化を実現するためのアプリケーションテーブル情報の構成に関する。
【０００８】
請求項１に係る発明は、複数のアプリケーションを記憶する第１のメモリ手段と、前記各アプリケーションを識別する識別情報群を含むテーブル情報であって、優先的に設定可能なアプリケーションに対応する識別情報を有する優先テーブル情報を記憶する第２のメモリ手段と、外部からの指示に応じて、優先的に前記優先テーブル情報から該当する識別情報を検索し、検索された当該識別情報に対応するアプリケーションを前記第１のメモリ手段から読出して実行可能に設定する制御手段とを備えたＩＣカードである。
【０００９】
このような構成であれば、全ての識別情報ではなく、優先テーブル情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【００１０】
請求項２に係る発明は、前記ＩＣカードにおいて、前記第２のメモリ手段は、前記テーブル情報として、前記優先テーブル情報に含まれる識別情報以外の識別情報を含む通常テーブル情報を記憶し、前記制御手段は前記優先テーブル情報から該当する識別情報を検索できないときには、前記通常テーブル情報から検索する構成である。
【００１１】
このような構成であれば、テーブル情報を優先テーブル情報と通常テーブル情報とに分割することにより、優先テーブル情報から優先的に検索して、次に通常テーブル情報を検索するため、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【００１２】
請求項３に係る発明は、前記ＩＣカードにおいて、前記第２のメモリ手段は、前記テーブル情報として、前記優先テーブル情報に含まれる識別情報を含む全識別情報を含む通常テーブル情報を記憶し、前記制御手段は、前記優先テーブル情報から該当する識別情報を検索できないときには、前記通常テーブル情報から検索する構成である。
【００１３】
このような構成であれば、優先テーブル情報としては通常テーブル情報から選択された識別情報をコピーすることにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【００１４】
請求項４に係る発明は、複数のアプリケーションを記憶する第１のメモリ手段と、前記各アプリケーションを識別する識別情報群を含むテーブル情報を記憶する第２のメモリ手段と、前記各アプリケーションのそれぞれの使用頻度を示す使用頻度情報を記憶する第３のメモリ手段と、外部からの指示に応じて前記テーブル情報から該当する識別情報を検索し、検索された当該識別情報に対応するアプリケーションを前記第１のメモリ手段から読出して実行可能に設定するときに、前記使用頻度情報に基づいて相対的に高い使用頻度を示す識別情報を前記テーブル情報から優先的に検索する制御手段とを備えたＩＣカードである。
【００１５】
このような構成であれば、全ての識別情報ではなく、使用頻度の高いアプリケーションに対応する識別情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【００１６】
請求項５に係る発明は、請求項６に係るＩＣカードにおいて、前記制御手段は、前記第１のメモリ手段から読出して実行可能に設定したアプリケーションに対応し、前記第３のメモリ手段に記憶された前記使用頻度情報を更新し、相対的に高い使用頻度を示すアプリケーションに対応する識別情報の検索優先順位が高くなるように前記第２のメモリ手段に記憶された前記テーブル情報を更新する構成である。
【００１７】
このような構成であれば、テーブル情報を検索したときに、常に使用頻度の高いアプリケーションに対応する識別情報の検索順位が高くなるため、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【００１８】
請求項６に係る発明は、複数のアプリケーションを選択的に実行するＩＣカードに適用するアプリケーション設定方法であって、外部からの指示に応じて、優先的に設定可能なアプリケーションに対応する識別情報を有する優先テーブル情報から該当する識別情報を検索する第１の検索ステップと、前記第１の検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する第１の設定ステップと、前記第１の検索ステップにより検索できない場合には、前記優先テーブル情報に含まれない識別情報を有する通常テーブル情報から該当する識別情報を検索する第２の検索ステップと、前記第２の検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する第２の設定ステップとを有する手順を実行するアプリケーション設定方法である。
【００１９】
このような構成であれば、全ての識別情報ではなく、優先テーブル情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【００２０】
請求項７に係る発明は、複数のアプリケーションを選択的に実行するＩＣカードに適用するアプリケーション設定方法であって、前記ＩＣカードは、前記各アプリケーションに対応する識別情報群であって、アプリケーションの使用頻度を示す使用頻度情報に基づいて当該識別情報群の検索順序が設定されたテーブル情報を有し、外部からの指示に応じて前記テーブル情報から該当する識別情報を検索する検索ステップと、前記検索ステップにより検索された識別情報に対応するアプリケーションを実行可能に設定する設定ステップと、前記設定ステップにより設定されたアプリケーションに対応する前記使用頻度情報を更新する第１の更新ステップと、前記第１の更新ステップにより更新された使用頻度情報に従って、相対的に高い使用頻度を示す識別情報の検索順位が高くなるように前記テーブル情報を更新する第２の更新ステップとを有する手順を実行するアプリケーション設定方法である。
【００２１】
このような構成であれば、全ての識別情報ではなく、使用頻度の高いアプリケーションに対応する識別情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【００２２】
【発明の実施の形態】
以下図面を参照して、本発明の実施の形態を説明する。
【００２３】
（ＩＣカードの構成）
図１は、各実施形態に関するＩＣカードの構成を示すブロック図である。
【００２４】
ＩＣカード１０は、ＩＣチップの中に、大別して制御を司るマイクロプロセッサ（ＣＰＵ）１００と、ＩＣメモリ１１０，１２０，１３０が組み込まれた構成であり、マルチアプリケーション型のＩＣカード（マルチ機能カードまたは統合カード）を想定する。
【００２５】
ＣＰＵ１００は、後述するように、ここではＪａｖａ（登録商標）のＯＳの制御に基づいて、複数のアプリケーション（アプレット）を選択的に実行し、各アプリケーション毎の機能を実現する。具体的には、ＣＰＵ１００は、対応するアプリケーションを実行することにより、本ＩＣカードを例えばクレジットカード、商品やサービスの販売用のポイントカード、あるいは鉄道などの自動改札で使用される定期券やプリペイドカードとして機能させる。
【００２６】
ＩＣメモリとしては、ＲＡＭ１１０，ＲＯＭ１２０，及びフラッシュＥＥＰＲＯＭ１３０がある。ＲＡＭ１１０は主として、ＣＰＵ１００がアプリケーションを実行する上でのワークメモリとして使用される。ＲＯＭ１２０は主として、ＯＳ（ここではＪａｖａを想定する）を格納している。フラッシュＥＥＰＲＯＭ１３０は、複数のアプリケーション用のファイル、及び本実施形態に関係するテーブル情報（図２を参照）を格納している。
【００２７】
ＩＣカード１０は、各種の端末装置（使用形態により異なる）に組み込まれるリーダ／ライタ２０と接触又は非接触で接続し、コマンド及びデータの入出力を行なう。具体的には、ＩＣカード１０は、リーダ／ライタ２０から、例えばＡＰＤＵ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）というインターフェース規格によるコマンドを受付けることにより、フラッシュＥＥＰＲＯＭ１３０に用意されたアプリケーション（アプレット）を実行する。当該コマンドは、後述するように、実行すべきアプリケーションを指定するための識別情報であるＡＩＤ（Ａｐｐｌｉｃａｔｉｏｎ  ＩＤ）を含む。また、ＩＣカード１０は、アプリケーションを実行したときの各種のデータをＲＡＭ１１０に格納する。リーダ／ライタ２０は、当該ＲＡＭ１１０から各種のデータを読出す。
【００２８】
（第１の実施形態のテーブル情報の構造）
本実施形態は、ＣＰＵ１００は、ＪａｖａのＯＳの制御に基づいて、複数のアプレットを選択的に実行することを想定する。各アプレットを選択するためのテーブル情報は、アプレットテーブルと表記する。
【００２９】
本実施形態では、図２に示すように、アプレットテーブルはフラッシュＥＥＰＲＯＭ１３０に格納されており、優先アプレットテーブル２００と通常アプレットテーブル２１０とに分割管理される。優先アプレットテーブル２００は、後述する所定の条件で選択されたＡＩＤ（Ａｐｐｌｅｔ  Ｎ：Ｎ＝１〜９）が、所定の順序で設定される。また、通常アプレットテーブル２１０は、ＩＣカード１０にインストールされたアプリケーションに対応するＡＩＤが、当該インストール順に設定される。
【００３０】
具体的には、優先アプレットテーブル２００は、図３（Ａ）に示すように、時間的に最近使用されたアプレットに対応するＡＩＤ（Ａｐｐｌｅｔ２，３，８）が設定される。ここでは、優先アプレットテーブル２００のサイズは、上限が３つまでとする。一方、通常アプレットテーブル２１０は、いわば暫く使用されないアプレットに対応するＡＩＤ（Ａｐｐｌｅｔ１，４，５〜７，９）が設定される。いずれのアプレットテーブル２００，２１０も、Ｉｎｄｅｘ０を先頭として、Ｉｎｄｅｘ番号の順番で検索される。
【００３１】
（アプレット設定の手順）
以下図３から図５、及び図６と図７のフローチャートを参照して、第１の実施形態に関するアプレット設定の手順を説明する。
【００３２】
まず、ＩＣカード１０は、例えばクレジットカード用の端末装置（リーダ／ライタ）２０と接触又は非接触状態で接続すると、端末装置２０から例えばＡＰＤＵのインターフェース規格によるコマンドが送信される。ＣＰＵ１００は、当該コマンドに含まれるＡＩＤ（アプレットの識別情報）を取得すると、該当するアプレットを選択して実行可能に設定する処理を実行する。具体的には、ＣＰＵ１００は、フラッシュＥＥＰＲＯＭ１３０から該当するアプレットを選択して、ＲＡＭ１１０に設定する。これにより、ＣＰＵ１００は、例えばクレジットカード機能を実現するためのアプレット（即ち、アプリケーション）を実行することになる。
【００３３】
アプレット設定手順としては、ＣＰＵ１００は、図３（Ａ）に示すような優先アプレットテーブル２００の先頭（Ｉｎｄｅｘ＝０）から検索を開始する（ステップＳ１）。ここで、優先アプレットテーブル２００には、アプレットを示すＡＩＤがセットされていなければ（ヒットしない場合）、ＣＰＵ１００は通常アプレットテーブル２１０の検索に移行する（ステップＳ２のＮＯ，Ｓ７）。
【００３４】
ＣＰＵ１００は、優先アプレットテーブル２００にセットされているＡＩＤを先頭から順次チェックし、該当するアプレットに対応するＡＩＤ（ここでは、Ａｐｐｌｅｔ８とする）を検索する（ステップＳ３，Ｓ４）。ＣＰＵ１００は、該当するＡＩＤを検索すると（ヒットすると）、後述するように、当該優先アプレットテーブル２００の更新処理を実行する（ステップＳ５）。
【００３５】
さらに、ＣＰＵ１００は、該当するＡＩＤ（Ａｐｐｌｅｔ８）を端末装置２０に返し、所定のアプレット設定処理に移行する（ステップＳ６）。即ち、フラッシュＥＥＰＲＯＭ１３０から該当するＡＩＤ（Ａｐｐｌｅｔ８）のアプレットを選択して、実行可能なようにＲＡＭ１１０に設定する。
【００３６】
一方、ＣＰＵ１００は、優先アプレットテーブル２００には該当するＡＩＤがなければ、図３（Ｂ）に示すような通常アプレットテーブル２１０の先頭（Ｉｎｄｅｘ＝０）から検索を開始する（ステップＳ７）。即ち、ＣＰＵ１００は、通常アプレットテーブル２１０にセットされているＡＩＤを先頭から順次チェックし、該当するアプレットに対応するＡＩＤを検索する（ステップＳ８〜Ｓ１０）。
【００３７】
ここで、通常アプレットテーブル２１０にも、該当するＡＩＤがセットされていない場合（該当するアプレットがインストールされていない）、ＣＰＵ１００はＮＵＬＬ（機能不可）を端末装置２０に返す（ステップＳ８のＮＯ，Ｓ１２）。
【００３８】
ＣＰＵ１００は、該当するＡＩＤを検索すると（ヒットすると）、後述するように、当該通常アプレットテーブル２１０の更新処理を実行する（ステップＳ１１）。そして、ＣＰＵ１００は、該当するＡＩＤを端末装置２０に返し、所定のアプレット設定処理に移行する（ステップＳ６）。
【００３９】
（テーブル更新処理）
次に、図７のフローチャートを参照して、優先アプレットテーブル２００の更新処理（図６のステップＳ５）の手順を説明する。
【００４０】
ＣＰＵ１００は、図３（Ａ）に示すように、優先アプレットテーブル２００の先頭ではなく、ここでは第３番目（Ｉｎｄｅｘ＝２）にある該当ＡＩＤ（Ａｐｐｌｅｔ８）を検索した場合を想定する（ステップＳ２１のＮＯ）。ＣＰＵ１００は、図４（Ａ）に示すように、当該ＡＩＤ（Ａｐｐｌｅｔ８）を優先アプレットテーブル２００の先頭（Ｉｎｄｅｘ＝０）に設定する（ステップＳ２２）。
【００４１】
従って、ＣＰＵ１００は、当該ＡＩＤ（Ａｐｐｌｅｔ８）をＲＡＭ１１０のレジスタ（Ｔｅｍｐ  Ａｐｐｌｅｔ）に移動させた後、先頭（Ｉｎｄｅｘ＝０）にあったＡＩＤ（Ａｐｐｌｅｔ２）を次の位置（Ｉｎｄｅｘ＝１）に移動させて、また次の位置（Ｉｎｄｅｘ＝１）にあったＡＩＤ（Ａｐｐｌｅｔ３）を当該ＡＩＤ（Ａｐｐｌｅｔ８）の位置（Ｉｎｄｅｘ＝２）に移動させる。そして、最後にＲＡＭ１１０のレジスタ（Ｔｅｍｐ  Ａｐｐｌｅｔ）に待避させた当該ＡＩＤ（Ａｐｐｌｅｔ８）を先頭（Ｉｎｄｅｘ＝０）に設定する。なお、当然ながら、図４（Ｂ）に示すように、通常アプレットテーブル２１０の設定順序については、変更しない。
【００４２】
また、図９のフローチャートを参照して、該当ＡＩＤ（ここではＡｐｐｌｅｔ５とする）を通常アプレットテーブル２１０から検索した場合に、優先及び通常アプレットテーブル２００，２１０の更新処理（ステップＳ１１）の手順を説明する。
【００４３】
ここでは、図４（Ｂ）に示すように、ＣＰＵ１００は、該当ＡＩＤ（Ａｐｐｌｅｔ５）が優先アプレットテーブル２００には無く、通常アプレットテーブル２１０の３番目（Ｉｎｄｅｘ＝２）から検索され、実行された場合を想定する。このとき、優先アプレットテーブル２００は、図４（Ａ）に示すように、先頭（Ｉｎｄｅｘ＝０）から３番目の位置（Ｉｎｄｅｘ＝２）まで、各ＡＩＤ（Ａｐｐｌｅｔ８，２，３）が設定されている。
【００４４】
まず、ＣＰＵ１００は、優先アプレットテーブル２００の最後尾の位置（Ｉｎｄｅｘ＝Ｎ）に設定されているＡＩＤ（Ａｐｐｌｅｔ３）を、ＲＡＭ１１０のレジスタ（Ｔｅｍｐ  Ａｐｐｌｅｔ）に移動させる（ステップＳ３０，Ｓ３１）。ここで、Ｎは、優先アプレットテーブル２００の設定サイズ（ここでは、上限３つ）に従って「２」となる。
【００４５】
次に、ＣＰＵ１００は、優先アプレットテーブル２００の位置（Ｉｎｄｅｘ−１）に設定されているＡＩＤ（Ａｐｐｌｅｔ２）を、最後尾の位置（Ｉｎｄｅｘ＝２）に移動させる（ステップＳ３２のＹＥＳ，Ｓ３３）。これを繰り返すことにより、優先アプレットテーブル２００の先頭位置（Ｉｎｄｅｘ＝０）を空ける（ステップＳ３４，Ｓ３２のＮＯ）。
【００４６】
さらに、ＣＰＵ１００は、図４（Ｂ）に示すように、通常アプレットテーブル２１０にある該当ＡＩＤ（Ａｐｐｌｅｔ５）を、優先アプレットテーブル２００の先頭（Ｉｎｄｅｘ＝０）に移動させる（ステップＳ３５）。これにより、優先アプレットテーブル２００は、図５（Ａ）に示すように、先頭から３番目の位置（Ｉｎｄｅｘ＝２）まで、各ＡＩＤ（Ａｐｐｌｅｔ５，８，２）が設定される。
【００４７】
次に、ＣＰＵ１００は、通常アプレットテーブル２１０から移動させた該当ＡＩＤ（Ａｐｐｌｅｔ５）の位置（Ｉｎｄｅｘ＝Ｍ，ここではＭは２）に、それより上位のＡＩＤ（Ａｐｐｌｅｔ４）を移動させる（ステップＳ３６〜Ｓ３８）。これを繰り返すことにより、通常アプレットテーブル２１０の先頭位置（Ｉｎｄｅｘ＝０）を空ける（ステップＳ３９，Ｓ３７のＮＯ）。
【００４８】
そして、ＣＰＵ１００は、図５（Ｂ）に示すように、ＲＡＭ１１０のレジスタ（Ｔｅｍｐ  Ａｐｐｌｅｔ）にセットされたＡＩＤ（Ａｐｐｌｅｔ３）を、通常アプレットテーブル２１０の先頭（Ｉｎｄｅｘ＝０）に移動させる（ステップＳ４０）。
【００４９】
以上要するに本実施形態のアプレット設定方法であれば、ＣＰＵ１００は、端末装置２０からのコマンド（外部からの指示）に応じて、該当するアプレットのＡＩＤを、最初に優先アプレットテーブル２００から検索し、無ければ通常アプレットテーブル２１０から検索する。ここで、優先アプレットテーブル２００は、時間的に最近使用されたアプレットのＡＩＤが設定されている。一般的に、最近使用されたアプレットは繰り返し使用されることが多いため、優先アプレットテーブル２００から該当するＡＩＤをヒットさせられる確率が高い。
【００５０】
さらに、優先アプレットテーブル２００から該当するＡＩＤをヒットした場合に、当該テーブル２００内で、今回ヒットしたＡＩＤを先頭に移動させるテーブル更新処理を実行する。また、通常アプレットテーブル２１０から該当するＡＩＤをヒットした場合には、今回ヒットしたＡＩＤを優先アプレットテーブル２００の先頭に移動させるテーブル更新処理を実行する。従って、優先アプレットテーブル２００には、時間的に最近使用されたアプレットのＡＩＤが、常に先頭である最優先順位に設定される。また、通常アプレットテーブル２１０には、やはり最近使用された順序で設定される。これにより、本実施形態のＩＣカード１０は、インストールされいる全アプレットを検索することなく、外部からコマンドで指定されたアプレットを短時間で選択して実行可能に設定することができる。
【００５１】
（変形例）
図８は、本実施形態の変形例に関する図である。
【００５２】
本実施形態は、アプレットテーブル情報を、優先アプレットテーブル２００と通常アプレットテーブル２１０とに分割管理し、テーブル２００には最近利用したＡＩＤを割り当て、２１０には全アプレットの各ＡＩＤを割り当てる方式である。
【００５３】
本変形例は、図８（Ａ）に示すように、優先アプレットテーブル２００の設定内容は本実施形態と同様であるが、同図（Ｂ）に示すように、通常アプレットテーブル２１０には全アプレットに対応するＡＩＤの全てが設定されている構成である。このような構成であれば、優先アプレットテーブル２００から、通常アプレットテーブル２１０にＡＩＤを移動させる処理を省略できる効果がある。優先アプレットテーブル２００には、通常アプレットテーブル２１０から選択された優先のＡＩＤがコピーされることになる。
【００５４】
以下、本変形例に関するテーブル更新処理の手順を、図１０に示すフローチャートを参照して説明する。なお、本変形例では当該ＡＩＤ（Ａｐｐｌｅｔ５）が選択され、アプレット（即ち、アプリケーション）がＣＰＵ１００で実行されたものとする。
【００５５】
まず、ＣＰＵ１００は、優先アプレットテーブル２００の最後尾の位置（Ｉｎｄｅｘ＝Ｎ）に設定されているＡＩＤ（Ａｐｐｌｅｔ８）を、ＲＡＭ１１０のレジスタ（Ｔｅｍｐ  Ａｐｐｌｅｔ）に移動させる（ステップＳ４１，Ｓ４２）。ここで、Ｎは、優先アプレットテーブル２００の設定サイズ（ここでは、上限３つ）に従って、「２」となる。
【００５６】
次に、ＣＰＵ１００は、優先アプレットテーブル２００の位置（Ｉｎｄｅｘ−１）に設定されているＡＩＤ（Ａｐｐｌｅｔ３）を、最後尾の位置（Ｉｎｄｅｘ＝２）に移動させる（ステップＳ４３のＹＥＳ，Ｓ４４）。これを繰り返すことにより、優先アプレットテーブル２００の先頭位置（Ｉｎｄｅｘ＝０）を空ける（ステップＳ４５，Ｓ４３のＮＯ）。
【００５７】
さらに、ＣＰＵ１００は、図８（Ｂ）に示すように、通常アプレットテーブル２１０にある該当ＡＩＤ（Ａｐｐｌｅｔ５）を、優先アプレットテーブル２００の先頭（Ｉｎｄｅｘ＝０）にコピーさせる（ステップＳ４６）。これにより、優先アプレットテーブル２００の先頭には、今回の検索でヒットしたＡＩＤ（Ａｐｐｌｅｔ５）が設定される。なお、本変形例では、図８（Ｂ）に示すように、通常アプレットテーブル２１０には、優先アプレットテーブル２００の最後尾のＡＩＤを含む全てのＡＩＤが設定されているため、先の実施形態のようにＲＡＭ１１０のレジスタ（Ｔｅｍｐ  Ａｐｐｌｅｔ）に待避させたＡＩＤを通常アプレットテーブル２１０に移動させる必要は無い。
【００５８】
また、別の変形例として、優先アプレットテーブル２００には、通常アプレットテーブル２１０から移動又はコピーされたＡＩＤ以外に、予め外部（ユーザも含む）から指定されたアプレットのＡＩＤが固定的に設定される構成でもよい。予め使用されることが想定されるアプレットについては、優先アプレットテーブル２００にＡＩＤを固定的に設定することにより、アプレットを実行可能に設定する処理時間の短縮化を図ることができる。具体的には、例えばプログラム（アプレット又はアプリケーション）などを、ＩＣカード１０にダウンロードするためのアプレットのＡＩＤなどである。
【００５９】
（第２の実施形態）
以下、図１１から図１４を参照して、第２の本実施形態に関するアプレット設定処理を説明する。
【００６０】
本実施形態は、フラッシュＥＥＰＲＯＭ１３０には、図１２に示すように、各アプレットを選択するためのテーブル情報として、単一のアプレットテーブル２３０が格納される。また、フラッシュＥＥＰＲＯＭ１３０には、図１１に示すように、各アプレットの使用頻度を示す使用頻度テーブル情報２２０が格納される。
【００６１】
本実施形態では、ＩＣカード１０のＣＰＵ１００は、使用頻度テーブル情報２２０からアプレットごとの使用頻度を算出し、アプレットテーブル２３０上で使用頻度の高い順にアプレットのＡＩＤを並び替える。これにより、常に、ＣＰＵ１００は、アプレットテーブル２３０の先頭から使用頻度の高い順にＡＩＤを検索することができる。
【００６２】
以下、主として図１３及び図１４のフローチャートを参照して、本実施形態のアプレット設定処理の手順を説明する。
【００６３】
まず、ＩＣカード１０は、例えばクレジットカード用の端末装置（リーダ／ライタ）２０と接触又は非接触状態で接続すると、例えばＡＰＤＵのインターフェース規格によるコマンドが送信される。ＣＰＵ１００は、当該コマンドに含まれるＡＩＤ（アプレットの識別情報）を取得すると、該当するアプレットを選択して実行可能に設定する処理を実行する。
【００６４】
本実施形態のアプレット設定手順としては、ＣＰＵ１００は、図１２に示すようなアプレットテーブル２３０の先頭（Ｉｎｄｅｘ＝０）から検索を開始する（ステップＳ５１）。アプレットを示すＡＩＤがセットされていなければ（ヒットしない場合）、ＣＰＵ１００は、ＮＵＬＬ（機能不可）を端末装置２０に返す（ステップＳ５２のＮＯ，Ｓ５７）。
【００６５】
ＣＰＵ１００は、アプレットテーブル２３０にセットされているＡＩＤを先頭から順次チェックし、該当するアプレットに対応するＡＩＤ（例えばＡｐｐｌｅｔ５とする）を検索する（ステップＳ５２，Ｓ５３）。ＣＰＵ１００は、該当するＡＩＤを検索すると（ヒットすると）、後述するように、当該アプレットテーブル２３０の更新処理を実行する（ステップＳ５３のＹＥＳ，Ｓ５５）。ＣＰＵ１００は、該当するＡＩＤがヒットするまで、アプレットテーブル２３０を検索する（ステップＳ５３のＮＯ，Ｓ５４）。
【００６６】
さらに、ＣＰＵ１００は、該当するＡＩＤ（Ａｐｐｌｅｔ５）を端末装置２０に返し、所定のアプレット設定処理に移行する（ステップＳ５６）。即ち、フラッシュＥＥＰＲＯＭ１３０から該当するＡＩＤ（Ａｐｐｌｅｔ５）のアプレットを選択して、実行可能なようにＲＡＭ１１０に設定する。
【００６７】
（テーブル更新処理）
次に、図１４のフローチャートを参照して、アプレットテーブル２３０の更新処理（図１３のステップＳ５５）の手順を説明する。
【００６８】
まず、ＣＰＵ１００は、アプレットテーブル２３０から該当アプレットのＡＩＤ（Ａｐｐｌｅｔ５）をヒットさせると、図１１に示す使用頻度テーブル情報２２０を参照して、該当ＡＩＤ（Ａｐｐｌｅｔ５）の使用頻度（Ｆａとする）を更新（インクリメント）する（ステップＳ６１）。
【００６９】
次に、ＣＰＵ１００は、アプレットテーブル２３０において、該当ＡＩＤ（Ｉｎｄｅｘ＝１）より上位の位置（Ｉｎｄｅｘ＝０）にあるＡＩＤ（ここではＡｐｐｌｅｔ２）を選択する（ステップＳ６２）。ＣＰＵ１００は、使用頻度テーブル情報２２０を参照して、該当ＡＩＤ（Ａｐｐｌｅｔ５）の使用頻度（Ｆａ）と、ステップＳ６２で選択したＡＩＤ（Ａｐｐｌｅｔ２）の使用頻度（Ｆｂ）との大小を比較する（ステップＳ６３）。
【００７０】
比較結果が該当ＡＩＤ（Ａｐｐｌｅｔ５）の使用頻度（Ｆａ）の方が小さい場合には、アプレットテーブル２３０の順位を変更する必要が無いため、テーブル更新処理は終了となる（ステップＳ６３のＮＯ）。
【００７１】
一方、今回選択したアプレットの該当ＡＩＤ（Ａｐｐｌｅｔ５）の使用頻度（Ｆａ）の方が仕様頻度（Ｆｂ）より大きくなると、ＣＰＵ１００は、アプレットテーブル２３０の順位を変更する処理を実行する（ステップＳ６３のＹＥＳ）。即ち、ＣＰＵ１００は、上位の位置（Ｉｎｄｅｘ＝０）にあるＡＩＤ（Ａｐｐｌｅｔ２）と、該当ＡＩＤ（Ａｐｐｌｅｔ５）の位置（Ｉｎｄｅｘ＝１）とを入れ替える（ステップＳ６４）。従って、アプレットテーブル２３０では、元の位置（Ｉｎｄｅｘ＝１）より一つ上位（Ｉｎｄｅｘ＝０）に該当ＡＩＤ（Ａｐｐｌｅｔ５）が設定されて、次の位置（Ｉｎｄｅｘ＝１）にＡｐｐｌｅｔ２のＡＩＤが設定される。このような更新処理が繰り返されることにより、アプレットテーブル２３０は、使用頻度の高い順に、先頭から各ＡＩＤが設定される（ステップＳ６５）。
【００７２】
以上要するに本実施形態のアプレット設定方法であれば、ＣＰＵ１００は、端末装置２０からのコマンド（外部からの指示）に応じて、該当するアプレットのＡＩＤを、使用頻度の高い順に設定されたアプレットテーブル２３０から検索する。一般的に、使用頻度の高いアプレットは繰り返し使用されることが多いため、アプレットテーブル２３０の相対的に上位の位置から該当するＡＩＤをヒットする確率が高くなる。従って、本実施形態のＩＣカード１０は、インストールされいる全アプレットを検索することなく、外部からコマンドで指定されたアプレットを短時間で選択して実行可能に設定することができる。
【００７３】
なお、本実施形態は、前述の第１の実施形態と比較して、各アプレットごとの使用頻度を管理するテーブル情報２２０が必要となるが、一方で、優先テーブル情報のような特別のテーブル情報を要することなく、単一のテーブル情報２３０によりアプレットの設定処理を実行できる。
【００７４】
なお、各本実施形態及び変形例において、いわゆるＪａｖａＯＳを適用したＪａｖａカードを想定したが、これに限定されること無く、他のＯＳ規格によるマルチアプリケーション型のＩＣカードにも適用することができる。
【００７５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００７６】
【発明の効果】
以上詳述したように本発明によれば、マルチアプリケーション型のＩＣカードにおいて、指定のアプリケーション（またはアプレット）を選択して設定する処理時間の短縮化を図ることができるＩＣカードを提供することができる。
【００７７】
具体的には、請求項１に係る発明であれば、優先テーブル情報から優先的に指定のアプリケーションの識別情報を検索する構成により、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項２に係る発明であれば、テーブル情報を優先テーブル情報と通常テーブル情報とに分割することにより、優先テーブル情報から優先的に検索して、次に通常テーブル情報を検索するため、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項３に係る発明であれば、優先テーブル情報としては通常テーブル情報から選択された識別情報をコピーすることにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項４に係る発明であれば、全ての識別情報ではなく、使用頻度の高いアプリケーションに対応する識別情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項５に係る発明であれば、テーブル情報を検索したときに、常に使用頻度の高いアプリケーションに対応する識別情報の検索順位が高くなるため、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項６に係る発明であれば、全ての識別情報ではなく、優先テーブル情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。請求項７に係る発明であれば、全ての識別情報ではなく、使用頻度の高いアプリケーションに対応する識別情報から優先的に検索することにより、指定される可能性の高いアプリケーションを選択して設定する処理時間を短縮化することができる。
【図面の簡単な説明】
【図１】本発明の第１及び第２の各実施形態に関するＩＣカードの構成を示すブロック図。
【図２】第１の実施形態に関するテーブル情報の構造を説明するための図。
【図３】同実施形態に関する優先及び通常の各テーブル情報の機能を説明するための図。
【図４】同実施形態に関する優先アプレットテーブルの更新処理を説明するための図。
【図５】同実施形態に関する通常アプレットテーブルの更新処理を説明するための図。
【図６】同実施形態に関するアプレット設定処理の手順を説明するためのフローチャート。
【図７】同実施形態に関する優先アプレットテーブルの更新処理を説明するためのフローチャート。
【図８】同実施形態の変形例に関する優先及び通常アプレットテーブルの構成を説明するための図。
【図９】同実施形態に関する優先及び通常アプレットテーブルの更新処理を説明するためのフローチャート。
【図１０】同変形例に関する優先及び通常アプレットテーブルの更新処理を説明するためのフローチャート。
【図１１】第２の実施形態に関するアプレットの使用頻度テーブル情報の構成を示す図。
【図１２】第２の実施形態に関するアプレットテーブルの構成を示す図。
【図１３】第２の実施形態に関するアプレット設定処理の手順を説明するためのフローチャート。
【図１４】第２の実施形態に関するアプレットテーブルの更新処理を説明するためのフローチャート。
【符号の説明】
１０…ＩＣカード、２０…端末装置（リーダ／ライタ）、１００…ＣＰＵ、
１１０…ＲＡＭ、１２０…ＲＯＭ、１３０…フラッシュＥＥＰＲＯＭ、
２００…優先アプレットテーブル、２１０…通常アプレットテーブル、
２２０…使用頻度テーブル情報、２３０…アプレットテーブル。
【図１】
2004334316.tif 000003
【図２】
2004334316.tif 000004
【図３】
2004334316.tif 000005
【図４】
2004334316.tif 000006
【図５】
2004334316.tif 000007
【図６】
2004334316.tif 000008
【図７】
2004334316.tif 000009
【図８】
2004334316.tif 000010
【図９】
2004334316.tif 000011
【図１０】
2004334316.tif 000012
【図１１】
2004334316.tif 000013
【図１２】
2004334316.tif 000014
【図１３】
2004334316.tif 000015
【図１４】
2004334316.tif 000016