(57)【要約】【課題】アプリケーションプログラム及びアプリケーションインスタンスのアップデート処理において、当該アップデート対象にのみ割り当てられていた独占対象を、他のアプリケーションプログラム又はアプリケーションインスタンスに割り当てることなく、アップデート処理後も適切にアップデートしたアプリケーションプログラム又はアプリケーションインスタンスに引き継ぐことができる電子情報記憶媒体等を提供する。【解決手段】独占対象が割り当てられていたアップデート対象を削除している場合において、他のアプリケーションプログラム及びアプリケーションインスタンスに対して当該独占対象を割り当てる要求を受け付けた場合にこれを拒否する。【選択図】図４
2019046211.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラム及びアプリケーションインスタンスを記憶する記憶手段と、
アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除手段と、
前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段と、
前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段と、
前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
請求項１に記載の電子情報記憶媒体であって、
前記独占対象は、前記記憶手段に記憶される何れかのアプリケーションプログラム又はアプリケーションインスタンスに必ず割り当てられなければならず、
前記削除対象を削除する際に、当該削除対象を管理する管理アプリケーションプログラム又は管理アプリケーションインスタンスに前記独占対象を割り当てる割り当て手段と、
前記管理アプリケーションプログラム又は前記管理アプリケーションインスタンスに割り当てた独占対象を、前記新アプリケーションプログラム又は前記新アプリケーションインスタンスに再割り当てする再割り当て手段と、
を更に備えることを特徴とする電子情報記憶媒体。
【請求項３】
請求項１又は２に電子情報記憶媒体であって、
前記削除処理、前記ロード処理又は前記インストール処理を実行中に、前記削除対象であるアプリケーションプログラム又はアプリケーションインスタンスを検索する要求を外部機器から受けた場合に、当該削除対象であるアプリケーションプログラム又はアプリケーションインスタンスは存在しない旨の応答を前記外部機器に行う応答手段を更に備えることを特徴とする電子情報記憶媒体。
【請求項４】
請求項１乃至３の何れか一項に記載の電子情報記憶媒体を備えるＩＣカード。
【請求項５】
アプリケーションプログラム及びアプリケーションインスタンスを記憶する記憶手段を備える電子情報記憶媒体によるアップデート方法であって、
アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除工程と、
前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード工程と、
前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール工程と、
前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否工程と、
を含むことを特徴とする電子情報記憶媒体によるアップデート方法。
【請求項６】
アプリケーションプログラム及びアプリケーションインスタンスを記憶する記憶手段を備える電子情報記憶媒体に含まれるコンピュータを、
アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除手段、
前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段、
前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段、
前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否手段、
として機能させることを特徴とするアップデートプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣ（Integrated Circuit）チップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
従来、ＩＣチップなどの電子情報記憶媒体が組み込まれたＩＣカードにおいて、ＩＣチップのＲＯＭにＩＣカードＯＳ（Operating System）を記憶し、同じくＩＣチップの不揮発性メモリに複数のアプリケーションを記憶するマルチアプリケーション型ＩＣカードが普及し始めている。マルチアプリケーション型ＩＣカードでは、不揮発性メモリにアプリケーションプログラムと、アプリケーションプログラムから生成されるアプリケーションインスタンス（これらを総称して「アプリケーション」という場合がある）を記憶することから、アプリケーションを追加したり削除したりすることが比較的容易である。
【０００３】
また、ＩＣチップに搭載されたアプリケーションに何らかの不具合が見つかった場合にそれに対処することを目的として、又は、アプリケーションに機能を追加することを目的としてアプリケーションをアップデート（アップグレード）することがある。特許文献１には、アプリケーションのアップデート（更新）機能を備えたマルチアプリケーションＩＣチップに関する技術が開示されている。具体的には、ＩＣチップがプログラムコードにおける更新対象部分を特定するためのアドレス（例えば、ページ番号）と、当該更新対象部分に上書きするプログラムコードをサーバから受け取り、受け取ったアドレスで特定される部分を受け取ったプログラムコードで上書きする技術が開示されている。
【０００４】
ところが、特許文献１の技術では、更新対象部分を上書きプログラムで上書きするため、上書きプログラムのデータ量が更新対象部分のデータ量を上回っている場合に更新を行うことができない場合がある。
【０００５】
一方で、アプリケーションをアップデートする他の手法として、アップデート対象のアプリケーションプログラムとアプリケーションインスタンスを一旦削除して、アップデート版のアプリケーションプログラムをロードし、当該アプリケーションプログラムからアプリケーションインスタンスを生成するという方法もある。この方法の場合、アップデート前のプログラムのデータ量よりもアップデート後のプログラムのデータ量が大きい場合であってもアップデートが可能となる。
【０００６】
なお、以下、アプリケーションプログラムについてはＥＬＦ（Executable Load File）、アプリケーションインスタンスについてはＡＰという場合がある。また、アップデート前とアップデート後のＥＬＦ又はＡＰを明確に区別するためそれぞれ「旧」と「新」を付ける場合がある。例えば、ＩＣチップに既に配置されているＥＬＦを旧ＥＬＦ、アップデート後のＥＬＦを新ＥＬＦと記載し区別する場合がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２９３７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＩＣチップにおいて、ＥＬＦに基づいて幾つかのＡＰが生成された状態で、これらのＥＬＦ及びＡＰをアップデートする場合、上述したように、ＩＣチップ上の旧ＥＬＦと旧ＡＰを一旦削除し、新ＥＬＦと新ＡＰをＩＣチップ上へ配置する必要がある。これらの処理は外部機器との間で複数のコマンドとレスポンス（応答）をやり取りする必要があるため、ＩＣチップにとって相対的に負荷の高い処理であり、多くの時間を要することは避けられない。
【０００９】
そのため、一のアプリケーション（ＥＬＦと当該ＥＬＦから生成されるＡＰ）のアップデート処理中に他のアプリケーションのロード処理やインストール処理が割り込む可能性がある。このとき、一のアプリケーションに関するＯＳ管理情報（ＯＳがＥＬＦやＡＰを管理する際に用いる情報であり、レジストリデータという場合もある）のうち特定のＯＳ管理情報は、他のアプリケーションのロード処理やインストール処理の影響を受けることなく、アップデート処理後も適切に一のアプリケーション（新ＥＬＦと当該新ＥＬＦから生成される新ＡＰ）にそのまま引き継がれる必要がある。ここで、特定のＯＳ管理情報とは、例えば、ＩＣチップ内で一のＥＬＦ又はＡＰについてのみ割り当てられる独占対象（例えば、ＡＩＤや特権など）が何れのＥＬＦ又はＡＰに割り当てられているかを示す情報である。
【００１０】
アプリケーションのアップデート処理が開始され、「旧ＥＬＦ及び旧ＡＰの削除」が実行されたとき、単に旧ＥＬＦ及び旧ＡＰを削除してしまうと、当該アップデート処理中に割り込んだ処理が、旧ＥＬＦ及び旧ＡＰに割り当てられていた独占対象の割り当て要求をする可能性がある。ＯＳはその要求に従って割り当てを実施すると、新ＥＬＦや新ＡＰが、独占対象を引き継げなくなるという問題が発生する。例えば、アップデートする際に、あるＡＰのＡＩＤが旧ＡＰから新ＡＰに引き継げなかった場合、これまでそのＡＰと通信していた外部機器は、通信対象である新ＡＰに対して同じＡＩＤを指定して通信を試みるため、ＡＰのアップデート後はそのＡＰと通信することができなくなってしまう。
【００１１】
そこで、本発明は、アプリケーションプログラム及びアプリケーションインスタンスのアップデート処理中に、アップデート対象にのみ割り当てられていた独占対象を、他のアプリケーションプログラム又はアプリケーションインスタンスに割り当てることなく、アップデート処理後も適切にアップデートしたアプリケーションプログラム又はアプリケーションインスタンスに引き継ぐことができる電子情報記憶媒体等を提供することを課題とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、請求項１に記載の発明は、アプリケーションプログラム及びアプリケーションインスタンスを記憶する記憶手段と、アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除手段と、前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段と、前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段と、前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否手段と、を備えることを特徴とする。
【００１３】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体であって、前記独占対象は、前記記憶手段に記憶される何れかのアプリケーションプログラム又はアプリケーションインスタンスに必ず割り当てられなければならず、前記削除対象を削除する際に、当該削除対象を管理する管理アプリケーションプログラム又は管理アプリケーションインスタンスに前記独占対象を割り当てる割り当て手段と、前記管理アプリケーションプログラム又は前記管理アプリケーションインスタンスに割り当てた独占対象を、前記新アプリケーションプログラム又は前記新アプリケーションインスタンスに再割り当てする再割り当て手段と、を更に備えることを特徴とする。
【００１４】
請求項３に記載の発明は、請求項１又は２に電子情報記憶媒体であって、前記削除処理、前記ロード処理又は前記インストール処理を実行中に、前記削除対象であるアプリケーションプログラム又はアプリケーションインスタンスを検索する要求を外部機器から受けた場合に、当該削除対象であるアプリケーションプログラム又はアプリケーションインスタンスは存在しない旨の応答を前記外部機器に行う応答手段を更に備えることを特徴とする。
【００１５】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体を備えるＩＣカードである。
【００１６】
請求項５に記載の発明は、アプリケーションプログラム及びアプリケーションインスタンスを記憶する記憶手段を備える電子情報記憶媒体によるアップデート方法であって、アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除工程と、前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード工程と、前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール工程と、前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否工程と、を含むことを特徴とする。
【００１７】
請求項６に記載の発明は、アプリケーションプログラム及びアプリケーションインスタンスを記憶する記憶手段を備える電子情報記憶媒体に含まれるコンピュータを、アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除手段、前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段、前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段、前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否手段、として機能させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、独占対象が割り当てられていたアプリケーションプログラム又はアプリケーションインスタンスをアップデートするためにアップデート対象を削除している場合において、他のアプリケーションプログラム及びアプリケーションインスタンスに対して当該独占対象を割り当てる要求を受け付けた場合にこれを拒否するため、アップデート処理後も適切にアップデートしたアプリケーションプログラム又はアプリケーションインスタンスに当該独占対象を引き継ぐことができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係るＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。
【図２】ＩＣチップ１ａの機能構成例を示すブロック図である。
【図３】ＩＣチップ１ａのレジストリデータ記憶領域２００の構成例を示す図である。
【図４】アップデート処理においてＡＩＤや特権等の状態付与対象に付与される状態に関する説明を一覧にした表である。
【図５】本実施形態に係るアップデート処理の一例を示すシーケンス図である。
【図６】本実施形態に係るＩＣチップ１ａによる退避・削除処理の一例を示すフローチャートである。
【図７】本実施形態に係るＩＣチップ１ａによるインストール・復元処理の一例を示すフローチャートである。
【図８】本実施形態に係るＩＣチップ１ａによる特権付与判定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、アプリケーションのアップデート機能を有するマルチアプリケーションＩＣチップを搭載するＩＣカードに対して本発明を適用した場合の実施の形態である。
【００２１】
［１．ＩＣチップ１ａの構成］
まず、図１を参照して、ＩＣカード１に搭載されるＩＣチップ１ａの構成について説明する。図１は、ＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。本実施形態のＩＣカード１は、接触によるデータ通信と非接触によるデータ通信の２つの通信機能を兼ね備えたデュアルインターフェース型ＩＣカードである。但し、ＩＣカード１の種類はデュアルインターフェース型ＩＣカードに限定されず、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードにＩＣチップ１ａがエンベットされた接触型ＩＣカードであってもよいし、また、アンテナコイルを内蔵し無線でリーダ・ライタとデータ通信する非接触型ＩＣカードであってもよい。
【００２２】
図１に示すように、ＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。ＣＰＵ１０は、ＲＯＭ１２又は不揮発性メモリ１３に記憶された各種プログラムを実行するプロセッサ（コンピュータ）である。なお、Ｉ／Ｏ回路１４は、外部機器２とのインターフェイスを担う。これにより、ＩＣチップ１ａは、リーダ・ライタを備える外部機器２との間で接触又は非接触で通信を行うことができる。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部機器２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部機器２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１ａが通信機器に組み込まれる場合、外部機器２には通信機器の機能を担う制御部が該当する。
【００２３】
不揮発性メモリ１３には、例えばフラッシュメモリ、強誘電体メモリ又は「Electrically Erasable Programmable Read-Only Memory」を用いることができる。不揮発性メモリ１３は、ＩＣカードＯＳ（以下、「ＯＳ」という場合がある）や各種アプリケーション及びこれらが使用するデータを記憶する。
【００２４】
ここで、アプリケーションの機能は、ＥＬＦに基づいてインストール処理することにより不揮発性メモリ１３に生成されるＡＰをＣＰＵ１０が実行することにより実現される。なお、ＡＰを実行することによりアプリケーションの機能が実現されることから、ＡＰをアプリケーションという場合もある。また、ＥＬＦは、後述するようにサーバから[LOAD]コマンドにより分割してＩＣチップ１ａに送信され、不揮発性メモリ１３に記憶される。すなわち、不揮発性メモリ１３には、ＥＬＦ及びＡＰが記憶される。
【００２５】
［２．ＩＣチップ１ａの機能構成］
図２は、ＩＣチップ１ａの機能構成例を示すブロック図である。ＩＣチップ１ａ内には、ＩＣチップ１ａ自身及びＩＣチップ１ａ内のアプリケーションを管理するためのアプリケーションであるセキュリティドメイン（Security Domain、以下、「ＳＤ」という）が、必ず１つ以上存在する。ＳＤには、ＩＳＤ（Issuer Security Domain）とＳＳＤ（Supplementary Security Domains）がある。このようなＳＤは、主に、以下の(1)〜(9)の機能をサポートする。
【００２６】
(1)ＩＣカードのライフサイクル管理
(2)ＥＬＦのライフサイクル管理
(3)ＡＰのライフサイクル管理
(4)ＥＬＦのロード
(5)ＡＰの生成（インストール）
(6)ＥＬＦまたはＡＰの削除
(7)アプリケーション向けインスタンスデータ（発行データ）の書き込み
(8)データの読出し
(9)セキュアチャンネルプロトコル（Secure Channel Protocol、以下、「ＳＣＰ」という)に従ったセキュアな通信路の確保
【００２７】
ＩＳＤは、上記(1)〜(9)の機能をサポートすることで、ＩＣチップ１ａ内のカードコンテント（ＥＬＦ、ＡＰ等）に対して、ＩＣカード１の発行者の管理及びセキュリティポリシーを実現する。一方、ＳＳＤは、上記(1)〜(9)の機能をサポートすることで、ＩＣカード内のカードコンテントに対して、ＩＣカード上でサービスを提供する第三者の管理及びセキュリティポリシーを実現する。ここで、ＩＣカード上でサービスを提供する第三者とは、ＩＣカードの発行者及びＩＣカードの保持者（ＩＣカードの発行対象である利用者）以外の立場の者をいう。また、上記(9)の機能において、ＳＣＰは、ＩＣカード内のＳＤと外部機器間の通信路に対して、コマンドデータの機密性、コマンドの完全性（及びコマンドシークエンスの保証）、コマンドデータ（平文）内のセンシティブデータ（例えば、鍵やPINコード）のさらなる機密性を提供する。
【００２８】
図２に示すように、ＩＣチップ１ａには、ＯＳがインストールされており、更に、上述したＩＳＤ、ＳＳＤ、各種サービスを提供するＡｐｐｌｉｃａｔｉｏｎ１、２といったアプリケーションがインストールされている（ＡＰが不揮発性メモリ１３に記憶されている）。また、ＩＳＤ、ＳＳＤ、Ａｐｐｌｉｃａｔｉｏｎ１、２といったＡＰがそれぞれ使用・管理するインスタンスデータ（例えば、認証用の鍵値、ポイントデータ、ユーザＩＤなと）が不揮発性メモリ１３上の各ＡＰに割り当てられた領域に記憶される。また、不揮発性メモリ１３上のＯＳに割り当てられた領域には、ＯＳが管理する、各ＡＰに紐付いたレジストリデータ（例えば、ＡＩＤや特権など）が記憶される。
【００２９】
ＩＳＤ、ＳＳＤ、Ａｐｐｌｉｃａｔｉｏｎ１、２といったアプリケーションは、不具合が見つかった場合や機能を追加する場合にアップデートされる。ここで、アプリケーションのアップデートはＥＬＦとＡＰのアップデートが主な目的であるため、インスタンスデータとレジストリデータは、アップデートの前後で同一データとなるものが多い(暗号の危殆化などで、アルゴリズムや鍵長を変更する場合などは、異なるデータとなることもある)。そこで、本実施形態のＩＣチップ１ａは、アプリケーションのアップデートを行う際に、インスタンスデータとレジストリデータを退避させ、旧ＥＬＦ及び旧ＡＰを削除した後に、新ＥＬＦをロードし、インストール処理により新ＥＬＦに基づいて新ＡＰの生成を行い、次いで、退避させておいたインスタンスデータとレジストリデータを復元するといった一連の処理（「アップデート処理」という）を行う。なお、インスタンスデータとレジストリデータを退避する場合、（Ａ）実際にはデータを他の記憶領域に移動させずに、当該データにフラグを設け、当該フラグのオン／オフを切り替えることで退避中・非退避中を切り替える方法と、（Ｂ）実際にデータを他の記憶領域に移動させ、退避したデータを復元する際に当該データを登録し直す方法とがある。（Ａ）、（Ｂ）の何れも退避させる方法であるが、本実施形態では（Ａ）の退避方法を採用し、フラグとして、後述する更新フラグを設ける。
【００３０】
ここで、一のアプリケーションのアップデート処理中に、他のアプリケーションのアップデート処理が割り込むことがある。そして、他のアプリケーションのアップデート処理において、一のアプリケーションについて退避させたレジストリデータに含まれるＡＩＤや特権等を、当該他のアプリケーションに対して割り当てる要求がなされることが想定される。このとき、一のアプリケーションのアップデート処理において、レジストリデータを退避させるだけでは、ＡＩＤや特権が他のアプリケーションに割り当てられてしまい、一のアプリケーションについてＡＩＤや特権等を適切に引き継ぐことができなくなってしまうおそれがある。
【００３１】
そこで、以下では、アプリケーションのアップデート処理において、ＡＩＤや特権等を適切に引き継ぐための方法について説明する。図３は、不揮発性メモリ１３上のレジストリデータ記憶領域２００の構成例を示す図であり、図４は、アップデート処理においてＡＩＤや特権等の状態付与対象に付与される状態に関する説明を一覧にした表である。
【００３２】
図３に示すように、不揮発性メモリ１３における、ＯＳが管理するレジストリデータ記憶領域２００には、ＥＬＦ管理情報２１０と、ＡＰ管理情報２２０が記憶される。
【００３３】
ＥＬＦ管理情報２１０は、不揮発性メモリ１３に記憶されている各ＥＬＦに関する管理情報（１行（レコード）が一のＥＬＦに関する管理情報に対応）の集合である。同様に、ＡＰ管理情報２２０は、不揮発性メモリ１３に記憶されている各ＡＰに関する管理情報（１行（レコード）が一のＡＰに関する管理情報に対応）の集合である。
【００３４】
ＥＬＦ管理情報２１０とＡＰ管理情報２２０は、各レコードについてアップデート処理中であるか否かを示す更新中フラグ２３０を含む。更新中フラグ２３０の「１」（オン）はアップデート中であることを示し、「０」（オフ）はアップデート中でないことを示す。更新中フラグ２３０は、ＯＳが保持する各機能（例えば、ＥＬＦのロード機能、ＡＰのインストール機能、ＥＬＦ／ＡＰの削除機能、ＡＰの検索機能等）を実現する際に参照される。
【００３５】
また、ＥＬＦ管理情報２１０とＡＰ管理情報２２０を構成する各レコードは、状態付与対象２４０と状態２５０の組み合わせを保持する。状態付与対象２４０とは、例えば、ＥＬＦ又はＡＰに割り当てられているＡＩＤや特権等であり、状態２５０とは、そのＡＩＤや特権等について付与される状態である。以下、図４を用いて具体的に説明する。
【００３６】
図４に示すように、アップデート処理の対象となっているＥＬＦやＡＰに割り当てられるＡＩＤや特権等に付与される状態には「停止中」と「移譲中」がある。
【００３７】
「停止中」が付与される状態付与対象２４０には、例えば、ＥＬＦのＡＩＤ、ＡＰのＡＩＤ及び登録済みのグローバルサービス名（これらを総称して「ＡＩＤ等」という場合がある）がある。状態２５０「停止中」が付与される停止付与対象２４０は、ＩＣチップ１ａ内で一つのＥＬＦ又はＡＰにのみ割り当てられる。ここで、「０００００００１」というＡＩＤがＩＣチップ１ａ内で一つのＥＬＦ又はＡＰにのみ割り当てられる場合、当該ＥＬＦ又はＡＰは「０００００００１」というＡＩＤを独占することを意味することから、ＡＩＤ等は独占対象ということができる。
【００３８】
グローバルサービスは、ＩＣチップ１ａ上の一のアプリケーションが自己のサービスをＩＣチップ１ａ上の他のアプリケーションに対して提供する機能の総称であり、例えば、ＰＩＮ（Personal Identification Number）照合サービスや暗号化サービスといったサービスが提供される。グローバルサービスを提供するアプリケーションについては、インストール時にＩｎｓｔａｌｌ  ｆｏｒ  ｉｎｓｔａｌｌコマンドのパラメータ内に、提供するサービス毎にサービスＩＤ（serviceID）が記述される。ＰＩＮ照合サービス及び暗号化サービスの２つのサービスを提供するアプリケーションであれば、例えば、ＰＩＮ照合サービスのサービスＩＤとして「ＡＡＢＢｈ」、暗号化サービスのサービスＩＤとして「ＣＣＤＤｈ」がパラメータ内に記述される。そして、ＯＳはＩｎｓｔａｌｌ  ｆｏｒ  ｉｎｓｔａｌｌコマンドを受信した際の処理の一環として、当該アプリケーションのレジストリエントリを生成し、ＡＩＤやサービスＩＤ（「ＡＡＢＢｈ」、「ＣＣＤＤｈ」）を設定した後、これを管理する。一方、サービスを利用するアプリケーションは、ＯＳに対して利用したいサービスのサービスＩＤと当該サービスを提供するアプリケーションのＡＩＤを指定する。これに対してＯＳは、レジストリから指定されたＡＩＤとサービスＩＤを検索して、対象のサービスを利用するアプリケーションに引き渡す（具体的には、Ｊａｖａ（登録商標)言語のオブジェクト参照をＯＳからサービスを利用するアプリケーションへ引き渡す）ことで、サービスを利用可能とする。ここで、ＩＣチップ１ａ上のアプリケーションの数が増えてくると、サービス毎にＡＩＤとサービスＩＤを管理する必要があり煩雑となる。そこで、ＡＩＤを省略してサービスＩＤだけでサービスを指定する仕組みがＩＣチップ１ａには取り入れられている。このとき、予めサービスＩＤと特定のアプリケーションを対応付けて登録しておくことで、ＯＳはサービスＩＤだけが指定された場合に当該アプリケーションのサービスを特定して提供することができる。状態付与対象２４０の一例である登録済みのグローバルサービス名は、予めアプリケーションと唯一対応付けて登録されるサービスＩＤのことである。
【００３９】
ＯＳは、状態２５０「停止中」を設定したで状態付与対象２４０（ＡＩＤ等）が割り当てられたＥＬＦ又はＡＰについて、削除された場合と同様に存在しないものとして扱うが、そのＡＩＤ等の割り当て要求を受け取った場合に、その要求を拒否する。以下、具体的に説明する。
【００４０】
（１）ＳＥＬＥＣＴコマンド
ＳＥＬＥＣＴコマンドは、ＡＩＤ及びロジカルチャネル番号を指定することにより、当該ＡＩＤで識別されるＡＰとの論理上の通信路（ロジカルチャネル）を、指定したロジカルチャネル番号で識別されるロジカルチャネルとすることを要求するコマンドである。ＯＳは、外部機器２からＳＥＬＥＣＴコマンドを受信した場合において、当該ＳＥＬＥＣＴコマンドで選択されたＡＰを識別するＡＩＤが「停止中」である場合に、当該ＡＰは存在しないものとして扱う（次の候補を検索する）。ＯＳは、ＳＥＬＥＣＴコマンドの受信時に、コマンドのデータフィールドに記述されたＡＩＤとＯＳが保持するアプリケーションレジストリ内の各ＡＩＤを順番（例えば、インストールした順（創成順））に比較する。このとき、コマンドデータフィールドに記述されるＡＩＤはＡＩＤの一部（例えば先頭の３バイトのみ）の場合があり、比較結果として一致する候補ＡＩＤが複数存在する場合がある。ＯＳは、ＡＩＤが（部分）一致した場合、そのアプリケーションがロジカルチャネル上で選択可能な状態か（例えば、ＡＩＤが部分一致したアプリケーションのライフサイクルがロック状態か否か）を確認する。ＯＳは、選択可能な状態であれば、アプリケーションの選択処理を実施し、選択不可能な状態であれば、次の候補であるアプリケーションについてＡＩＤの比較（すなわち、検索）を行う。本実施形態では、ＯＳは「選択可能な状態」の確認項目として「停止中」であるか否かを更に判定する。
（２）ＧＥＴ  ＳＴＡＴＵＳコマンド
ＧＥＴ  ＳＴＡＴＵＳコマンドは、ＩＣチップ１ａ上の全ＡＩＤを検索するコマンドである。ＯＳは、外部機器２からＧＥＴ  ＳＴＡＴＵＳコマンドを受信した場合に、「停止中」であるＡＩＤは存在しないものとして扱う。すなわち、ＧＥＴ  ＳＴＡＴＵＳコマンドに対するレスポンス（応答）内の検索結果に「停止中」であるＡＩＤを含めない。
（３）ＩＮＳＴＡＬＬ  ｆｏｒ  ＬＯＡＤ／ＬＯＡＤコマンド
ＩＮＳＴＡＬＬ  ｆｏｒ  ＬＯＡＤ／ＬＯＡＤコマンドは、ＩＣチップ１ａ上へＥＬＦをロードするコマンドである。なお、ＩＮＳＴＡＬＬ  ｆｏｒ  ＬＯＡＤ／ＬＯＡＤコマンドでは、ロードするＥＬＦについてＡＩＤ等の割り当て要求を行うことができる。ＯＳは、外部機器２から、ＡＩＤ等の割り当て要求を伴うＩＮＳＴＡＬＬ  ｆｏｒ  ＬＯＡＤ／ＬＯＡＤコマンドを受信した場合において、割り当て要求がなされたＡＩＤが「停止中」である場合に、当該ＡＩＤは割り当て済みであるとして扱い応答する（ＡＩＤが重複する旨を知らせるエラー応答を送信する）。
（４）ＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンド
ＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドは、ロードしたＥＬＦのＡＩＤを指定してＡＰを生成するコマンドである。ＯＳは、外部機器２からＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドを受信した場合において、指定されたＡＩＤが「停止中」である場合に、当該ＡＩＤで指定されたＥＬＦは存在しないものとして応答する（エラー応答を送信する）。また、ＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドでは、生成するＡＰについてＡＩＤ等の割り当て要求を行うことができ、ＯＳは、外部機器２から、生成するＡＰに対するＡＩＤ等の割り当て要求を伴うＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドを受信した場合において、割り当て要求がなされたＡＩＤが「停止中」である場合に、当該ＡＩＤは割り当て済みであるとして扱い応答する（ＡＩＤが重複する旨を知らせるエラー応答を送信する）。
（５）グローバルサービス登録用ＡＰＩ
グローバルサービスを提供するアプリケーションでは、インストール後、ＡＩＤを省略して容易にサービスを利用してもらえるように、GlobalPlatform（登録商標）仕様のＡＰＩ（グローバルサービス登録用ＡＰＩ）であるregisterService(serviceID)を実行する場合がある。このメソッドはJava（登録商標）のインターフェースメソッドであり、インターフェイス型オブジェクト参照（これがアプリケーション指定に相当する）を指定して呼び出す。このとき、グローバルサービスを提供するアプリケーションのインストール時にＯＳがレジストリにサービスＩＤ（「ＡＡＢＢｈ」、「ＣＣＤＤｈ」）を設定した場合であれば、serviceIDは、「ＡＡＢＢｈ」、「ＣＣＤＤｈ」の何れかとなる。これにより、ＯＳ内でアプリケーションのＡＩＤが省略されても使用可能なサービスが対応付けられる。一方、グローバルサービスを利用するアプリケーションは、通常であれば、getService(AID,serviceID)メソッドにより、サービスを実装したオブジェクト参照を取得しサービスを利用できる。上記例であれば、getService(AID1,AABB)やgetService(AID1,CCDD)により取得することができる。但し、事前にグローバルサービス登録用ＡＰＩであるregisterService(AABB)が実行されていれば、ＡＩＤを指定せずに、getService(null,AABB)でも同様に利用することができる。ここで、複数のアプリケーションがそれぞれインストール時に同一のサービスＩＤのサービスをレジストリへ登録することはできるが、グローバルサービス登録用ＡＰＩであるregisterService(serviceID)により登録できるアプリケーションは、ＩＣチップ１ａ内の一のサービスＩＤに対して一のアプリケーションのみとなる。また、これらのルールや実現手段であるメソッド（ＡＰＩ）はGlobalPlatform仕様にて定められている。ＯＳは、グローバルサービス登録用ＡＰＩであるregisterService(serviceID)が実行された場合において、状態付与対象２４０「登録済みグローバルサービス名」に対して状態２５０「停止中」が設定されている場合には、ＡＰＩにより指定されたグローバルサービスが既に登録済みであるものとして扱い、実行条件を満たさないとしてグローバルサービス登録用ＡＰＩの実行を失敗に終わらせる。
【００４１】
一方、「移譲中」が付与される対象である状態付与対象２４０には、例えば、Ｃａｒｄ  Ｒｅｓｅｔ特権、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権及びＩｍｐｌｉｃｉｔ  ｓｅｌｅｃｔｉｏｎ  ｐａｒａｍｅｔｅｒ（これらを総称して「特権等」という場合がある）がある。状態２５０「移譲中」が付与される停止付与対象２４０は、ＩＣチップ１ａ内に唯一且つ必ず存在しなければならず、且つ、ＩＣチップ１ａ内で一つのＥＬＦ又はＡＰにのみ割り当てられる。ここで、特権等がＩＣチップ１ａ内で一つのＥＬＦ又はＡＰにのみ割り当てられる場合、当該特権等を独占することを意味することから、特権等は独占対象ということができる。
【００４２】
Ｃａｒｄ  Ｒｅｓｅｔ特権は、ＩＣチップ１ａへの電源投入時にリセット信号を受け付けたときに出力するＡＴＲ（Answer-To-Reset）の内容を変更することが許される特権であり、ＩＣチップ１ａ内において一つのＡＰに対して付与される。ＡＴＲの内容としては、ＩＣチップ１ａの通信プロトコルや通信速度を示す情報、ＩＣチップ１ａに記憶されているアプリケーションの識別情報等が挙げられる。
【００４３】
Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権は、ＩＣチップ１ａ（又はＩＣカード１）がロックされ、ユーザが使用できなくなったときにも唯一動作することが許される特権であり、ＩＣチップ１ａ内において一つのＡＰに対して付与される。ＩＣチップ１ａ（又はＩＣカード１）がロックされる場合とは、例えば、ＩＣチップ１ａ（又はＩＣカード１）の使用期限が切れた場合や、ＩＣチップ１ａ（又はＩＣカード１）自身がセキュリティの脅威を検知して自ら機能を停止させる場合などである。Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権が付与されるＡＰとしては、ロックになった理由を外部機器２に出力するＡＰが挙げられる。例えば、ＩＣカード１がクレジットカードの場合、ロックが掛かってしまうとそのクレジットカードでは決済はできなくなるが、ロックになった理由を含む管理情報を外部機器２に出力するＡＰにＦｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権が付与されていれば、そのカードがロックした理由を把握することができる。
【００４４】
Ｉｍｐｌｉｃｉｔ  ｓｅｌｅｃｔｉｏｎとは、ＯＳが明示的なＳＥＬＥＣＴコマンドを受け付けなくても、予めＡＰとロジカルチャネル番号を対応付けて設定しておき、当該ロジカルチャネル番号で識別されるロジカルチャネルをクローズからオープンに切り替えるＭａｎａｇｅ  Ｃｈａｎｎｅｌコマンド（コマンドヘッダ内にＯＰＥＮ又はＣＬＯＳＥを指定することにより、ロジカルチャネルのＯＰＥＮとＣＬＯＳＥを制御するコマンド）を受け付けた場合に、当該ロジカルチャネル上で、予め設定されたＡＰとの通信を可能とする機能である。そして、ＯＳは、Ｉｍｐｌｉｃｉｔ  ｓｅｌｅｃｔｉｏｎ  ｐａｒａｍｅｔｅｒを用いて、予めＡＰとロジカルチャネル番号を対応付けて設定する。このとき、Ｉｍｐｌｉｃｉｔ  ｓｅｌｅｃｔｉｏｎ  ｐａｒａｍｅｔｅｒで指定することのできるＡＰはＩＣチップ１ａ上で一つだけである。
【００４５】
ＯＳは、状態２５０「移譲中」を設定した状態付与対象２４０（特権等）については、アップデート処理中は特権等をＩＳＤへ移譲し、アップデート処理完了後には特権等を元に戻す。また、ＯＳは、特権等をＩＳＤへ移譲している際に、別のアプリケーションのインストール処理において当該特権等の付与要求があっても拒否する。
【００４６】
なお、ＯＳは、状態２５０を参照しなくとも、更新フラグ２３０が「１」（オン）である場合には、ＥＬＦ又はＡＰのＡＩＤ等は「停止中」であり、特権等は「移譲中」であると判断することもできる。
【００４７】
［３．アップデート処理］
以下、図５−図７を用いて、ＩＣチップ１ａにおけるアプリケーションのアップデート処理の動作例について説明する。図５は、アップデート処理の一例を示すシーケンス図であり、図６は、ＩＣチップ１ａによる退避・削除処理の一例を示すフローチャートであり、図７は、ＩＣチップ１ａによるインストール・復元処理の一例を示すフローチャートである。
【００４８】
図５は、アプリケーションであるポイントアプリケーション（提携している施設等でのポイント加算・利用を可能とするアプリケーション。以下、「ポイントアプリ」という）をアップデートする場合のＩＣチップ１ａとサーバ（ポイントアプリの提供者のサーバ）のコマンド・レスポンスの流れを示している。
【００４９】
まず、サーバはＩＣチップ１ａに対してＩＣチップ１ａ内のポイントアプリを管理するＳＤであるＩＳＤとの通信路を形成するために［SELECT ISD］コマンドを送信する（ステップＳ１）。[SELECT]コマンドは、通信路の相手先となるアプリケーションを識別するＩＤであるＡＩＤと、当該アプリケーションとの通信路（ロジカルチャネル）を識別するロジカルチャネル番号を含む。これに対して、ＩＣチップ１ａはコマンドに応じて通信路を形成するための処理を実行し、ＯＫ応答を送信する（ステップＳ２）。但し、コマンドに応じた処理を正常終了できなかった場合にはエラーが発生したことを示すレスポンスをサーバに送信する（以下、ステップＳ４、Ｓ６、Ｓ９、Ｓ１１、Ｓ１３、Ｓ１６について同様）。これにより、ロジカルチャネル番号で識別される通信路（ロジカルチャネル）が形成され、以降、サーバはコマンドに当該ロジカルチャネル番号を含ませることにより、当該ロジカルチャネル番号で識別される通信路を介して、ＩＳＤと通信を行うことができる。
【００５０】
次いで、サーバは、通信路の機密性を高めるためにそれまでに形成した通信路（ロジカルチャネル）をセキュアな通信路にするセキュア処理（ＳＣＰでコマンドを保護するための相互認証処理）を実行する。
【００５１】
相互認証処理は、プロトコルで決められたアルゴリズムに従い、暗号演算の元となる鍵を互いが知っているという前提の下、サーバとＩＣチップ１ａが互いを認証する処理である。具体的には、サーバが相互認証用のコマンドである［INITIALIZE UPDATE］コマンド及び［EXTERNAL AUTHENTICATE］コマンドをＩＣチップ１ａに送信し（ステップＳ３、ステップＳ５）、ＩＣチップ１ａがそれぞれのコマンドに応じた処理を実行し、正常に処理を完了するとＯＫ応答を送信する（ステップＳ４、ステップＳ６）ことにより行われる。図３では、ステップＳ６の処理によりＯＫ応答を送信することにより相互認証は完了したことになる。
【００５２】
次いで、サーバは、ＩＣチップ１ａに対して退避・削除処理を実行させるための［退避・削除処理］コマンドを送信する（ステップＳ７）。退避・削除処理は、アプリケーションをアップデートするための処理の一部である。これに対して、ＩＣチップ１ａは退避・削除処理を実行する（ステップＳ８）。なお、退避・削除処理については後述する。ＩＣチップ１ａは退避・削除処理を正常終了すると、ＯＫ応答を送信する（ステップＳ９）。
【００５３】
次いで、サーバは、ＩＣチップ１ａに対して［LOAD(0)］コマンドを送信する（ステップＳ１０）。［LOAD］コマンドは、新しいポイントアプリのアプリケーションプログラムをｎ個に分割して送信するコマンドである。［LOAD(0)］コマンドはｎ個に分割したうちの最初の部分を送信し、ＩＣチップ１ａに記憶させるためのコマンドである。ＩＣチップ１ａは［LOAD］コマンドに含まれるアプリケーションプログラムの一部を不揮発性メモリ１３に記憶させる処理を行い、処理を正常終了すると、ＯＫ応答をサーバに送信する（ステップＳ１１）。以下、同様に、サーバは分割した残りの部分を送信するために［LOAD(1)］コマンド、［LOAD(2)］コマンド、・・・、［LOAD(n-1)］コマンドを送信し、その都度、ＩＣチップ１ａは［LOAD］コマンドに含まれるアプリケーションプログラムの一部を不揮発性メモリ１３に記憶させる処理を行い、処理を正常終了すると、ＯＫ応答をサーバに送信する。［LOAD(n-1)］コマンドの送信（ステップＳ１２）、及び、これに対するＯＫ応答の送信（ステップＳ１３）がなされると、新しいポイントアプリのアプリケーションプログラム全体がＩＣチップ１ａの不揮発性メモリ１３に記憶されたことになる（ロード完了）。なお、ステップＳ１０〜ステップＳ１３の処理を総称して「ロード処理」という場合がある。なお、ロード処理は、相互認証の完了後、ステップＳ７〜ステップＳ９の処理の前に行っても良い。
【００５４】
次いで、サーバは、ＩＣチップ１ａに対してインストール・復元処理を実行させるための［インストール・復元処理］コマンドを送信する（ステップＳ１４）。インストール・復元処理は、アプリケーションをアップデートするための処理の一部である。これに対して、ＩＣチップ１ａはインストール・復元処理を実行する（ステップＳ１５）。なお、インストール・復元処理については後述する。ＩＣチップ１ａはインストール・復元処理を正常終了すると、ＯＫ応答を送信し（ステップＳ１６）、アプリケーションアップデート処理を終了する。
【００５５】
［４．退避・削除処理］
次に、図６を用いて、ＩＣチップ１ａによる退避・削除処理について説明する。退避・削除処理は、サーバからの［退避・削除処理］コマンドに応じて実行される処理である。
【００５６】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、ポイントアプリに関するインスタンスデータを退避する（ステップＳ１０１）。このとき、ＯＳはインスタンスデータに対応するフラグをオンにすることにより退避させる。
【００５７】
次に、ＯＳはポイントアプリに関するレジストリデータを退避する（ステップＳ１０２）。このとき、ＯＳはレジストリデータに対応する更新フラグ２３０をオンにすることにより退避させる。なお、ステップＳ１０１の処理及びステップＳ１０２の処理を総称して「退避処理」という場合がある。
【００５８】
次に、ＯＳは退避したレジストリデータについて、状態付与対象２４０に対応する状態２５０を変更し、特権等を移譲する（ステップＳ１０３）。具体的には、ＯＳは、アップデート処理の対象となっているポイントアプリのＥＬＦ及びＡＰのＡＩＤ等について状態２５０を「停止中」に変更し、ポイントアプリに特権等が付与されている場合には、その特権毎に状態２５０を「移譲中」に変更する。また、ＯＳは、状態２５０を「移譲中」に変更した特権等については、当該特権等をＩＳＤに移譲する。
【００５９】
次に、ＯＳはポイントアプリのＡＰを削除する（ステップＳ１０４）。
【００６０】
次に、ＯＳはポイントアプリのＥＬＦを削除し（ステップＳ１０５）、退避・削除処理を終了する。なお、ステップＳ１０４の処理及びステップＳ１０５の処理を総称して「削除処理」という場合がある。
【００６１】
［５．インストール・復元処理］
次に、図７を用いて、ＩＣチップ１ａによるインストール・復元処理について説明する。インストール・復元処理は、サーバからの［インストール・復元処理］コマンドに応じて実行される処理である。
【００６２】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、図５のステップＳ１０〜ステップＳ１２の［LOAD］コマンドに基づいて記憶したポイントアプリの新しいバージョンのＥＬＦのインストール処理を行い（すなわち、新しいバージョンのＡＰを生成し）、不揮発性メモリ１３に記憶させる（ステップＳ２０１）。
【００６３】
次に、ＯＳは、図６のステップＳ１０１の処理で退避したインスタンスデータを復元する（ステップＳ２０２）。具体的には、ＯＳは、退避させたインスタンスデータに対応するフラグをオフにすることにより復元させる。
【００６４】
次に、ＯＳは、図６のステップＳ１０２の処理で退避したレジストリデータを復元する（ステップＳ２０３）。具体的には、ＯＳが、退避させたレジストリデータに対応する更新フラグ２３０をオフにすることにより復元させる。なお、ステップＳ２０２の処理及びステップＳ２０３の処理を総称して「関連付け処理」という場合がある。
【００６５】
次に、ＯＳは、図６のステップＳ１０３の処理で変更した状態２５０を元に戻す（ステップＳ２０４）。具体的には、ＯＳは、アップデート処理の対象となっているポイントアプリのＥＬＦ及びＡＰのＡＩＤ等について「停止中」を解除し、ポイントアプリに特権等が付与されている場合には、その特権について「移譲中」を解除する。また、ＯＳは、状態２５０を「移譲中」に変更した特権等については、当該特権等をＩＳＤからポイントアプリに再移譲する。ＯＳは、ステップＳ２０４の処理を終えると、インストール・復元処理を終了する。
【００６６】
［６．特権付与判定処理］
次に、図８を用いて、状態２５０が「移譲中」の特権等の付与要求を伴うＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドを受信したことに基づくインストール処理における、特権を付与するか否かの特権付与判定処理について説明する。図８では、特権等がＦｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権である場合について説明する。なお、Ｃａｒｄ  Ｒｅｓｅｔ特権及びＩｍｐｌｉｃｉｔ  ｓｅｌｅｃｔｉｏｎ  ｐａｒａｍｅｔｅｒについても同様の判定処理を行うことができる。
【００６７】
まず、ＯＳは、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権の付与要求を伴うＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドを受信すると、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権が付与されているＡＰを検索する（ステップＳ３０１）。
【００６８】
次に、ＯＳは、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権が付与されているＡＰがＩＳＤであるか否かを判定する（ステップＳ３０２）。ＯＳは、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権が付与されているＡＰがＩＳＤでないと判定した場合には（ステップＳ３０２：ＮＯ）、ＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドの送信元に対して、インストールが失敗したことを示すエラー応答を送信し（ステップＳ３０３）、特権付与判定処理を終了する。一方、ＯＳは、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権が付与されているＡＰがＩＳＤであると判定した場合には（ステップＳ３０２：ＹＥＳ）、他のアプリケーションのアップデート処理中であるか否かを判定する（ステップＳ３０４）。具体的には、何れかの更新フラグ２３０がオンとなっている場合にはアップデート処理中であると判定する。
【００６９】
ＯＳは、他のアプリケーションのアップデート処理中ではないと判定した場合には（ステップＳ３０４：ＮＯ）、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権の付与要求を伴うＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドにより生成されるＡＰに対して、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権を付与し（ステップＳ３０６）、特権付与判定処理を終了する。一方、ＯＳは、他のアプリケーションのアップデート処理中であると判定した場合には（ステップＳ３０４：ＹＥＳ）、次いで、ＡＰ管理情報２２０を参照して、アップデート処理中であるＡＰについて、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権（状態付与対象２４０）の状態２５０が「移譲中」であるか否かを判定する（ステップＳ３０５）。
【００７０】
ＯＳは、アップデート処理中であるＡＰについて、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権（状態付与対象２４０）の状態２５０が「移譲中」ではないと判定した場合には（ステップＳ３０５：ＮＯ）、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権の付与要求を伴うＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドにより生成されるＡＰに対して、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権を付与し（ステップＳ３０６）、特権付与判定処理を終了する。一方、ＯＳは、アップデート処理中であるＡＰについて、Ｆｉｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ特権（状態付与対象２４０）の状態２５０が「移譲中」であると判定した場合には（ステップＳ３０５：ＹＥＳ）、ＩＮＳＴＡＬＬ  ｆｏｒ  ｉｎｓｔａｌｌコマンドの送信元に対して、インストールが失敗したことを示すエラー応答を送信し（ステップＳ３０３）、特権付与判定処理を終了する。
【００７１】
以上のように、本実施形態のＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、不揮発性メモリ１３（「記憶手段」の一例）は、ＥＬＦ及びＡＰを記憶し、ＣＰＵ１０（「削除手段」、「ロード手段」、「インストール手段」、「拒否手段」の一例）は、アップデート対象であるＥＬＦ及びＡＰを削除対象として削除する削除処理を実行し、アップデート対象であるＥＬＦの新バージョンである新ＥＬＦを不揮発性メモリ１３に記憶させるロード処理を実行し、削除処理及びロード処理の後に、不揮発性メモリ１３に記憶されている新ＥＬＦに基づいて新バージョンの新ＡＰを生成して不揮発性メモリ１３に記憶させるインストール処理を実行し、削除処理、ロード処理又はインストール処理の実行中に、一のＥＬＦ又はＡＰにのみ割り当てられる独占対象であって、アップデート対象であるＥＬＦ又はＡＰに割り当てられた独占対象を、他のＥＬＦ及びＡＰに対して割り当てる要求を受け付けた場合に、当該要求を拒否する。
【００７２】
したがって、本実施形態のＩＣチップ１ａによれば、独占対象が割り当てられていたＥＬＦ又はＡＰをアップデートするためにアップデート対象を削除している場合において、他のＥＬＦ及びＡＰに対して当該独占対象を割り当てる要求を受け付けた場合にこれを拒否するため、アップデート処理後も適切にアップデートしたＥＬＦ又はＡＰに当該独占対象を引き継ぐことができる。
【００７３】
また、本実施形態のＩＣチップ１ａにおいて特権等（「独占対象」の一例）は、不揮発性メモリ１３に記憶される何れかのＥＬＦ又はＡＰに必ず割り当てられなければならず、ＣＰＵ１０（「割り当て手段」、「再割り当て手段」の一例）は、削除対象を削除する際に、当該削除対象を管理するＩＳＤ（「管理アプリケーションプログラム又は管理アプリケーションインスタンス」の一例）に特権等を割り当て、ＩＳＤに割り当てた特権等を、新ＥＬＦ又は新ＡＰに再割り当てする。これにより、特権等が割り当てられているＥＬＦ又はＡＰをアップデートする場合において当該ＥＬＦ又はＡＰを削除する際に、特権等が何れのＥＬＦ又はＡＰにも割り当てられない状態となることを防ぐことができる。
【００７４】
また、ＩＣチップ１ａのＣＰＵ１０（「応答手段」の一例）は、削除処理、ロード処理又はインストール処理を実行中に、削除対象であるＥＬＦ又はＡＰを検索する要求をサーバ（「外部機器」の一例）から受けた場合に、当該削除対象であるＥＬＦ又はＡＰは存在しない旨の応答をサーバに行う。
【符号の説明】
【００７５】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
２  外部機器
【図１】
2019046211.tif 000003
【図２】
2019046211.tif 000004
【図３】
2019046211.tif 000005
【図４】
2019046211.tif 000006
【図５】
2019046211.tif 000007
【図６】
2019046211.tif 000008
【図７】
2019046211.tif 000009
【図８】
2019046211.tif 000010