IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 大日本印刷株式会社の特許一覧

特許7582527電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム
<>
  • 特許-電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム 図1
  • 特許-電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム 図2
  • 特許-電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム 図3
  • 特許-電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム 図4
  • 特許-電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム 図5
  • 特許-電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム 図6
  • 特許-電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム 図7
  • 特許-電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム 図8
  • 特許-電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20241106BHJP
   G06F 3/08 20060101ALI20241106BHJP
   G06K 19/07 20060101ALI20241106BHJP
【FI】
G06F3/06 301K
G06F3/06 301F
G06F3/08 C
G06K19/07 230
【請求項の数】 20
(21)【出願番号】P 2024018300
(22)【出願日】2024-02-09
【審査請求日】2024-02-09
【早期審査対象出願】
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】弁理士法人インテクト国際特許事務所
(74)【代理人】
【識別番号】100120189
【弁理士】
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】山石 豊
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2010-182270(JP,A)
【文献】特開2001-167236(JP,A)
【文献】特開平01-284993(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 3/08
G06K 19/07
(57)【特許請求の範囲】
【請求項1】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、
前記レコードの識別情報を管理するための管理テーブルを保持する保持手段と、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定する判定手段と、
前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、当該管理テーブルの要素に対応付けられる前記レコード記憶領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該レコード記憶領域に書き込む処理手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項2】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、
前記レコードの識別情報を管理するための管理テーブルを保持する保持手段と、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定する判定手段と、
前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信する処理手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項3】
前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていないと判定された場合に、前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコード記憶領域に対応付けられる管理テーブルの要素に前記書き込みコマンドに含まれる識別情報を登録することを特徴とする請求項1または2に記載の電子情報記憶媒体。
【請求項4】
前記受信手段は、前記外部装置から読み出し対象となるレコードの識別情報を含む読み出しコマンドを受信し、
前記処理手段は、前記読み出しコマンドに含まれる識別情報と一致する識別情報が登録されている管理テーブルの要素を検索し、当該検索された管理テーブルの要素に対応付けられる前記レコード記憶領域から前記レコードを読み出し、当該読み出されたレコードを含むレスポンスを前記外部装置へ送信することを特徴とする請求項1または2に記載の電子情報記憶媒体。
【請求項5】
アプリケーションにより使用されるファイルに論理的に格納されるレコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、
外部装置からレコード及び当該レコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む書き込みコマンドを受信する受信手段と、
前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値を書き込む処理手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項6】
前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値と一致するレコード番号とファイルの識別子とを結合した値が何れかの前記レコード記憶領域の第2領域に記憶されているか否かを判定する判定手段を更に備え、
前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値と一致するレコード番号とファイルの識別子とを結合した値が前記レコード記憶領域の第2領域に記憶されていると判定された場合に、当該レコード記憶領域の第1領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該第1領域に書き込むことを特徴とする請求項5に記載の電子情報記憶媒体。
【請求項7】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、
前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる識別情報を書き込む処理手段と、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が何れかの前記レコード記憶領域の第2領域に記憶されているか否かを判定する判定手段と
を備え、
前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記レコード記憶領域の第2領域に記憶されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信することを特徴とする電子情報記憶媒体。
【請求項8】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、
前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる識別情報を書き込む処理手段と、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が何れかの前記レコード記憶領域の第2領域に記憶されているか否かを判定する判定手段と、
を備え、
前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記レコード記憶領域の第2領域に記憶されていると判定された場合に、当該レコード記憶領域の第1領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該第1領域に書き込み、
前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記レコード記憶領域の第2領域に記憶されていないと判定された場合に、前記レコード記憶領域の配列に基づいて、前記レコードが書き込まれていないレコード記憶領域を検索し、当該検索されたレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる識別情報を書き込むことを特徴とする電子情報記憶媒体。
【請求項9】
前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記レコード記憶領域の第2領域に記憶されていないと判定された場合に、前記レコード記憶領域の配列に基づいて、前記レコードが書き込まれていないレコード記憶領域を検索し、当該検索されたレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる識別情報を書き込むことを特徴とする請求項7に記載の電子情報記憶媒体。
【請求項10】
前記受信手段は、複数の前記書き込みコマンドを順次受信し、
それぞれの前記書き込みコマンドに含まれる前記レコードの内容は互いに異なることを特徴とする請求項5乃至9の何れか一項に記載の電子情報記憶媒体。
【請求項11】
前記受信手段は、前記外部装置から読み出し対象となるレコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む読み出しコマンドを受信し、
前記処理手段は、前記読み出しコマンドに含まれる前記レコード番号と前記識別子とを結合した値と一致するレコード番号とファイルの識別子とを結合した値が記憶されている前記レコード記憶領域を検索し、当該検索されたレコード記憶領域から前記レコードを読み出し、当該読み出されたレコードを含むレスポンスを前記外部装置へ送信することを特徴とする請求項5または6に記載の電子情報記憶媒体。
【請求項12】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICチップであって、
前記レコードの識別情報を管理するための管理テーブルを保持する保持手段と、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定する判定手段と、
前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、当該管理テーブルの要素に対応付けられる前記レコード記憶領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該レコード記憶領域に書き込む処理手段と、
を備えることを特徴とするICチップ。
【請求項13】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICチップであって、
前記レコードの識別情報を管理するための管理テーブルを保持する保持手段と、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定する判定手段と、
前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信する処理手段と、
を備えることを特徴とするICチップ。
【請求項14】
アプリケーションにより使用されるファイルに論理的に格納されるレコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICチップであって、
外部装置からレコード及び当該レコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む書き込みコマンドを受信する受信手段と、
前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値を書き込む処理手段と、
を備えることを特徴とするICチップ。
【請求項15】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体により実行されるレコード処理方法であって、
前記レコードの識別情報を管理するための管理テーブルを保持するステップと、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信するステップと、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定するステップと、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、当該管理テーブルの要素に対応付けられる前記レコード記憶領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該レコード記憶領域に書き込むステップと、
を含むことを特徴とするレコード処理方法。
【請求項16】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体により実行されるレコード処理方法であって、
前記レコードの識別情報を管理するための管理テーブルを保持するステップと、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信するステップと、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定するステップと、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信するステップと、
を含むことを特徴とするレコード処理方法。
【請求項17】
アプリケーションにより使用されるファイルに論理的に格納されるレコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体により実行されるレコード処理方法であって、
外部装置からレコード及び当該レコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む書き込みコマンドを受信するステップと、
前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値を書き込むステップと、
を含むことを特徴とするレコード処理方法。
【請求項18】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体に含まれるコンピュータに、
前記レコードの識別情報を管理するための管理テーブルを保持するステップと、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信するステップと、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定するステップと、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、当該管理テーブルの要素に対応付けられる前記レコード記憶領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該レコード記憶領域に書き込むステップと、
を実行させることを特徴とするプログラム。
【請求項19】
レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体に含まれるコンピュータに、
前記レコードの識別情報を管理するための管理テーブルを保持するステップと、
外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信するステップと、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定するステップと、
前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信するステップと、
を実行させることを特徴とするプログラム。
【請求項20】
アプリケーションにより使用されるファイルに論理的に格納されるレコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体に含まれるコンピュータに、
外部装置からレコード及び当該レコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む書き込みコマンドを受信するステップと、
前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値を書き込むステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部装置から複数のレコードを書き込み可能なIC(Integrated Circuit)チップ等の技術分野に関する。
【背景技術】
【0002】
従来、例えば特許文献1に開示されるように、ICチップにより使用されるべきファイルに格納される複数のレコードを該ICチップに書き込むためのレコード発行工程において、ICチップの発行者(製造者)の発行装置から複数の書き込みコマンドをICチップに順次送信するようになっている。これにより、ICチップでは発行装置からの複数のレコードを順次書き込む処理が実行される。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第6556489号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のICチップではレコード発行工程において、それぞれのレコードのレコード番号と該レコードの発行順(書き込み順)を一致させなければならない場合があった。例えば、JICSAP仕様で定義されるAppend Recordコマンドは、パラメータで指定したファイルに対してレコードを追記するコマンドであるが、追記されたレコードのレコード番号は発行順に割り当てられる。そのため、ICチップの発行者は最終的なレコードの構成を意識して書き込みコマンドの実行順を設計する必要があり、手間がかかっていた。また、レコード発行工程の途中で何らかの原因により例えば発行装置が停止し、その後に再開する場合、ICチップでは発行装置からの複数のレコードを順次書き込む処理がやり直される。この場合、ICチップに既に書き込まれたレコードと重複するレコードが書き込みコマンドにより発行装置からICチップに送信されることになるが、ICチップには適切な対処が求められる。
【0005】
そこで、本発明は、発行者がレコード番号を意識せずに自由な順序でレコードを発行可能な電子情報記憶媒体、ICチップ、レコード書き込み方法、及びプログラムを提供し、また、発行者がレコード番号を意識せずに自由な順序でレコードを発行可能としつつ、既に書き込まれたレコードと重複するレコードが発行装置から送信されたときに適切に対処することが可能な電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、前記レコードの識別情報を管理するための管理テーブルを保持する保持手段と、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定する判定手段と、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、当該管理テーブルの要素に対応付けられる前記レコード記憶領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該レコード記憶領域に書き込む処理手段と、を備えることを特徴とする。
【0007】
請求項2に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、前記レコードの識別情報を管理するための管理テーブルを保持する保持手段と、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定する判定手段と、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信する処理手段と、を備えることを特徴とする。
【0008】
請求項3に記載の発明は、請求項1または2に記載の電子情報記憶媒体において、前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていないと判定された場合に、前記複数のレコード記憶領域のうち、前記レコードが書き込まれていないレコード記憶領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコード記憶領域に対応付けられる管理テーブルの要素に前記書き込みコマンドに含まれる識別情報を登録することを特徴とする。
【0009】
請求項4に記載の発明は、請求項1または2に記載の電子情報記憶媒体において、前記受信手段は、前記外部装置から読み出し対象となるレコードの識別情報を含む読み出しコマンドを受信し、前記処理手段は、前記読み出しコマンドに含まれる識別情報と一致する識別情報が登録されている管理テーブルの要素を検索し、当該検索された管理テーブルの要素に対応付けられる前記レコード記憶領域から前記レコードを読み出し、当該読み出されたレコードを含むレスポンスを前記外部装置へ送信することを特徴とする。
【0010】
請求項5に記載の発明は、アプリケーションにより使用されるファイルに論理的に格納されるレコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、外部装置からレコード及び当該レコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む書き込みコマンドを受信する受信手段と、前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値を書き込む処理手段と、を備えることを特徴とする。
【0011】
請求項6に記載の発明は、請求項5に記載の電子情報記憶媒体において、前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値と一致するレコード番号とファイルの識別子とを結合した値が何れかの前記レコード記憶領域の第2領域に記憶されているか否かを判定する判定手段を更に備え、前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値と一致するレコード番号とファイルの識別子とを結合した値が前記レコード記憶領域の第2領域に記憶されていると判定された場合に、当該レコード記憶領域の第1領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該第1領域に書き込むことを特徴とする。
【0012】
請求項7に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる識別情報を書き込む処理手段と、前記書き込みコマンドに含まれる識別情報と一致する識別情報が何れかの前記レコード記憶領域の第2領域に記憶されているか否かを判定する判定手段と、を備え、前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記レコード記憶領域の第2領域に記憶されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信することを特徴とする。
【0013】
請求項8に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体であって、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる識別情報を書き込む処理手段と、前記書き込みコマンドに含まれる識別情報と一致する識別情報が何れかの前記レコード記憶領域の第2領域に記憶されているか否かを判定する判定手段と、を備え、前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記レコード記憶領域の第2領域に記憶されていると判定された場合に、当該レコード記憶領域の第1領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該第1領域に書き込み、前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記レコード記憶領域の第2領域に記憶されていないと判定された場合に、前記レコード記憶領域の配列に基づいて、前記レコードが書き込まれていないレコード記憶領域を検索し、当該検索されたレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる識別情報を書き込むことを特徴とする。
【0014】
請求項9に記載の発明は、請求項7に記載の電子情報記憶媒体において、前記処理手段は、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記レコード記憶領域の第2領域に記憶されていないと判定された場合に、前記レコード記憶領域の配列に基づいて、前記レコードが書き込まれていないレコード記憶領域を検索し、当該検索されたレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる識別情報を書き込むことを特徴とする。
【0015】
請求項10に記載の発明は、請求項5乃至9の何れか一項に記載の電子情報記憶媒体において、前記受信手段は、複数の前記書き込みコマンドを順次受信し、それぞれの前記書き込みコマンドに含まれる前記レコードの内容は互いに異なることを特徴とする。
【0016】
請求項11に記載の発明は、請求項5または6に記載の電子情報記憶媒体において、前記受信手段は、前記外部装置から読み出し対象となるレコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む読み出しコマンドを受信し、前記処理手段は、前記読み出しコマンドに含まれる前記レコード番号と前記識別子とを結合した値と一致するレコード番号とファイルの識別子とを結合した値が記憶されている前記レコード記憶領域を検索し、当該検索されたレコード記憶領域から前記レコードを読み出し、当該読み出されたレコードを含むレスポンスを前記外部装置へ送信することを特徴とする。
【0017】
請求項12に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICチップであって、前記レコードの識別情報を管理するための管理テーブルを保持する保持手段と、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定する判定手段と、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、当該管理テーブルの要素に対応付けられる前記レコード記憶領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該レコード記憶領域に書き込む処理手段と、を備えることを特徴とする。
【0018】
請求項13に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICチップであって、前記レコードの識別情報を管理するための管理テーブルを保持する保持手段と、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信する受信手段と、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定する判定手段と、前記判定手段により前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信する処理手段と、を備えることを特徴とする。
【0019】
請求項14に記載の発明は、アプリケーションにより使用されるファイルに論理的に格納されるレコードを書き込むための複数のレコード記憶領域を有するメモリを備えるICチップであって、外部装置からレコード及び当該レコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む書き込みコマンドを受信する受信手段と、前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値を書き込む処理手段と、を備えることを特徴とする。
【0020】
請求項15に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体により実行されるレコード処理方法であって、前記レコードの識別情報を管理するための管理テーブルを保持するステップと、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信するステップと、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定するステップと、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、当該管理テーブルの要素に対応付けられる前記レコード記憶領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該レコード記憶領域に書き込むステップと、を含むことを特徴とする。
【0021】
請求項16に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体により実行されるレコード処理方法であって、前記レコードの識別情報を管理するための管理テーブルを保持するステップと、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信するステップと、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定するステップと、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信するステップと、を含むことを特徴とする。
【0022】
請求項17に記載の発明は、アプリケーションにより使用されるファイルに論理的に格納されるレコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体により実行されるレコード処理方法であって、外部装置からレコード及び当該レコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む書き込みコマンドを受信するステップと、前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値を書き込むステップと、を含むことを特徴とする。
【0023】
請求項18に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体に含まれるコンピュータに、前記レコードの識別情報を管理するための管理テーブルを保持するステップと、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信するステップと、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定するステップと、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、当該管理テーブルの要素に対応付けられる前記レコード記憶領域に記憶されているレコードに代えて前記書き込みコマンドに含まれるレコードを当該レコード記憶領域に書き込むステップと、を実行させることを特徴とする。
【0024】
請求項19に記載の発明は、レコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体に含まれるコンピュータに、前記レコードの識別情報を管理するための管理テーブルを保持するステップと、外部装置からレコード及び当該レコードの識別情報を含む書き込みコマンドを受信するステップと、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されているか否かを判定するステップと、前記書き込みコマンドに含まれる識別情報と一致する識別情報が前記管理テーブルの要素に登録されていると判定された場合に、前記書き込みコマンドに含まれるレコードを前記レコード記憶領域に書き込むことなく、エラーを示すレスポンスを前記外部装置へ送信するステップと、を実行させることを特徴とする。
【0025】
請求項20に記載の発明は、アプリケーションにより使用されるファイルに論理的に格納されるレコードを書き込むための複数のレコード記憶領域を有するメモリを備える電子情報記憶媒体に含まれるコンピュータに、外部装置からレコード及び当該レコードのレコード番号と当該レコードが格納されるファイルの識別子とを結合した値を含む書き込みコマンドを受信するステップと、前記複数のレコード記憶領域のうち何れかのレコード記憶領域の第1領域に前記書き込みコマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該レコード記憶領域の第2領域に前記書き込みコマンドに含まれる前記レコード番号と前記識別子とを結合した値を書き込むステップと、を実行させることを特徴とする。
【発明の効果】
【0026】
本発明によれば、発行者がレコード番号を意識せずに自由な順序でレコードを発行することができる。
【図面の簡単な説明】
【0027】
図1】ICチップ1のハードウェア構成例を示す図である。
図2】レコード本体におけるRecordクラスの配列の一例を示す概念図である。
図3】Recordクラスと管理テーブルの要素との対応関係の一例を示す概念図である。
図4】レコード、及び当該レコードの識別情報を保存するRecordクラスの配列の一例を示す概念図である。
図5】実施例1に係るICチップ1のCPU15により実行される発行処理の一例を示すフローチャートである。
図6図5に示す発行処理において新たなレコードが書き込まれる際のRecordクラスと管理テーブルの要素との対応関係の一例を示す概念図である。
図7】実施例1に係るICチップ1のCPU15により実行される読み出し処理の一例を示すフローチャートである。
図8】実施例2に係るICチップ1のCPU15により実行される発行処理の一例を示すフローチャートである。
図9】実施例2に係るICチップ1のCPU15により実行される読み出し処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0028】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【0029】
[1.ICチップ1の構成及び機能]
先ず、図1を参照して、本実施形態に係るICチップ1の構成及び機能について説明する。ICチップ1は、本発明の電子情報記憶媒体の一例である。ICチップ1は、例えば、クレジットカード、キャッシュカード、またはマイナンバーカードなどのICカード、または、スマートフォンなどのモバイルデバイスに搭載される。スマートフォンなどのモバイルデバイスの場合、ICチップ1は、モバイルデバイスに着脱可能な小型ICカードに搭載されてもよいし、eUICC(Embedded Universal Integrated Circuit Card)としてモバイルデバイスから容易に取り外しや取り換えができないように組み込み基板上に搭載されてもよい。
【0030】
図1は、ICチップ1のハードウェア構成例を示す図である。ICチップ1は、図1に示すように、I/O回路11、RAM(Random Access Memory)12、NVM(Nonvolatile Memory)13、ROM(Read Only Memory)14、CPU(Central Processing Unit)15(コンピュータの一例)、及び暗号演算等を行うコプロセッサ16等を備える。I/O回路11は、外部装置2との間のインターフェースを担う。なお、ICチップ1と外部装置2との間の通信は、非接触通信であってもよいし、接触通信であってもよい。非接触通信の場合、例えばICカードまたはモバイルデバイスに搭載されたアンテナ(図示せず)を介してICチップ1と外部装置2との通信が行われる。なお、外部装置2の例として、工場における発行装置(発行端末)や、店舗における取引装置(取引端末)が挙げられる。
【0031】
NVM13には、例えばフラッシュメモリが適用される。なお、NVM13は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。NVM13またはROM14には、OS(Operating System)、及び1または複数のアプリケーション等の各種プログラム(本発明のプログラムを含む)等が記憶される。NVM13には、レコードを書き込む(保存する)ためのレコード本体を有する。ここで、レコードとは、アプリケーションにより使用されるファイル(例えば、EF(Elementary File))に論理的に格納される(換言すると、論理的に纏められる)データである。レコードの例として、アプリケーションの動作を決定するような設定データ、暗号演算や復号演算に必要な鍵データ、及び証明書データなどが挙げられる。1つのファイルには、複数のレコードが格納可能である。1つのアプリケーションにより複数のファイルが使用される場合もある。各ファイルには、ファイルの識別子であるSFI(Short File Identifier)が付与される。各レコードには、レコードの識別情報の一例であるレコード番号(つまり、ファイルにおける論理的な番号)が付与される。SFIとレコード番号を指定することでレコードを一意に特定することができる。なお、SFIとレコード番号と合わせてレコードの識別情報ということもできる。
【0032】
レコード本体は、例えば、複数のRecordクラス(レコード記憶領域の一例)の配列で実装される。各Recordクラスは、それぞれ、1つのレコードの中身を保存するためのクラス(データと処理を纏めたもの)である。例えば、新しいレコードが発行されるたびに、新しく発行されたレコードがRecordクラスのインスタンスとして作成され、上記配列の空き要素(つまり、Recordクラス)に追加される。図2は、レコード本体におけるRecordクラスの配列の一例を示す概念図である。図2の例では、Recordクラスは、Record[0]~[3]として表されている。例えば、Record[0]に保存されたレコード(0000・・・)は、SFI“1”(01(h))及びレコード番号“1”により特定される。各レコードはTLV形式でRecordクラスに保存されてもよい。既存の実装では、Append Recordコマンドのようなレコードの発行コマンドが受信された場合に、図2に示すように、レコード本体の配列に対して要素が順次追加され、追加された要素に書き込まれたレコードのレコード番号は書き込まれた順に自動的に割り当てられるようになっている。例えば、レコードが書き込まれた順に1→2→3と順次レコード番号が割り当てられる。そのため、ICチップの発行者は、最終的なレコードの構成を意識して発行コマンドの実行順を設計する必要があった。
【0033】
一方、本実施形態に係るNVM13には、レコード本体とは別の記憶領域に、Recordクラスに保存されるレコードのレコード番号を管理するための管理テーブルが記憶される。つまり、本実施形態において、ICチップ1は、レコードの中身を実際に保存するレコード本体とは別に当該レコードのレコード番号を管理する管理テーブルをデータ構造として持つ。各Recordクラスには、管理テーブルの要素が対応付けられる。管理テーブルの要素は、例えば、Recordクラスの配列と同様、整数型の配列で実装される。図3は、Recordクラスと管理テーブルの要素との対応関係の一例を示す概念図である。図3の例では、管理テーブルの要素は、Table[0]~[3]として表されている。また、図3の例では、管理テーブルの各要素には、SFIとレコード番号を結合した値が登録されている。例えば、図3において、Record[0]に保存されたレコードのSFIは“2”、レコード番号は“1”であり、Record[2]に保存されたレコードのSFIは“2”、レコード番号は“3”である。このような管理テーブルにより、ICチップ1の発行者がレコード番号を意識せずに自由な順序でレコードを発行可能となる。
【0034】
或いは、上記管理テーブルを用いることなくレコードの識別情報を管理してもよい。この場合、各Recordクラスには、レコードを保存するための第1領域と、当該レコードの識別情報を保存するための第2領域とが設けられる。つまり、Recordクラスの配列にレコードの識別情報をメタ情報として含ませることで、上述の管理テーブルが実装されなくても、ICチップ1の発行者がレコード番号を意識せずに自由な順序でレコードを発行可能となる。図4は、レコード、及び当該レコードの識別情報(この例では、SFIとレコード番号を結合した値)を保存するRecordクラスの配列の一例を示す概念図である。図4の例では、各Recordクラスにおいて、先頭の2バイト分が第2領域として割り当てられている(つまり、レコードの識別情報に続けて当該レコードが保存される)。図4の例において、Record[0]の第2領域にはSFI“2”及びレコード番号“1”が保存(つまり、0201(h)が保存)され、Record[0]の第1領域にはSFI“2”及びレコード番号“1”により特定されるレコード(0000・・・)が保存される。一方、Record[1]の第2領域にはSFI“2”及びレコード番号“5”が保存され、Record[1]の第1領域にはSFI“2”及びレコード番号“5”により特定されるレコード(1111・・・)が保存される。なお、レコードがTLV形式で保存されるなどのように、ICチップ1が各レコードの長さを特定できる場合、各Recordクラスにおいて、当該レコードの後に(つまり、レコードに続けて)当該レコードの識別情報が保存されてもよい。
【0035】
CPU15(コンピュータの一例)は、NVM13に記憶されたOS及びアプリケーション等を実行することで、本発明における保持手段、受信手段、判定手段、及び処理手段等として機能する。CPU15は、NVM13を用いて上述した管理テーブルを保持する場合と、当該管理テーブルを保持しない場合とがある。また、CPU15は、外部装置2からI/O回路11を介して例えばISO/IEC 7816に規定されたコマンドAPDU(Application Protocol Data Unit)を受信する。コマンドAPDUの例として、ICチップ1の製造工場における発行装置から受信されるAppend Recordコマンド等の発行コマンド(書き込みコマンドの一例)と、ICチップ1の出荷後の店舗における取引装置から受信されるREAD RECORDコマンド等の読み出しコマンドとが挙げられる。
【0036】
ここで、発行コマンド及び読み出しコマンドは、それぞれ、CLA、INS、P1及びP2からなるヘッダ部と、ボディ部とにより構成される。CLAはコマンドクラス(命令クラス)を示し、INSはコマンドコード(命令コード)を示す。INSによりコマンドの種別が特定される。P1及びP2にはコマンドパラメータ(命令パラメータ)を示す。発行コマンドのデータ部には、発行データとしてのレコード、当該レコードのレコード番号、及び当該レコードを論理的に格納するファイルのSFIが含まれる。一方、読み出しコマンドのデータ部には、読み出し対象となるレコードのレコード番号、及び当該レコードを論理的に格納するファイルのSFIが含まれる。なお、レコード番号及びSFIはP1またはP2に含まれてもよい。
【0037】
管理テーブルが用いられる場合において、外部装置2から発行コマンドが受信された場合、CPU15は、当該発行コマンドに応じて、複数のRecordクラスのうち何れかのRecordクラスに、当該発行コマンドに含まれるレコードを書き込み、且つ、当該発行コマンドに含まれる識別情報(つまり、当該レコードの識別情報)を当該Recordクラスに対応付けられる管理テーブルの要素に登録(記録)する。この場合において、CPU15は、発行コマンドが受信された際に、当該発行コマンドに含まれる識別情報と一致する識別情報が管理テーブルの要素に登録されているか否かを判定するとよい。そして、CPU15は、発行コマンドに含まれる識別情報と一致する識別情報が管理テーブルの要素に登録されていないと判定した場合に、Recordクラスの配列に基づいて、レコードが書き込まれていないRecordクラス(空き要素)を検索(探索)し、当該検索されたRecordクラスに、当該発行コマンドに含まれるレコードを書き込み、且つ、当該発行コマンドに含まれる識別情報を当該Recordクラスに対応付けられる管理テーブルの要素に登録するとよい。
【0038】
一方、CPU15は、発行コマンドに含まれる識別情報と一致する識別情報が管理テーブルの要素に登録されていると判定した場合に、当該管理テーブルの要素に対応付けられるRecordクラスに記憶されているレコードに代えて当該発行コマンドに含まれるレコードを当該Recordクラスに書き込む(例えば、上書き保存する)。これにより、既に書き込まれたレコードと重複するレコードが外部装置2から送信されたときでも適切に対処することができる。なお、発行コマンドに含まれる識別情報と一致する識別情報が管理テーブルの要素に登録されていると判定した場合に、当該管理テーブルの要素に対応付けられるRecordクラスに記憶されているレコードに代えて当該発行コマンドに含まれるレコードを当該Recordクラスに書き込み、且つ、当該Recordクラスに対応付けられる管理テーブルの要素に登録されている識別情報に代えて当該発行コマンドに含まれる識別情報を当該管理テーブルの要素に登録(つまり、同一の識別情報で上書き記録)してもよい。或いは、CPU15は、発行コマンドに含まれる識別情報と一致する識別情報が管理テーブルの要素に登録されていると判定した場合に、当該発行コマンドに含まれるレコードをRecordクラスに書き込むことなく、エラーを示すレスポンスを外部装置2へ送信してもよい。これによっても、既に書き込まれたレコードと重複するレコードが外部装置2から送信されたときでも適切に対処することができる。ここで、エラーを示すレスポンスは、例えばISO/IEC 7816に規定されたレスポンスAPDUにより構成される。かかるレスポンスAPDUは、エラーを示すステータスワード(SW1、SW2)を含む。
【0039】
そして、管理テーブルが用いられる場合において、外部装置2から読み出しコマンドが受信された場合、CPU15は、当該読み出しコマンドに応じて、当該読み出しコマンドに含まれる識別情報と一致する識別情報が登録されている管理テーブルの要素を検索し、当該検索された管理テーブルの要素に対応付けられるRecordクラスからレコードを読み出し、当該読み出されたレコードを含むレスポンスを外部装置2へ送信する。ここで、当該読み出されたレコードを含むレスポンスは、例えばISO/IEC 7816に規定されたレスポンスAPDUにより構成される。かかるレスポンスAPDUは、正常終了を示すステータスワード(SW1、SW2)を含む。
【0040】
他方、管理テーブルが用いられない場合において、外部装置2から発行コマンドが受信された場合、CPU15は、当該発行コマンドに応じて、複数のRecordクラスのうち何れかのRecordクラスの第1領域に当該発行コマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該Recordクラスの第2領域に当該発行コマンドに含まれる識別情報(つまり、当該レコードの識別情報)を書き込む。この場合において、CPU15は、発行コマンドが受信された際に、当該発行コマンドに含まれる識別情報と一致する識別情報が何れかのRecordクラスの第2領域に記憶されているか否かを判定するとよい。そして、CPU15は、発行コマンドに含まれる識別情報と一致する識別情報が何れかのRecordクラスの第2領域に記憶されていないと判定した場合に、Recordクラスの配列に基づいて、レコードが書き込まれていないRecordクラスを検索し、当該検索されたRecordクラスの第1領域に当該発行コマンドに含まれるレコードを書き込み、且つ、当該レコードが書き込まれる当該Recordクラスの第2領域に当該発行コマンドに含まれる識別情報を書き込むとよい。
【0041】
一方、CPU15は、発行コマンドに含まれる識別情報と一致する識別情報が何れかのRecordクラスの第2領域に記憶されていると判定した場合に、当該Recordクラスの第1領域に記憶されているレコードに代えて当該発行コマンドに含まれるレコードを当該第1領域に書き込む。これにより、既に書き込まれたレコードと重複するレコードが外部装置2から送信されたときでも適切に対処することができる。なお、発行コマンドに含まれる識別情報と一致する識別情報が何れかのRecordクラスの第2領域に記憶されていると判定した場合に、当該Recordクラスの第1領域に記憶されているレコードに代えて当該発行コマンドに含まれるレコードを当該第1領域に書き込み、且つ、当該Recordクラスの第2領域に記憶されている識別情報に代えて当該発行コマンドに含まれる識別情報を当該第2領域に書き込む(つまり、同一の識別情報で上書き保存)してもよい。或いは、CPU15は、発行コマンドに含まれる識別情報と一致する識別情報が何れかのRecordクラスの第2領域に記憶されていると判定した場合に、当該発行コマンドに含まれるレコードをRecordクラスに書き込むことなく、上記と同様、エラーを示すレスポンスを外部装置2へ送信してもよい。これによっても、既に書き込まれたレコードと重複するレコードが外部装置2から送信されたときでも適切に対処することができる。
【0042】
そして、管理テーブルが用いられない場合において、外部装置2から読み出しコマンドが受信された場合、CPU15は、当該読み出しコマンドに応じて、当該読み出しコマンドに含まれる識別情報と一致する識別情報が記憶(つまり、第2領域に記憶)されているRecordクラスを検索し、当該検索されたRecordクラスの第1領域からレコードを読み出し、当該読み出されたレコードを含むレスポンスを外部装置2へ送信する。なお、当該検索されたRecordクラス(第1領域及び第2領域)からレコード及び当該レコードの識別情報を読み出し、読み出された識別情報を除外して、当該レコードを含むレスポンスを外部装置2へ送信してもよい。
【0043】
[2.ICチップ1の動作]
次に、本実施形態に係るICチップ1の動作について、実施例1と実施例2とに分けて説明する。
【0044】
(実施例1)
先ず、図5図7を参照して、実施例1に係るICチップ1の動作について説明する。図5は、実施例1に係るICチップ1のCPU15により実行される発行処理の一例を示すフローチャートである。図6は、図5に示す発行処理においてレコードが書き込まれる際のRecordクラスと管理テーブルの要素との対応関係の一例を示す概念図である。図7は、実施例1に係るICチップ1のCPU15により実行される読み出し処理の一例を示すフローチャートである。
【0045】
例えばICチップ1の製造工場におけるレコード発行工程において、ICチップ1が外部装置2である発行装置と通信し、当該発行装置から発行コマンドを受信すると、図5に示す処理が開始される。なお、図5に示す発行処理は、アプリケーションの動作に必要な全てのレコードの書き込みが完了するまで繰り返し実行される。すなわち、ICチップ1は、複数の発行コマンドを順次受信する。それぞれの発行コマンドに含まれる発行データ(レコード)の内容は基本的に互いに異なる。
【0046】
図5に示す処理が開始されると、CPU15は、発行コマンドからレコード、当該レコードのレコード番号、及びレコードを格納するファイルのSFIを取得する(ステップS1)。次いで、CPU15は、ステップS1で取得されたレコード番号及びSFIと一致する識別情報(つまり、SFIとレコード番号とを結合した値)が管理テーブルの要素に登録されているか否かを判定する(ステップS2)。ステップS1で取得されたレコード番号及びSFIと一致する識別情報が管理テーブルの要素に登録されていないと判定された場合(ステップS2:NO)、処理はステップS3へ進む。一方、ステップS1で取得されたレコード番号及びSFIと一致する識別情報が管理テーブルの要素に登録されていると判定された場合(ステップS2:YES)、処理はステップS5へ進む。
【0047】
ステップS3では、CPU15は、Recordクラスの配列において空き要素(つまり、レコードが書き込まれていないRecordクラス)を先頭から探索する。そして、CPU15は、ステップS3の探索により発見された空き要素であるRecordクラスに対して、ステップS1で取得されたレコードを書き込む処理を実行し(ステップS4)、処理をステップS7へ進める。例えば、図6に示すように、Record[0]からRecord[3]までが書き込み済みであれば空き要素であるRecord[4]に、ステップS1で取得された新しいレコードが書き込まれる。
【0048】
ステップS5では、CPU15は、ステップS1で取得されたレコード番号及びSFIと一致する識別情報が登録されている管理テーブルの要素に対応付けられたRecordクラスを特定する。次いで、ステップS5で特定されたRecordクラスに対して、ステップS1で取得されたレコードを書き込む処理を実行し(ステップS6)、処理をステップS7へ進める。かかる処理においては、当該管理テーブルの要素に対応付けられるRecordクラスに保存されているレコードに代えて、ステップS1で取得されたレコードが当該Recordクラスに書き込まれる(つまり、上書き保存される)。
【0049】
なお、ステップS5において、CPU15は、エラーを示すレスポンスを外部装置2である発行装置へ返信してもよい。この場合、ステップS6の処理は行われずに(つまり、ステップS1で取得されたレコードがRecordクラスに書き込まれずに)、図5に示す処理が終了する。
【0050】
ステップS7では、CPU15は、ステップS4またはS6の処理において書き込みエラーが発生したか否かを判定する。書き込みエラーが発生したと判定された場合(ステップS7:YES)、エラーを示すレスポンスが外部装置2である発行装置へ返信され(ステップS8)、図5に示す処理が終了する。一方、書き込みエラーが発生していないと判定された場合(ステップS7:NO)、処理はステップS9へ進む。
【0051】
ステップS9では、CPU15は、ステップS4またはS6でレコードが書き込まれたRecordクラスに対応付けられた管理テーブルの要素に、ステップS1で取得されたSFIとレコード番号とを結合した値を、当該レコードの識別情報として登録する。例えば、図6に示すように、空き要素であるRecord[4]にレコードが書き込まれた場合、ステップS1で取得されたSFI“1”とレコード番号“2”が結合された値“0102(h)”がTable[4]に登録(記録)される。一方、書き込み済みであるRecordクラスにレコードが上書きされた場合、当該Recordクラスに対応付けられた管理テーブルの要素において、ステップS1で取得されたSFIとレコード番号が結合された値が上書きされてもよいし、或いは当該値が上書きされることなく、処理はステップS10へ進んでもよい。次いで、CPU15は、正常終了を示すレスポンスを外部装置2である発行装置へ返信し(ステップS10)、図5に示す処理を終了する。
【0052】
以上のように、レコード発行工程において、アプリケーションの動作に必要な全てのレコードの書き込みが完了したICチップ1が出荷された後、ICチップ1が外部装置2である取引装置と通信し、当該取引装置から読み出しコマンドを受信すると、図7に示す処理が開始される。図7に示す処理が開始されると、CPU15は、読み出しコマンドから読み出し対象となるレコードのレコード番号及び当該レコードを格納するファイルのSFIを取得する(ステップS21)。
【0053】
次いで、CPU15は、ステップS21で取得されたレコード番号及びSFIと一致する識別情報が登録されている管理テーブルの要素を検索する(ステップS22)。そして、CPU15は、ステップS22で検索された(つまり、検索により特定された)管理テーブルの要素に対応付けられたRecordクラスを特定する(ステップS23)。次いで、CPU15は、ステップS23で特定されたRecordクラスからレコードを読み出す処理を実行する(ステップS24)。例えば、NVM13におけるRecordクラスからRAM12におけるワーク領域にレコードが読み出される。次いで、CPU15は、ステップS24で読み出されたレコードを含み、正常終了を示すレスポンスを外部装置2である取引装置へ返信し(ステップS25)、図7に示す処理を終了する。
【0054】
以上説明したように、上記実施例1によれば、ICチップ1は、レコードのレコード番号を管理するための管理テーブルを保持し、外部装置2からレコード及び当該レコードのレコード番号を含む発行コマンドを受信すると、複数のRecordクラスのうち何れかのRecordクラスに発行コマンドに含まれるレコードを書き込み、且つ、当該レコードのレコード番号を当該Recordクラスに対応付けられる管理テーブルの要素に登録するように構成したので、発行者がレコード番号を意識せずに自由な順序でレコードを発行することができる。例えば、クレジット決済用アプリケーションを提供するブランドにより各レコードの書き込み順が指定される場合があり、従来のICチップでは、レコードが書き込まれた順に順次レコード番号が割り当てられるようになっていたため、ICチップの発行者は、発行コマンド群における各発行コマンドの実行順(つまり、送信順)を設計する(例えば、並び換える)必要があった。しかし、上記実施例1に係るICチップ1によれば、管理テーブルの要素をRecordクラスに対応付けられるようにしてレコードの識別情報を管理するように構成したので、レコード発行工程において各発行コマンドの実行順を従来のように設計する手間を削減することができる。
【0055】
また、上記実施例1によれば、ICチップ1は、受信された発行コマンドに含まれる識別情報と一致する識別情報が管理テーブルの要素に既に登録されている場合、当該管理テーブルの要素に対応付けられるRecordクラスに記憶されているレコードに代えて当該発行コマンドに含まれるレコードを当該Recordクラスに書き込むか、或いは、当該発行コマンドに含まれるレコードをRecordクラスに書き込むことなく、エラーを示すレスポンスを外部装置2へ送信するように構成したので、既に書き込まれたレコードと重複するレコードが外部装置2から送信されたときでも適切に対処することができる。
【0056】
(実施例2)
次に、図8及び図9を参照して、実施例2に係るICチップ1の動作について説明する。図8は、実施例2に係るICチップ1のCPU15により実行される発行処理の一例を示すフローチャートである。図9は、実施例2に係るICチップ1のCPU15により実行される読み出し処理の一例を示すフローチャートである。図8に示す処理は、図5に示す処理と同様、例えばICチップ1の製造工場におけるレコード発行工程において、ICチップ1が外部装置2である発行装置から発行コマンドを受信すると開始される。なお、図8に示す発行処理は、図5に示す処理と同様、アプリケーションの動作に必要な全てのレコードの書き込みが完了するまで繰り返し実行される。
【0057】
図8に示す処理が開始されると、CPU15は、発行コマンドからレコード、当該レコードのレコード番号、及びレコードを格納するファイルのSFIを取得する(ステップS31)。次いで、CPU15は、ステップS31で取得されたレコード番号及びSFIと一致する識別情報(つまり、SFIとレコード番号とを結合した値)が何れかのRecordクラスの第2領域に記憶されているか否かを判定する(ステップS32)。ステップS31で取得されたレコード番号及びSFIと一致する識別情報が何れのRecordクラスの第2領域にも記憶されていないと判定された場合(ステップS32:NO)、処理はステップS33へ進む。一方、ステップS31で取得されたレコード番号及びSFIと一致する識別情報が何れかのRecordクラスの第2領域に記憶されていると判定された場合(ステップS32:YES)、処理はステップS35へ進む。
【0058】
ステップS33では、CPU15は、Recordクラスの配列において空き要素(つまり、レコードが書き込まれていないRecordクラス)を先頭から探索する。そして、CPU15は、ステップS33の探索により発見された空き要素であるRecordクラスの第1領域に対して、ステップS31で取得されたレコードを書き込む処理を実行し(ステップS34)、処理をステップS37へ進める。
【0059】
ステップS35では、CPU15は、ステップS31で取得されたレコード番号及びSFIと一致する識別情報が記憶されているRecordクラスを特定する。次いで、ステップS35で特定されたRecordクラスの第1領域に対して、ステップS31で取得されたレコードを書き込む処理を実行し(ステップS36)、処理をステップS37へ進める。かかる処理においては、当該Recordクラスの第1領域に保存されているレコードに代えて、ステップS31で取得されたレコードが当該Recordクラスの第1領域に書き込まれる(つまり、上書き保存される)。
【0060】
ステップS37では、CPU15は、ステップS34またはS36の処理において書き込みエラーが発生したか否かを判定する。書き込みエラーが発生したと判定された場合(ステップS37:YES)、エラーを示すレスポンスが外部装置2である発行装置へ返信され(ステップS38)、図8に示す処理が終了する。一方、書き込みエラーが発生していないと判定された場合(ステップS37:NO)、処理はステップS39へ進む。
【0061】
ステップS39では、CPU15は、ステップS34またはS36でレコードが書き込まれたRecordクラスの第2領域に、ステップS31で取得されたSFIとレコード番号とを結合した値を、当該レコードの識別情報として登録する。なお、書き込み済みであるRecordクラスにレコードが上書きされた場合、当該Recordクラスの第2領域において、ステップS31で取得されたSFIとレコード番号が結合された値が上書きされてもよいし、或いは当該値が上書きされることなく、処理はステップS40へ進んでもよい。次いで、CPU15は、正常終了を示すレスポンスを外部装置2である発行装置へ返信し(ステップS40)、図8に示す処理を終了する。
【0062】
以上のように、レコード発行工程において、アプリケーションの動作に必要な全てのレコードの書き込みが完了したICチップ1が出荷された後、ICチップ1が外部装置2である取引装置と通信し、当該取引装置から読み出しコマンドを受信すると、図9に示す処理が開始される。図9に示す処理が開始されると、CPU15は、読み出しコマンドから読み出し対象となるレコードのレコード番号及び当該レコードを格納するファイルのSFIを取得する(ステップS41)。
【0063】
次いで、CPU15は、ステップS41で取得されたレコード番号及びSFIと一致する識別情報が記憶されているRecordクラスを検索する(ステップS42)。そして、CPU15は、ステップS42で検索された(つまり、検索により特定された)Recordクラスの第1領域からレコードを読み出す処理を実行する(ステップS43)。例えば、NVM13におけるRecordクラスの第1領域からRAM12におけるワーク領域にレコードが読み出される。次いで、CPU15は、ステップS43で読み出されたレコードを含み、正常終了を示すレスポンスを外部装置2である取引装置へ返信し(ステップS44)、図9に示す処理を終了する。
【0064】
以上説明したように、上記実施例2によれば、ICチップ1は、外部装置2からレコード及び当該レコードのレコード番号を含む発行コマンドを受信すると、複数のRecordクラスのうち何れかのRecordクラスの第1領域に発行コマンドに含まれるレコードを書き込み、且つ、当該レコードのレコード番号を当該Recordクラスの第2領域に書き込むように構成したので、発行者がレコード番号を意識せずに自由な順序でレコードを発行することができる。例えば、実施例1と同様、従来のICチップでは、レコードが書き込まれた順に順次レコード番号が割り当てられるようになっていたため、ICチップの発行者は、発行コマンド群における各発行コマンドの実行順を設計する必要があったが、上記実施例2に係るICチップ1によれば、Recordクラスの第1領域に保存されるレコードの識別情報を当該Recordクラスの第2領域で管理するように構成したので、レコード発行工程において各発行コマンドの実行順を従来のように設計する手間を削減することができる。
【0065】
また、上記実施例2によれば、ICチップ1は、受信された発行コマンドに含まれる識別情報と一致する識別情報がRecordクラスの第2領域に既に登録されている場合、当該Recordクラスの第1領域に記憶されているレコードに代えて当該発行コマンドに含まれるレコードを当該Recordクラスの第1領域に書き込むか、或いは、当該発行コマンドに含まれるレコードをRecordクラスに書き込むことなく、エラーを示すレスポンスを外部装置2へ送信するように構成したので、既に書き込まれたレコードと重複するレコードが外部装置2から送信されたときでも適切に対処することができる。
【符号の説明】
【0066】
1 ICチップ
11 I/O回路
12 RAM(
13 NVM
14 ROM
15 CPU
16 コプロセッサ
【要約】
【課題】発行者がレコード番号を意識せずに自由な順序でレコードを発行可能としつつ、既に書き込まれたレコードと重複するレコードが発行装置から送信されたときに適切に対処することが可能な電子情報記憶媒体、ICチップ、レコード処理方法、及びプログラムを提供する。
【解決手段】ICチップ1は、受信された発行コマンドに含まれる識別情報と一致する識別情報が管理テーブルの要素に既に登録されている場合、当該管理テーブルの要素に対応付けられるRecordクラスに記憶されているレコードに代えて当該発行コマンドに含まれるレコードを当該Recordクラスに書き込むか、或いは、当該発行コマンドに含まれるレコードをRecordクラスに書き込むことなく、エラーを示すレスポンスを外部装置2へ送信する。
【選択図】図5
図1
図2
図3
図4
図5
図6
図7
図8
図9