(57)【要約】【課題】アップデート対象である、アプリケーションプログラム及びアプリケーションインスタンスの削除処理中に電源断が生じた場合であっても、不正な状態となることなく、且つ、ロールバックにより削除処理の前に状態に戻ってしまい一から削除処理をやり直すことを回避できる電子情報記憶媒体等を提供する。【解決手段】削除処理において一つの削除対象を削除する前に当該一つの削除対象のコピーを他の記憶領域に記憶させ、削除処理が中断した場合に、中断時に削除中であった削除対象をコピーにより復元し、削除対象を復元した場合に、復元した削除対象から削減処理を再開する。【選択図】図５
2019032578.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)］コマンドの送信（ステップＳ１２）、及び、これに対するＯＫレスポンスの送信（ステップＳ１３）がなされると、新しいポイントアプリのアプリケーションプログラム全体がＩＣチップ１ａの不揮発性メモリ１３に記憶されたことになる（ロード完了）。なお、ステップＳ１０〜ステップＳ１３の処理は「ロード処理」の一例である。なお、ロード処理は、相互認証の完了後、ステップＳ７〜ステップＳ９の処理の前に行っても良い。
【００３７】
次いで、サーバは、ＩＣチップ１ａに対してインストール・復元処理を実行させるための［インストール・復元処理］コマンドを送信する（ステップＳ１４）。インストール・復元処理は、アプリケーションをアップデートするための処理の一部である。これに対して、ＩＣチップ１ａはインストール・復元処理を実行する（ステップＳ１５）。なお、インストール・復元処理については後に詳述するが、例えば、ロードしたアプリケーションプログラムに基づくアプリケーションインスタンスの生成（インストール）や、退避したアプリケーションデータの復元が行われる。ＩＣチップ１ａはインストール・復元処理を正常終了すると、ＯＫレスポンスを送信し（ステップＳ１６）、アップデート処理を終了する。
【００３８】
このような手順でアップデート処理を実行することにより、アプリケーションデータを改めてサーバから取得する必要が無く、そのための通信や処理コストを削減することができる。
【００３９】
また、アプリケーションプログラムやアプリケーションインスタンスの追加や削除は不揮発性メモリ１３へのデータ書き込みであるため、トランザクションもしくはそれに類する仕組みが利用される。アプリケーションのアップデートの場合、ステップＳ７からステップＳ１６の処理がひとまとまりの処理となっていることに基づき、これらの処理全体にトランザクションをかけることとすると、電源断が発生し、電源供給が再開した場合に、ステップＳ７の処理前もしくはステップＳ１６の処理後の状態に遷移させることとなる。ところが、この間に書き換えるデータ量が多く、また、コマンドが複数にまたがっているため、ステップＳ７からステップＳ１６の処理全体にトランザクションをかけることはＩＣチップ１ａのリソースを考慮すると難しい。特に、アプリケーションプログラム及びアプリケーションインスタンスの削除処理については、記憶容量を圧迫してしまう。
【００４０】
そこで、本実施形態では、アップデート処理中は、少なくともアプリケーションプログラム及びアプリケーションインスタンス（それぞれを「「オブジェクト」という場合がある）の削除処理について、オブジェクトの削除処理毎にトランザクションをかけることとする。これにより、一のオブジェクトの削除処理中に電源断が発生した場合であっても、当該一のオブジェクトの削除処理前の状態に戻るだけで、全てのオブジェクトの削除前の状態に戻ることを回避することができる。
【００４１】
［４．退避・削除処理］
次に、図４を用いて、ＩＣチップ１ａによる退避・削除処理について説明する。退避・削除処理は、サーバからの［退避・削除処理］コマンドに応じて実行される処理である。
【００４２】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、ＡＵフラグが「ＴＲＵＥ」であるか否かを判定する（ステップＳ１０１）。ＡＵフラグは、不揮発性メモリ１３に記憶されるフラグであり、値が「ＴＲＵＥ」である場合はアップデート処理中であることを示し、値が「ＦＡＬＳＥ」である場合はアップデート処理中でないことを示す。
【００４３】
ＯＳは、ＡＵフラグが「ＴＲＵＥ」であると判定した場合には（ステップＳ１０１：ＹＥＳ）、エラーレスポンスを生成し（ステップＳ１０２）、退避・削除処理を終了する。なお、エラーレスポンスを生成した場合には、図３のステップＳ９の処理でＯＫレスポンスの代わりに当該エラーレスポンスをサーバに送信する。一方、ＯＳは、ＡＵフラグが「ＴＲＵＥ」でないと判定した場合には（ステップＳ１０１：ＮＯ）、ＡＵフラグに「ＴＲＵＥ」をセットする（ステップＳ１０３）。
【００４４】
次に、ＯＳは、ポイントアプリに関するアプリケーションデータをＯＳに割り当てられた一時領域に退避する（ステップＳ１０４）。なお、ステップＳ１０４の処理は「退避処理」の一例である。
【００４５】
次に、ＯＳは図５を用いて後述するアプリケーション削除処理を行う（ステップＳ１０５）。なお、アプリケーション削除処理は、「削除処理」の一例である。
【００４６】
次に、ＯＳは、ＯＫレスポンスを生成し（ステップＳ１０６）、退避・削除処理を終了する。なお、ＯＫレスポンスを生成した場合には、図３のステップＳ９の処理でＯＫレスポンスをサーバに送信する。
【００４７】
［５．アプリケーション削除処理］
次に、図５を用いて、ＩＣチップ１ａによるアプリケーション削除処理について説明する。アプリケーション削除処理は、図４のステップＳ１０５、図７のステップＳ４０７、図８のステップＳ５０３で実行される。
【００４８】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、削除リストを作成する（ステップＳ２０１）。削除リストには、削除対象であるオブジェクト（アプリケーションプラグラムやアプリケーションインスタンス）が記述される。具体的には、アプリケーション削除処理を、図４のステップＳ１０５の処理、又は、図７のステップＳ４０７の処理として実行する場合には、アップデート対象である、全てのアプリケーションプログラム及びアプリケーションインスタンスが記述される。一方、アプリケーション削除処理を、図８のステップＳ５０３の処理として実行する場合には、ＤＥＬＥＴＥコマンドにより削除対象となるアプリケーションプログラム又は／及びアプリケーションインスタンスが記述される。
【００４９】
次に、ＯＳは、削除リストからオブジェクトを一つ選択する（ステップＳ２０２）。
【００５０】
次に、ＯＳは、選択したオブジェクトを削除リストから削除する（ステップＳ２０３）。
【００５１】
次に、ＯＳは、選択したオブジェクトが不揮発性メモリ１３に存在するか否かを判定する（ステップＳ２０４）。なお、ステップＳ２０４の処理で「ＮＯ」と判定される可能性があるのは、図７のステップＳ４０７で、アプリケーション削除処理を実行する場合である。すなわち、削除リストに記述された一部のオブジェクトを削除した段階で電源断が発生し、電源供給再開後に実行される図７のステップＳ４０７（アプリケーション削除処理）では、既に削除した一部のオブジェクトは不揮発性メモリ１３に存在しないので、そうしたオブジェクトが選択されている場合には、ステップＳ２０４の処理で「ＮＯ」と判定する。
【００５２】
ＯＳは、選択したオブジェクトが不揮発性メモリ１３に存在しないと判定した場合には（ステップＳ２０４：ＮＯ）、次いで、ＡＵフラグが「ＴＲＵＥ」か否かを判定する（ステップＳ２０５）。このとき、ＯＳは「ＴＲＵＥ」であると判定した場合には（ステップＳ２０５：ＹＥＳ）、ステップＳ２０２の処理に移行し、それ以前のステップＳ２０２の処理で選択していないオブジェクトを選択する。一方、ＯＳは「ＴＲＵＥ」ではないと判定した場合には（ステップＳ２０５：ＮＯ）、異常終了する。つまり、アップデート処理中において削除リストに記述された一部のオブジェクトを削除した段階で電源断が発生した場合には、既に削除済みのオブジェクトが不揮発性メモリ１３に存在しなくても問題ないとして、そのままステップＳ２０２の処理に移行する。一方、アップデート処理中でない場合に、削除対象のオブジェクトが不揮発性メモリ１３に存在しないのは問題があるとして、異常終了する。
【００５３】
一方、ＯＳは、選択したオブジェクトが不揮発性メモリ１３に存在すると判定した場合には（ステップＳ２０４：ＹＥＳ）、次いで、トランザクション中であって、且つ、ＡＵフラグが「ＦＡＬＳＥ」であるか否かを判定する（ステップＳ２０６）。このとき、ＯＳは、トランザクション中であって、且つ、ＡＵフラグが「ＦＡＬＳＥ」であると判定した場合には（ステップＳ２０６：ＹＥＳ）、ステップＳ２０８の処理に移行する。一方、ＯＳは、トランザクション中ではない、又は、ＡＵフラグが「ＦＡＬＳＥ」ではないと判定した場合には（ステップＳ２０６：ＮＯ）、トランザクションを開始する（ステップＳ２０７）。例えば、ＯＳは、削除対象のオブジェクトのコピーを不揮発性メモリ１３におけるＯＳの一次領域に記憶させる。
【００５４】
次に、ＯＳは、選択したオブジェクトを不揮発性メモリ１３から削除する（ステップＳ２０８）。
【００５５】
次に、ＯＳは、削除リストのオブジェクトを全て選択したか否かを判定する（ステップＳ２０９）。このとき、ＯＳは、削除リストのオブジェクトを全て選択したと判定した場合には（ステップＳ２０９：ＹＥＳ）、トランザクションを終了（コミット）し（ステップＳ２１０）、アプリケーション削除処理を終了する。なお、ステップＳ２１０の処理では、ＯＳはステップＳ２０７の処理でコピーを記憶させた記憶領域を解放する（例えば、コピーを削除する）。
【００５６】
一方、ＯＳは、削除リストのオブジェクトを全て選択していないと判定した場合には（ステップＳ２０９：ＮＯ）、次いで、ＡＵフラグが「ＴＲＵＥ」か否かを判定する（ステップＳ２１１）。このとき、ＯＳは「ＴＲＵＥ」ではないと判定した場合には（ステップＳ２１１：ＮＯ）、ステップＳ２０２の処理に移行し、それ以前のステップＳ２０２の処理で選択していないオブジェクトを選択する。一方、ＯＳは「ＴＲＵＥ」であると判定した場合には（ステップＳ２１１：ＹＥＳ）、トランザクションを終了し（ステップＳ２１２）、ステップＳ２０２の処理に移行する。なお、ステップＳ２１２の処理では、ＯＳはステップＳ２０７の処理でコピーを記憶させた記憶領域を解放する（例えば、コピーを削除する）。
【００５７】
［６．インストール・復元処理］
次に、図６を用いて、ＩＣチップ１ａによるインストール・復元処理について説明する。インストール・復元処理は、サーバからの［インストール・復元処理］コマンドに応じて実行される処理である。
【００５８】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、ＡＵフラグが「ＴＲＵＥ」か否かを判定する（ステップＳ３０１）。このとき、ＯＳは「ＴＲＵＥ」ではないと判定した場合には（ステップＳ３０１：ＮＯ）、エラーレスポンスを生成し（ステップＳ３０３）、インストール・復元処理を終了する。なお、エラーレスポンスを生成した場合には、図３のステップＳ１６の処理でＯＫレスポンスの代わりに当該エラーレスポンスをサーバに送信する。
【００５９】
一方、ＯＳは、ＡＵフラグが「ＴＲＵＥ」であると判定した場合には（ステップＳ３０１：ＹＥＳ）、次いで、ロード処理が完了済みか否かを判定する（ステップＳ３０２）。すなわち、図３のステップＳ１０〜ステップＳ１３の処理が完了しているか否かを判定する。なお、図示しないが、不揮発性メモリ１３におけるＯＳの管理領域にロード処理完了フラグを設け、ＯＳはロード処理が完了した際にロード処理完了フラグに「ＴＲＵＥ」をセットすることとし、ロード処理完了フラグを参照して、ロード処理が完了済みか否かを判定することとしてもよい。ＯＳは、ロード処理が完了済みでないと判定した場合には（ステップＳ３０２：ＮＯ）、エラーレスポンスを生成し（ステップＳ３０３）、インストール・復元処理を終了する。
【００６０】
ＯＳは、ロード処理が完了済みであると判定した場合には（ステップＳ３０２：ＹＥＳ）、図３のステップＳ１０〜ステップＳ１２の［LOAD］コマンドにより不揮発性メモリ１３に記憶させたポイントアプリの新しいバージョンのアプリケーションプログラムに基づいてインストール処理を行い、新しいバージョンのアプリケーションインスタンスを生成し、不揮発性メモリ１３に記憶させる（ステップＳ３０４）。なお、ステップＳ３０４の処理は「インストール処理」の一例である。
【００６１】
次に、ＯＳは、図４のステップＳ１０４の処理で退避したアプリケーションデータを復元する（ステップＳ３０５）。具体的には、ＯＳは、新しいバージョンのアプリケーションインスタンスにインスタンスデータを受け渡し、当該アプリケーションインスタンス（を実行するＣＰＵ１０）が、受け取ったインスタンスデータを自らに割り当てられた不揮発性メモリ１３上の領域に記憶させることにより、インスタンスデータを復元する。すなわち、退避したインスタンスデータをアプリケーションインスタンスが使用できるように関連付ける。また、ＯＳは、退避したレジストリデータを新しいポイントアプリと関連付けてＯＳが使用できるように関連付ける処理を実行する。なお、ステップＳ３０５の処理は「関連付け処理」の一例である。
【００６２】
次に、ＯＳは、ＡＵフラグに「ＦＡＬＳＥ」をセットする（ステップＳ３０６）。
【００６３】
次に、ＯＳは、ＯＫレスポンスを生成し（ステップＳ３０７）、インストール・復元処理を終了する。なお、ＯＫレスポンスを生成した場合には、図３のステップＳ１６の処理でＯＫレスポンスをサーバに送信する。
【００６４】
［７．再開処理］
次に、図７を用いて、ＩＣチップ１ａによる再開処理について説明する。図７は、ＩＣチップ１ａによる再開処理の一例を示すフローチャートである。再開処理は、電源断が発生し、電源供給が再開した場合において、アップデート再開コマンドをサーバから受信したことを契機に実行される処理である。
【００６５】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、ＡＵフラグが「ＴＲＵＥ」か否かを判定する（ステップＳ４０１）。このとき、ＯＳは「ＴＲＵＥ」ではないと判定した場合には（ステップＳ４０１：ＮＯ）、エラーレスポンスを生成し（ステップＳ４０２）、再開処理を終了する。なお、エラーレスポンスを生成した場合には、アップデート再開コマンドの応答として、当該エラーレスポンスをサーバに送信する。
【００６６】
一方、ＯＳは、ＡＵフラグが「ＴＲＵＥ」であると判定した場合には（ステップＳ４０１：ＹＥＳ）、次いで、アプリケーションデータの退避が完了済みか否かを判定する（ステップＳ４０３）。すなわち、図４のステップＳ１０４の処理が完了しているか否かを判定する。なお、図示しないが、不揮発性メモリ１３におけるＯＳの管理領域に退避処理完了フラグを設け、ＯＳはアプリケーションデータの退避処理が完了した際に退避処理完了フラグに「ＴＲＵＥ」をセットすることとし、退避処理完了フラグを参照して、アプリケーションデータの退避処理が完了済みか否かを判定することとしてもよい。ＯＳは、アプリケーションデータの退避が完了済みでないと判定した場合には（ステップＳ４０３：ＮＯ）、ステップＳ１０４の処理と同様に、アプリケーションデータを退避し（ステップＳ４０４）、ステップＳ４０７の処理に移行する。
【００６７】
ＯＳは、アプリケーションデータの退避が完了済みであると判定した場合には（ステップＳ４０３：ＹＥＳ）、次いで、アプリケーション削除処理が完了済みか否かを判定する（ステップＳ４０５）。すなわち、図５のアプリケーション削除処理が完了しているか否かを判定する。なお、図示しないが、不揮発性メモリ１３におけるＯＳの管理領域にアプリケーション削除処理完了フラグを設け、ＯＳはアプリケーション削除処理が完了した際にアプリケーション削除処理完了フラグに「ＴＲＵＥ」をセットすることとし、アプリケーション削除処理完了フラグを参照して、アプリケーション削除処理が完了済みか否かを判定することとしてもよい。ＯＳは、アプリケーション削除処理が完了済みであると判定した場合には（ステップＳ４０５：ＹＥＳ）、その他のアップデータ処理を再開する（ステップＳ４０８）。
【００６８】
一方、ＯＳは、アプリケーション削除処理が完了済みでないと判定した場合には（ステップＳ４０５：ＮＯ）、ロールバックを実施し（ステップＳ４０６）、ステップＳ４０７の処理に移行する。具体的には、ＯＳは、トランザクションのロールバック機能により、当該トランザクションがかかっていた一つのオブジェクトの削除処理について削除処理前の状態に戻す。より具体的には、ステップＳ２０７の処理でＯＳの一時領域に記憶させたコピーに基づいてオブジェクトを復元する。
【００６９】
ステップＳ４０７の処理において、ＯＳは、図５を用いて上述したアプリケーション削除処理を行う。
【００７０】
ＯＳは、ステップＳ４０７の処理又はステップＳ４０８の処理を終えると、ＯＫレスポンスを生成し（ステップＳ４０９）、再開処理を終了する。なお、ＯＫレスポンスを生成した場合には、アップデート再開コマンドの応答として、当該ＯＫレスポンスをサーバに送信する。
【００７１】
［８．削除処理］
次に、図８を用いて、ＩＣチップ１ａによる削除処理の動作例について説明する。図８は、削除処理の一例を示すフローチャートである。なお、削除処理は、外部機器２からＤＥＬＥＴＥコマンドを受信したことを契機に実行される処理である。但し、ＤＥＬＥＴＥコマンドには二種類あり、一つはコマンドで指定したオブジェクトのみを削除するもの（「ＤＥＬＥＴＥコマンドＡ」という）であり、もう一つはコマンドで指定したオブジェクトと、当該オブジェクトに関連するオブジェクトを削除するもの（「ＤＥＬＥＴＥコマンドＢ」という）である。
【００７２】
まず、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）は、ＡＵフラグが「ＴＲＵＥ」か否かを判定する（ステップＳ５０１）。このとき、ＯＳは「ＴＲＵＥ」であると判定した場合には（ステップＳ５０１：ＹＥＳ）、エラーレスポンスを生成し（ステップＳ５０２）、削除処理を終了する。すなわち、アップデート処理中に、ＤＥＬＥＴＥコマンドを受信した場合にはエラーレスポンスを生成する。なお、エラーレスポンスを生成した場合には、ＤＥＬＥＴＥコマンドの応答として、当該エラーレスポンスを外部機器２に送信する。
【００７３】
一方、ＯＳは、ＡＵフラグが「ＴＲＵＥ」ではないと判定した場合には（ステップＳ５０１：ＮＯ）、図５を用いて上述したアプリケーション削除処理を行う（ステップＳ５０３）。
【００７４】
ＯＳは、ステップＳ５０３の処理を終えると、ＯＫレスポンスを生成し（ステップＳ５０４）、削除処理を終了する。なお、ＯＫレスポンスを生成した場合には、ＤＥＬＥＴＥコマンドの応答として、当該ＯＫレスポンスを外部機器２に送信する。
【００７５】
ここで、削除処理（図８）のステップＳ５０３の処理でアプリケーション削除処理を実行する場合について図５を用いて説明する。この場合において、削除処理がＤＥＬＥＴＥコマンドＢの受信を契機に実行された場合、ＯＳは、ステップＳ２０１の処理で、ＤＥＬＥＴＥコマンドＢによる削除対象のオブジェクトを記述した削除リストを作成し、以降、「ステップＳ２０２→ステップＳ２０３→ステップＳ２０４（ＹＥＳ）→ステップＳ２０６（ＮＯ）→ステップＳ２０７→ステップＳ２０８→ステップＳ２０９（ＮＯ）→ステップＳ２１１（ＮＯ）→ステップＳ２０２」というループを削除リストに記述されたオブジェクトを全て選択するまで実行し、全て選択した場合には「ステップＳ２０９（ＮＯ）→ステップＳ２１０」と移行し、トランザクションを終了する。なお、ループ処理中のステップＳ２０６ではＡＵフラグが「ＦＡＬＳＥ」のため（ＹＥＳ）判定となる。つまり、トランザクションは、一つ目の削除対象のオブジェクトを削除する前に開始され、全ての削除対象のオブジェクトを削除した後に終了する。
【００７６】
一方、図４（退避・削除処理）のステップＳ１０５の処理でアプリケーション削除処理を実行する場合には、削除対象のオブジェクト毎にステップＳ２１１の処理で「ＹＥＳ」と判定することから、トランザクションは、削除対象のオブジェクトを削除する都度、削除前に開始され、削除後に終了する。このように、アップデート処理中は、削除対象のオブジェクトを削除する度にトランザクションをかけるため、電源断が発生した場合であっても、電源断発生時に削除していたオブジェクトについてのみロールバックがなされ、削除済みのオブジェクトについて再度、削除を行うことを回避できる。
【００７７】
以上のように、本実施形態のＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、不揮発性メモリ１３（「記憶手段」の一例）が、アプリケーションプログラム及びアプリケーションインスタンスを記憶し、ＣＰＵ１０（「削除手段」、「ロード手段」、「インストール手段」、「コピー手段」、「復元手段」の一例）が、アップデート対象である、アプリケーションプログラム及びアプリケーションインスタンスを削除対象として一つずつ削除するアプリケーション削除処理（「削除処理」の一例）を実行し、アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを不揮発性メモリ１３に記憶させるロード処理を実行し、アプリケーション削除処理及びロード処理の後に、不揮発性メモリ１３に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して不揮発性メモリ１３に記憶させるインストール処理を実行し、アプリケーション削除処理において一つの削除対象を削除する前にトランザクションを開始し（一つの削除対象のコピーを他の記憶領域に記憶させることの一例）、一つの削除対象の削除が終了した場合にトランザクションを終了し（他の記憶領域を解放することの一例）、アプリケーション削除処理が中断した場合に、中断時に削除中であった削除対象をコピーにより復元し、削除対象を復元した場合に、復元した削除対象からアプリケーション削除処理を再開する。
【００７８】
したがって、本実施形態のＩＣチップ１ａによれば、アップデート対象である、アプリケーションプログラム及びアプリケーションインスタンスを削除対象として一つずつ削除するアプリケーション削除処理において一つの削除対象を削除する前にトランザクションを開始し、アプリケーション削除処理が中断した場合に、中断時に削除中であった削除対象をコピーにより復元（ロールバック）して、復元された削除対象からアプリケーション削除処理を再開する。したがって、アップデート対象である、アプリケーションプログラム及びアプリケーションインスタンスの削除処理中に電源断が生じた場合であっても、不正な状態となることなく、且つ、ロールバックにより削除処理の前に状態に戻ってしまい一からアプリケーション削除処理をやり直すことを回避できる。
【００７９】
また、本実施形態のＩＣチップ１ａのＣＰＵ１０（「退避手段」、「関連付け手段」の一例）は、アップデート対象である、アプリケーションプログラム及びアプリケーションインスタンスに関連するアプリケーションデータ（「関連データ」の一例）であって、不揮発性メモリ１３に記憶されているアプリケーションデータを、不揮発性メモリ１３の別の記憶領域に退避する退避処理を実行し、インストール処理の後に、退避させたアプリケーションデータを、新アプリケーションプログラム又は新アプリケーションインスタンスと関連付ける関連付け処理を実行する。これにより、アプリケーションデータを不揮発性メモリ１３から削除せずに再利用することができることから、改めてアプリケーションデータをサーバから受信する必要がなく、アプリケーションのアップデート処理における、サーバとＩＣチップ１ａ間の通信量と、サーバとＩＣチップ１ａの処理負荷を軽減することができる。
【符号の説明】
【００８０】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
２  外部機器
【図１】
2019032578.tif 000003
【図２】
2019032578.tif 000004
【図３】
2019032578.tif 000005
【図４】
2019032578.tif 000006
【図５】
2019032578.tif 000007
【図６】
2019032578.tif 000008
【図７】
2019032578.tif 000009
【図８】
2019032578.tif 000010