(57)【要約】      （修正有）【課題】再追加を不可とするアプリケーションについては、インストール時に、当該アプリケーションのプログラム名を宣言する第１のインストールコマンドにて、当該アプリケーションのプログラム名に対応して再追加不許可情報を設定することができ、当該アプリケーションの再追加を不可とすることが可能となる。【解決手段】上位装置２では、再追加不可とするアプリケーションをＩＣカード１に追加する際、当該アプリケーションのインストールコマンドあるいはロードコマンドとともに再追加不許可情報をＩＣカード１に送信し、ＩＣカード１では、インストールコマンドあるいはロードコマンドに対して再追加不許可情報の有無を確認し、再追加不許可情報が含まれている場合には、そのアプリケーションを再追加不可とするアプリケーションとして登録するようにしたものである。【選択図】図１
2006113747.tif 000002
【特許請求の範囲】
【請求項１】
書き換え可能な不揮発性メモリにインストールされているアプリケーションを実行する携帯可能電子装置において、
外部装置からの前記不揮発性メモリへのアプリケーションの追加要求と当該アプリケーションの再追加が不可である旨の情報とを受信する受信手段と、
この受信手段によりアプリケーションの追加要求と再追加が不可である旨の情報とを受信した場合、当該アプリケーションの再追加を不可とすることを示すデータを設定する設定手段と、
前記受信手段により前記外部装置から受信したアプリケーションを前記不揮発性メモリにインストールする処理手段と、
を具備することを特徴とする携帯可能電子装置。
【請求項２】
前記受信手段により受信するアプリケーションの再追加が不可である旨の情報は、当該アプリケーションのプログラム名を指定するコマンド、当該アプリケーションのデータ名を指定するコマンド、あるいは、当該アプリケーションのプログラムをロードするコマンドに付加されている情報である、ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
書き換え可能な不揮発性メモリにインストールされているアプリケーションを実行する携帯可能電子装置において、
外部装置からの前記不揮発性メモリにインストールされているアプリケーションの削除要求と当該アプリケーションの再追加が不可である旨の情報とを受信する受信手段と、
この受信手段によりアプリケーションの削除要求と再追加が不可である旨の情報を受信した場合、当該アプリケーションの再追加を不可とすることを示すデータを設定する設定手段と、
前記受信手段により削除要求を受信したアプリケーションを前記不揮発性メモリから削除する処理手段と、
を具備することを特徴とする携帯可能電子装置。
【請求項４】
書き換え可能な不揮発性メモリにインストールされているアプリケーションを実行する携帯可能電子装置において、
アプリケーションの追加を不可に設定する関数を含む関数群が登録されている登録手段と、
この登録手段に登録されている関数群を用いて前記不揮発性メモリにインストールされているアプリケーションを実行する実行手段と、
この実行手段により前記不揮発性メモリにインストールされているアプリケーションのうち再追加を不可とするアプリケーションを実行する際、前記登録手段に登録されているアプリケーションの追加を不可に設定する関数を用いて当該アプリケーションの再追加を不可とすることを示すデータを設定する設定手段と、
を具備することを特徴とする携帯可能電子装置。
【請求項５】
書き換え可能な不揮発性メモリにインストールされているアプリケーションを実行する携帯可能電子装置において、
追加を不可とするアプリケーションを示すデータが設定されている設定手段と、
外部装置からの前記不揮発性メモリへのアプリケーションの追加要求を受信する受信手段と、
この受信手段によりアプリケーションの追加要求を受信した場合、当該アプリケーションが前記設定手段により追加を不可とするアプリケーションとして設定されているか否かを判断する判断手段と、
この判断手段により当該アプリケーションが追加を不可とするアプリケーションとして設定されていると判断した場合、当該アプリケーションの追加を不可とする第１の処理手段と、
前記判断手段により当該アプリケーションが追加を不可とするアプリケーションとして設定されていないと判断した場合、前記受信手段により追加要求を受信したアプリケーションを前記不揮発性メモリにインストールする第２の処理手段と、
を具備することを特徴とする携帯可能電子装置。
【請求項６】
前記判断手段は、当該アプリケーションのプログラム名の指定、当該アプリケーションのデータ名の指定、あるいは、当該アプリケーションのプログラムのロードを行う際に、当該アプリケーションが前記設定手段により追加を不可とするアプリケーションとして設定されているか否かを判断する、ことを特徴とする前記請求項５に記載の携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、データの書込みや書換え可能な不揮発性メモリおよびＣＰＵなどの制御素子を有したＩＣチップを内蔵し、外部から入力されるコマンドに対応した処理を実行してその処理結果を外部へ出力し、外部から入力されるアプリケーションを不揮発性メモリにロード（あるいは、インストール）し、このロードしたアプリケーションを実行することが可能なＩＣカードなどの携帯可能電子装置に関する。
【背景技術】
【０００２】
従来、携帯可能電子装置としては、たとえば、メモリやＣＰＵなどの機能を有したＩＣチップがプラスチック板などで構成される筐体内に埋設されているＩＣカードがある。このようなＩＣカードでは、不揮発性メモリに記憶されているアプリケーションプログラムに基づいて種々の制御を実現している。従来のＩＣカードでは、アプリケーション（アプリケーションプログラム）がＩＣカード（ＩＣチップ）の製造メーカ独自の言語で作成されていることが多い。また、従来のＩＣカードでは、アプリケーションが書き換え不可能なＲＯＭに記憶されることも多い。このため、ＩＣカード（ＩＣチップ）の製造メーカ以外が、アプリケーションを（一般言語で）作成したり、運用後にアプリケーションを追加したり削除したりすることが現実的に困難であるという問題がある。
【０００３】
そこで、これらの不都合を解決するために、いわゆるＪａｖａカード（Ｊａｖａは米サン・マイクロシステムズ社の登録商標）と称されるＩＣカードが開発されている。上記Ｊａｖａカードは、一般的なＩＣカードのＯＳ（オペレーティングシステム）の上にバーチャルマシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）をのせたＩＣカードである。上記Ｊａｖａカードの特徴は、Ｊａｖａ言語でアプリケーション（以下、アプレットとも言う）を作成することが可能であることがあげられる。このため、Ｊａｖａカードでは、カード発行者などの権限を持った人であれば、Ｊａｖａカード内のアプリケーションを追加したり削除したりすることが容易に可能である。
【０００４】
たとえば、従来のＪａｖａカードへのアプリケーションの追加は、２つのインストールコマンドとロードコマンドなどにより行われ、そのシーケンスは以下の通りである。
【０００５】
れる。  
まず、Ｊａｖａカードには、上位装置からの第１のインストールコマンドにより追加するアプリケーションのプログラムの名前（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）が宣言される。
【０００６】
上位装置がＪａｖａカードに対してアプリケーションのプログラムの名前をＩＣカードに宣言するコマンドである。これにより、Ｊａｖａカードでは、追加するアプリケーションのプログラムの名前が設定される。
【０００７】
次に、Ｊａｖａカードには、上位装置からのロードコマンドにより第１のインストールコマンドによって名前（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）が宣言されたアプリケーションのプログラム（追加するアプリケーションのプログラム）が転送される。このロードコマンドは、複数回実施され、アプリケーションのプログラム全体がＪａｖａカードに転送される。これにより、Ｊａｖａカードでは、追加するアプリケーションのプログラムが第１のインストールコマンドで宣言された名前で追加（作成）される。
【０００８】
次に、Ｊａｖａカードには、上位装置からアプリケーションのデータの名前（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）が宣言される。これにより、Ｊａｖａカードでは、上記ロードコマンドにてロードされたアプリケーションのデータの名前が追加（作成）される。  
これらのコマンドによってＪａｖａカードには、アプリケーションがインストールされるようになっている。
【０００９】
また、従来のＪａｖａカードへのアプリケーションの削除は、削除コマンドなどにより行われる。Ｊａｖａカードには、上位装置から削除したいアプリケーションのプログラムの名前（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータの名前（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）が宣言される。これにより、Ｊａｖａカードでは、アプリケーションのプログラムの名前（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータの名前（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）で指定されるアプリケーションを削除する。
【００１０】
上記のようなＪａｖａカードが広く普及した場合、カード発行者が発行した全てのＪａｖａカード内のアプリケーションを完全に管理することは、とても困難であると考えられる。それは、膨大な数のアプリケーションが開発され、アプリケーションの追加あるいは削除の権限をカード発行者以外の機関に委譲された場合には任意にアプリケーションの追加あるいは削除が出来ることなどからである。すなわち、上記のような状況では、１つのＪａｖａカードにつき使用回数を制限したいアプリケーション等に関しては問題が発生する場合がある。たとえば、使用回数を制限したいアプリケーションとしては、クーポン券や割引券として機能するアプリケーションなどがある。このようなアプリケーション自体は、従来のＪａｖａカードであっても、使用回数を規定することは可能である（たとえば、特許文献１）。
【００１１】
しかしながら、アプリケーションの追加あるいは削除が任意に可能な場合、そのアプリケーションを削除して再追加することによって使用回数が延長できる。つまり、アプリケーションの追加と削除とを繰り返すことによってアプリケーションの使用回数を無制限にすることが可能となってしまうという問題がある。特に、今後、Ｊａｖａカードに対するアプリケーションの追加あるいは削除の権限がカード発行者以外に委譲されることが多くなると、Ｊａｖａカードへのアプリケーションの再追加に歯止めをかけることが可能な技術が要望されている。
【特許文献１】特開２００３−１９６６２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
この発明は、上記のような問題点を解決するものであり、特定のアプリケーションの追加を制限することができる携帯可能電子装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
この発明の携帯可能電子装置は、書き換え可能な不揮発性メモリにインストールされているアプリケーションを実行するものにおいて、外部装置からの前記不揮発性メモリへのアプリケーションの追加要求と当該アプリケーションの再追加が不可である旨の情報とを受信する受信手段と、この受信手段によりアプリケーションの追加要求と再追加が不可である旨の情報とを受信した場合、当該アプリケーションの再追加を不可とすることを示すデータを設定する設定手段と、前記受信手段により前記外部装置から受信したアプリケーションを前記不揮発性メモリにインストールする処理手段と有する。
【００１４】
この発明の携帯可能電子装置は、書き換え可能な不揮発性メモリにインストールされているアプリケーションを実行するものにおいて、外部装置からの前記不揮発性メモリにインストールされているアプリケーションの削除要求と当該アプリケーションの再追加が不可である旨の情報とを受信する受信手段と、この受信手段によりアプリケーションの削除要求と再追加不可を受信した場合、当該アプリケーションの再追加を不可とすることを示すデータを設定する設定手段と、前記受信手段により削除要求を受信したアプリケーションを前記不揮発性メモリから削除する処理手段とを有する。
【００１５】
この発明の携帯可能電子装置は、書き換え可能な不揮発性メモリにインストールされているアプリケーションを実行するものにおいて、アプリケーションの追加を不可に設定する関数を含む関数群が登録されている登録手段と、この登録手段に登録されている関数群を用いて前記不揮発性メモリにインストールされているアプリケーションを実行する実行手段と、この実行手段により前記不揮発性メモリにインストールされているアプリケーションのうち再追加を不可とするアプリケーションを実行する際、前記登録手段に登録されているアプリケーションの追加を不可に設定する関数を用いて当該アプリケーションの再追加を不可とすることを示すデータを設定する設定手段とを有する。
【００１６】
この発明の携帯可能電子装置は、書き換え可能な不揮発性メモリにインストールされているアプリケーションを実行するものにおいて、追加を不可とするアプリケーションを示すデータが設定されている設定手段と、外部装置からの前記不揮発性メモリへのアプリケーションの追加要求を受信する受信手段と、この受信手段によりアプリケーションの追加要求を受信した場合、当該アプリケーションが前記設定手段により追加を不可とするアプリケーションとして設定されているか否かを判断する判断手段と、この判断手段により当該アプリケーションが追加を不可とするアプリケーションとして設定されていると判断した場合、当該アプリケーションの追加を不可とする第１の処理手段と、前記判断手段により当該アプリケーションが追加を不可とするアプリケーションとして設定されていないと判断した場合、前記受信手段により追加要求を受信したアプリケーションを前記不揮発性メモリにインストールする第２の処理手段とを有する。
【発明の効果】
【００１７】
この発明によれば、特定のアプリケーションの追加を制限することができる携帯可能電子装置を提供することを目的とする。
【発明を実施するための最良の形態】
【００１８】
以下、この発明を実施するための最良の形態について図面を参照して説明する。  
図１は、この実施の形態に係る携帯可能電子装置としてのＩＣカード１のハードウエア構成を概略的に示すものである。以下に説明する実施の形態では、ＩＣカード１がＪａｖａカードであることを想定して説明する。
【００１９】
このＩＣカード１は、ＣＰＵ（セントラル・プロセッシング・ユニット）１１、ＲＯＭ（リード・オンリ・メモリ）１２、ＲＡＭ（ランダム・アクセス・メモリ）１３、通信ユニット（ＵＡＲＴ）１４、不揮発性メモリ（ＮＶ（ＥＥＰＲＯＭ））１５、コプロセッサ（Ｃｏ−Ｐｒｏ）１６、およびタイマ１７などを有している。
【００２０】
上記ＣＰＵ１１は、全体的な管理や制御を司るものである。上記ＣＰＵ１１は、制御プログラム等に基づいて動作し、種々の処理を行う処理手段や判断手段として機能する。上記ＲＯＭ１２は、上記ＣＰＵ１１の制御用プログラムなどが格納される不揮発性メモリである。上記ＲＡＭ１３は、ワーキングメモリとして機能する揮発性のメモリである。上記通信ユニット１４は、送受信手段として機能し、上位装置（カードリーダライタなど）２と通信を制御するものである。
【００２１】
上記不揮発性メモリ１５は、各種データやアプリケーション（アプリケーションプログラム）を記憶する書き換え可能な不揮発性メモリである。また、上記不揮発性メモリ１５には、データテーブル１５ａが設けられている。上記データテーブル１５ａは、設定手段として機能し、後述する再追加不許可情報を記憶する。上記コプロセッサ（Ｃｏ−Ｐｒｏ）１６は、暗号化あるいは復号化などの演算の補助を行うものである。上記タイマ１７は、計時動作を行うものである。
【００２２】
図２は、上述したハードウエア構成のＩＣカード１がＪａｖａカードとして使用される場合のＩＣカード１内のソフトウエア構成を模式的に示すものである。  
上記ＩＣカード１のソフトウエア構成は、ハードウエア（Ｈ／Ｗ）層２１、ＯＳ（オペレーティングシステム）層２２、およびアプリケーション（アプレット）層２３から構成される。上記アプリケーション層２３が最上位に位置し、ＯＳ層２２が上記Ｈ／Ｗ層２１の上位に位置するように構成されている。
【００２３】
上記Ｈ／Ｗ層２１は、上記通信ユニット１４、不揮発性メモリ１５、コプロセッサ１６などのハードウエアからなるものである。上記（Ｈ／Ｗ）層２１は、ＯＳ（オペレーティングシステム）層２２のカードＯＳ３１により制御される。  
上記ＯＳ層２２は、バーチャルマシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）３２、ＩＳＤ．（Ｉｓｓｕｅｒ  Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎ）３３、およびＡＰＩ（ＡＰｐｌｉｃａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ）群３４といったモジュールがカードＯＳ３１にのった状態となっている。
【００２４】
上記バーチャルマシン３２は、Ｊａｖａカード１を動作させるための環境設定などを示すモジュールである。上記ＩＳＤ３３は、上記アプリケーション層２３の各アプリケーション（アプレット）を管理するモジュールである。上記ＡＰＩ群３４は、アプリケーションで使用される関数としてのＡＰＩを示すモジュールであり、アプリケーションにより使用される各種の関数を登録する登録手段として機能する。  
また、上記アプリケーション層２３は、たとえば、複数のアプリケーション（アプリケーションＡ、アプリケーションＢ）を有する。上記アプリケーション層２３の各アプリケーションは上記ＡＰＩ３４を使用して種々の処理を実現するものであり、各アプリケーションの実体は不揮発性メモリ１５等に記憶される。
【００２５】
次に、上記のように構成されるＩＣカード１でのアプリケーションの追加、実行、削除の動作について説明する。
【００２６】
ＩＣカード１では、特定のアプリケーションの再追加を不可とするため、再追加を不可とするための再追加不許可情報を登録し、その再追加不許可情報に基づいて特定のアプリケーションの再追加を不可するようになっている。すなわち、上記ＩＣカード１では、再追加不許可情報を登録する処理と、上記再追加不許可情報に基づいてアプリケーションの追加を制御する処理とを行うようになっている。
【００２７】
上記再追加不許可情報を登録する処理では、たとえば、再追加を許可しないアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を再追加不許可情報として、不揮発性メモリ１５のデータテーブル１５ａに登録する。このデータテーブル１５ａは、ＯＳ層２２のカードＯＳ３１により管理される。
【００２８】
なお、アプリケーションのプログラムの名前（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）とは、アプリケーションを実行するためのプログラムの名前を示すものであり、たとえば、プログラムコード（あるいはＲＯＭコード）を示す。また、アプリケーションのデータの名前（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）とは、アプリケーションの自体の名前を示すものである。
【００２９】
上記再追加不許可情報に基づいてアプリケーションの追加を制御する処理では、たとえば、アプリケーションを追加する際に、そのアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）と上記データテーブル１５ａに登録されている再追加不許可情報と比較し、完全一致もしくは、部分一致した場合に、そのアプリケーションの追加を異常終了させる。
【００３０】
次に、上記ＩＣカード１に再追加不許可情報を登録する処理を具体例な動作例により説明する。  
上記再追加不許可情報は、アプリケーションの追加（インストール）開始から当該アプリケーションを削除するまでの間に登録する必要がある。たとえば、アプリケーションを追加（インストール）する処理、アプリケーションを実行する処理、あるいは、アプリケーションを削除する処理において、上記再追加不許可情報を登録することが可能である。本実施の形態では、上記再追加不許可情報を登録する処理として、たとえば、図３〜図７に示すような５つのパターンについて説明するものとする。
【００３１】
まず、上記再追加不許可情報を登録する処理の例としての第１のパターンについて説明する。  
図３は、上記再追加不許可情報を登録する処理の例としての第１のパターンを説明するためのフローチャートである。  
図３に示す第１のパターンでは、アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を宣言する第１のインストールコマンドにおいて、当該アプリケーションの再追加不許可情報をＩＣカード１に登録する。
【００３２】
すなわち、再追加を不可とするアプリケーションをＩＣカード１に追加する場合、上記上位装置２は、追加するアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）としてのプログラムコードを宣言する第１のインストールコマンドをＩＣカード１へ送信する。この第１のインストールコマンドには、再追加不許可情報を含むものとする。つまり、上記上位装置２は、再追加を不可とするアプリケーションについては、当該アプリケーションの再追加不許可情報を含む第１のインストールコマンドをＩＣカード１へ送信する。この場合、上記再追加不許可情報は、アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）に対応づけられている。
【００３３】
これに対してＩＣカード１では、上記Ｈ／Ｗ層２１のＵＡＲＴ１４により第１のインストールコマンドを受信し、受信した第１のインストールコマンドを上記ＯＳ層２２のカードＯＳ３１へ与える（ステップＳ１）。上記第１のインストールコマンドを受信すると、上記カードＯＳ３１では、当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を定義するとともに、当該第１のインストールコマンドに再追加不許可情報があるか否かを判断する（ステップＳ２）。
【００３４】
この判断により受信した第１のインストールコマンドに再追加不許可情報があると判断した場合（ステップＳ２、あり）、上記カードＯＳ３１は、その再追加不許可情報を当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）に対応づけて登録する（ステップＳ３）。なお、上記再追加不許可情報は、ソフトウエア的にはカードＯＳ３１内に記憶されるが、ハードウエア的には上記不揮発性メモリ１５内に記憶される。
【００３５】
上記第１のインストールコマンドに応じたアプリケーションのプログラム名の定義および当該アプリケーションの再追加不許可情報を登録が完了すると、上記カードＯＳ３１は、当該第１のインストールコマンドに対する処理が正常に終了したことを示すステータスを上位装置２へ返す。
【００３６】
上記第１のインストールコマンドが正常に終了した旨のステータスを受信した上位装置２では、当該アプリケーションのプログラムの実体（プログラムを構成するデータ）をロードするロードコマンドを当該ＩＣカード１へ送信する。上記ロードコマンドは、当該アプリケーションのデータ量や上位装置とＩＣカードとの通信能力等に応じて複数回実施される。このようなロードコマンドに対して、上記ＩＣカード１では、上記上位装置２からのロードコマンドを受信するごとに、当該アプリケーションのプログラムを上記不揮発性メモリ１５に記憶（ロード）し、その処理結果を上記上位装置２へ返す（ステップＳ４）。
【００３７】
このような動作によってアプリケーションのプログラムのロードが完了すると、複数のロードコマンドによりロードされたアプリケーションのプログラムは、上記第１のインストールコマンドによって定義されたプログラム名の１つのアプリケーションとして上記アプリケーション層２３に追加（作成）される（ステップＳ５）。これは、ハードウエア的には、上記アプリケーションが不揮発性メモリ１５に記憶されたことを示す。
【００３８】
このような複数のロードコマンドに対する処理が正常終了した旨を受信した上位装置２では、さらに、ロードしたアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を宣言する第２のインストールコマンドをＩＣカード１へ送信する。
【００３９】
これに対してＩＣカード１では、上記Ｈ／Ｗ層２１のＵＡＲＴ１４により第２のインストールコマンドを受信し、受信した第２のインストールコマンドを上記ＯＳ層２２のカードＯＳ３１へ与える（ステップＳ６）。当該ＩＣカード１のカードＯＳ３１では、上記ステップＳ５で上記アプリケーション層２３に追加された当該アプリケーションのデータを追加し、その名前（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を定義する（ステップＳ７）。  
上記第２のインストールコマンドに応じたアプリケーションのデータ名の追加が完了すると、上記カードＯＳ３１は、当該第２のインストールコマンドに対する処理が正常に終了したことを示すステータスを上位装置２へ返す。
【００４０】
上記のように、第１のパターンによれば、再追加不可とするアプリケーションをＩＣカードに追加する上位装置では、アプリケーションのプログラムの名前（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）をＩＣカードに宣言する第１のインストールコマンドにおいて再追加不許可情報をＩＣカードに送信し、ＩＣカードでは、第１のインストールコマンドに対して再追加不許可情報の有無を確認し、再追加不許可情報が含まれている場合には、そのアプリケーションのプログラム（名前はＬｏａｄ  Ｆｉｌｅ  ＡＩＤ）を再追加不可とするアプリケーションとして登録するようにしたものである。
【００４１】
これにより、第１のパターンによれば、再追加を不可とするアプリケーションについては、インストール時に、当該アプリケーションのプログラム名を宣言する第１のインストールコマンドにて、当該アプリケーションのプログラム名に対応して再追加不許可情報を設定することができ、当該アプリケーションの再追加を不可とすることが可能となる。
【００４２】
次に、上記再追加不許可情報を登録する処理の例としての第２のパターンについて説明する。  
図４は、上記再追加不許可情報を登録する処理の例としての第２のパターンを説明するためのフローチャートである。  
図４に示す第２のパターンでは、アプリケーションのプログラムを転送（ロード）するロードコマンドにおいて当該アプリケーションの再追加不許可情報をＩＣカードに登録する。
【００４３】
すなわち、再追加を不可とするアプリケーションをＩＣカード１に追加する場合、上記上位装置２は、まず、追加するアプリケーションのプログラムの名前（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）としてロードするプログラムのコードを宣言する第１のインストールコマンドをＩＣカード１へ送信する。
【００４４】
これに対してＩＣカード１では、上記Ｈ／Ｗ層２１のＵＡＲＴ１４により第１のインストールコマンドを受信し、受信した第１のインストールコマンドを上記ＯＳ層２２のカードＯＳ３１へ与える。上記カードＯＳ３１では、当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を定義する（ステップＳ１１）、このような上記第１のインストールコマンドに応じたアプリケーションのプログラム名の定義が完了すると、上記カードＯＳ３１は、当該第１のインストールコマンドに対する処理が正常に終了したことを示すステータスを上位装置２へ返す。
【００４５】
上記第１のインストールコマンドが正常に終了した旨のステータスを受信した上位装置２では、当該アプリケーションのプログラム（プログラムを構成するデータ）をロードするためのロードコマンドを当該ＩＣカード１へ送信する。上記ロードコマンドは、当該アプリケーションのデータ量や上位装置とＩＣカードとの通信能力等に応じて複数回実施される。
【００４６】
また、これらのロードコマンドの何れか１つには、再追加不許可情報を含むものとする。つまり、上記上位装置２は、再追加を不可とするアプリケーションについては、当該アプリケーションの再追加不許可情報を含むロードコマンド（複数回ロードコマンドを実施する場合には何れか１つのロードコマンド）をＩＣカード１へ送信する。また、ロードコマンドに含まれる再追加不許可情報は、アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）に対応づけられている。なお、上記再追加不許可情報は、複数のロードコマンドのうちどのロードコマンドに含めるようにしても良く、たとえば、最初のロードコマンドや最後のロードコマンドに含めるようにすれば良い。
【００４７】
このような上位装置から受信したロードコマンドに再追加不許可情報が含まれていない場合（ステップＳ１３、なし）、上記ＩＣカード１では、上記上位装置２からのロードコマンドを受信するごとに、当該アプリケーションのプログラムを上記不揮発性メモリ１５に記憶（ロード）し、その処理結果を上記上位装置２へ返す（ステップＳ１２）。
【００４８】
また、上位装置から受信したロードコマンドに再追加不許可情報が含まれていた場合（ステップＳ１３、あり）、上記カードＯＳ３１は、受信したロードコマンドにより当該アプリケーションのプログラムを上記不揮発性メモリ１５に記憶（ロード）するとともに、そのロードコマンドに含まれている再追加不許可情報を当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）に対応づけて登録する（ステップＳ１４）。なお、上記再追加不許可情報は、ソフトウエア的にはカードＯＳ３１内に記憶されるが、ハードウエア的には上記不揮発性メモリ１５内に記憶される。
【００４９】
上記のような複数のロードコマンドによるアプリケーションのプログラムのロードが完了すると、カードＯＳ３１は、複数のロードコマンドによりロードしたアプリケーションのプログラムは、上記第１のインストールコマンドによって定義されたプログラム名の１つのアプリケーションとして上記アプリケーション層２３に追加（作成）する（ステップＳ１５）。これは、ハードウエア的には、上記アプリケーションが不揮発性メモリ１５に記憶されたことを示す。
【００５０】
このような複数のロードコマンドに対する処理が正常終了した旨を受信した上位装置２では、さらに、ロードしたアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を宣言する第２のインストールコマンドをＩＣカード１へ送信する。  
これに対してＩＣカード１では、上記ステップＳ６およびＳ７と同様に、受信した第２のインストールコマンドに基づいて上記アプリケーション層２３に追加された当該アプリケーションのデータを追加し（ステップＳ１６）、名前（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を定義し（ステップＳ１７）、当該第２のインストールコマンドに対する処理が正常に終了したことを示すステータスを上位装置２へ返す。
【００５１】
上記のように、第２のパターンによれば、再追加不可とするアプリケーションをＩＣカードに追加する上位装置では、アプリケーションのプログラムをロードするロードコマンドにおいて再追加不許可情報をＩＣカードに送信し、ＩＣカードでは、ロードコマンドに対して再追加不許可情報の有無を確認し、再追加不許可情報が含まれている場合には、そのアプリケーションのプログラム（名前はＬｏａｄ  Ｆｉｌｅ  ＡＩＤ）を再追加不可とするアプリケーションとして登録するようにしたものである。
【００５２】
これにより、上述した第２のパターンによれば、再追加を不可とするアプリケーションについては、そのインストール時に、ロードコマンドにて、当該アプリケーションのプログラム名に対応して再追加不許可情報を設定することができ、当該アプリケーションの再追加を不可とすることが可能となる。
【００５３】
次に、上記再追加不許可情報を登録する処理の例としての第３のパターンについて説明する。  
図５は、上記再追加不許可情報を登録する処理の例としての第３のパターンを説明するためのフローチャートである。  
図５に示す第３のパターンでは、ロードされたアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を宣言する第２のインストールコマンドにおいて、再追加不許可情報をＩＣカード１に登録する。
【００５４】
すなわち、再追加を不可とするアプリケーションをＩＣカード１に追加する場合、上記上位装置２は、追加するアプリケーションのプログラム名（アプリケーションプログラムを構成するデータ）としてロードするデータのファイル名を宣言する第１のインストールコマンドをＩＣカード１へ送信する。これに対してＩＣカード１のカードＯＳ３１では、上記ステップＳ１１と同様に、受信した第１のインストールコマンドに基づいて、当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を定義し（ステップＳ２１）、当該第１のインストールコマンドに対する処理が正常に終了したことを示すステータスを上位装置２へ返す。
【００５５】
上記第１のインストールコマンドが正常に終了した旨のステータスを受信した上位装置２では、上記ステップＳ４と同様に、当該アプリケーションのプログラム（プログラムを構成するデータ）をロードする複数のロードコマンドを順次当該ＩＣカード１へ送信する。このようなロードコマンドに対して、上記ＩＣカード１では、上記上位装置２からのロードコマンドを受信するごとに、当該アプリケーションのプログラムを上記不揮発性メモリ１５に記憶（ロード）し、その処理結果を上記上位装置２へ返す（ステップＳ２２）。
【００５６】
複数のロードコマンドによりロードされたアプリケーションのプログラムは、上記第１のインストールコマンドによって定義されたプログラム名の１つのアプリケーションとして上記アプリケーション層２３に追加（作成）される（ステップＳ２３）。これは、ハードウエア的には、上記アプリケーションが不揮発性メモリ１５に記憶されたことを示す。
【００５７】
このような複数のロードコマンドに対する処理が正常終了した旨をＩＣカード１から受信した上位装置２では、さらに、ロードしたアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を宣言する第２のインストールコマンドをＩＣカード１へ送信する。この第２のインストールコマンドには、再追加不許可情報を含むものとする。つまり、上記上位装置２は、再追加を不可とするアプリケーションについては、当該アプリケーションの再追加不許可情報を含む第２のインストールコマンドをＩＣカード１へ送信する。この場合、上記再追加不許可情報は、アプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）に対応づけられている。
【００５８】
これに対してＩＣカード１では、上記Ｈ／Ｗ層２１のＵＡＲＴ１４により第２のインストールコマンドを受信し、受信した第２のインストールコマンドを上記ＯＳ層２２のカードＯＳ３１へ与える（ステップＳ２４）。上記カードＯＳ３１では、当該アプリケーションのデータを追加して当該アプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を定義するとともに、当該第２のインストールコマンドに再追加不許可情報があるか否かを判断する（ステップＳ２５）。
【００５９】
この判断により受信した第１のインストールコマンドに再追加不許可情報があると判断した場合（ステップＳ２５、あり）、上記カードＯＳ３１は、その再追加不許可情報を当該アプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）に対応づけて登録する（ステップＳ２６）。なお、上記再追加不許可情報は、ソフトウエア的にはカードＯＳ３１内に記憶されるが、ハードウエア的には上記不揮発性メモリ１５内に記憶される。
【００６０】
上記第２のインストールコマンドに応じたアプリケーションのデータ（名前はＡｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）の追加および当該アプリケーションの再追加不許可情報を登録が完了すると、上記カードＯＳ３１は、当該第２のインストールコマンドに対する処理が正常に終了したことを示すステータスを上位装置２へ返す。
【００６１】
上記のように、第３のパターンによれば、再追加不可とするアプリケーションをＩＣカードに追加する上位装置では、アプリケーションのデータの名前（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）をＩＣカードに宣言する第２のインストールコマンドにおいて再追加不許可情報をＩＣカードに送信し、ＩＣカードでは、第２のインストールコマンドに対して再追加不許可情報の有無を確認し、再追加不許可情報が含まれている場合には、そのアプリケーションのデータ（名前はＡｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を再追加不可とするアプリケーションとして登録するようにしたものである。
【００６２】
これにより、第３のパターンによれば、再追加を不可とするアプリケーションについては、インストール時に、当該アプリケーションのデータ名を宣言する第２のインストールコマンドにて、当該アプリケーションのプログラム名に対応して再追加不許可情報を設定することができ、当該アプリケーションの再追加を不可とすることが可能となる。
【００６３】
次に、上記再追加不許可情報を登録する処理の例としての第４のパターンについて説明する。  
図６は、上記再追加不許可情報を登録する処理の例としての第４のパターンを説明するためのフローチャートである。  
図６に示す第４のパターンでは、アプリケーションの実行中において、当該アプリケーション自身が再追加不許可情報をＩＣカード１に登録する。
【００６４】
ここで、上記上位装置２が再追加不可とするアプリケーションの実行を要求するコマンドをＩＣカード１へ送信したものとする。これに対してＩＣカード１では、上位装置２からのアプリケーションの実行を要求するコマンドを受信し（ステップＳ３１）、上記カードＯＳ３１によりアプリケーション層２３の当該アプリケーションに対して実行の指示を行う。これにより、アプリケーション層２３のアプリケーションが開始される（ステップＳ３２）。
【００６５】
上記アプリケーション層２３のアプリケーションは、当該アプリケーションの再追加が不可である場合、再追加不許可情報の登録処理を行う。この再追加不許可情報の登録処理では、当該アプリケーションが上記ＯＳ層２２のＡＰＩ群３４に対して当該アプリケーション自身の再追加不許可情報の登録処理を行うためのＡＰＩ３４ａを呼び出す（ステップＳ３３）。なお、ＡＰＩ群３４はアプリケーションで使用される関数などを示すＡＰＩからなり、再追加不許可情報の登録処理を行うためのＡＰＩ３４ａは予め設定されているものとする。
【００６６】
上記アプリケーションに呼び出されたＡＰＩ３４ａは、上記データテーブル１５ａに再追加不許可情報が登録されているアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を参照し、当該アプリケーションの再追加不許可情報が既に登録済みでないかを確認する。なお、当該アプリケーションの再追加不許可情報が登録済みであると判定した場合には上記ステップＳ３６へ進み、当該アプリケーションを実行する（ステップＳ３６）。
【００６７】
当該アプリケーションの再追加不許可情報が登録済みでないことを確認すると、上記ＡＰＩ３４ａは、カードＯＳ３１に対して当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）に対応づけて再追加不許可情報の登録の要求を行う。カードＯＳ３１では、ＡＰＩ３４ａにより指定された当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）の再追加不許可情報を上記データテーブル１５ａに登録する。
【００６８】
この登録が正常に終了すると、カードＯＳ３１は、上記ＡＰＩ３４ａを介して当該アプリケーションに再追加不許可情報の登録が正常終了した旨を通知する。この再追加不許可情報の登録が正常終了した旨の通知を受けると、当該アプリケーションは、当該アプリケーションの本体となる残りのプログラムを実行する（ステップＳ３６）。
【００６９】
上記のように、第４のパターンでは、ＩＣカードにインストールされているアプリケーションが自身のアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を再追加不許可情報としてカードＯＳに登録するようにしたものである。
【００７０】
これにより、第４のパターンによれば、再追加を不可とするアプリケーションについては、そのアプリケーションの実行時に、自身のアプリケーションの再追加を不許可とするための、当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）に対応づけた再追加不許可情報を設定することができ、当該アプリケーションの再追加を不可とすることが可能となる。
【００７１】
また、上記第４のパターンによれば、アプリケーションのインストールや削除の過程では、再追加不許可情報を登録する処理が不要となり、上位装置から再追加不許可情報の登録を指示する必要がなくなる。つまり、アプリケーションの処理の１つとして再追加不許可情報の登録処理を行うことができるため、ＩＣカード内での処理で再追加不許可情報を登録でき、上位装置からのアプリケーションの追加や削除は従来の手順で実行できる。さらに、この結果として、上位装置とＩＣカードとからなるシステムとしての動作が従来と同様であっても上記のような動作が実施可能となる。
【００７２】
なお、上記第４のパターンでは、アプリケーションが自身のアプリケーションの再追加を不可とするような再追加不許可情報を登録するものとしたが、任意のアプリケーションの追加を不可とするような追加不許可情報を登録するようにしても良い。すなわち、上記第４のパターンでは、アプリケーションが実行する処理として再追加不許可情報を登録するようにしているため、当該アプリケーション自身以外の任意のアプリケーションの追加（インストール）を不可とするような情報を登録することができる。この場合、たとえば、追加を不可とするアプリケーションは、処理を実行するアプリケーションにより呼び出されるＡＰＩ３４ａの引数定義により指定可能である。
【００７３】
次に、上記再追加不許可情報を登録する処理の例としての第５のパターンについて説明する。  
図７は、上記再追加不許可情報を登録する処理の例としての第５のパターンを説明するためのフローチャートである。  
図７に示す第５のパターンでは、アプリケーションを削除する削除コマンドにおいて、当該アプリケーションに対する再追加不許可情報をＩＣカード１に登録する。
【００７４】
すなわち、再追加を不可とするアプリケーションをＩＣカード１から削除する場合、上記上位装置２は、削除するアプリケーションの名前（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を宣言する削除コマンドをＩＣカード１へ送信する。この削除コマンドには、再追加不許可情報を含むものとする。つまり、上記上位装置２は、再追加を不可とするアプリケーションについては、当該アプリケーションの再追加不許可情報を含む削除コマンドをＩＣカード１へ送信する。この場合、上記再追加不許可情報は、アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）に対応づけられている。
【００７５】
これに対してＩＣカード１では、上記Ｈ／Ｗ層２１のＵＡＲＴ１４により削除コマンドを受信し、受信した削除コマンドを上記ＯＳ層２２のカードＯＳ３１へ与える（ステップＳ４１）。上記カードＯＳ３１では、削除コマンドを受信した際、当該削除コマンドに再追加不許可情報があるか否かを判断する（ステップＳ４２）。
【００７６】
この判断により受信した削除コマンドに再追加不許可情報があると判断した場合（ステップＳ４２、あり）、上記カードＯＳ３１は、その再追加不許可情報を当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）に対応づけて登録する（ステップＳ４３）。なお、上記再追加不許可情報は、ソフトウエア的にはカードＯＳ３１内に記憶されるが、ハードウエア的には上記不揮発性メモリ１５内に記憶される。
【００７７】
さらに、上記カードＯＳ３１は、受信した削除コマンドにより指定されるアプリケーション（名前はＡｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を不揮発性メモリ１５上から削除する処理を行う。これにより、上記削除コマンドに応じた当該アプリケーションの再追加不許可情報の登録およびアプリケーションの削除が完了すると、上記カードＯＳ３１は、当該削除コマンドに対する処理が正常に終了したことを示すステータスを上位装置２へ返す。
【００７８】
上記のように、第５のパターンによれば、上位装置２では、再追加不可とするアプリケーションを削除する際、削除するアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）をＩＣカードに宣言する削除コマンドに再追加不許可情報を付加してＩＣカードへ送信し、ＩＣカードでは、削除コマンドに対して再追加不許可情報の有無を確認し、再追加不許可情報が含まれている場合には、当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を再追加不可とするアプリケーションとして登録するようにしたものである。
【００７９】
これにより、第５のパターンによれば、再追加を不可とするアプリケーションについては、削除時に、当該アプリケーションの削除を要求する削除コマンドにて、当該アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）あるいはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）に対応づけた再追加不許可情報を設定することができ、当該アプリケーションの再追加を不可とすることが可能となる。
【００８０】
この場合、アプリケーションのインストールおよび実行の過程では、再追加不許可情報を登録する処理が不要となる。つまり、削除しないアプリケーションについては、アプリケーション自身の使用回数制限によって使用回数を制限でき、当該アプリケーションの再追加を制限するための上記のような再追加不許可情報を登録する必要がない。たとえば、ＩＣカードの運用形態が簡単にアプリケーションの削除しないような形態であれば、インストール時に再追加不許可情報を登録するなどの無駄な処理が不要となる。
【００８１】
次に、上記ＩＣカード１にアプリケーションの追加する際の具体例な動作例について説明する。  
上記のような再追加不許可情報に基づいてアプリケーションの追加を制限する処理は、アプリケーションのインストール時に実行される。本実施の形態では、アプリケーションの追加を制限する処理の具体例として、たとえば、図８〜図１０に示すような３つのパターンについて説明するものとする。
【００８２】
まず、アプリケーションの追加を制限する処理の例としての第６のパターンについて説明する。  
図８は、アプリケーションの追加を制限する処理の例としての第６のパターンを説明するためのフローチャートである。  
図８に示す第６のパターンでは、アプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を宣言する第１のインストールコマンドを受信した際に、当該アプリケーションの追加の可否を判断するものである。
【００８３】
ここで、上位装置２から追加するアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を宣言する第１のインストールコマンドがＩＣカード１へ送信されたものとする。上位装置２から第１のインストールコマンドを受信すると（ステップＳ６１）、ＩＣカード１のカードＯＳ３１は、まず、当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）に基づいて上記データテーブル１５ａに登録されているアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を検索する（ステップＳ６２）。
【００８４】
この検索の結果に基づいて、上記カードＯＳ３１は、当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）と完全に一致するか、あるいは一部が一致するアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）が上記データテーブル１５ａに登録されているか否かを判断する（ステップＳ６３）。
【００８５】
ここで、一部一致とは、当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名の一部とデータテーブル１５ａに登録されているアプリケーションのプログラム名の一部が一致することでプログラム名が同じアプリケーションであることが判断できる場合である。たとえば、当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名の上位部分がデータテーブル１５ａに登録されているアプリケーションのプログラム名の上位部分と一意に一致すれば、両者が一致したと判断するようにするものである。
【００８６】
上記判断により当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名と完全一致あるいは一部一致するプログラム名がデータテーブル１５ａに登録されていると判断した場合（ステップＳ６３、なし）、上記カードＯＳ３１は、当該アプリケーションのインストール処理を実行する。当該アプリケーションのインストール処理は、たとえば、上記第１のパターン、あるいは、上記第２のパターンにより実行される。
【００８７】
また、上記判断により当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名と完全一致あるいは一部一致するプログラム名がデータテーブル１５ａに登録されていると判断した場合（ステップＳ６３、あり）、上記カードＯＳ３１は、当該アプリケーションの追加（再追加）を不許可とし、当該第１のインストールコマンドに対する処理が異常終了したことを示すステータスを上位装置２へ通知する（ステップＳ６４）。これにより、上記ＩＣカード１には、当該アプリケーションを追加することが不許可となる。
【００８８】
上記のように、第６のパターンでは、上位装置から追加するアプリケーションのプログラム名を宣言する第１のインストールコマンドを受信した際に、当該アプリケーションのプログラム名が再追加不可のアプリケーションのプログラム名として登録されているか否かを判断し、この判断により当該アプリケーションのプログラム名が再追加不可のアプリケーションのプログラム名として登録されていると判断した場合、当該アプリケーションのインストールを不可とするものである。
【００８９】
これにより、再追加不可のアプリケーションとして登録されているプログラム名と一致するプログラム名のアプリケーションについては、そのプログラム名を宣言するインストールコマンドを受信した際にインストールを不可することができる。また、アプリケーションのプログラム名は容易に変更することができないため、上記第６のパターンによれば、アプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を変更しても同じプログラムからなるアプリケーションの再追加を不可とすることが可能となる。
【００９０】
次に、アプリケーションの追加を制限する処理の例としての第７のパターンについて説明する。  
図９は、アプリケーションの追加を制限する処理の例としての第７のパターンを説明するためのフローチャートである。  
図９に示す第７のパターンでは、アプリケーションのプログラム（名前はＬｏａｄ  Ｆｉｌｅ  ＡＩＤ）をロードするロードコマンドを受信した際に、当該アプリケーションの追加の可否を判断するものである。
【００９１】
ここで、上位装置２から追加するアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を宣言する第１のインストールコマンドがＩＣカード１へ送信されたものとする。上位装置２から第１のインストールコマンドを受信すると、ＩＣカード１のカードＯＳ３１は、まず、当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を設定し、その処理結果を上位装置２へ通知する。
【００９２】
上記上位装置２では、第１のインストールコマンドに対する処理が正常終了した旨の通知を受けて、当該アプリケーションのプログラムをロードするロードコマンドを送信する。このロードコマンドは、当該アプリケーションのプログラムのデータ量やＩＣカード１との通信能力に応じて複数回実施される。
【００９３】
上位装置２からロードコマンドを受信すると、ＩＣカード１のカードＯＳ３１は、受信したロードコマンドに従ってアプリケーションのプログラムをロードする処理を行う（ステップＳ７２）。この際、上記カードＯＳ３１は、ロードするアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）に基づいて上記データテーブル１５ａに登録されているアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を検索する（ステップＳ７３）。
【００９４】
なお、ロードコマンドが複数回実施される場合、上記カードＯＳ３１は、複数のロードコマンドのうち何れかのロードコマンドを受信した際に、検索処理を行う。たとえば、最初のロードコマンドを受信した際に、プログラム名に基づく検索を行うようにしても良いし、最終のロードコマンドを受信した際にプログラム名に基づく検索を行うようにしても良い。
【００９５】
この検索の結果に基づいて、上記カードＯＳ３１は、当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）と完全に一致するか、あるいは一部が一致するアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）が上記データテーブル１５ａに登録されているか否かを判断する（ステップＳ７４）。
【００９６】
上記判断により当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名と完全一致あるいは一部一致するプログラム名がデータテーブル１５ａに登録されていると判断した場合（ステップＳ６４、なし）、上記カードＯＳ３１は、当該アプリケーションのインストール処理を実行する。このアプリケーションのインストール処理は、たとえば、上記第２のパターンにより実行されるようにすれば良い。
【００９７】
また、上記判断により当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名と完全一致あるいは一部一致するプログラム名がデータテーブル１５ａに登録されていると判断した場合（ステップＳ７４、あり）、上記カードＯＳ３１は、当該アプリケーションの追加（再追加）を不許可とし、当該ロードコマンドに対する処理が異常終了したことを示すステータスを上位装置２へ通知する（ステップＳ７５）。これにより、上記ＩＣカード１には、当該アプリケーションを追加することが不許可となる。
【００９８】
上記のように、第７のパターンでは、上位装置から追加するアプリケーションのプログラムをロードするロードコマンドを受信した際に、当該アプリケーションのプログラム名が再追加不可のアプリケーションのプログラム名として登録されているか否かを判断し、この判断により当該アプリケーションのプログラム名が再追加不可のアプリケーションのプログラム名として登録されていると判断した場合、当該アプリケーションのインストールを不可とするものである。
【００９９】
これにより、再追加不可のアプリケーションとして登録されているプログラム名と一致するプログラム名のアプリケーションについては、そのプログラムをロードするインストールコマンドを受信した際にインストールを不可することができる。また、アプリケーションのプログラム名は容易に変更することができないため、上記第６のパターンと同様に、第７のパターンによれば、アプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を変更しても同じプログラムからなるアプリケーションの再追加を不可とすることが可能となる。
【０１００】
次に、アプリケーションの追加を制限する処理の例としての第８のパターンについて説明する。  
図１０は、アプリケーションの追加を制限する処理の例としての第８のパターンを説明するためのフローチャートである。  
図１０に示す第８のパターンでは、アプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を宣言する第２のインストールコマンドを受信した際に、当該アプリケーションの追加の可否を判断するものである。
【０１０１】
ここで、上位装置２から追加するアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を宣言する第１のインストールコマンドがＩＣカード１へ送信されたものとする。上位装置２から第１のインストールコマンドを受信すると、ＩＣカード１のカードＯＳ３１は、当該第１のインストールコマンドにより指定されたアプリケーションのプログラム名（Ｌｏａｄ  Ｆｉｌｅ  ＡＩＤ）を設定し、その処理結果を上位装置２へ通知する（ステップＳ８１）。
【０１０２】
上記上位装置２では、第１のインストールコマンドに対する処理が正常終了した旨の通知を受けて、当該アプリケーションのプログラムをロードするロードコマンドを送信する。このロードコマンドは、当該アプリケーションのプログラムのデータ量やＩＣカード１との通信能力に応じて複数回実施される。上位装置２からロードコマンドを受信するごとに、ＩＣカード１のカードＯＳ３１は、受信したロードコマンドに従ってアプリケーションのプログラムをロードする処理を行う（ステップＳ８２）。複数のロードコマンドによってロードされたアプリケーションのプログラムは、上記第１のインストールコマンドによって定義されたプログラム名の１つのアプリケーションとして上記アプリケーション層２３に追加（作成）される（ステップＳ８３）。
【０１０３】
上記のような複数のロードコマンドに対する処理が正常終了した旨を受信した上位装置２では、さらに、ロードしたアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を宣言する第２のインストールコマンドをＩＣカード１へ送信する。  
上記上位装置２から第２のインストールコマンドを受信すると（ステップＳ８４）、ＩＣカード１のカードＯＳ３１は、当該第２のインストールコマンドにより指定されたアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）に基づいて上記データテーブル１５ａに登録されているアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を検索する（ステップＳ８５）。
【０１０４】
この検索の結果に基づいて、上記カードＯＳ３１は、当該第２のインストールコマンドにより指定されたアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）と完全に一致するか、あるいは一部が一致するアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）が上記データテーブル１５ａに登録されているか否かを判断する（ステップＳ８６）。
【０１０５】
上記判断により当該第２のインストールコマンドにより指定されたアプリケーションのデータ名と完全一致あるいは一部一致するデータ名のアプリケーションがデータテーブル１５ａに登録されていると判断した場合（ステップＳ８６、なし）、上記カードＯＳ３１は、当該アプリケーションのインストール処理を実行する。このアプリケーションのインストール処理は、たとえば、上記第３のパターンにより実行されるようにすれば良い。
【０１０６】
また、上記判断により当該第２のインストールコマンドにより指定されたアプリケーションのデータ名と完全一致あるいは一部一致するデータ名のアプリケーションがデータテーブル１５ａに登録されていると判断した場合（ステップＳ８６、あり）、上記カードＯＳ３１は、当該アプリケーションの追加（再追加）を不許可とし、当該第２のインストールコマンドに対する処理が異常終了したことを示すステータスを上位装置２へ通知する（ステップＳ８７）。これにより、上記ＩＣカード１には、当該アプリケーションを追加することが不許可となる。
【０１０７】
上記のように、第８のパターンでは、上位装置から追加するアプリケーションのデータ名を宣言する第２のインストールコマンドを受信した際に、当該アプリケーションのデータ名が再追加不可のアプリケーションのデータ名として登録されているか否かを判断し、この判断により当該アプリケーションのデータ名が再追加不可のアプリケーションのデータ名として登録されていると判断した場合、当該アプリケーションのインストールを不可とするものである。
【０１０８】
これにより、再追加不可のアプリケーションとして登録されているデータ名と一致するデータ名のアプリケーションについては、そのアプリケーションのデータ名を宣言する第２のインストールコマンドを受信した際にインストールを不可することができる。また、アプリケーションのデータ名は容易に変更することができないため、第８のパターンによれば、アプリケーションのデータ名によりインストールが不可か否かを判断するため、上記データテーブル１５ａにはアプリケーションのデータ名（Ａｐｐｌｉｃａｔｉｏｎ  ＡＩＤ）を登録しておけば良い。さらに、第８のパターンでは、同一のプログラム名からなる他のアプリケーションの追加を不可としないようにすることも可能となる。
【０１０９】
なお、上記第６のパターン、上記第７のパターンおよび第８のパターンは、予め登録されているアプリケーションであるか否かに基づいてアプリケーションが追加可能か否かを判断するものである。このため、アプリケーションの再追加の場合に限らず、予め追加を不可とするアプリケーションを登録しておくことにより、特定のアプリケーションの追加（インストール）を不可するようにすることも可能である。
【０１１０】
また、上記第１のインストールコマンドを受信した際にアプリケーションのプログラム名に基づいてアプリケーションの追加の可否を判断する第６のパターンについては、再追加許可情報としてアプリケーションのプログラム名を設定する上記第１、第２、第４、あるいは第５のパターンと組み合わせて実施することが可能である。
【０１１１】
また、上記ロードコマンドを受信した際にアプリケーションのプログラム名に基づいてアプリケーションの追加の可否を判断する第７のパターンについては、再追加許可情報としてアプリケーションのプログラム名を設定する上記第２、第４、あるいは第５のパターンと組み合わせて実施することが可能である。
【０１１２】
また、上記第２のインストールコマンドを受信した際にアプリケーションのデータ名に基づいてアプリケーションの追加の可否を判断する第８のパターンについては、再追加許可情報としてアプリケーションのデータ名を設定する上記第３、第４、あるいは第５のパターンと組み合わせて実施することが可能である。
【図面の簡単な説明】
【０１１３】
【図１】本発明の実施の形態に係る携帯可能電子装置としてのＩＣカード１のハードウエア構成を概略的に示す図。
【図２】ＩＣカードがＪａｖａカードとして使用される場合のＩＣカード内のソフトウエア構成を模式的に示す図。
【図３】再追加不許可情報を登録する処理の例としての第１のパターンを説明するためのフローチャート。
【図４】再追加不許可情報を登録する処理の例としての第２のパターンを説明するためのフローチャート。
【図５】再追加不許可情報を登録する処理の例としての第３のパターンを説明するためのフローチャート。
【図６】再追加不許可情報を登録する処理の例としての第４のパターンを説明するためのフローチャート。
【図７】再追加不許可情報を登録する処理の例としての第５のパターンを説明するためのフローチャート。
【図８】アプリケーションの追加を制限する処理の例としての第６のパターンを説明するためのフローチャート。
【図９】アプリケーションの追加を制限する処理の例としての第７のパターンを説明するためのフローチャート。
【図１０】アプリケーションの追加を制限する処理の例としての第８のパターンを説明するためのフローチャート。
【符号の説明】
【０１１４】
１…ＩＣカード（携帯可能電子装置）、２…上位装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…通信ユニット（ＵＡＲＴ）、１５…不揮発性メモリ、１５ａ…データテーブル、２１…ハードウエア層、２２…ＯＳ層、２３…アプリケーション層、３１…カードＯＳ、３２…バーチャルマシン、３３…ＩＳＤ、３４…ＡＰＩ群、３４ａ…ＡＰＩ
【図１】
2006113747.tif 000003
【図２】
2006113747.tif 000004
【図３】
2006113747.tif 000005
【図４】
2006113747.tif 000006
【図５】
2006113747.tif 000007
【図６】
2006113747.tif 000008
【図７】
2006113747.tif 000009
【図８】
2006113747.tif 000010
【図９】
2006113747.tif 000011
【図１０】
2006113747.tif 000012