JP6447219B2 - 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード - Google Patents

電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード Download PDF

Info

Publication number
JP6447219B2
JP6447219B2 JP2015029357A JP2015029357A JP6447219B2 JP 6447219 B2 JP6447219 B2 JP 6447219B2 JP 2015029357 A JP2015029357 A JP 2015029357A JP 2015029357 A JP2015029357 A JP 2015029357A JP 6447219 B2 JP6447219 B2 JP 6447219B2
Authority
JP
Japan
Prior art keywords
identification number
instruction
application
number indicating
indicating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015029357A
Other languages
English (en)
Other versions
JP2016151914A (ja
Inventor
歩 小林
歩 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2015029357A priority Critical patent/JP6447219B2/ja
Publication of JP2016151914A publication Critical patent/JP2016151914A/ja
Application granted granted Critical
Publication of JP6447219B2 publication Critical patent/JP6447219B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、アプリケーションに記述された識別番号を実行順に取得し該取得した識別番号が示す命令に応じた処理を実行する仮想マシンを備えるICチップ等の電子情報記憶媒体の技術に関する。
近年のICカードに搭載されるICチップは、Java Cardに対応しているものが多い。Java Cardは、Java(登録商標)で記述されたアプリケーションを、Global Platformの規格に定められたINSTALLコマンドによって、ICチップにダウンロードし、ICチップ上で動作させるためのOS機構である。Javaといったプログラム言語は、ハードウェアの依存性を吸収するために、C言語のようにコンパイルによってソースコードからネイティブコード(機械語)に変換されるものと異なり、コンパイラによって中間言語と呼ばれる実行形式であるバイトコードに変換される。バイトコードとは、算術や分岐といった命令を示す識別番号である。このバイトコードは、仮想マシン(Virtual Machine)により実行される。
さて、上述したプログラム言語において、アプリケーション作成のために定義された(つまり、サポートされている)命令(言い換えれば、バイトコード)は約200種類ある。アプリケーションの作りによって依存はするものの、1つのアプリケーションに占めるバイトコードの数は、偏っていることが多い。例えば、あるアプリケーションのバイトコードを集計した結果、アプリケーションを構成するバイトコード(アプリケーションに記述されるバイトコード)の総数が36015個であり、使用されたバイトコードの種類が185種類であった。そのうち、10種類のバイトコードで、アプリケーションを構成する全体のバイトコードの約5割を占めていることが判明した。この結果はあくまで一例であるが、傾向としては特定のバイトコードが頻繁に呼ばれることはよくある。
ところで、ICチップにインストールされるアプリケーションに対する速度要求は、特に決済処理の用途などにおいて、高くなってきている。一方、ICチップに搭載されるCPUの動作クロック(一般的に数MHz〜数十MHz)は、一般的なパソコンに搭載されるCPUの動作クロック(数GHz)と比較して遥かに小さい。その上、メモリの量もパソコン等に比べて遥かに少ない。そのため、リソースがある程度必要なコンパイル機能を搭載するには向いていない。
一般的なJavaの高速実行方式としては、Just In Timeコンパイラ方式がある。ただし、この方式はインタプリタで動作させておきつつバックグラウンドでコンパイルしておくという処理が必要となり、CPUの処理が一般のパソコンのCPUに比べて脆弱なICチップにおいては向いていない。
インタプリタにおける他の高速実行方式としては、オリジナルバイトコードを定義する方法がある。例えば、特許文献1には、第1のインストラクションと、第2のインストラクションを実行するインタプリタを備えるICカードと、第2のインストラクションを第1のインストラクションに変換するコンバーターを有する端末を備えるICカードシステムが開示されている。
特許第3766052号
しかしながら、特許文献1に開示されたような、ICカードに対向する端末においてコンバーターがリナンバリングといった置き換え処理を行うには、実際のユースケースを想定すると十分ではない。例えば、携帯電話機に搭載されるSIMカード等において、決済機能を実現するアプリケーションを、SIMカードに格納する場合などがある。この場合、アプリケーション、携帯電話機、及びSIMカードなどは、それぞれ別の会社が開発する場合が多い。そのため、アプリケーションに対して、アプリケーションの開発会社や携帯電話機の製造会社における特殊な最適化は望めない。結果として、ICチップが、単体で、インストールされたアプリケーションの解析を行い、最適化する形態が望まれる。ただし、前述のように、従来から広まっているJust In Timeコンパイラ方式では、ICチップのような脆弱なCPU、少ないリソース環境において、実現が困難である。
そこで、本発明は、上記点に鑑みてなされたものであり、リソースが少ない環境で、アプリケーションを解析、最適化し、パフォーマンスを向上させることが可能な電子情報記憶媒体、アプリケーション置換方法、及びプログラムを提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体であって、前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、を備え、前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とする。
請求項2に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体であって、前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、を備え、前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることを特徴とする。
請求項に記載の発明は、請求項またはに記載の電子情報記憶媒体において、前記検査命令処理手段は、前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、前記バッファ領域に空きが有るか否かを判定し、当該バッファ領域に空きが有ると判定した場合、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定することを特徴とする。
請求項に記載の発明は、請求項に記載の電子情報記憶媒体において、前記実行手段は、前記アプリケーションの2回目以降の前記処理期間中に取得した前記識別番号が、前記第1の命令を示し且つ検査済であることを示す識別番号であるとき、当該識別番号が示す前記命令に応じた処理を実行し、前記検査命令処理手段は、前記第1の命令と連結させる前記第2の命令を示す識別番号であるか否かの判定を行うことなく、当該実行手段は、次の前記識別番号を取得し当該識別番号が示す前記命令に応じた処理を実行することを特徴とする。
請求項に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体に含まれるコンピュータにより実行されるアプリケーション置換方法であって、前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記アプリケーション置換方法は、前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理ステップと、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換ステップと、を含み、前記検査命令処理ステップにおいては、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換ステップにおいては、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とする。請求項6に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体に含まれるコンピュータにより実行されるアプリケーション置換方法であって、前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記アプリケーション置換方法は、前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記アプリケーションに記述された複数の前記識別番号のうちから取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理ステップと、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換ステップと、を含み、前記検査命令処理ステップにおいては、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換ステップにおいては、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることをことを特徴とする。
請求項に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、コンピュータとを備える電子情報記憶媒体において前記コンピュータを、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段として機能させるプログラムであって、前記不揮発性メモリは、前記複数種類の命令群の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記プログラムは、さらに、前記コンピュータを、前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段として機能させ、前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とする。請求項8に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、コンピュータとを備える電子情報記憶媒体において前記コンピュータを、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段として機能させるプログラムであって、前記不揮発性メモリは、前記複数種類の命令群の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記プログラムは、さらに、前記コンピュータを、前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段として機能させ、前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることを特徴とする。請求項9に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備えるICカードであって、前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、を備え、前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換手段は、前記ICカードのリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とする。請求項10に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備えるICカードであって、前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、を備え、前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換手段は、前記ICカードのリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることを特徴とする。
本発明によれば、リソースが少ない環境で、アプリケーションを解析、最適化し、パフォーマンスを向上させることができる。
(A)は、ICチップ1aのハードウェア構成例を示す図であり、(B)は、ICチップ1aの機能ブロック例を示す図である。 (A)は、連続した命令「SLOAD_0」及び「SLOAD_1」に応じた処理の内容の一例を示す図であり、(B)は、「SLOAD_0」と「SLOAD_1」とを連結した特殊命令「SLOAD_0_1」に応じた処理の内容の一例を示す図である。 (A)は、連続した命令「SLOAD_0」及び「IFNE」に応じた処理の内容の一例を示す図であり、(B)は、「SLOAD_0」と「IFNE」とを連結した特殊命令「SLOAD_0_IFNE」に応じた処理の内容の一例を示す図である。 (A)は、検査命令を示すバイトコードと、非検査命令を示すバイトコードと、特殊命令を示すバイトコードと、を対応付けて保持するテーブルの一例を示す図であり、(B)は、RAMのバッファ領域を示す概念図である。 (A)は、アプリケーションの処理期間中に実行される検査命令処理の一例を示すフローチャートであり、(B)は、アプリケーションの処理が終了した後、ICチップ1aのリセットタイミングまたはアプリケーションの起動タイミングで実行される置換処理の一例を示すフローチャートである。 検査命令を示すバイトコードが置換される前と後のアプリケーションを示す概念図である。
以下、図面を参照して本発明の実施形態について詳細に説明する。先ず、図1等を参照して、ICカード1に搭載されたICチップ1aの概要構成及び機能について説明する。図1(A)は、ICチップ1aのハードウェア構成例を示す図であり、図1(B)は、ICチップ1aの機能ブロック例を示す図である。なお、ICカード1は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ICチップ1aは本発明における電子情報記憶媒体を構成するが、この電子情報記憶媒体は通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
図1(A)に示すように、ICチップ1aは、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、データを一時的に記憶するための揮発性メモリであるRAM(Random Access Memory)12、不揮発性メモリであるフラッシュメモリ13、及びI/O回路14を備えて構成される。なお、フラッシュメモリの代わりに「Electrically Erasable Programmable Read-Only Memory」であっても構わない。I/O回路14は、外部端末2とのインターフェイスを担う。これにより、ICチップ1aは、ICリーダ・ライタを備える外部端末2との間で接触または非接触で通信を行うことができる。接触式のICチップ1aの場合、I/O回路14には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子(ICチップ1aへ電源供給する端子)、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部端末2との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末2の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップ1aが通信機器に組み込まれる場合、外部端末2には通信機器の機能を担う制御部が該当する。
CPU10は、コンピュータの一例であり、図1(B)に示すハードウェアとして、フラッシュメモリ13に記憶された各種プログラムを実行する演算装置である。各種プログラムには、OS(Operating System)、仮想マシンプログラム、Java(登録商標)等のプログラム言語で記述されるアプリケーションが含まれる。OS、及び仮想マシンプログラムは、複数のネイティブコード(実行コード群)で記述される。OSは、ICチップ1aの動作を直接コントロールするソフトウェアであり、ROM11に記憶されてもよい。
仮想マシンプログラムは、CPU10を仮想マシン(本発明の実行手段の一例)として機能させるプログラムである。OS上で動作する仮想マシンは、ソースコードとネイティブコードとの間の中間コードであるバイトコード(識別番号の一例、インデックスともいう)を解釈、実行する。バイトコードは、例えばJava(登録商標)の場合、1バイトで構成される。このため、定義可能な命令(言い換えれば、バイトコード)は、255種類となるが、実際には、約200種類の命令が定義されており、その他は未定義になっている。命令は、例えば、「SLOAD_0」、「SLOAD_1」、「BSPUSH」、「INVOKESPECIAL」、「GOTO」というように、人間に理解容易なソースコードで表される。このような命令は、アプリケーション作成のために定義された(サポートされている)複数種類の命令の中から、プログラマーによって選択、使用される。プログラマーにより作成されたアプリケーションには、上述したソースコードが例えば実行順に記述される。そして、このようなアプリケーションは、コンパイラによって仮想マシンの実行形式に変換(つまり、ソースコードからバイトコードに変換)され、インストール(フラッシュメモリ13に記憶)されることになる。このため、フラッシュメモリ13に記憶されているアプリケーションは、複数の命令それぞれを示すバイトコードを例えば実行順に記述する。
仮想マシンは、アプリケーションに記述されたバイトコードを実行順に取得し、該取得したバイトコードを解釈して当該バイトコードが示す命令に応じた処理を実行する。バイトコードが示す命令に応じた処理の内容(処理プログラム)は、仮想マシンプログラムに規定されている。また、仮想マシンは、アプリケーションに記述された複数のバイトコードのうち、次に実行するべきバイトコードの位置(アプリケーションにおける位置)を特定可能な特定情報を指し示すプログラムカウンタを備える。ここで、特定情報の例として、バイトコードのアドレス(バイトコードが記憶されたフラッシュメモリ13におけるアドレス)、バイトコードのオフセット、バイトコードのラベル値が挙げられる。例えば、公知のComputed gotoアルゴリズムでは、GNU C対応の拡張機能であるlabel as valueにより、ラベル値としてのアドレスに直接ジャンプすることができる。
本実施形態では、従来、上述した複数種類の命令の中に定義されていなかった新たな命令を特殊命令(第3の命令の一例)として定義する。この特殊命令は、上述した複数種類の命令の中に定義されていた既存の複数の命令を連結した命令である。連結される命令の組み合わせは、例えば一般的なアプリケーションにおいて実行順が連続する命令の組合せの出現頻度等に基づき、例えばICチップの発行元等により選定される。特殊命令の例として、「SLOAD_0」と「SLOAD_1」とを連結した特殊命令(「SLOAD_0_1」と新たに定義)、および、「SLOAD_0」と「IFNE」とを連結した特殊命令(「SLOAD_0_IFNE」と新たに定義)などが挙げられる。また、特殊命令には、上述した複数種類の命令の中に定義されていた既存の命令を示すバイトコードとは重複しないバイトコード(例えば、255種類のバイトコードのうち、未定義のバイトコード)が割り当てられ、当該割り当てられたバイトコードは、当該特殊命令を示すことになる。また、特殊命令に応じた処理の内容(特殊命令処理プログラム)は、上述した仮想マシンプログラムに予め規定される(つまり、仮想マシンに、特殊命令に応じた処理内容が組み込まれる)。
ここで、特殊命令に応じた処理は、例えば、データの読み出し、データの書き込み、プログラムカウンタの更新、次の命令へのジャンプなどを簡略化した処理である。また、特殊命令に応じた処理は、少なくとも連結された各命令を示すバイトコードがもともと更新していたプログラムカウンタの数だけ更新を行う処理を有する。例えば、命令Aを示すバイトコードで1、命令Bを示すバイトコードで2、プログラムカウンタを更新していた場合、命令Aと命令Bとを連結した特殊命令ABを示すバイトコードでは、プログラムカウンタが3だけ更新される。図2(A)は、連続した命令「SLOAD_0」及び「SLOAD_1」に応じた処理の内容の一例を示す図であり、図2(B)は、「SLOAD_0」と「SLOAD_1」とを連結した特殊命令「SLOAD_0_1」に応じた処理の内容の一例を示す図である。図3(A)は、連続した命令「SLOAD_0」及び「IFNE」に応じた処理の内容の一例を示す図であり、図3(B)は、「SLOAD_0」と「IFNE」とを連結した特殊命令「SLOAD_0_IFNE」に応じた処理の内容の一例を示す図である。図2及び図3に示すように、連結後の処理の内容(図2(B)と図3(B))は、連結前の処理の内容(図2(A)と図3(A))に比べて処理手順が簡略化(最適化)されているものの、処理結果は同様になる。つまり、特殊命令では、複数の命令を1つの命令として処理しており、高速処理が可能となる。
本実施形態では、処理手順の簡略化(最適化)を実現するために、上述した複数種類の命令の中から検査対象として選定された検査命令(第1の命令の一例)を示すバイトコードと、当該検査命令と連結させる1つ以上の非検査命令(第2の命令の一例)を示すバイトコードと、検査命令と非検査命令とを連結した特殊命令を示すバイトコードと、が対応付けられてフラッシュメモリ13に記憶される。図4(A)は、検査命令を示すバイトコードと、非検査命令を示すバイトコードと、特殊命令を示すバイトコードと、を対応付けて保持するテーブルの一例を示す図である。図4(A)の例では、1つの検査命令に対して、連結させる命令が複数ある場合を示している。なお、このようなテーブルには、それぞれのバイトコードの代わりに、バイトコードのアドレスやラベル値が識別番号として保持されるように構成してもよい。
更に、フラッシュメモリ13には、アプリケーションに記述された複数のバイトコードのうちから、上記検査命令が取得されたときの検査命令処理を規定する検査命令処理プログラム、及び検査命令の置換処理を規定する置換処理プログラムが記憶される。検査命令処理プログラム、及び置換処理プログラムは、アプリケーションの最適化を図るためのプログラムであり、CPU10を、検査命令処理部(本発明における検査命令処理手段の一例)、及び置換部(本発明における書換手段の一例)として機能させるプログラムである。なお、検査命令処理部及び置換部は、仮想マシンに備えられてもよい。フラッシュメモリ13に記憶されているアプリケーションに記述された複数のバイトコードのうちから取得された(読み出された)バイトコードが、検査命令を示すバイトコードであるとき、CPU10は、検査命令処理を実行することにより、当該検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードであるか否かを、例えばテーブルを参照することにより判定する。そして、上記他のバイトコードが非検査命令を示すバイトコードであると判定された場合、CPU10は、置換処理を実行することにより、上記アプリケーションにおいて、当該検査命令を示すバイトコードを、例えば図4(A)に示すように、当該検査命令を示すバイトコード及び当該非検査命令を示すバイトコードに対応付けられた特殊命令を示すバイトコードに書き換える。
一方、上記他のバイトコードが非検査命令を示すバイトコードでないと判定された場合、CPU10は、置換処理を実行することにより、上記アプリケーションにおいて、当該検査命令を示すバイトコードを、当該検査済み命令を示すバイトコードに書き換える。ここで、検査済み命令を示すバイトコードとは、上記取得された検査命令を示し且つ検査済であることを示すバイトコードであることを意味する。検査済み命令を示すバイトコードは、特殊命令を示すバイトコードと同様、上述した複数種類の命令の中に定義されていた既存の命令を示すバイトコードとは重複しないバイトコードである。また、検査済み命令に応じた処理の内容は、これに対応する検査命令に応じた処理の内容と同一である。ただし、アプリケーションに記述された複数のバイトコードのうちから取得したバイトコードが、検査済み命令を示すバイトコードであるとき、検査済であるため、検査命令処理プログラムが実行されない(つまり、当該処理に応じた通常の処理が行われるだけとなる)。
なお、検査命令処理は、アプリケーションの処理期間外に実行されてもよいが、アプリケーションの処理期間中(つまり、アプリケーション実行中)に実行されることが望ましい。ここで、アプリケーションの処理期間とは、仮想マシンが例えば外部端末2から受信されたコマンドに応じて、アプリケーションからバイトコードを順次取得し当該バイトコードを取得するごとに当該バイトコードが示す命令に応じた処理を実行する期間をいう。検査命令処理がアプリケーションの処理期間中に実行される場合、RAMには、アプリケーション全体のサイズより少ない容量(バッファサイズ)に設定されたバッファ領域が設定される。なお、バッファ領域の容量は、アプリケーションのユーザによって任意に設定可能としてもよい。
図4(B)は、RAMのバッファ領域を示す概念図である。図4(B)に示す例では、バッファ領域には、検査命令を示すバイトコードのアドレスと特殊命令を示すバイトコードとの組(セット)、及び検査命令を示すバイトコードのアドレスと検査済み命令を示すバイトコードとの組が書き込まれている。なお、バイトコードのアドレスの代わりに、バイトコードのラベル値が書き込まれてもよい。検査命令処理において、検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、検査命令と連結させる非検査命令を示すバイトコードであると判定された場合、当該検査命令を示すバイトコードのアドレスと特殊命令を示すバイトコードとの組がバッファ領域に書き込まれる。一方、検査命令処理において、検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードでないと判定された場合、当該検査命令を示すバイトコードのアドレスと検査済み命令を示すバイトコードとの組がバッファ領域に書き込まれる。このようにバッファ領域に書き込まれたデータは、置換処理で用いられる。
次に、図5を参照して、ICチップ1aの動作について説明する。図5(A)は、アプリケーションの処理期間中に実行される検査命令処理の一例を示すフローチャートである。図5(B)は、アプリケーションの処理が終了した後、ICチップ1aのリセットタイミングまたはアプリケーションの起動タイミングで実行される置換処理の一例を示すフローチャートである。例えば、外部端末2からコマンドが受信されると、アプリケーションが起動してアプリケーションの処理が開始される。このとき、バッファ領域が初期化される。これにより、バッファ領域は、空き状態(例えば、全てFFの状態、或いは全て00の状態)となる。また、アプリケーションの処理が開始されると、図4(A)に示すようなテーブルがフラッシュメモリ13から読み出されRAMのワーク領域に記憶される。
そして、アプリケーションの処理期間中(つまり、アプリケーション実行中)に、仮想マシンは、プログラムカウンタが指し示す特定情報(例えばアドレス)に従って、バイトコードをアプリケーションから取得し(例えばフラッシュメモリ13またはRAMから読み出し)、当該取得したバイトコードが、検査命令を示すバイトコード(つまり、テーブルに記憶される検査命令を示すバイトコード)であるとき、CPU10は、図5(A)に示す検査命令処理を開始する。一方、取得したバイトコードが、検査命令を示すバイトコードでない場合、仮想マシンは、当該バイトコードが示す命令に応じた処理(通常の処理)を実行する。
図5(A)に示す検査命令処理では、仮想マシンは、当該検査命令を示すバイトコードが示す命令に応じた処理を実行する(ステップS1)。次いで、検査命令処理部は、バッファ領域に空きが有るか否かを判定する(ステップS2)。例えば、当該検査命令を示すバイトを示すバイトコードのアドレスと特殊命令を示すバイトコード(または検査済み命令を示すバイトコード)との組分のデータ量以上の空き容量がバッファ領域にある場合、バッファ領域に空きが有ると判定される。検査命令処理部は、バッファ領域に空きが有ると判定した場合(ステップS2:YES)、ステップS3へ進む。一方、検査命令処理部は、バッファ領域に空きが無いと判定した場合(ステップS2:NO)、当該検査命令処理を終了する。これにより、プログラムカウンタが進められて次のバイトコードの処理へ進む。
ステップS3では、検査命令処理部は、プログラムカウンタに基づき前後のバイトコードを確認する。そして、検査命令処理部は、当該検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードであるか否かを判定する(ステップS4)。例えば、現在のプログラムカウンタが示す特定情報の直前または直後の特定情報により特定されたバイトコードが、上記検査命令と連結させる非検査命令を示すバイトコードとして上記テーブルで対応付けられている場合、当該検査命令と連結させる非検査命令を示すバイトコードであると判定される。
検査命令処理部は、当該検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードであると判定した場合(ステップS4:YES)、当該検査命令を示すバイトコードのアドレスと、上記テーブルにおいて当該検査命令を示すバイトコード及び当該非検査命令を示すバイトコードに対応付けられた特殊命令を示すバイトコードとをバッファ領域に書き込み(つまり、アドレスとバイトコードの組を格納し)(ステップS5)、当該検査命令処理を終了する。これにより、プログラムカウンタが進められて次のバイトコードの処理へ進める。なお、バイトコードのアドレスの代わりに、バイトコードのラベル値が書き込まれてもよい。
一方、検査命令処理部は、当該検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードでないと判定した場合(ステップS4:NO)、当該検査命令を示すバイトコードのアドレスと、検査済み命令を示すバイトコードとをバッファ領域に書き込み(ステップS6)、当該検査命令処理を終了する。これにより、プログラムカウンタが進められ、次のバイトコードの処理へ進む。
以上のようにして、図5(A)に示す検査命令処理は、検査命令を示すバイトコードが読み出される度に実行されることになる。そして、上記アプリケーションの処理が終了した場合、検査命令処理部は、上記ステップS5またはステップS6でバッファ領域に書き込まれた、検査命令を示すバイトコードのアドレス及び特殊命令を示すバイトコード(または、検査済み命令を示すバイトコード)の組をフラッシュメモリ13における一時保存領域(所定領域の一例)に書き込む。これは、ICカード1aへの電源供給断になった場合でも、アドレスとバイトコードの組が消去しないようにするためである。
当該アドレスとバイトコードの組の一時保存領域への書き込み後、CPU10は、ICカード1aのリセットタイミングまたはアプリケーションの起動タイミングで、図5(B)に示す置換処理を開始する。図5(B)に示す置換処理では、置換部は、フラッシュメモリ13における一時保存領域を確認し(ステップS11)、当該一時保存領域が全て空き状態であるか否かを判定する(ステップS12)。例えば一時保存領域が全てFFの状態、或いは全て00の状態である場合、当該一時保存領域が全て空き状態であると判定される。置換部は、当該一時保存領域が全て空き状態であると判定した場合(ステップS12:YES)、当該置換処理を終了する。一方、置換部は、当該一時保存領域が全て空き状態でないと判定した場合(ステップS12:NO)、ステップS13へ進む。
ステップS13では、置換部は、当該一時保存領域に書き込まれている検査命令を示すバイトコードのアドレス及び特殊命令を示すバイトコード(または、検査済み命令を示すバイトコード)に基づいて、検査命令を示すバイトコードを、特殊命令を示すバイトコード(または、検査済み命令を示すバイトコード)に書き換える。つまり、検査命令を示すバイトコードのアドレスに基づいて、当該検査命令を示すバイトコードのアプリケーションにおける位置が特定され、特定された位置に特殊命令を示すバイトコード(または、検査済み命令を示すバイトコード)が書き込まれる(フラッシュメモリ13に書き込まれる)ことで検査命令を示すバイトコードが書き換えられる。次いで、置換部は、消去処理を行って一時保存領域を空き状態にし(ステップS14)、当該置換処理を終了する。
図6は、検査命令を示すバイトコードが置換される前と後のアプリケーションを示す概念図である。図6の例では、説明の便宜上、ソースコードで記述されているが、実際にはバイトコードで記述される。図6(A)の例は、初期(インストール時)のアプリケーションを示し、図6(B)の例は、1回目の実行後のアプリケーションを示し、図6(C)の例は、2回目の実行後のアプリケーションを示す。図6(A),(B)に示すように、初期に対して1回目の実行後のアプリケーションでは、1番目の検査命令(SLOAD_0)が特殊命令(SLOAD_0_1)に置き換えられており(51部)、2番目の検査命令(SLOAD_0)が検査済み命令(SLOAD_0_inspected)に置き換えられている(52部)。これは、上述したようにバッファ領域の上限サイズが設定されているため、当該アプリケーションの1回目の実行では、1番目と2番目の検査命令に係る2組分のデータがバッファ領域に書き込まれることで3番目以降の検査命令が取得されたときには、バッファ領域に空きが無い(ステップS2:NO)と判定されるためである。このため、図6(B),(C)に示すように、1回目の実行後に対して2回目の実行後のアプリケーションでは、3番目の検査命令(SLOAD_0)が特殊命令(SLOAD_0_1)に置き換えられており(53部)、4番目の検査命令(SLOAD_0)が検査済み命令(SLOAD_0_inspected)に置き換えられている(54部)。このようにバッファ領域の上限サイズを設定することで、一度に置き換える上限値を定め、また、リセットの直後といったタイミングで更新することにより、1つのアプリケーションに検査命令が集中していた場合であっても、アプリケーションの実行処理速度が遅くなることを回避し、ICチップ1aにおけるコマンド処理を迅速に実行させることができるとともに、アプリカーションが実行される度に特殊命令が増えていくので、アプリケーションが実行される回数に応じてアプリケーションの実行処理速度を速くしていくことができる。ただし、例えば、アプリケーションの実行処理速度が要求されない環境においては、バッファ領域を設けずに、逐次、バイトコードを置き換えるように構成しても構わない。
また、図6(B),(C)に示すように、検査命令(SLOAD_0)と連続した非検査命令(SLOAD_1)はアプリケーションに残っている。しかし、この非検査命令(SLOAD_1)は、上述したように、当該特殊命令のプログラムカウンタ更新の際に飛ばされるため、以降読み出されることは無い。なお、アプリケーションにおいて読み出されなくなった命令を詰めることも可能ではあるが、上述した本実施形態によれば、当該命令を詰める処理及びメソッドのサイズを減らす処理などの書き込み処理を低減でき、その結果、処理時間を低減し、書き込み保証機能(Transaction)のバッファサイズを低減することができる。
また、図6(B),(C)に示すように、検査命令(SLOAD_0)が特殊命令(SLOAD_0_1)に置き換えられなくとも、検査済み命令(SLOAD_0_inspected)に置き換えることにより、当該アプリケーションの2回目以降の実行中に取得されたバイトコードが、検査済み命令を示すバイトコードであるとき、当該検査済み命令に応じた通常の処理が実行されるが、検査命令と連結させる非検査命令を示すバイトコードであるか否かの判定が行われることなく、次の命令に応じた処理に移行される。このため、重複した置換処理が行われることを回避することができる。
以上説明したように、上記実施形態によれば、ICチップ1aは、インストールされたアプリケーションに記述された複数のバイトコードのうちから取得されたバイトコードが、検査命令を示すバイトコードであるとき、当該バイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードであるか否かを判定し、他のバイトコードが当該非検査命令を示すバイトコードである場合、当該アプリケーションにおいて、当該検査命令を示すバイトコードを、当該検査命令を示すバイトコード及び当該非検査命令を示すバイトコードに対応付けられた特殊命令を示すバイトコードに書き換えるように構成したので、リソースが少ない環境で、アプリケーションを解析、最適化し、パフォーマンスを向上させることができる。また、図5(A)を用いて説明したように検査命令処理をアプリケーションの処理期間中(つまり、アプリケーション実行中)に実行するように構成することで、動的に効率良くアプリケーションを最適化することができる。
1 ICカード
2 外部端末
1a ICチップ
10 CPU
11 ROM
12 RAM
13 フラッシュメモリ
14 I/O回路

Claims (10)

  1. アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体であって、
    前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
    前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、
    前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、
    前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、
    を備え
    前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
    前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とする電子情報記憶媒体。
  2. アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体であって、
    前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
    前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、
    前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、
    前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、
    を備え、
    前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
    前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることを特徴とする電子情報記憶媒体。
  3. 前記検査命令処理手段は、前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、前記バッファ領域に空きが有るか否かを判定し、当該バッファ領域に空きが有ると判定した場合、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定することを特徴とする請求項またはに記載の電子情報記憶媒体。
  4. 前記実行手段は、前記アプリケーションの2回目以降の前記処理期間中に取得した前記識別番号が、前記第1の命令を示し且つ検査済であることを示す識別番号であるとき、当該識別番号が示す前記命令に応じた処理を実行し、前記検査命令処理手段は、前記第1の命令と連結させる前記第2の命令を示す識別番号であるか否かの判定を行うことなく、当該実行手段は、次の前記識別番号を取得し当該識別番号が示す前記命令に応じた処理を実行することを特徴とする請求項に記載の電子情報記憶媒体。
  5. アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体に含まれるコンピュータにより実行されるアプリケーション置換方法であって、
    前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
    前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、
    前記アプリケーション置換方法は、
    前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理ステップと、
    前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換ステップと、
    を含み、
    前記検査命令処理ステップにおいては、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
    前記書換ステップにおいては、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とするアプリケーション置換方法。
  6. アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体に含まれるコンピュータにより実行されるアプリケーション置換方法であって、
    前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
    前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、
    前記アプリケーション置換方法は、
    前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記アプリケーションに記述された複数の前記識別番号のうちから取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理ステップと、
    前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換ステップと、
    を含み、
    前記検査命令処理ステップにおいては、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
    前記書換ステップにおいては、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることを特徴とするアプリケーション置換方法。
  7. アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、コンピュータとを備える電子情報記憶媒体において前記コンピュータを、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段として機能させるプログラムであって、
    前記不揮発性メモリは、前記複数種類の命令群の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
    前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、
    前記プログラムは、さらに、前記コンピュータを、
    前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、
    前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段として機能させ、
    前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
    前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とするプログラム。
  8. アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、コンピュータとを備える電子情報記憶媒体において前記コンピュータを、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段として機能させるプログラムであって、
    前記不揮発性メモリは、前記複数種類の命令群の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
    前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、
    前記プログラムは、さらに、前記コンピュータを、
    前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、
    前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段として機能させ、
    前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
    前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることを特徴とするプログラム。
  9. アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備えるICカードであって、
    前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
    前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、
    前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、
    前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、
    を備え、
    前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
    前記書換手段は、前記ICカードのリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とするICカード。
  10. アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、データを一時的に記憶するための揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備えるICカードであって、
    前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
    前記揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、
    前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、
    前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、
    を備え、
    前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
    前記書換手段は、前記ICカードのリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることを特徴とするICカード。
JP2015029357A 2015-02-18 2015-02-18 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード Active JP6447219B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015029357A JP6447219B2 (ja) 2015-02-18 2015-02-18 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015029357A JP6447219B2 (ja) 2015-02-18 2015-02-18 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード

Publications (2)

Publication Number Publication Date
JP2016151914A JP2016151914A (ja) 2016-08-22
JP6447219B2 true JP6447219B2 (ja) 2019-01-09

Family

ID=56695454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015029357A Active JP6447219B2 (ja) 2015-02-18 2015-02-18 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード

Country Status (1)

Country Link
JP (1) JP6447219B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312177A (ja) * 2001-04-18 2002-10-25 Nec Corp インタプリタ高速実行装置及びそれに用いるインタプリタ高速実行方法
JP4234976B2 (ja) * 2001-10-31 2009-03-04 株式会社アプリックス 中間コード実行システム

Also Published As

Publication number Publication date
JP2016151914A (ja) 2016-08-22

Similar Documents

Publication Publication Date Title
JP5457496B2 (ja) 携帯型データ記憶媒体のメモリ管理
JP2013196436A (ja) Icカード、携帯可能電子装置及びicカードの制御方法
JP5225054B2 (ja) Icカード
US6779732B2 (en) Method and apparatus for linking converted applet files
JP4896842B2 (ja) 携帯可能電子装置
JP6447219B2 (ja) 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード
JP5795921B2 (ja) Icカード、携帯可能電子装置、icカードの制御方法
JP6798157B2 (ja) 電子情報記憶媒体、異常検知方法、及び異常検知プログラム
JP6769150B2 (ja) 電子情報記憶媒体、情報処理方法、及び情報処理プログラム
JP6201521B2 (ja) 情報記憶媒体、バイトコード実行方法、及び情報記憶媒体用プログラム
JP2018060455A (ja) 電子情報記憶媒体、コマンド処理方法、及びコマンド処理プログラム
JP2010211516A (ja) 携帯可能電子装置および携帯可能電子装置におけるアクセス制御方法
CN107743614B (zh) 用于修改集成电路卡的独立于平台方法的执行的方法
JP2006338311A (ja) 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
JP2006293706A (ja) アプリケーションの更新機能を有するマルチアプリケーションicカード
JP2016153945A (ja) 電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム
JP7040053B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos
JP6984328B2 (ja) 電子情報記憶媒体、icカード、外部機器、データ書き込み方法及びデータ書き込みプログラム
JP7021465B2 (ja) 電子情報記憶装置、icカード、データ復元方法、及びデータ復元プログラム
JP4203165B2 (ja) Icカード
RU2673394C2 (ru) Способ установки приложения на защищенный элемент
JP2008047040A (ja) 携帯可能電子装置およびicカード
JP2006302130A (ja) Icカード、および、icカード用プログラム
JP6428003B2 (ja) 書込装置、書込方法、書込処理プログラム、及び情報記憶媒体
JP6071677B2 (ja) Icカード、icモジュールおよび携帯可能電子装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181029

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181119

R150 Certificate of patent or registration of utility model

Ref document number: 6447219

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150