(57)【要約】【課題】アップデート前とアップデート後で変更する必要のないデータを削除せずに保持しておき、アプリケーションのアップデート後に当該保持しておいたデータを復元する処理を行う場合において、保持していたデータ以外に追加で登録する必要のあるデータを外部機器が容易に把握することができる電子情報記憶媒体等を提供する。【解決手段】アップデート前とアップデート後で変更する必要のないインスタンスデータを削除せずに保持しておき、アプリケーションのアップデート後に当該保持しておいたインスタンスデータを復元する場合において、新アプリケーションインスタンスに必要なインスタンスデータのうち、保持していたインスタンスデータに不足しているインスタンスデータのリストを作成し、当該リストの情報を外部機器に出力する。【選択図】図５
2019028602.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］コマンドに基づいて記憶したポイントアプリの新しいバージョンのアプリケーションプログラムのインストール処理を行い（すなわち、新しいバージョンのアプリケーションインスタンスを生成し）、不揮発性メモリ１３に記憶させる（ステップＳ２０１）。
【００４３】
次に、ＯＳは、図４のステップＳ１０１の処理で退避したインスタンスデータを復元する（ステップＳ２０２）。具体的には、ＯＳは、新しいバージョンのアプリケーションインスタンスにインスタンスデータを受け渡し、当該アプリケーションインスタンス（を実行するＣＰＵ１０）が、受け取ったインスタンスデータを自らに割り当てられた不揮発性メモリ１３上の領域に記憶させることにより、インスタンスデータを復元する。すなわち、退避したインスタンスデータをアプリケーションインスタンスが使用できるように関連付ける。このとき、アプリケーションインスタンスは、図６に示すように、復元したインスタンスデータのリストである復元リスト５０１を取得する。復元リスト５０１は復元した各インスタンスデータを識別するためのデータ識別子が記述されている。データ識別子には、例えば、インスタンスデータがＴＬＶ形式のデータである場合であれば、ＴＡＧ情報や、ＴＡＧ情報とＬＥＮＧＴＨ情報の組み合わせを採用することができる。但し、これらの情報だけでユニークにならない場合には、更に別の情報を付加したものとするか、新たな識別子を用いる。復元リスト５０１は、ＯＳが生成したものをＯＳからアプリケーションインスタンスとともに受け取ってもよいし、ＯＳから受け取ったアプリケーションインスタンスに基づいてアプリケーションインスタンスが作成してもよい。
【００４４】
次に、ＯＳは、図４のステップＳ１０２の処理で退避したレジストリデータを復元する（ステップＳ２０３）。具体的には、ＯＳが、退避したレジストリデータを新しいポイントアプリと関連付けてＯＳが使用できるように関連付ける処理を実行する。なお、ステップＳ２０２の処理及びステップＳ２０３の処理を総称して「関連付け処理」という場合がある。
【００４５】
次に、ポイントアプリの新しいバージョンのアプリケーションインスタンス（を実行するＣＰＵ１０）は、ステップＳ２０２の処理で復元したインスタンスデータ（図４のステップＳ１０１の処理で退避したインスタンスデータ）に、新しいバージョンのアプリケーションインスタンスにとって必要なインスタンスデータが不足していないかチェックする（ステップＳ２０４）。例えば、新しいバージョンのアプリケーションインスタンス内に当該アプリケーションインスタンスにとって必要なインスタンスデータのリストである必要リスト５０２（図６参照）を記述することとしておき、アプリケーションインスタンスは、必要リスト５０２とステップＳ２０２の処理で取得した復元リスト５０１を比較することにより、不足しているインスタンスデータがないかチェックする。なお、必要リスト５０２と復元リスト５０１に記述される項目を共通化しておくことが好適である。図６の例では、データ識別子が「７８９０１２」、「８９０１２３」、「９０１２３４」であるインスタンスデータが不足していることとなる。
【００４６】
次に、アプリケーションインスタンスは、ステップＳ２０４のチェックの結果、不足しているインスタンスデータがあるか否かを判定する（ステップＳ２０５）。このとき、アプリケーションインスタンスは、不足しているインスタンスデータはないと判定した場合には（ステップＳ２０５：ＮＯ）、インストール・復元処理を終了する。一方、アプリケーションインスタンスは、不足しているインスタンスデータがあると判定した場合には（ステップＳ２０５：ＹＥＳ）、不足しているインスタンスデータのリストである不足リスト５０３（図６参照）を作成し（ステップＳ２０６）、インストール・復元処理を終了する。不足リスト５０３には、例えば、必要リスト５０２に記述されているデータ識別子など、不足しているインスタンスデータを識別可能な識別情報が含まれる。
【００４７】
［６．不足リスト出力処理］
次に、図７を用いて、ＩＣチップ１ａによる不足リスト出力処理について説明する。図７は、ＩＣチップ１ａによる不足リスト出力処理の一例を示すフローチャートである。不足リスト出力処理は、図５のステップＳ２０６の処理により不足リストが作成された後に実行される処理である。
【００４８】
ＩＣチップ１ａのアプリケーションインスタンス（を実行するＣＰＵ１０）は、サーバ等の外部機器２から不足データ確認コマンド（「確認コマンド」の一例）を受信したか否かを判定する（ステップＳ３０１）。そして、アプリケーションインスタンスは、不足データ確認コマンドを受信するまで待機しており（ステップＳ３０１：ＮＯ）、不足データ確認コマンドを受信したと判定した場合には（ステップＳ３０１：ＹＥＳ）、図５のステップＳ２０６の処理により作成した不足リスト５０３の情報を不足データ確認コマンドの送信元に出力する（ステップＳ３０２）。具体的には、外部機器２が不足しているインスタンスデータを特定できるように、不足しているインスタンスデータのＴＬＶにおけるＴＡＧ情報やＬＥＮＧＴＨ情報、その他不足しているインスタンスデータを識別可能な識別情報を出力する。アプリケーションインスタンスは、ステップＳ３０２の処理を終了すると、ステップＳ３０１の処理に移行する。
【００４９】
以上のように、本実施形態のＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、不揮発性メモリ１３（「記憶手段」の一例）が、アプリケーションプログラムと、アプリケーションインスタンスと、アプリケーションインスタンスが使用するインスタンスデータと、を記憶し、ＣＰＵ１０（「退避手段」、「削除手段」、「ロード手段」、「インストール手段」、「復元手段」、「リスト作成手段」、「出力手段」の一例）が、不揮発性メモリ１３に記憶されているインスタンスデータを不揮発性メモリ１３のＯＳの一時領域（「別の記憶領域」の一例）に退避する退避処理を実行し、退避処理の後に、不揮発性メモリ１３に記憶されているアプリケーションプログラムとアプリケーションインスタンスとを削除する削除処理を実行し、アプリケーションプログラムの新バージョンであるアプリケーションプログラム（「新アプリケーションプログラム」の一例）を不揮発性メモリ１３に記憶させるロード処理を実行し、削除処理及びロード処理の後に、不揮発性メモリ１３に記憶されているアプリケーションプログラムに基づいて新バージョンのアプリケーションインスタンス（「新アプリケーションインスタンス」の一例）を生成して不揮発性メモリ１３に記憶させるインストール処理を実行し、ロード処理の後に、退避させたインスタンスデータを新バージョンのアプリケーションインスタンスが使用可能な位置に記憶させる復元処理を実行し、不足リスト５０３（「新バージョンのアプリケーションインスタンスに必要なインスタンスデータのうち、退避させたインスタンスデータに不足しているインスタンスデータのリスト」の一例）を作成し、不足リスト５０３の情報をサーバ等（「外部機器」の一例）に出力する。
【００５０】
したがって、本実施形態のＩＣチップ１ａによれば、アップデート前とアップデート後で変更する必要のないインスタンスデータを削除せずに保持しておき、アプリケーションのアップデート後に当該保持しておいたインスタンスデータを復元する場合において、不足リスト５０３を作成し、不足リスト５０３の情報をサーバ等に出力することから、サーバ等は保持していたデータ以外に追加で必要なインスタンスデータを容易に把握することができる。
【００５１】
［７．変形例］
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は上記実施形態や他の変形例と適宜組み合わせることができる。
【００５２】
［７．１．変形例１］
上記実施形態では、外部機器２（サーバ等）から不足データ確認コマンドを受信した場合に（ステップＳ３０１：ＹＥＳ）、不足リスト５０３の情報を不足データ確認コマンドの送信元に出力する（ステップＳ３０２）こととしたが、これに代えて又は加えて、ステップＳ２０６の処理で不足リスト５０３を作成した場合には、図３のステップＳ１６の処理で、ステップＳ１４の処理で受信した［インストール・復元処理］コマンドのレスポンス又はその一部として、不足リスト５０３の情報を送信することとしてもよい。
【００５３】
［７．２．変形例２］
上記実施形態では、外部機器２（サーバ等）から不足データ確認コマンドを受信した場合に（ステップＳ３０１：ＹＥＳ）、不足リスト５０３の情報を不足データ確認コマンドの送信元に出力する（ステップＳ３０２）こととしたが、これに代えて又は加えて、ステップＳ２０６の処理で不足リスト５０３を作成した場合には、アプリケーションインスタンスは自らがデータ不足状態であるか否かを示す不足状態情報を保持することとする。そして、外部機器２（サーバ等）は、当該アプリケーションインスタンスに処理をさせる場合に、データ不足状態であるかを確認する状態確認コマンドを出力することとし、アプリケーションインスタンスは不足状態情報を参照してデータ不足状態であると判定した場合に、状態確認コマンドのレスポンスとして不足リスト５０３の情報を送信することとしてもよい。
［７．３．変形例３］
【００５４】
ＯＳ（を実行するＣＰＵ１０は）、アップデート中（例えば、図３のステップＳ７〜ステップＳ１６の処理の実行中）にアップデート対象のアプリケーション（アプリケーションインスタンス）が外部機器２から［SELECT］コマンドにより選択された場合には、ＩＣチップ１ａは、外部機器２に対してエラーを示すレスポンス（ステータスワード）を返送することとしてもよい。これにより、外部機器２は、当該アプリケーションを選択できないことを把握することができる。
【符号の説明】
【００５５】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
２  外部機器
【図１】
2019028602.tif 000003
【図２】
2019028602.tif 000004
【図３】
2019028602.tif 000005
【図４】
2019028602.tif 000006
【図５】
2019028602.tif 000007
【図６】
2019028602.tif 000008
【図７】
2019028602.tif 000009