(57)【要約】【課題】アプリケーションのアップデート処理に掛かる通信コストを削減することができ、且つ、アップデート処理が中断されてしまった場合でも中断した処理からアップデート処理を再開させることができる電子情報記憶媒体等を提供する。【解決手段】アップデート処理において、アプリケーションインスタンスに関連付けられるデータを削除せずに退避させておき、新しいアプリケーションインスタンスが生成された場合に、退避させておいたデータを関連付ける。また、アップデート処理の各処理について実行済みであるか否かを管理し、アップデート処理が中断されてしまった場合には中断された処理からアップデート処理を再開する。【選択図】図３
2019046210.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムと、アプリケーションインスタンスと、前記アプリケーションインスタンスに関連付けられる関連データと、を記憶する記憶手段と、
前記記憶手段に記憶されている関連データを退避する退避処理を実行する退避手段と、
前記退避処理の後に、前記記憶手段に記憶されているアプリケーションプログラムとアプリケーションインスタンスを削除する削除処理を実行する削除手段と、
前記アプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段と、
前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段と、
前記ロード処理の後に、前記退避手段が退避させた関連データを前記新アプリケーションインスタンスと関連付ける関連付け処理を実行する関連付け手段と、
前記退避処理、前記削除処理、前記ロード処理、前記インストール処理及び前記関連付け処理を実行する処理順序と、当該処理順序に従う一連の処理を何れの処理まで実行済みであるかを管理する管理手段と、
前記処理順序における何れかの処理の実行中に当該処理を中断した場合において、所定の条件が充足された場合に、前記一連の処理における中断した処理から処理を再開する再開手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
請求項１に電子情報記憶媒体であって、
前記退避処理、前記削除処理、前記ロード処理、前記インストール処理又は前記関連付け処理の何れかの処理を実行中に、外部機器から前記アプリケーションプログラムを選択するコマンドを受信した場合に、エラーレスポンスを返信するエラー返信手段を更に備えることを特徴とする電子情報記憶媒体。
【請求項３】
請求項１又は２に記載の電子情報記憶媒体であって、
前記再開手段は、前記電子情報記憶媒体への電源供給が断たれたこと、又は、外部機器との通信が断たれたことの中断事由により処理を中断した場合において、電源供給又は通信が復旧することという前記所定の条件が充足された場合に、前記一連の処理における中断した処理から処理を再開することを特徴とする電子情報記憶媒体。
【請求項４】
請求項３に記載の電子情報記憶媒体であって、
前記再開手段は、前記中断事由により処理を中断した場合において、処理を再開する場合に、当該処理より優先度の高い処理がある場合には、当該優先度の高い処理が完了してから処理を再開することを特徴とする電子情報記憶媒体。
【請求項５】
請求項１乃至４の何れか一項に記載の電子情報記憶媒体であって、
前記管理手段は、前記一連の処理における何れの処理を実行中であるかを管理し、前記一連の処理における何れの処理を実行中であるかの問い合わせを外部から受け付けた場合に、当該問い合わせに応答することを特徴とする電子情報記憶媒体。
【請求項６】
請求項１乃至５の何れか一項に記載の電子情報記憶媒体を備えるＩＣカード。
【請求項７】
アプリケーションプログラムと、アプリケーションインスタンスと、前記アプリケーションインスタンスに関連付けられる関連データと、を記憶する記憶手段を備える電子情報記憶媒体によるアップデート方法であって、
前記記憶手段に記憶されている関連データを退避する退避処理を実行する退避工程と、
前記退避処理の後に、前記記憶手段に記憶されているアプリケーションプログラムとアプリケーションインスタンスを削除する削除処理を実行する削除工程と、
前記アプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード工程と、
前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンである新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール工程と、
前記インストール処理の後に、前記退避工程で退避させた関連データを前記新アプリケーションインスタンスと関連付ける関連付け処理を実行する関連付け工程と、
前記退避処理、前記削除処理、前記ロード処理、前記インストール処理及び前記関連付け処理を実行する処理順序と、当該処理順序に従う一連の処理を何れの処理まで実行済みであるかを管理する管理工程と、
前記処理順序における何れかの処理の実行中に当該処理を中断した場合において、所定の条件が充足された場合に、前記一連の処理における中断した処理から処理を再開する再開工程と、
を含むことを特徴とする電子情報記憶媒体によるアップデート方法。
【請求項８】
アプリケーションプログラムと、アプリケーションインスタンスと、前記アプリケーションインスタンスに関連付けられる関連データと、を記憶する記憶手段を備える電子情報記憶媒体に含まれるコンピュータを、
前記記憶手段に記憶されている関連データを退避する退避処理を実行する退避手段、
前記退避処理の後に、前記記憶手段に記憶されているアプリケーションプログラムとアプリケーションインスタンスを削除する削除処理を実行する削除手段、
前記アプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段、
前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンである新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段、
前記ロード処理の後に、前記退避手段が退避させた関連データを前記新アプリケーションインスタンスと関連付ける関連付け処理を実行する関連付け手段、
前記退避処理、前記削除処理、前記ロード処理、前記インストール処理及び前記関連付け処理を実行する処理順序と、当該処理順序に従う一連の処理を何れの処理まで実行済みであるかを管理する管理手段、
前記処理順序における何れかの処理の実行中に当該処理を中断した場合において、所定の条件が充足された場合に、前記一連の処理における中断した処理から処理を再開する再開手段、
として機能させることを特徴とするアップデートプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣ（Integrated Circuit）チップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
従来、ＩＣチップが組み込まれたＩＣカードにおいて、ＩＣチップのＲＯＭにＩＣカードＯＳ（Operating System）を記憶し、同じくＩＣチップの不揮発性メモリに複数のアプリケーションを記憶するマルチアプリケーション型ＩＣカードが普及し始めている。マルチアプリケーション型ＩＣカードでは、不揮発性メモリにアプリケーションを記憶することから、アプリケーションを追加したり削除したりすることが比較的容易である。
【０００３】
また、ＩＣチップに搭載されたアプリケーションに何らかの不具合が見つかった場合にそれに対処することを目的として、又は、アプリケーションに機能を追加することを目的としてアプリケーションをアップデート（アップグレード）することがある。特許文献１には、アプリケーションのアップデート（更新）機能を備えたマルチアプリケーションＩＣチップに関する技術が開示されている。具体的には、ＩＣチップがプログラムコードにおける更新対象部分を特定するためのアドレス（例えば、ページ番号）と、当該更新対象部分に上書きするプログラムコードをサーバから受け取り、受け取ったアドレスで特定される部分を受け取ったプログラムコードで上書きする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２９３７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、特許文献１の技術では、更新対象部分を上書きプログラムで上書きするため、上書きプログラムのデータ量が更新対象部分のデータ量を上回っている場合に更新を行うことができない場合がある。
【０００６】
一方で、アプリケーションをアップデートする他の手法として、プログラムと当該プログラムで使用するデータの全てを一旦削除して、アップデート版のアプリケーションをクリーンインストールするという方法もある。この方法の場合、アップデート前のプログラムのデータ量よりもアップデート後のプログラムのデータ量が大きい場合であってもアップデートが可能となる。
【０００７】
しかしながら、アプリケーションに関する全てのデータを削除してから、クリーンインストールする場合、アップデート前とアップデート後で変更する必要のないデータについても新たにダウンロードする必要があり、通信コストが増大するという問題がある。
【０００８】
また、ＩＣチップは、アップデート中に電源供給が断たれて（「電源断」という）処理が中断されてしまうおそれがあり、中断後にアップデートを正常に完了させるための対策が必要となる。
【０００９】
そこで、本発明は、アプリケーションのアップデート処理に掛かる通信コストを削減することができ、且つ、アップデート処理が中断されてしまった場合でもアップデート処理を中断した処理から再開させることができる電子情報記憶媒体等を提供することを課題とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、請求項１に記載の発明は、アプリケーションプログラムと、アプリケーションインスタンスと、前記アプリケーションインスタンスに関連付けられる関連データと、を記憶する記憶手段と、前記記憶手段に記憶されている関連データを退避する退避処理を実行する退避手段と、前記退避処理の後に、前記記憶手段に記憶されているアプリケーションプログラムとアプリケーションインスタンスを削除する削除処理を実行する削除手段と、前記アプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段と、前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段と、前記ロード処理の後に、前記退避手段が退避させた関連データを前記新アプリケーションインスタンスと関連付ける関連付け処理を実行する関連付け手段と、前記退避処理、前記削除処理、前記ロード処理、前記インストール処理及び前記関連付け処理を実行する処理順序と、当該処理順序に従う一連の処理を何れの処理まで実行済みであるかを管理する管理手段と、前記処理順序における何れかの処理の実行中に当該処理を中断した場合において、所定の条件が充足された場合に、前記一連の処理における中断した処理から処理を再開する再開手段と、を備えることを特徴とする。なお、本発明において、関連データを退避することには、実際に関連データを移動させる概念と、関連データは移動せずに、当該関連データが関連付けられたアプリケーションインスタンスとの関連付けを解消する概念を含む。
【００１１】
請求項２に記載の発明は、請求項１に電子情報記憶媒体であって、前記退避処理、前記削除処理、前記ロード処理、前記インストール処理又は前記関連付け処理の何れかの処理を実行中に、外部機器から前記アプリケーションプログラムを選択するコマンドを受信した場合に、エラーレスポンスを返信するエラー返信手段を更に備えることを特徴とする。
【００１２】
請求項３に記載の発明は、請求項１又は２に記載の電子情報記憶媒体であって、前記再開手段は、前記電子情報記憶媒体への電源供給が断たれたこと、又は、外部機器との通信が断たれたことの中断事由により処理を中断した場合において、電源供給又は通信が復旧することという前記所定の条件が充足された場合に、前記一連の処理における中断した処理から処理を再開することを特徴とする。
【００１３】
請求項４に記載の発明は、請求項３に記載の電子情報記憶媒体であって、前記再開手段は、前記中断事由により処理を中断した場合において、処理を再開する場合に、当該処理より優先度の高い処理がある場合には、当該優先度の高い処理が完了してから処理を再開することを特徴とする。
【００１４】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載の電子情報記憶媒体であって、前記管理手段は、前記一連の処理における何れの処理を実行中であるかを管理し、前記一連の処理における何れの処理を実行中であるかの問い合わせを外部から受け付けた場合に、当該問い合わせに応答することを特徴とする。
【００１５】
請求項６に記載の発明は、請求項１乃至５の何れか一項に記載の電子情報記憶媒体を備えるＩＣカードである。
【００１６】
請求項７に記載の発明は、アプリケーションプログラムと、アプリケーションインスタンスと、前記アプリケーションインスタンスに関連付けられる関連データと、を記憶する記憶手段を備える電子情報記憶媒体によるアップデート方法であって、前記記憶手段に記憶されている関連データを退避する退避処理を実行する退避工程と、前記退避処理の後に、前記記憶手段に記憶されているアプリケーションプログラムとアプリケーションインスタンスを削除する削除処理を実行する削除工程と、前記アプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード工程と、前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンである新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール工程と、前記インストール処理の後に、前記退避工程で退避させた関連データを前記新アプリケーションインスタンスと関連付ける関連付け処理を実行する関連付け工程と、前記退避処理、前記削除処理、前記ロード処理、前記インストール処理及び前記関連付け処理を実行する処理順序と、当該処理順序に従う一連の処理を何れの処理まで実行済みであるかを管理する管理工程と、前記処理順序における何れかの処理の実行中に当該処理を中断した場合において、所定の条件が充足された場合に、前記一連の処理における中断した処理から処理を再開する再開工程と、を含むことを特徴とする。
【００１７】
請求項８に記載の発明は、アプリケーションプログラムと、アプリケーションインスタンスと、前記アプリケーションインスタンスに関連付けられる関連データと、を記憶する記憶手段を備える電子情報記憶媒体に含まれるコンピュータを、前記記憶手段に記憶されている関連データを退避する退避処理を実行する退避手段、前記退避処理の後に、前記記憶手段に記憶されているアプリケーションプログラムとアプリケーションインスタンスを削除する削除処理を実行する削除手段、前記アプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段、前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンである新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段、前記ロード処理の後に、前記退避手段が退避させた関連データを前記新アプリケーションインスタンスと関連付ける関連付け処理を実行する関連付け手段、前記退避処理、前記削除処理、前記ロード処理、前記インストール処理及び前記関連付け処理を実行する処理順序と、当該処理順序に従う一連の処理を何れの処理まで実行済みであるかを管理する管理手段、前記処理順序における何れかの処理の実行中に当該処理を中断した場合において、所定の条件が充足された場合に、前記一連の処理における中断した処理から処理を再開する再開手段、として機能させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、新しいバージョンのアプリケーションをインストールするに当たり、関連付けデータを削除せずに退避させておき、新しいバージョンのアプリケーションインスタンスが生成された段階で退避させておいた関連付けデータを関連付けることから、関連付けデータを削除して新たに取得する必要がなく、アプリケーションのアップデート処理に掛かる通信コストを削減することができる。また、アップデート処理に係る退避処理、削除処理、ロード処理、インストール処理及び関連付け処理を実行する処理順序と、当該処理順序に従う一連の処理を何れの処理まで実行済みであるかを管理することから、アップデート処理を中断した場合であっても、中断した処理からアップデート処理を再開することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係るＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。
【図２】ＩＣチップ１ａの機能構成例を示すブロック図である。
【図３】本実施形態に係るアップデート処理の一例を示すシーケンス図である。
【図４】本実施形態に係るＩＣチップ１ａによる退避・削除処理の一例を示すフローチャートである。
【図５】本実施形態に係るＩＣチップ１ａによるインストール・復元処理の一例を示すフローチャートである。
【図６】本実施形態に係るＩＣチップ１ａによる状態管理リスト更新処理の一例を示すフローチャートである。
【図７】本実施形態に係る状態管理リストの構成例を示す図である。
【図８】本実施形態に係るＩＣチップ１ａによるアップデート再開処理の一例を示すフローチャートである。
【図９】変形例１に係る状態管理リストの構成例を示す図である。
【図１０】変形例４に係る状態管理リストの構成例を示す図である。
【図１１】変形例５に係る状態管理リストの構成例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、アプリケーションのアップデート機能を有するマルチアプリケーションＩＣチップを搭載するＩＣカードに対して本発明を適用した場合の実施の形態である。
【００２１】
［１．ＩＣチップ１ａの構成］
まず、図１を参照して、ＩＣカード１に搭載されるＩＣチップ１ａの構成について説明する。図１は、ＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。本実施形態のＩＣカード１は、接触によるデータ通信と非接触によるデータ通信の２つの通信機能を兼ね備えたデュアルインターフェース型ＩＣカードである。但し、ＩＣカード１の種類はデュアルインターフェース型ＩＣカードに限定されず、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードにＩＣチップ１ａがエンベットされた接触型ＩＣカードであってもよいし、また、アンテナコイルを内蔵し無線でリーダ・ライタとデータ通信する非接触型ＩＣカードであってもよい。
【００２２】
図１に示すように、ＩＣチップ１ａは、ＣＰＵ（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コード）のさらなる機密性を提供する。
【００２８】
図２に示すように、ＩＣチップ１ａには、ＯＳがインストールされており、更に、上述したＩＳＤ、ＳＳＤ、各種サービスを提供するＡｐｐｌｉｃａｔｉｏｎ１、２といったアプリケーションがインストールされている（インスタンスが不揮発性メモリ１３に記憶されている）。また、ＩＳＤ、ＳＳＤ、Ａｐｐｌｉｃａｔｉｏｎ１、２といったアプリケーションインスタンスがそれぞれ使用・管理するインスタンスデータ（例えば、認証用の鍵値、ポイントデータ、ユーザＩＤなと）が不揮発性メモリ１３上の各アプリケーションインスタンスに割り当てられた領域に記憶される。また、不揮発性メモリ１３上のＯＳに割り当てられた領域には、ＯＳが管理する、各アプリケーションインスタンスに紐付いたレジストリデータ（例えば、ＡＩＤや特権など）が記憶される。
【００２９】
ＩＳＤ、ＳＳＤ、Ａｐｐｌｉｃａｔｉｏｎ１、２といったアプリケーションは、不具合が見つかった場合や機能が追加される場合にアップデートされる。ここで、アプリケーションのアップデートはアプリケーションプログラムとアプリケーションインスタンスのアップデートが主な目的であるため、インスタンスデータとレジストリデータ（インスタンスデータとレジストリデータを総称して「アプリケーションデータ」という場合がある）は、アップデートの前後で同一データとなるものが多い(暗号の危殆化などで、アルゴリズムや鍵長を変更する場合などは、異なるデータとなることもある)。そこで、本実施形態のＩＣチップ１ａは、アプリケーションのアップデートを行う際に、アプリケーションデータをＯＳに割り当てられた不揮発性メモリ１３上の一時領域に退避させ、アプリケーションプログラム及びアプリケーションインスタンスを削除した後に、新しいバージョンのアプリケーションプログラムをロードし、インストール処理により新しいバージョンのアプリケーションインスタンスの生成を行い、次いで、退避させておいたアプリケーションデータを復元するといった処理を行う。以下、アプリケーションのアップデートを行う際の処理（アップデート処理）について具体的に説明する。
【００３０】
［３．アップデート処理］
以下、図３−図７を用いて、ＩＣチップ１ａのアップデート処理の動作例について説明する。図３は、アップデート処理の一例を示すシーケンス図であり、図４は、ＩＣチップ１ａによる退避・削除処理の一例を示すフローチャートであり、図５は、ＩＣチップ１ａによるインストール・復元処理の一例を示すフローチャートであり、図６は、ＩＣチップ１ａによる状態管理リスト更新処理の一例を示すフローチャートであり、図７は、状態管理リストの構成例を示す図である。
【００３１】
図３は、アプリケーションであるポイントアプリケーション（提携している施設等でのポイント加算・利用を可能とするアプリケーション。以下、「ポイントアプリ」という）をアップデートする場合のＩＣチップ１ａとサーバ（ポイントアプリの提供者のサーバ）のコマンド・レスポンスの流れを示している。
【００３２】
まず、サーバはＩＣチップ１ａに対してＩＣチップ１ａ内のポイントアプリを管理するＳＤであるＩＳＤとの通信路を形成するために［SELECT ISD］コマンドを送信する（ステップＳ１）。[SELECT]コマンドは、通信路の相手先となるアプリケーションを識別するＩＤであるＡＩＤと、当該アプリケーションとの通信路（ロジカルチャネル）を識別するロジカルチャネル番号を含む。これに対して、ＩＣチップ１ａはコマンドに応じて通信路を形成するための処理を実行し、ＯＫ応答を送信する（ステップＳ２）。但し、コマンドに応じた処理を正常終了できなかった場合にはエラーが発生したことを示すレスポンスをサーバに送信する（以下、ステップＳ４、Ｓ６、Ｓ９、Ｓ１１、Ｓ１３、Ｓ１６について同様）。これにより、ロジカルチャネル番号で識別される通信路（ロジカルチャネル）が形成され、以降、サーバはコマンドに当該ロジカルチャネル番号を含ませることにより、当該ロジカルチャネル番号で識別される通信路を介して、ＩＳＤと通信を行うことができる。
【００３３】
次いで、サーバは、通信路の機密性を高めるためにそれまでに形成した通信路（ロジカルチャネル）をセキュアな通信路にするセキュア処理（ＳＣＰでコマンドを保護するための相互認証処理）を実行する。
【００３４】
相互認証処理は、プロトコルで決められたアルゴリズムに従い、暗号演算の元となる鍵を互いが知っているという前提の下、サーバとＩＣチップ１ａが互いを認証する処理である。具体的には、サーバが相互認証用のコマンドである［INITIALIZE UPDATE］コマンド及び［EXTERNAL AUTHENTICATE］コマンドをＩＣチップ１ａに送信し（ステップＳ３、ステップＳ５）、ＩＣチップ１ａがそれぞれのコマンドに応じた処理を実行し、正常に処理を完了するとＯＫ応答を送信する（ステップＳ４、ステップＳ６）ことにより行われる。図３では、ステップＳ６の処理によりＯＫ応答を送信することにより相互認証は完了したことになる。
【００３５】
次いで、サーバは、ＩＣチップ１ａに対して退避・削除処理を実行させるための［退避・削除処理］コマンドを送信する（ステップＳ７）。退避・削除処理は、アプリケーションをアップデートするための処理の一部である。これに対して、ＩＣチップ１ａは退避・削除処理を実行する（ステップＳ８）。なお、退避・削除処理については後述する。ＩＣチップ１ａは退避・削除処理を正常終了すると、ＯＫ応答を送信する（ステップＳ９）。
【００３６】
次いで、サーバは、ＩＣチップ１ａに対して［LOAD(0)］コマンドを送信する（ステップＳ１０）。［LOAD］コマンドは、新しいポイントアプリのアプリケーションプログラムをｎ個に分割して送信するコマンドである。［LOAD(0)］コマンドはｎ個に分割したうちの最初の部分を送信し、ＩＣチップ１ａに記憶させるためのコマンドである。ＩＣチップ１ａは［LOAD］コマンドに含まれるアプリケーションプログラムの一部を不揮発性メモリ１３に記憶させる処理を行い、処理を正常終了すると、ＯＫ応答をサーバに送信する（ステップＳ１１）。以下、同様に、サーバは分割した残りの部分を送信するために［LOAD(1)］コマンド、［LOAD(2)］コマンド、・・・、［LOAD(n-1)］コマンドを送信し、その都度、ＩＣチップ１ａは［LOAD］コマンドに含まれるアプリケーションプログラムの一部を不揮発性メモリ１３に記憶させる処理を行い、処理を正常終了すると、ＯＫ応答をサーバに送信する。［LOAD(n-1)］コマンドの送信（ステップＳ１２）、及び、これに対するＯＫ応答の送信（ステップＳ１３）がなされると、新しいポイントアプリのアプリケーションプログラム全体がＩＣチップ１ａの不揮発性メモリ１３に記憶されたことになる（ロード完了）。なお、ステップＳ１０〜ステップＳ１３の処理を総称して「ロード処理」（処理ＩＤ：「Ｘ」）という場合がある。
【００３７】
次いで、サーバは、ＩＣチップ１ａに対してインストール・復元処理を実行させるための［インストール・復元処理］コマンドを送信する（ステップＳ１４）。インストール・復元処理は、アプリケーションをアップデートするための処理の一部である。これに対して、ＩＣチップ１ａはインストール・復元処理を実行する（ステップＳ１５）。なお、インストール・復元処理については後述する。ＩＣチップ１ａはインストール・復元処理を正常終了すると、ＯＫ応答を送信し（ステップＳ１６）、アプリケーションアップデート処理を終了する。
【００３８】
［４．退避・削除処理］
次に、図４を用いて、ＩＣチップ１ａによる退避・削除処理について説明する。退避・削除処理は、サーバからの［退避・削除処理］コマンドに応じて実行される処理である。
【００３９】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、図７に示す状態管理リスト５００を作成する（ステップＳ１０１）。状態管理リスト５００は、ＡＩＤ（Application ID）５０１、処理ＩＤ５０２及び完了フラグ５０３を示す情報を含む。ＡＩＤ５０１には、アップデートの対象となっているアプリケーション（「ポイントアプリ」）のアプリケーションインスタンスを識別するＡＩＤが格納される。処理ＩＤ５０２には、アプリケーションをアップデートする際に実行される各処理を識別する処理ＩＤ５０２（本実施形態では「Ａ」〜「Ｊ」及び「Ｘ」。それぞれが何れの処理に対応するかは後述する）が、処理順（「ＮＯ．」の値が小さいほど処理順が早い）に格納される。完了フラグ５０３には、対応する処理ＩＤで識別される処理が完了しているか否かを示す情報が格納される。具体的には、処理が未完了であれば「０」が格納され、処理が完了していれば「１」が格納される。なお、状態管理リスト５００を作成した時点では、原則、全ての完了フラグ５０３に「０」を格納するものとする。
【００４０】
図４に戻り、ＯＳはポイントアプリに関するインスタンスデータをＯＳに割り当てられた一時領域に退避する（ステップＳ１０２）。このとき、ＯＳはポイントアプリからインスタンスデータを受け取り、一時領域に記憶させることとしてもよいし、ＯＳ自らがポイントアプリのインスタンスデータが記憶されている位置を特定し、一時領域に退避することとしてもよい。なお、ステップＳ１０２の処理ＩＤは「Ａ」である。
【００４１】
次に、ＯＳはポイントアプリに関するレジストリデータをＯＳに割り当てられた一時領域に退避する（ステップＳ１０３）。なお、ステップＳ１０３の処理ＩＤは「Ｂ」である。また、ステップＳ１０２の処理及びステップＳ１０３の処理を総称して「退避処理」という場合がある。
【００４２】
次に、ＯＳは連携アプリ対応処理１を実行する（ステップＳ１０４）。連携アプリ対応処理１は、アップデートの対象であるポイントアプリと連携してサービスを提供するアプリケーション（例えば、決済アプリケーション（以下「決済アプリ」という）が、ポイントアプリのアップデート中に連携することを回避するための処理である。例えば、決済アプリにより決済が完了した際に、決済アプリがポイントアプリを呼び出して、決済金額に応じてポイントを付与するサービスを提供している場合において、ポイントアプリがアップデート中であれば決済アプリがポイントアプリを呼び出せないようにする。具体的には、決済アプリがポイントアプリを呼び出す場合、決済アプリはポイントアプリのプログラムインスタンスが記憶されているアドレスをＯＳに問い合わせ、ＯＳは予め保持しているアドレステーブルを参照して、当該アドレスを決済アプリに返信することとなっているが、ポイントアプリがアップデート中であればアドレステーブルの当該アドレスが格納される領域に、ポイントアプリを呼び出すことができないことを示す値（例えば、null）を格納する。これにより、ポイントアプリのアップデート中にポイントアプリが呼び出されてしまう事故を防ぐことができる。なお、ステップＳ１０４の処理ＩＤは「Ｃ」である。
【００４３】
次に、ＯＳはポイントアプリのアプリケーションインスタンスを削除する（ステップＳ１０５）。なお、ステップＳ１０５の処理ＩＤは「Ｄ」である。
【００４４】
次に、ＯＳはポイントアプリのアプリケーションプログラムを削除し（ステップＳ１０６）、退避・削除処理を終了する。なお、ステップＳ１０６の処理ＩＤは「Ｅ」である。また、ステップＳ１０５の処理及びステップＳ１０６の処理を総称して「削除処理」という場合がある。
【００４５】
［５．インストール・復元処理］
次に、図５を用いて、ＩＣチップ１ａによるインストール・復元処理について説明する。インストール・復元処理は、サーバからの［インストール・復元処理］コマンドに応じて実行される処理である。
【００４６】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、図３のステップＳ１０〜ステップＳ１２の［LOAD］コマンドに基づいて記憶した新しいポイントアプリのアプリケーションプログラムのインストール処理、すなわち、アプリケーションインスタンスの生成し、不揮発性メモリ１３に記憶させる（ステップＳ２０１）。なお、ステップＳ２０１の処理ＩＤは「Ｆ」である。
【００４７】
次に、ＯＳは、図４のステップＳ１０２の処理で退避したインスタンスデータを復元する（ステップＳ２０２）。具体的には、ステップＳ２０１の処理で生成したアプリケーションインスタンスが、退避したインスタンスデータを使用できるように関連付ける処理を実行する。なお、ステップＳ２０２の処理ＩＤは「Ｇ」である。
【００４８】
次に、ＯＳは、図４のステップＳ１０３の処理で退避したレジストリデータを復元する（ステップＳ２０３）。具体的には、ＯＳが、退避したレジストリデータを新しいポイントアプリと関連付けてＯＳが使用できるように関連付ける処理を実行する。なお、ステップＳ２０３の処理ＩＤは「Ｈ」である。また、ステップＳ２０２の処理及びステップＳ２０３の処理を総称して「関連付け処理」という場合がある。
【００４９】
次に、ＯＳは連携アプリ対応処理２を実行する（ステップＳ２０４）。連携アプリ対応処理２は、図４のステップＳ１０４の処理で、決済アプリがポイントアプリを呼び出さないようにしたので、決済アプリがポイントアプリを呼び出せるようにする処理である。具体的には、ＯＳは予め保持しているアドレステーブルにおけるポイントアプリのインスタンスが記憶されているアドレスが格納される領域に正しい情報を格納する。これにより、決済アプリがポイントアプリを呼び出せることができるようになる。なお、ステップＳ２０４の処理ＩＤは「Ｉ」である。
【００５０】
次に、ＯＳは、図４のステップＳ１０１の処理で作成した状態管理リスト５００を削除し（ステップＳ２０５）、インストール・復元処理を終了する。なお、ステップＳ２０５の処理ＩＤは「Ｊ」である。
【００５１】
［６．状態管理リスト更新処理］
次に、図６を用いて、ＩＣチップ１ａによる状態管理リスト更新処理について説明する。状態管理リスト更新処理は、図４のステップＳ１０１の処理により状態管理リスト５００が作成されてから、図５のステップＳ２０５の処理により状態管理リスト５００が削除されるまでの間に実行される処理である。
【００５２】
ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、アップデート処理における各処理（処理ＩＤ「Ａ」〜「Ｊ」、「Ｘ」で識別される処理）の進行状態を監視し、進行状態が変化したか否かを判定する（ステップＳ３０１）。そして、ＯＳは進行状態が変化しないと判定した場合には（ステップＳ３０１：ＮＯ）、監視を継続する。一方、ＯＳは、進行状態が変化した（処理ＩＤ「Ａ」〜「Ｊ」又は「Ｘ」で識別される処理が完了した）と判定した場合に（ステップＳ３０１：ＹＥＳ）、状態管理リスト５００における、完了した処理に対応する完了フラグ５０３を更新する。
【００５３】
例えば、ＯＳは、図４のステップＳ１０２の処理（処理ＩＤ：「Ａ」）が完了した場合には、状態管理リスト５００の処理ＩＤ５０２に「Ａ」が格納されている領域と対応する完了フラグ５０３の領域に「１」をセットする。なお、図示しないが、新しいアプリケーションプログラムをＬＯＡＤする処理の処理ＩＤを「Ｘ」とする。すなわち、ＯＳは、図３のステップＳ１３の処理が完了した場合には、状態管理リスト５００の処理ＩＤ５０２に「Ｘ」が格納されている領域と対応する完了フラグ５０３の領域に「１」をセットする。
【００５４】
［７．アップデート再開処理］
次に、図８を用いてＯＳによるアップデート再開処理について説明する。ＩＣチップ１ａによる処理は、ＩＣチップ１ａに対する電源が断たれたり、サーバとの通信が切断されたりすると（「通信断」という）、実行できなくなってしまう。そのため、ＩＣチップ１ａには電源断や通信断が発生した場合には、処理前の状態に戻す機能が備えられており、例えば、アップデート処理の最中に電源断や通信断が発生すると、最初から処理をやり直さなければならない。しかしながら、上述したようにアップデート処理は処理数が多く複雑であるため、アップデート処理を最初からやり直すこととなると、それまでの処理が無駄になりアップデート処理のコストが増大してしまう。そこで、本実施形態では、状態管理リスト５００により、アップデート処理の何れの処理まで完了しているかを管理し、電源断や通信断が発生した場合には、一からアップデート処理をやり直すのではなく、完了していない処理からアップデート処理を再開する。これにより、電源断や通信断が発生したことによるアップデート処理のコスト増大を防ぐことができる。アップデート再開処理は、アップデート処理中に電源断や通信断が発生し、サーバからアップデート処理再開コマンドを受信したことを契機に実行される処理である。なお、サーバは［退避・削除処理］コマンド、「LOAD」コマンド、［インストール・復元処理］コマンドを送信してから、それぞれに設定された所定の時間内にＯＫ応答が送信されない場合に、アップデート処理再開コマンドをＩＣチップ１ａに送信する。
【００５５】
図８に示すように、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、まず、状態管理リスト５００の完了フラグ５０３を参照し、完了済の処理の次の処理を特定する（ステップＳ４０１）。例えば、処理ＩＤ５０２が「Ａ」〜「Ｃ」の完了フラグ５０３が「１」となっており、処理ＩＤ５０２が「Ｄ」〜「Ｊ」の完了フラグ５０３が「０」となっている場合には、処理ＩＤ５０２「Ｄ」の処理（すなわち、図４のステップＳ１０５の処理）を特定する。
【００５６】
次に、ＯＳは、ステップＳ４０１の処理で特定した処理から処理を再開させ（ステップＳ４０２）、アップデート再開処理を終了する。
【００５７】
以上のように、本実施形態のＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、不揮発性メモリ１３（「記憶手段」の一例）が、アプリケーションプログラムと、アプリケーションインスタンスと、インスタンスデータ（「関連データ」の一例）と、レジストリデータ（「関連データ」の一例）と、を記憶し、ＣＰＵ１０（「退避手段」、「削除手段」、「ロード手段」、「インストール手段」、「関連付け手段」、「管理手段」、「再開手段」の一例）が、不揮発性メモリ１３に記憶されているインスタンスデータ及びレジストリデータを不揮発性メモリ１３のＯＳの一次領域（「別の記憶領域」の一例）に退避する退避処理を実行し、退避処理の後に、不揮発性メモリ１３に記憶されているアプリケーションプログラムとアプリケーションインスタンスを削除する削除処理を実行し、アプリケーションプログラムの新バージョンであるアプリケーションプログラム（「新アプリケーションプログラム」の一例）を不揮発性メモリ１３に記憶させるステップＳ１０〜ステップＳ１３の処理（「ロード処理」の一例）を実行し、削除処理及びロード処理の後に、不揮発性メモリ１３に記憶されている新バージョンのアプリケーションプログラムに基づいて新バージョンのアプリケーションインスタンス（「新アプリケーションインスタンス」の一例）を生成して不揮発性メモリ１３に記憶させるインストール処理を実行し、インストール処理の後に、ＯＳの一時領域に退避させたインスタンスデータ及びレジストリデータを新しいバージョンのアプリケーションインスタンスと関連付ける関連付け処理を実行し、退避処理、削除処理、ロード処理、インストール処理及び関連付け処理を実行する処理順序と、当該処理順序における一連の処理を何れの処理まで実行済みであるかを状態管理リスト５００により管理し、処理順序における何れかの処理の実行中に当該処理を中断した場合において、アップデート処理再開コマンドを受信した（「所定の条件が充足された」の一例）場合に、一連の処理における中断した処理から処理を再開する。
【００５８】
したがって、本実施形態のＩＣチップ１ａによれば、新しいバージョンのアプリケーションをインストールに当たり、アプリケーションデータ（インスタンスデータ及びレジストリデータ）を削除せずに退避させておき、新しいバージョンのアプリケーションインスタンスが生成された段階で退避させておいたアプリケーションデータを関連付けることから、アプリケーションデータを削除して新たに取得する必要がなく、アプリケーションのアップデート処理に掛かる通信コストを削減することができる。また、アップデート処理に係る退避処理、削除処理、ロード処理、インストール処理及び関連付け処理を実行する処理順序と、当該処理順序に従う一連の処理を何れの処理まで実行済みであるかを管理することから、アップデート処理を中断した場合にあっても、中断した処理からアップデート処理を再開することができる。
【００５９】
［８．変形例］
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は上記実施形態や他の変形例と適宜組み合わせることができる。
【００６０】
［８．１．変形例１］
上記実施形態では、新しいアプリケーションプログラムのロードは、退避・削除処理の後に行うこととしたが、退避・削除処理の前に行うこととしてもよい。すなわち、図３のステップＳ１０〜ステップＳ１３の処理を、ステップＳ７の処理の前に行うこととしてもよい。この場合、退避・削除処理（図４参照）のステップＳ１０１の処理において作成する状態管理リスト５００は図９の通りとなる。すなわち、先頭の処理ＩＤ５０２が「Ｘ」（LOAD）となり、ステップＳ１０１の処理の時点でロード処理が完了しているので、完了フラグ５０３に「１」が格納される。
【００６１】
［８．２．変形例２］
上記実施形態では、電源断や通信断が発生した場合、サーバからアップデート処理再開コマンドを受信したことを契機にアップデート再開処理（図８参照）が実行されるが、ＯＳが電源断や通信断からの復旧を検出したことを契機に（すなわち、サーバからアップデート処理再開コマンドを受信しなくとも）、アップデート再開処理を実行することとしてもよい。アップデート再開処理の契機を、（ｉ）サーバからのアップデート処理再開コマンドの受信とするか、（ｉｉ）電源断や通信断からの回復の検出とするかは、サーバが［退避・削除処理］コマンド内で指定することが好ましい。そして、ＩＣチップ１ａは［退避・削除処理］コマンド内で（ｉ）又は（ｉｉ）の何れが指定されているかに応じて再開フラグを設定し、電源断や通信断からの回復を検出した際に再開フラグを参照して、サーバからアップデート処理再開コマンドが受信するのを待機するか、又は、直ちにアップデート再開処理を実行するかを決定する。後者の場合、電源断や通信断から回復し次第、アップデート処理を再開することができ、アップデートを早期に完了させることができる。
【００６２】
また、電源断や通信断からの復旧の検出を契機にアップデート再開処理を実行する場合であっても、アップデート処理の各処理よりも優先度の高い処理が存在する場合には、当該優先度の高い処理が完了してから処理を再開することが好ましい。具体的には、ＩＣチップ１ａが活性化したことに伴う処理に関わるコマンドの送受信中は、その処理が完了するまでアップデート再開処理を実行しないこととする。例えば、ＩＣカード１がＵＩＭカードである場合における携帯端末起動時の契約認証処理中や、ＩＣカード１がＩｏＴデバイスの通信に用いられる場合におけるデバイス自体の構成が変更されていないことを確認するための処理中などには、アップデート再開処理を実行しないことが好ましい。
【００６３】
［８．３．変形例３］
上記実施形態では、図４のステップＳ１０４の処理により、アプリケーションのアップデート中は当該アプリケーションを呼び出すことができないようにしたが、例えば、アップデート中（例えば、図３のステップＳ７〜ステップＳ１６の処理の実行中）にアップデート対象のアプリケーションが外部機器２から［SELECT］コマンドにより選択された場合には、ＩＣチップ１ａは、外部機器２に対してエラーを示すレスポンス（ステータスワード）を返送することとしてもよい。これにより、外部機器２は、当該アプリケーションを選択できないことを把握することができる。
【００６４】
［８．４．変形例４］
上記実施形態では、アップデート対象のアプリケーションのアプリケーションインスタンスが一つの場合について説明したが、変形例４では、アップデート対象のアプリケーションのアプリケーションインスタンスが複数（３つ）の場合について説明する。なお、レジストリデータ及びインスタンスデータは、アプリケーションインスタンス毎に不揮発性メモリ１３に記憶されている。
【００６５】
図１０は、アプリケーションインスタンスが３つの場合の状態管理リスト５００の一例である。ＡＩＤ５０１には、各アプリケーションインスタンスを識別するＡＩＤが格納される。図１０の例では１つ目のアプリケーションインスタンスのＡＩＤが「１１２２３３４４５５」であり、２つ目のアプリケーションインスタンスのＡＩＤが「２２３３４４５５６６」であり、３つ目のアプリケーションインスタンスのＡＩＤが「３３４４５５６６７７」となっている。図１０の状態管理リスト５００に示すように、アプリケーションインスタンスが３つの場合には、処理ＩＤ５０２が「Ａ」の処理（図４のステップＳ１０２の処理）をそれぞれのアプリケーションインスタンスについて順番に行い、３つのアプリケーションインスタンスについて処理ＩＤ５０２が「Ａ」の処理が完了すると、次いで、処理ＩＤ５０２が「Ｂ」の処理（図４のステップＳ１０３の処理）をそれぞれのアプリケーションインスタンスについて順番に行う、ということを処理ＩＤ５０２が「Ｊ」の処理まで行う。但し、アプリケーションインスタンスが３つであっても、それらが一のアプリケーションプログラムから生成された場合には、対応するアプリケーションプログラムは一つであるので、処理ＩＤ５０２が「Ｅ」及び「Ｘ」の処理は、何れか一つのアプリケーションインスタンスについてのみ処理を実行することとする。図１０の状態管理リスト５００では処理ＩＤ５０２が「Ｅ」及び「Ｘ」の処理は、ＡＩＤ５０１が「１１２２３３４４５５」であるアプリケーションインスタンスのみが行うことを示している。
【００６６】
変形例４によれば、一のアプリケーションプログラムから複数のアプリケーションインスタンスが生成される場合であっても、アプリケーションインスタンス毎にアップデート処理が何れの処理まで完了したかを管理することができることから、電源断や通信断によりアップデートが中断された場合であっても、一からアップデートを再開するのではなく、中断した処理からアップデートを再開することができ、延いてはアップデートに要する時間を短縮することができる。
【００６７】
［８．５．変形例５］
上記実施形態の状態管理リスト５００では、ＡＩＤ５０１と処理ＩＤ５０２の組み合わせ毎に完了フラグ５０３を設けることにより何れのアプリケーションインスタンスについて何れの処理まで完了しているかを管理することとしたが、図１１に示す状態管理リスト５１０のように、ＡＩＤ５１１毎に完了済処理ＩＤ５１２を設けて管理することとしてもよい。図１１の状態管理リスト５０１は、ＡＩＤ５１１が「１１２２３３４４５５」のアプリケーションインスタンスについて処理ＩＤが「Ｂ」の処理までが完了し、ＡＩＤ５１１が「２２３３４４５５６６」のアプリケーションインスタンスについて処理ＩＤが「Ａ」の処理までが完了していることを示している。変形例５によれば、状態管理リスト５１０が簡素化され、状態管理リスト５１０を記憶するための記憶領域を小さくすることができるが、別途、各アプリケーションインスタンスについて処理ＩＤ５１２により識別される処理を何れの順序で行うかを管理する必要がある。
【００６８】
［８．６．変形例６］
上記実施形態では、サーバは［退避・削除処理］コマンド、［LOAD］コマンド、［インストール・復元処理］コマンドを送信してから、それぞれに設定された所定の時間内にOK応答が送信されない場合に、アップデート処理再開コマンドをＩＣチップ１ａに送信することとしたが、サーバはＯＫ応答が送信されない場合に、ＩＣチップ１ａに対して何れの処理を実行中であるかの問い合わせを行うこととしてもよい。そして、サーバは問い合わせた結果に基づいて、改めてアップデート処理再開コマンドをＩＣチップ１ａに送信してアップデート処理を再開させてもよいし、また、アップデート処理取消コマンドをＩＣチップ１ａに送信して、アップデート処理を取り消してもよい。
【００６９】
ＩＣチップ１ａのＯＳは、例えば、ロード処理待ち（［LOAD］コマンド待ち）中、退避・削除処理待ち（［退避・削除処理］コマンド待ち）中、インストール処理・復元処理待ち（［インストール・復元処理］コマンド待ち）中、退避処理中、削除処理中、インストール処理中、関連付け処理（復元）中、アップデート処理完了済みの何れの状態にあるかを管理することとし、サーバから何れの処理を実行中であるか又は何れの状態にあるかの問い合わせがあった場合に応答を行う。例えば、ＯＳは、状態毎にフラグ（例えば、ロード処理待ち中フラグ等）を設け、その状態に遷移した際に該当するフラグをオンとし、その状態を終了した際に該当するフラグをオフとすることにより、何れの状態にあるかを管理することとしてもよい。このとき、サーバは当該応答が、退避処理中、削除処理中、インストール処理中、関連付け処理中を示している場合（すなわち、コマンド待ち中でない場合）は、電源断が発生した可能性があると判断することができる。
【００７０】
サーバは、問い合わせに対するＩＣチップ１ａからの回答に基づいて、アップデート処理取消コマンドを送信し、アップデート処理を取り消した場合、通常のＩｎｓｔａｌｌ処理を実行する（アプリケーションプログラムやアプリケーションデータ等の全てのデータを発行し、アプリケーションインスタンスを生成する）こととする。これは、ＩＣカード１ａの基本機能として、アップデート処理を取り消した場合に、退避処理で退避したアプリケーションデータを破棄することによる。つまり、アップデート処理を取り消すと、アプリケーションデータがＩＣカード１ａに存在しなくなるため、アプリケーションデータのＬＯＡＤを伴う通常のＩｎｓｔａｌｌ処理を実行する。
【００７１】
［８．７．変形例７］
上記実施形態では、図４のステップＳ１０２及びステップＳ１０３の処理（退避処理）でアプリケーションデータをＯＳに割り当てられた不揮発性メモリ１３上の一時領域に移動させることとしたが、アプリケーションデータを移動させずにそのままの記憶領域に記憶させておき、アップデート対象のアプリケーションプログラムやアプリケーションインスタンスの関連付けを解消することとしてもよい。そして、新バージョンのアプリケーションプログラムやアプリケーションインスタンスをＬＯＡＤ処理やインストール処理において不揮発性メモリ１３に記憶させる際にアプリケーションデータが記憶されている領域に上書きしないようにする。また、図５のステップＳ２０２及びステップＳ２０３の処理（関連付け処理）では、関連付けを解消したアプリケーションデータについて、新しいバージョンのアプリケーションプログラムやアプリケーションインスタンスと関連付けを行うこととする。変形例７の退避処理によれば、アプリケーションデータの移動（すなわち、異なる記憶領域への書き込み）を行わなくてすむことから、不揮発性メモリ１３への書き込み回数を抑制することができる。
【符号の説明】
【００７２】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
２  外部機器
【図１】
2019046210.tif 000003
【図２】
2019046210.tif 000004
【図３】
2019046210.tif 000005
【図４】
2019046210.tif 000006
【図５】
2019046210.tif 000007
【図６】
2019046210.tif 000008
【図７】
2019046210.tif 000009
【図８】
2019046210.tif 000010
【図９】
2019046210.tif 000011
【図１０】
2019046210.tif 000012
【図１１】
2019046210.tif 000013