(57)【要約】【課題】管理情報とレコードデータとを有するレコードが格納されるレコード構造のファイルに記憶されているデータに対して効率的にアクセスすることができる。【解決手段】レコード構造のファイルを指定するレコード系のコマンドを受信した場合には、指定されたレコードごとに当該ファイルに記憶されているデータを処理し、レコード構造のファイルを指定するバイナリ系のコマンドを受信した場合には、当該ファイルに記憶されている各レコードのレコードデータ、あるいは、各レコードの管理情報及びレコードデータを昇順あるいは降順に連結したデータをバイナリデータとして処理するようにしたものである。【選択図】      図１
2007102559.tif 000002
【特許請求の範囲】
【請求項１】
管理情報とレコードデータとを有するレコードを格納したファイルを記憶する記憶手段と、
外部装置とのデータ通信を行う通信手段と、
この通信手段により前記記憶手段に記憶されている前記レコードを格納したファイルに対してバイナリデータを処理するコマンドを受信した場合、当該ファイルに格納されている各レコードのデータをバイナリデータとして処理する処理手段と、
を具備することを特徴とする携帯可能電子装置。
【請求項２】
前記記憶手段、前記通信手段および前記処理手段を具備するモジュールと、
前記モジュールが埋設された筐体と、を有する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
前記処理手段は、前記コマンドにより指定されたファイルに格納されている各レコードのレコードデータをバイナリデータとして処理する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項４】
前記処理手段は、前記読出コマンドにより指定されたファイルに格納されている各レコードのレコードデータを昇順に連結したデータをバイナリデータとして処理する、
ことを特徴とする前記請求項３に記載の携帯可能電子装置。
【請求項５】
前記処理手段は、前記読出コマンドにより指定されたファイルに格納されている各レコードのレコードデータを降順に連結したデータをバイナリデータとして処理する、
ことを特徴とする前記請求項３に記載の携帯可能電子装置。
【請求項６】
前記処理手段は、前記コマンドにより指定されたファイルに格納されている各レコードの管理情報とレコードデータとをバイナリデータとして処理する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項７】
前記処理手段は、前記コマンドにより指定されたファイルに格納されている各レコードの管理情報とレコードデータとを昇順に連結したデータをバイナリデータとして処理する、
ことを特徴とする前記請求項６に記載の携帯可能電子装置。
【請求項８】
前記処理手段は、前記コマンドにより指定されたファイルに格納されている各レコードの管理情報とレコードデータとを降順に連結したデータをバイナリデータとして処理する、
ことを特徴とする前記請求項６に記載の携帯可能電子装置。
【請求項９】
さらに、前記通信手段により前記記憶手段に記憶されている前記レコードを格納したファイルに対してバイナリデータを処理するコマンドを受信した場合、当該ファイルに格納されている各レコードのデータをバイナリデータとして処理するためのデータ構成を判断する判断手段を有し、
前記処理手段は、前記コマンドにより指定されたファイルに格納されている各レコードのデータを前記判断手段により判断したデータ構成のバイナリデータとして処理する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、たとえば、データの書込みや書換え可能な不揮発性メモリおよびＣＰＵなどの制御素子を有したモジュールを内蔵し、外部から入力されるコマンドに対応した処理を実行するＩＣカードなどの携帯可能電子装置に関する。
【背景技術】
【０００２】
従来、携帯可能電子装置としては、たとえば、メモリやＣＰＵなどの機能を有したＩＣモジュールがプラスチック板などで構成される筐体内に埋設されているＩＣカードがある。このようなＩＣカードでは、外部装置からのコマンドに応じて書き換え可能な不揮発性メモリにデータを書き込んだり、不揮発性メモリからデータを読み出したりするようになっている。たとえば、ＩＣカードの標準仕様であるＩＳＯ７８１６では、ＩＣカードの不揮発性メモリに記憶するデータのファイルデータ構造として、透過構造（ｔｒａｎｓｐａｒｅｎｔ）ＥＦ（エレメンタリーファイル：Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）、および、レコード構造（ｒｅｃｏｒｄ）ＥＦなどが定義されている。
【０００３】
上記透過構造ＥＦには、構造化されていないデータ（バイナリデータ）が記憶される。このような透過構造ＥＦに記憶されているデータには、従来のＩＣカードでは、バイナリ系のコマンドでのみアクセスするようになっている。このため、上記透過構造ＥＦでは、データの構造に自由度が高い。また、上記レコード構造ＥＦには、管理情報と実データ（レコードデータ）とを有する所定の形式のレコードがデータとして記憶される。このためレコード構造ＥＦでは、データの管理が容易である。このようなレコード構造ＥＦに記憶されているデータ（レコード）には、従来のＩＣカードでは、レコード系のコマンドでのみアクセスするようになっている。
【０００４】
上記バイナリ系のコマンドでは、上位装置がＥＦ内のデータへのアクセスをオフセットで指定する。このため、上記バイナリ系のコマンドでは、ＥＦ内のデータを一括して処理対象として指定することが可能であり、バイナリ系のコマンドに対するＩＣカード内の処理も単純である。しかしながら、バイナリ系のコマンドでは、処理対象となるＥＦ内のデータを直接的に指定する必要があるため、ＥＦ内のデータ構造などが不明であれば所望のデータを処理対象として指定できない。
【０００５】
これに対して、上記レコード系のコマンドでは、上位装置は、ＩＣカードに対してＥＦ内のデータへのアクセスをレコードで指定する。このため、上位装置では、ＩＣカード内のデータ（レコード）を指定することが容易である。しかしながら、レコード系のコマンドでは、各レコードごとに処理対象とするデータを指定する必要があるため、ＥＦ内の複数のレコードを処理対象として指定する場合であっても、複数のレコード系のコマンドで、各レコードを処理対象として指定しなければならない。
【０００６】
特に、ＩＣカードなどの携帯可能電子装置では、運用形態において処理時間が限られていることが多い。このため、ＩＣカードなどの携帯可能電子装置には、メモリに記憶しているデータへの効率的なアクセスによる処理の高速化あるいは処理の単純化などが要望されている。
【特許文献１】特開２００５−１１１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
この発明は、データへの効率的なアクセスが可能な携帯可能電子装置を提供することを目的する。
【課題を解決するための手段】
【０００８】
この発明の一形態としての携帯可能電子装置は、管理情報とレコードデータとを有するレコードを格納したファイルを記憶する記憶手段と、外部装置とのデータ通信を行う通信手段と、この通信手段により前記記憶手段に記憶されている前記レコードを格納したファイルに対してバイナリデータを処理するコマンドを受信した場合、当該ファイルに格納されている各レコードのデータをバイナリデータとして処理する処理手段とを有する。
【発明の効果】
【０００９】
この発明によれば、データへの効率的なアクセスが可能な携帯可能電子装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、この発明を実施するための最良の形態について図面を参照して説明する。  
図１は、この実施の形態に係る携帯可能電子装置としてのＩＣカード１のハードウエア構成を概略的に示すものである。  
図１に示すように、ＩＣカード１は、ＣＰＵ（セントラル・プロセッシング・ユニット）１１、ＲＯＭ（リード・オンリ・メモリ）１２、ＲＡＭ（ランダム・アクセス・メモリ）１３、通信ユニット（ＵＡＲＴ）１４、不揮発性メモリ（ＮＶ（ＥＥＰＲＯＭ））１５、および、コプロセッサ（Ｃｏ−Ｐｒｏｃｅｓｓｏｒ）１６などを有している。
【００１１】
上記ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、通信ユニット１４、コプロセッサ１５および不揮発性メモリ１６は、ＩＣチップなどにより一体的に形成されたモジュールＣａにより構成される。このモジュールＣａは、当該ＩＣカード１を形成する筐体Ｃの内部に埋設される。すなわち、上記ＩＣカード１は、モジュールＣａが埋設された筐体Ｃにより構成されている。  
また、上記ＩＣカード１は、上位装置としての上記ＩＣカード処理装置２から電力などの供給を受けた際、活性化し（動作可能な状態となり）、上記ＩＣカード処理装置２からのコマンドに応じて動作するようになっている。
【００１２】
上記ＣＰＵ１１は、全体的な管理や制御を司るものである。上記ＣＰＵ１１は、処理手段や判断手段として機能する。上記ＣＰＵ１１は、制御プログラム等に基づいて動作することにより種々の処理を行う。上記ＲＯＭ１２は、制御用プログラムや制御データなどが予め格納されている不揮発性メモリである。上記ＲＡＭ１３は、ワーキングメモリとして機能する揮発性のメモリである。
【００１３】
上記通信ユニット１４は、通信手段として機能し、上位装置としてのＩＣカード処理装置２とのデータ通信を制御するものである。また、上記通信ユニット１４は、上記ＩＣカード１が動作するための電源を受給する手段としても機能する。上記コプロセッサ１５は、暗号化あるいは復号化などの演算の補助を行うものである。上記不揮発性メモリ１６は、各種データやアプリケーション（アプリケーションプログラム）などを記憶する書き換え可能な不揮発性メモリである。なお、上記不揮発性メモリ１６に記憶されるデータの構造については、後で詳細に説明する。
【００１４】
また、上記通信ユニット１４は、ＩＣカード１の通信方式に応じた構成を有している。たとえば、上記ＩＣカード１の通信方式が接触式の通信方式である場合、上記通信ユニット１４は、上位装置としてのＩＣカード処理装置２のコンタクト部と物理的に接触するためのコンタクト部などにより構成される。この場合、ＩＣカード１は、ＩＣカード処理装置２と物理的に接触している上記通信ユニット１４によりＩＣカード処理装置２からの電源を受給する。つまり、上記ＩＣカード１が接触式ＩＣカードである場合、上記ＩＣカード１は、通信ユニット１４としてのコンタクト部を介してＩＣカード処理装置２からの動作電源および動作クロックの供給を受けて活性化される。
【００１５】
また、上記ＩＣカード１の通信方式が非接触式（無線式）の通信方式である場合、上記上記通信ユニット１４は、電波の送受信を行うアンテナおよび通信を制御する通信制御部等により構成される。この場合、上記ＩＣカード１は、通信ユニット１４により受信した電波から図示しない電源部により動作電源および動作クロックを生成するようになっている。つまり、上記ＩＣカード２が非接触式ＩＣカードである場合、上記ＩＣカード２は、通信ユニット１４としてのアンテナおよび通信制御部等を介してＩＣカード処理装置２からの電波を受信し、その電波から図示しない電源部により動作電源および動作クロックを生成して活性化するようになっている。
【００１６】
次に、上記不揮発性メモリ１６に記憶されるデータの構成について説明する。  
上記不揮発性メモリ１６には、たとえば、ＩＳＯ／ＩＥＣ７８１６において定義されたファイル構造で各種のデータが記憶される。たとえば、上記不揮発性メモリ１６には、複数階層構造（ツリー構造）で管理されるデータファイルとしてのファイル（ＥＦ：Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）、および、データフォルダとしてのファイル（ＤＦ：Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）が記憶されている。
【００１７】
図２は、上記不揮発性メモリ１６に記憶されているファイル構造の例を示す図である。  
図２に示す例では、最上位がマスタファイルとしてのファイル（ＭＦ：Ｍａｓｔｅｒ  Ｆｉｌｅ）２１である。上記ＭＦ２１の配下には、データを格納するＥＦ（ＥＦ−Ａ）２２、フォルダとしてのＤＦ（ＤＦ−Ａ）２３、および、フォルダとしてのＤＦ（ＤＦ−Ｂ）２４が設けられている。さらに、上記ＤＦ（ＤＦ−Ｂ）２４の配下には、データの格納などに使用されるＥＦ（ＥＦ−Ｂ１）２５が設けられている構成になっている。このようなファイル構造では、各種のデータは、データファイルとしてのＥＦに記憶される。
【００１８】
次に、上記不揮発性メモリ１６に記憶されるデータファイルとしてのＥＦの構成について説明する。  
上記のように、上記ＩＣカード１の不揮発性メモリ１６において、各種のデータは、それぞれＥＦに記憶される。たとえば、ＥＦ内のデータ構造として、たとえば、ＩＣカードの標準仕様であるＩＳＯ７８１６では、透過構造（ｔｒａｎｓｐａｒｅｎｔ）ＥＦ、および、レコード構造（ｒｅｃｏｒｄ）ＥＦなどが定義されている。
【００１９】
上記透過構造ＥＦは、構造化されていない一連のデータを記憶するファイルである。上記透過構造ＥＦに記憶されているデータはオフセット指定で扱われる。このため、上記透過構造ＥＦに対する処理が単純である。また、上記透過構造ＥＦに記憶されるデータの構造には、自由度がある。従って、上記透過構造ＥＦは、データの管理をＩＣカード１の上位装置としてのＩＣカード処理装置２で行なう場合には適している。
【００２０】
これに対して、レコード構造ＥＦは、所定の形式で構造化された１または複数のデータ（レコード）を記憶するファイルである。また、上記レコード構造ＥＦに格納される各レコードは、ぞれぞれ管理情報とレコードデータと有する所定の形式のデータである。上記レコード構造ＥＦに格納される各レコードの管理情報は、たとえば、レコードの順番情報（レコード番号）、チェックサムデータ（正当性確認データ、パリティ）などの情報である。また、上記レコード構造ＥＦに格納される各レコードのレコードデータ（実データ）は、識別情報としてのタグ（Ｔａｇ）、データ値のデータ長を示す情報としてのレングス（Ｌｅｎｇｔｈ）、データ値としてのバリュー（Ｖａｌｕｅ）から構成される。
【００２１】
上記のように、上記レコード構造ＥＦには、所定の形式の各レコード単位でデータが記憶されている。このため、上記レコード構造ＥＦに記憶されているデータにアクセスするには、データが記憶されているレコードを指定する必要がある。言い換えると、上記レコード構造ＥＦ内のデータは、レコード指定で扱うことができる。このため、上記レコード構造ＥＦに記憶されているデータには、レコード構造の正当性の確認、タグ（Ｔａｇ）によるレコード検索といったデータ（レコード）管理が可能となっている。これは、上記ＩＣカード１に処理を要求（コマンドを供給）する上位装置としてのＩＣカード処理装置２が構造化されたレコード単位でデータを取り扱えることを意味する。
【００２２】
上記透過構造ＥＦには、バイナリ系のコマンドが使用される。たとえば、透過構造ＥＦにデータを書き込むためには、ライトバイナリ（Ｗｒｉｔｅ  Ｂｉｎａｒｙ）というコマンドが使用される。また、上記透過構造ＥＦからデータを読み出すためには、リードバイナリ（Ｒｅａｄ  Ｂｉｎａｒｙ）というコマンドが使用される。
【００２３】
これに対して、上記レコード構造ＥＦにアクセスするために、上記ＩＣカード１では、レコード系のコマンドとバイナリ系のコマンドとが使用できるようになっている。すなわち、上記レコード構造ＥＦにデータを書き込むためのコマンドには、たとえば、レコード系のコマンドとして、ライトレコード（Ｗｒｉｔｅ  Ｒｅｃｏｒｄ）、アップデートレコード（Ｕｐｄａｔｅ  Ｒｅｃｏｒｄ）、アペンドレコード（Ａｐｐｅｎｄ  Ｒｅｃｏｒｄ）などのコマンドがあり、バイナリ系のコマンドとして、ライトバイナリ（Ｗｒｉｔｅ  Ｂｉｎａｒｙ）などのコマンドがある。また、上記レコード構造ＥＦからデータを読み出すためのコマンドには、たとえば、レコード系のコマンドとして、リードレコード（Ｒｅａｄ  Ｒｅｃｏｒｄ）などのコマンドがあり、バイナリ系のコマンドとして、リードバイナリ（Ｒｅａｄ  Ｂｉｎａｒｙ）などのコマンドがある。
【００２４】
上記のように、上記ＩＣカード１では、レコード構造ＥＦに対して、レコード系のコマンド、あるいは、バイナリ系のコマンドでアクセスできる。言い換えると、当該ＩＣカード１では、レコード系のコマンドを受信した場合にはレコード構造ＥＦに記憶されているデータをレコードごとにアクセス（レコード構造ＥＦとしてアクセス）することが可能であり、バイナリ系のコマンドを受信した場合にはレコード構造ＥＦに記憶されているデータをバイナリデータとしてアクセス（擬似的に透過構造ＥＦとしてアクセス）することが可能である。
【００２５】
例えば、１つのレコード構造ＥＦに１０個のレコードが記憶されている場合を想定する。この場合、１つのレコード構造ＥＦに記憶されている１０個のレコードをレコード系のコマンド（リードレコード（Ｒｅａｄ  Ｒｅｃｏｒｄ）コマンド）を使用して全て読み出すには、ＩＣカード１は、リードレコードコマンドを１０回実施する必要がある。これに対して、１つのレコード構造ＥＦに記憶されている１０個のレコードをバイナリ系のコマンド（リードバイナリ（Ｒｅａｄ  Ｂｉｎａｒｙ）コマンド）を使用して全て読み出すためには、ＩＣカード１はリードバイナリコマンドを１回実施すれば良い。これは、当該レコード構造ＥＦを指定するリードバイナリコマンドに対して、ＩＣカード１が、１０個のレコードとして記憶されている各データを連結し、１つのバイナリデータとして扱うことを前提としている。
【００２６】
次に、レコード構造ＥＦに記憶されているデータの構成について説明する。  
図３は、レコード構造ＥＦに記憶されているデータの構成例を示している。  
図３に示す例では、１バイトを１セルで表している。図３に示す例では、ＥＦ全体が７０バイトから構成されている。また、図３に示すＥＦにおいて、白いセル（「１３」〜「２２」、「２８」〜「３７」、「４３」〜「５２」、「５８」〜「６７」）は、各レコードの実データとしての識別情報（ｔａｇ）、長さ情報（ｌｅｎｇｔｈ）、データ値（ｖａｌｕｅ）などを示し、右下がり斜線のセル（「０８」〜「１２」、「２３」〜「２７」、「３８」〜「４２」、「５３」〜「５７」）は、各レコードの管理情報のデータを示し、左下がり斜線のセル（「０１」〜「０７」、「６８」〜「７０」）は、当該ＥＦ全体の管理情報などのデータを示している。
【００２７】
すなわち、図３に示すＥＦでは、ＥＦの管理情報ＲＨ、ＲＦと、４つのレコードＲ１、Ｒ２、Ｒ３、Ｒ４とが記憶されている。上記ＥＦの管理情報ＲＨ、ＲＦは、「０１」〜「０７」のバイトと「６８」〜「７０」のバイトとにより構成される。  
また、第１レコードＲ１は、「０８」〜「２２」のバイトで構成される。さらに、第１レコードＲ１は、管理情報Ｒ１ａが「０８」〜「１２」のバイトに記憶され、レコードデータＲ１ｂが「１３」〜「２２」のバイトに記憶されている。  
また、第２レコードＲ２は、「２３」〜「３７」のバイトで構成される。さらに、第２レコードＲ２は、管理情報Ｒ２ａが「２３」〜「２７」のバイトに記憶され、レコードデータＲ２ｂが「２８」〜「３７」のバイトに記憶されている。
【００２８】
また、第３レコードＲ３は、「３８」〜「５２」のバイトで構成される。さらに、第３レコードＲ３は、管理情報Ｒ３ａが「３８」〜「４２」のバイトに記憶され、レコードデータＲ３ｂが「４３」〜「５２」のバイトに記憶されている。  
また、第４レコードＲ４は、「５３」〜「５７」のバイトで構成される。さらに、第４レコードＲ４は、管理情報Ｒ４ａが「５３」〜「５７」のバイトに記憶され、レコードデータＲ４ｂが「５８」〜「６７」のバイトに記憶されている。
【００２９】
次に、レコード構造ＥＦのデータに対するアクセスについて説明する。  
まず、レコード構造ＥＦのデータに対するレコード系のコマンドによる処理について説明する。  
ここでは、レコード構造ＥＦのデータに対するレコード系のコマンドによる処理例として、リードレコードコマンドを使用して複数のレコードが格納されているレコード構造ＥＦから全てのデータ（全てのレコード）を読み出す場合の処理例について説明する。  
たとえば、上記のようなレコード構造ＥＦに記憶されているデータの読出しには、レコード系のコマンドとして、リードレコードコマンドが使用できる。このリードレコードコマンドを受けたＩＣカードでは、当該コマンドで指定されるレコード構造ＥＦ内の各レコードごとにデータを読出しを行なう。
【００３０】
ここで、上記リードレコードコマンドを用いて図３に示すようなレコード構造ＥＦに記憶されている各レコードのデータ（全てのレコードのレコードデータ）を読み出す場合について説明する。  
まず、ＩＣカード処理装置２がレコード構造ＥＦ内の第１レコードＲ１を指定する第１のリードレコードコマンドを送信する。この第１のリードレコードコマンドを受信すると、ＩＣカード１は、不揮発性メモリ１６から当該レコード構造ＥＦにおける第１レコードＲ１のレコードデータ（「１３」〜「２２」）Ｒ１ａを読み出す。これにより、ＩＣカード１は、第１レコードＲ１における１０バイト分のレコードデータＲ１ｂを第１のリードレコードコマンドに対するレスポンスとしてＩＣカード処理装置２へ出力する。
【００３１】
上記第１のリードレコードコマンドに対するレスポンスとしての第１レコードＲ１のレコードデータＲ１ｂを受信すると、上記ＩＣカード処理装置２は、第２レコードＲ２を指定する第２のリードレコードコマンドを出力する。この第２のリードレコードコマンドを受信すると、ＩＣカード１は、不揮発性メモリ１６から当該レコード構造ＥＦにおける第２レコードＲ２のレコードデータ（「２８」〜「３７」）Ｒ２ａを読み出す。これにより、ＩＣカード１は、第２レコードＲ２における１０バイト分のレコードデータＲ２ｂを第２のリードレコードコマンドに対するレスポンスとしてＩＣカード処理装置２へ出力する。
【００３２】
上記第２のリードレコードコマンドに対するレスポンスとしての第２レコードＲ２のレコードデータＲ２ｂを受信すると、上記ＩＣカード処理装置２は、第３レコードＲ３を指定する第３のリードレコードコマンドを出力する。この第３のリードレコードコマンドを受信すると、ＩＣカード１は、不揮発性メモリ１６から当該レコード構造ＥＦにおける第３レコードＲ３のレコードデータ（「４３」〜「５２」）Ｒ３ａを読み出す。これにより、ＩＣカード１は、第３レコードＲ３における１０バイト分のレコードデータＲ３ｂを第３のリードレコードコマンドに対するレスポンスとしてＩＣカード処理装置２へ出力する。
【００３３】
上記第３のリードレコードコマンドに対するレスポンスとしての第３レコードＲ３のレコードデータＲ３ｂを受信すると、上記ＩＣカード処理装置２は、第４レコードＲ４を指定する第４のリードレコードコマンドを出力する。この第４のリードレコードコマンドを受信すると、ＩＣカード１は、不揮発性メモリ１６から当該レコード構造ＥＦにおける第４レコードＲ４のレコードデータ（「５８」〜「６７」）Ｒ４ａを読み出す。これにより、ＩＣカード１は、第４レコードＲ４における１０バイト分のレコードデータＲ４ｂを第４のリードレコードコマンドに対するレスポンスとしてＩＣカード処理装置２へ出力する。  
上記第４のリードレコードコマンドに対するレスポンスとしての第４レコードＲ４のレコードデータＲ４ｂを受信すると、上記ＩＣカード処理装置２は、当該レコード構造ＥＦにおける全てのレコードのデータを取得することになる。
【００３４】
すなわち、１つのレコード構造ＥＦに格納されている複数のレコードにアクセスする場合、レコード系のコマンドでは、アクセス対象とするレコードをそれぞれ指定するようになっている。たとえば、複数のレコードが存在するレコード構造ＥＦ内の全てのデータ（レコード構造ＥＦ内の全てのレコード）を読み出すには、レコード系のコマンドとしてのリードレコードコマンドを、当該レコード構造ＥＦに存在するレコードの数と同じ回数だけ実行しなければならない。
【００３５】
次に、レコード構造ＥＦのデータに対するバイナリ系のコマンドによるアクセスについて説明する。  
本実施例では、レコード構造ＥＦのデータに対するバイナリ系のコマンドによる処理例としての第１〜第５の処理例について説明する。  
まず、レコード構造ＥＦを指定するバイナリ系のコマンドに対する第１の処理例について説明する。  
たとえば、上記のようなレコード構造ＥＦに記憶されているデータの読出しには、バイナリ系のコマンドとして、リードバイナリコマンドが使用できる。このようなレコード構造ＥＦを指定するリードバイナリコマンド（バイナリ系のコマンド）を受けた場合、第１の処理例では、当該コマンドで指定されるレコード構造ＥＦに記憶されている各レコードのレコードデータを昇順に連結したデータをバイナリデータとして読出しを行なう。
【００３６】
図４は、第１の処理例を説明するためのフローチャートである。  
図４に示すように、まず、ＩＣカード１がＩＣカード処理装置２からレコード構造ＥＦを指定したコマンド（例えば、リードコマンド）を受信したものとする（ステップＳ１１）。すると、当該ＩＣカード１のＣＰＵ１１は、受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）かバイナリ系のコマンド（たとえば、リードバイナリコマンド）かを判断する（ステップＳ１２）。
【００３７】
この判断により受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）であると判断した場合（ステップＳ１２、ＮＯ）、上記ＩＣカード１のＣＰＵ１１は、当該レコード構造ＥＦに存在する各レコードのうち当該コマンドで指定されたレコードに対してアクセス処理（たとえば、読み出し処理）を実行する（ステップＳ１３）。
【００３８】
また、上記判断により受信したコマンドがバイナリ系のコマンド（たとえば、リードバイナリコマンド）であると判断した場合（ステップＳ１２、ＹＥＳ）、上記ＩＣカード１のＣＰＵ１１は、当該コマンドで指定されたレコード構造ＥＦに存在する全てのレコードの管理情報を読み込む（ステップＳ１４）。
【００３９】
当該レコード構造ＥＦ内の全てのレコードの管理情報を読み込むと、上記ＣＰＵ１１は、各レコードの管理情報に基づいて各レコードの昇順を判断する（ステップＳ１５）。ここで、レコードの昇順とは、各レコードが当該ＥＦに格納された日時（あるいはレコードデータが更新された日時）が古い順であっても良いし、管理情報として各レコードに付与されている各レコードの識別情報（たとえば、レコード番号）が小さい順であっても良い。たとえば、処理の履歴をレコードとして記憶するレコード構造ＥＦにおいて各レコードに順にレコード番号が付与される場合、レコード番号が小さい順に各レコードのレコードデータを並べると、履歴が古い順に処理履歴情報としてのレコードデータが並べられる。
【００４０】
また、上記ＣＰＵ１１は、各レコードの昇順を判断するとともに、各レコードの管理情報に基づいて各レコードのレコードデータの記憶領域を判断する（ステップＳ１６）。各レコードのレコードデータの記憶領域は、各レコードに記憶されているデータ長を示す情報（ｌｅｎｇｔｈ）などに基づいて判断される。
【００４１】
上記判断により各レコードの昇順と各レコードのレコードデータの記憶領域とを判断すると、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードのレコードデータを昇順に並べたデータに対して当該コマンドで要求された処理（たとえば、読出処理）を実行する（ステップＳ１７）。また、バイナリ系のコマンド（たとえば、リードバイナリコマンド）では、アクセスの開始位置を示すオフセット値が指定されている。このため、上記ステップＳ１７において、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードのレコードデータを昇順に並べたデータ（昇順に連結したデータ）のうち当該コマンドで指定されたオフセット値からのデータに対して処理を行う。
【００４２】
当該バイナリ系のコマンドで要求された処理が終了すると、上記ＣＰＵ１１は、処理結果をレスポンスとして上記ＩＣカード処理装置２へ送信し、当該コマンドに対する処理を終了する（ステップＳ１８）。たとえば、受信したコマンドがオフセット値がｎのリードバイナリコマンドである場合、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードのレコードデータを昇順に並べたデータのうちｎバイト目からのデータを読出し、その読み出したデータを上記ＩＣカード処理装置２へ送信する処理を行う。
【００４３】
上記第１の処理の具体例として、図３に示すようなレコード構造ＥＦを指定するリードバイナリコマンドを受信した場合について説明する。  
この場合、第１の処理例のＩＣカード１では、第１レコードＲ１から第４レコードＲ４の順(昇順)に、各レコードのレコードデータのみを連結したデータのうちオフセット値で指定されるデータからをバイナリデータとして読出し、当該リードバイナリコマンドに対するレスポンスとして出力する。
【００４４】
たとえば、図３に示すレコード構造ＥＦを指定するリードバイナリコマンドのオフセット値が「０」である場合、上記ＩＣカード１は、第１レコードＲ１から第４レコードＲ４の順(昇順)に、各レコードのレコードデータのみを連結した全データをバイナリデータとして読出す。すなわち、図３に示すレコード構造ＥＦを指定するオフセット値が「０」のリードバイナリコマンドに対して、第１の処理例のＩＣカード１では、「１３」〜「２２」（第１レコードＲ１のレコードデータＲ１ｂ）、「２８」〜「３７」（第２レコードＲ２のレコードデータＲ２ｂ）、「４３」〜「５２」（第３レコードＲ３のレコードデータＲ３ｂ）、「５８」〜「６７」（第４レコードＲ４のレコードデータＲ４ｂ）の順で並べた４０バイト分のデータが読み出して出力する
また、図３に示すレコード構造ＥＦを指定するリードバイナリコマンドのオフセット値が「７」である場合、上記ＩＣカード１は、第１レコードＲ１から第４レコードＲ４の順(昇順)に、各レコードのレコードデータのみを連結したデータのうち７バイト目からのデータをバイナリデータとして読出す。すなわち、図３に示すレコード構造ＥＦを指定するオフセット値が「７」のリードバイナリコマンドに対して、第１の処理例のＩＣカード１では、「１３」から７バイト目のデータである「２０」〜「２２」（先頭から７バイト分データを除く第１レコードＲ１のレコードデータＲ１ｂ）、「２８」〜「３７」（第２レコードＲ２のレコードデータＲ２ｂ）、「４３」〜「５２」（第３レコードＲ３のレコードデータＲ３ｂ）、「５８」〜「６７」（第４レコードＲ４のレコードデータＲ４ｂ）の順で並べた３３バイト分のデータが読み出して出力する。
【００４５】
上記のように、第１の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には当該コマンドで指定される当該ＥＦ内の特定のレコードに対してアクセスし、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には当該ＥＦ内の各レコードのレコードデータを昇順に連結したデータに対してアクセスするようになっている。
【００４６】
すなわち、第１の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には、当該レコード構造ＥＦを指定されたレコードごとに処理するレコード構造ＥＦとして取り扱い、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には、当該レコード構造ＥＦ内の各レコードのレコードデータを昇順に連結したデータをバイナリデータとして処理することにより、当該レコード構造ＥＦを擬似的に透過構造ＥＦとして取り扱うようにしたものである。  
これにより、上記第１の処理例によれば、レコード構造ＥＦに記憶されているデータに対して効率的にアクセスすることができる。
【００４７】
さらに、第１の処理例では、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合、各レコードのレコードデータを昇順に連結したデータをバイナリデータとして取り扱うようにしている。これにより、各レコードのレコードデータが昇順に連結されたデータを一括して処理することができる。たとえば、レコード構造ＥＦに処理履歴情報（ログデータ）を１件ごとに順にレコード番号を付与したレコードとして記憶している場合、リードバイナリコマンドなどのバイナリ系のコマンドにより、複数の処理に関する情報を履歴の古い順に並べたログデータを一括して読み出すなどの処理を行うことができる。
【００４８】
次に、レコード構造ＥＦを指定するバイナリ系のコマンドに対する第２の処理例について説明する。  
たとえば、上記のようなレコード構造ＥＦに記憶されているデータの読出しには、バイナリ系のコマンドとして、リードバイナリコマンドが使用できる。このようなレコード構造ＥＦを指定するリードバイナリコマンド（バイナリ系のコマンド）を受けた場合、第２の処理例では、当該コマンドで指定されるレコード構造ＥＦに記憶されている各レコードの管理情報とレコードデータとを昇順に連結したデータをバイナリデータとして読出しを行なう。
【００４９】
図５は、第２の処理例を説明するためのフローチャートである。  
図５に示すように、まず、ＩＣカード１がＩＣカード処理装置２からレコード構造ＥＦを指定したコマンド（例えば、リードコマンド）を受信したものとする（ステップＳ２１）。すると、当該ＩＣカード１のＣＰＵ１１は、受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）かバイナリ系のコマンド（たとえば、リードバイナリコマンド）かを判断する（ステップＳ２２）。
【００５０】
この判断により受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）であると判断した場合（ステップＳ２２、ＮＯ）、上記ＩＣカード１のＣＰＵ１１は、当該レコード構造ＥＦに存在する各レコードのうち当該コマンドで指定されたレコードに対して処理（たとえば、読み出し処理）を実行する（ステップＳ２３）。
【００５１】
また、上記判断により受信したコマンドがバイナリ系のコマンド（たとえば、リードバイナリコマンド）であると判断した場合（ステップＳ２２、ＹＥＳ）、上記ＩＣカード１のＣＰＵ１１は、当該コマンドで指定されたレコード構造ＥＦに存在する全てのレコードの管理情報を読み込む（ステップＳ２４）。
【００５２】
当該レコード構造ＥＦ内の全てのレコードの管理情報を読み込むと、上記ＣＰＵ１１は、各レコードの管理情報に基づいて各レコードの昇順を判断する（ステップＳ２５）。ここで、レコードの昇順とは、各レコードが当該ＥＦに格納された日時（あるいはレコードデータが更新された日時）が古い順であっても良いし、管理情報として各レコードに付与されている各レコードの識別情報（たとえば、レコード番号）が小さい順であっても良い。たとえば、処理の履歴をレコードとして記憶するレコード構造ＥＦにおいて各レコードに順にレコード番号が付与される場合、レコード番号が小さい順に各レコードの管理情報とレコードデータを並べると、履歴が古い順に管理情報と処理履歴情報とが並べられる。
【００５３】
また、上記ＣＰＵ１１は、各レコードの昇順を判断するとともに、各レコードの管理情報に基づいて各レコードの管理情報の記憶領域とレコードデータの記憶領域とを判断する（ステップＳ２６）。各レコードの管理情報の記憶領域およびレコードデータの記憶領域は、各レコードに記憶されているデータ長を示す情報（ｌｅｎｇｔｈ）などに基づいて判断される。
【００５４】
上記判断により各レコードの昇順と各レコードの管理情報及びレコードデータの記憶領域とを判断すると、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードの管理情報およびレコードデータを昇順に並べたデータに対して当該コマンドで要求された処理（たとえば、読出処理）を実行する（ステップＳ２７）。また、バイナリ系のコマンド（たとえば、リードバイナリコマンド）では、アクセスの開始位置を示すオフセット値が指定されている。このため、上記ステップＳ２７において、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードの管理情報及びレコードデータを昇順に並べたデータ（昇順に連結したデータ）のうち当該コマンドで指定されたオフセット値からのデータに対して処理を行う。
【００５５】
当該バイナリ系のコマンドで要求された処理が終了すると、上記ＣＰＵ１１は、処理結果をレスポンスとして上記ＩＣカード処理装置２へ送信し、当該コマンドに対する処理を終了する（ステップＳ２８）。たとえば、受信したコマンドがオフセット値がｎのリードバイナリコマンドである場合、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードの管理情報およびレコードデータを昇順に並べたデータのうちｎバイト目からのデータを読出し、その読み出したデータを上記ＩＣカード処理装置２へ送信する処理を行う。
【００５６】
上記第２の処理の具体例として、図３に示すようなレコード構造ＥＦを指定するリードバイナリコマンドを受信した場合について説明する。  
この場合、第２の処理例のＩＣカード１では、第１レコードＲ１から第４レコードＲ４の順(昇順)に、各レコードの管理情報およびレコードデータを連結したデータのうちオフセット値で指定されるデータからをバイナリデータとして読出し、当該リードバイナリコマンドに対するレスポンスとして出力する。
【００５７】
たとえば、図３に示すレコード構造ＥＦを指定するリードバイナリコマンドのオフセット値が「０」である場合、上記ＩＣカード１は、第１レコードＲ１から第４レコードＲ４の順(昇順)に、各レコードのレコードデータのみを連結した全データをバイナリデータとして読出す。すなわち、図３に示すレコード構造ＥＦを指定するオフセット値が「０」のリードバイナリコマンドに対して、第２の処理例のＩＣカード１では、「０８」〜「１２」（第１レコードＲ１の管理情報Ｒ１ａ）、「１３」〜「２２」（第１レコードＲ１のレコードデータＲ１ｂ）、「２３」〜「２７」（第２レコードＲ２の管理情報Ｒ２ａ）、「２８」〜「３７」（第２レコードＲ２のレコードデータＲ２ｂ）、「３８」〜「４２」（第３レコードＲ３の管理情報Ｒ３ａ）、「４３」〜「５２」（第３レコードＲ３のレコードデータＲ３ｂ）、「５３」〜「５７」（第４レコードＲ４の管理情報Ｒ４ａ）、「５８」〜「６７」（第４レコードＲ４のレコードデータＲ４ｂ）の順で並べた６０バイト分のデータを読み出して出力する
また、図３に示すレコード構造ＥＦを指定するリードバイナリコマンドのオフセット値が「７」である場合、上記ＩＣカード１は、第１レコードＲ１から第４レコードＲ４の順(昇順)に、各レコードの管理情報およびレコードデータを連結したデータのうち７バイト目からのデータをバイナリデータとして読出す。すなわち、図３に示すレコード構造ＥＦを指定するオフセット値が「７」のリードバイナリコマンドに対して、第２の処理例のＩＣカード１では、「０８」から７バイト（「０８」〜「１２」、「１３」〜「１４」）目のデータである「１５」〜「２２」（第１レコードＲ１の管理情報Ｒ１ａの５バイト分とレコードデータＲ１ｂの先頭から２バイト分のデータを除くデータ）、「２３」〜「３７」（第２レコードＲ２の管理情報Ｒ２ａ及びレコードデータＲ２ｂ）、「３８」〜「５２」（第３レコードＲ３の管理情報Ｒ３ａ及びレコードデータＲ３ｂ）、「５３」〜「６７」（第４レコードＲ４の管理情報Ｒ４ａ及びレコードデータＲ４ｂ）の順で並べた５３バイト分のデータを読み出して出力する。
【００５８】
上記のように、第２の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には当該コマンドで指定される当該ＥＦ内の特定のレコードに対してアクセスし、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には当該ＥＦ内の各レコードの管理情報およびレコードデータを昇順に連結したデータに対してアクセスするようになっている。
【００５９】
すなわち、第２の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には、指定されたレコードごとに当該ＥＦ内のデータを処理するレコード構造ＥＦとして取り扱い、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には、当該レコード構造ＥＦ内の各レコードの管理情報及びレコードデータを昇順に連結したデータをバイナリデータとして処理することにより、当該レコード構造ＥＦを擬似的に透過構造ＥＦとして取り扱うようにしたものである。  
これにより、上記第２の処理例によれば、レコード構造ＥＦに記憶されているデータに対して効率的にアクセスすることができる。
【００６０】
さらに、第２の処理例では、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合、各レコードの管理情報およびレコードデータを昇順に連結したデータをバイナリデータとして取り扱うようにしている。これにより、各レコードの管理情報およびレコードデータが昇順に連結されたデータを一括して処理することができる。たとえば、レコード構造ＥＦに処理履歴情報（ログデータ）を１件ごとに順にレコード番号を付与したレコードとして記憶している場合、リードバイナリコマンドなどのバイナリ系のコマンドにより、複数の処理を履歴の古い順に並べた管理情報とログデータとを一括して読み出すなどの処理を行うことができる。
【００６１】
次に、レコード構造ＥＦを指定するバイナリ系のコマンドに対する第３の処理例について説明する。  
たとえば、上記のようなレコード構造ＥＦに記憶されているデータの読出しには、バイナリ系のコマンドとして、リードバイナリコマンドが使用できる。このようなレコード構造ＥＦを指定するリードバイナリコマンド（バイナリ系のコマンド）を受けた場合、第３の処理例では、当該コマンドで指定されるレコード構造ＥＦに記憶されている各レコードのレコードデータを降順に連結したデータをバイナリデータとして読出しを行なう。
【００６２】
図６は、第３の処理例を説明するためのフローチャートである。  
図６に示すように、まず、ＩＣカード１がＩＣカード処理装置２からレコード構造ＥＦを指定したコマンド（例えば、リードコマンド）を受信したものとする（ステップＳ３１）。すると、当該ＩＣカード１のＣＰＵ１１は、受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）かバイナリ系のコマンド（たとえば、リードバイナリコマンド）かを判断する（ステップＳ３２）。
【００６３】
この判断により受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）であると判断した場合（ステップＳ３２、ＮＯ）、上記ＩＣカード１のＣＰＵ１１は、当該レコード構造ＥＦに存在する各レコードのうち当該コマンドで指定されたレコードに対してアクセス処理（たとえば、読み出し処理）を実行する（ステップＳ３３）。
【００６４】
また、上記判断により受信したコマンドがバイナリ系のコマンド（たとえば、リードバイナリコマンド）であると判断した場合（ステップＳ３２、ＹＥＳ）、上記ＩＣカード１のＣＰＵ１１は、当該コマンドで指定されたレコード構造ＥＦに存在する全てのレコードの管理情報を読み込む（ステップＳ３４）。
【００６５】
当該レコード構造ＥＦ内の全てのレコードの管理情報を読み込むと、上記ＣＰＵ１１は、各レコードの管理情報に基づいて各レコードの降順を判断する（ステップＳ３５）。ここで、レコードの降順とは、各レコードが当該ＥＦに格納された日時（あるいはレコードデータが更新された日時）が新しい順であっても良いし、管理情報として各レコードに付与されている各レコードの識別情報が大きい順であっても良い。たとえば、処理の履歴をレコードとして記憶するレコード構造ＥＦにおいて各レコードに順にレコード番号が付与される場合、レコード番号が大きい順に各レコードのレコードデータを並べると、履歴が新しい順に処理履歴情報としてのレコードデータが並べられる。
【００６６】
また、上記ＣＰＵ１１は、各レコードの降順を判断するとともに、各レコードの管理情報に基づいて各レコードのレコードデータの記憶領域を判断する（ステップＳ３６）。各レコードのレコードデータの記憶領域は、各レコードに記憶されているデータ長を示す情報（ｌｅｎｇｔｈ）などに基づいて判断される。
【００６７】
上記判断により各レコードの降順と各レコードのレコードデータの記憶領域とを判断すると、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードのレコードデータを降順に並べたデータに対して当該コマンドで要求された処理（たとえば、読出処理）を実行する（ステップＳ３７）。また、バイナリ系のコマンド（たとえば、リードバイナリコマンド）では、アクセスの開始位置を示すオフセット値が指定されている。このため、上記ステップＳ３７において、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードのレコードデータを降順に並べたデータ（降順に連結したデータ）のうち当該コマンドで指定されたオフセット値からのデータに対して処理を行う。
【００６８】
当該バイナリ系のコマンドで要求された処理が終了すると、上記ＣＰＵ１１は、処理結果をレスポンスとして上記ＩＣカード処理装置２へ送信し、当該コマンドに対する処理を終了する（ステップＳ３８）。たとえば、受信したコマンドがオフセット値がｎのリードバイナリコマンドである場合、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードのレコードデータを降順に並べたデータのうちｎバイト目からのデータを読出し、その読み出したデータを上記ＩＣカード処理装置２へ送信する処理を行う。
【００６９】
上記第３の処理の具体例として、図３に示すようなレコード構造ＥＦを指定するリードバイナリコマンドを受信した場合について説明する。  
この場合、第３の処理例のＩＣカード１では、第４レコードＲ４から第１レコードＲ１の順(降順)に、各レコードのレコードデータのみを連結したデータのうちオフセット値で指定されるデータからをバイナリデータとして読出し、当該リードバイナリコマンドに対するレスポンスとして出力する。
【００７０】
たとえば、図３に示すレコード構造ＥＦを指定するリードバイナリコマンドのオフセット値が「０」である場合、上記ＩＣカード１は、第４レコードＲ４から第１レコードＲ１の順(昇順)に、各レコードのレコードデータのみを連結した全データをバイナリデータとして読出す。すなわち、図３に示すレコード構造ＥＦを指定するオフセット値が「０」のリードバイナリコマンドに対して、第３の処理例のＩＣカード１では、「５８」〜「６７」（第４レコードＲ４のレコードデータＲ４ｂ）、「４３」〜「５２」（第３レコードＲ３のレコードデータＲ３ｂ）、「２８」〜「３７」（第２レコードＲ２のレコードデータＲ２ｂ）、「１３」〜「２２」（第１レコードＲ１のレコードデータＲ１ｂ）の順で並べた４０バイト分のデータを読み出して出力する
また、図３に示すレコード構造ＥＦを指定するリードバイナリコマンドのオフセット値が「７」である場合、上記ＩＣカード１は、第４レコードＲ４から第１レコードＲ１の順(降順)に、各レコードのレコードデータのみを連結したデータのうち７バイト目からのデータをバイナリデータとして読出す。すなわち、図３に示すレコード構造ＥＦを指定するオフセット値が「７」のリードバイナリコマンドに対して、第３の処理例のＩＣカード１では、「５８」から７バイト目のデータである「６５」〜「６７」（先頭から７バイト分データを除く第４レコードＲ４のレコードデータＲ４ｂ）、「４３」〜「５２」（第３レコードＲ３のレコードデータＲ３ｂ）、「２８」〜「３７」（第２レコードＲ２のレコードデータＲ２ｂ）、「１３」〜「２２」（第１レコードＲ１のレコードデータＲ１ｂ）の順で並べた３３バイト分のデータを読み出して出力する。
【００７１】
上記のように、第３の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には当該コマンドで指定される当該ＥＦ内の特定のレコードに対してアクセスし、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には当該ＥＦ内の各レコードのレコードデータを降順に連結したデータに対してアクセスするようになっている。
【００７２】
すなわち、第３の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には、当該レコード構造ＥＦを指定されたレコードごとに処理するレコード構造ＥＦとして取り扱い、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には、当該レコード構造ＥＦ内の各レコードのレコードデータを降順に連結したデータをバイナリデータとして処理することにより、当該レコード構造ＥＦを擬似的に透過構造ＥＦとして取り扱うようにしたものである。  
これにより、上記第３の処理例によれば、レコード構造ＥＦに記憶されているデータに対して効率的にアクセスすることができる。
【００７３】
さらに、第３の処理例では、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合、各レコードのレコードデータを降順に連結したデータをバイナリデータとして取り扱うようにしている。これにより、各レコードのレコードデータが降順に連結されたデータを一括して処理することができる。たとえば、レコード構造ＥＦに処理履歴情報（ログデータ）を１件ごとに順にレコード番号を付与したレコードとして記憶している場合、リードバイナリコマンドなどのバイナリ系のコマンドにより、複数の処理に関する情報を履歴の新しい順に並べたログデータを一括して読み出すなどの処理を行うことができる。
【００７４】
次に、レコード構造ＥＦを指定するバイナリ系のコマンドに対する第４の処理例について説明する。  
たとえば、上記のようなレコード構造ＥＦに記憶されているデータの読出しには、バイナリ系のコマンドとして、リードバイナリコマンドが使用できる。このようなレコード構造ＥＦを指定するリードバイナリコマンド（バイナリ系のコマンド）を受けた場合、第２の処理例では、当該コマンドで指定されるレコード構造ＥＦに記憶されている各レコードの管理情報とレコードデータとを降順に連結したデータをバイナリデータとして読出しを行なう。
【００７５】
図７は、第４の処理例を説明するためのフローチャートである。  
図７に示すように、まず、ＩＣカード１がＩＣカード処理装置２からレコード構造ＥＦを指定したコマンド（例えば、リードコマンド）を受信したものとする（ステップＳ４１）。すると、当該ＩＣカード１のＣＰＵ１１は、受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）かバイナリ系のコマンド（たとえば、リードバイナリコマンド）かを判断する（ステップＳ４２）。
【００７６】
この判断により受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）であると判断した場合（ステップＳ４２、ＮＯ）、上記ＩＣカード１のＣＰＵ１１は、当該レコード構造ＥＦに存在する各レコードのうち当該コマンドで指定されたレコードに対して処理（たとえば、読み出し処理）を実行する（ステップＳ４３）。
【００７７】
また、上記判断により受信したコマンドがバイナリ系のコマンド（たとえば、リードバイナリコマンド）であると判断した場合（ステップＳ４２、ＹＥＳ）、上記ＩＣカード１のＣＰＵ１１は、当該コマンドで指定されたレコード構造ＥＦに存在する全てのレコードの管理情報を読み込む（ステップＳ４４）。
【００７８】
当該レコード構造ＥＦ内の全てのレコードの管理情報を読み込むと、上記ＣＰＵ１１は、各レコードの管理情報に基づいて各レコードの降順を判断する（ステップＳ４５）。ここで、レコードの降順とは、各レコードが当該ＥＦに格納された日時（あるいはレコードデータが更新された日時）が新しい順であっても良いし、管理情報として各レコードに付与されている各レコードの識別情報が大きい順であっても良い。たとえば、処理の履歴をレコードとして記憶するレコード構造ＥＦにおいて各レコードに順にレコード番号が付与される場合、レコード番号が大きい順に各レコードのレコードデータを並べると、履歴が新しい順に管理情報と処理履歴情報とが並べられる。
【００７９】
また、上記ＣＰＵ１１は、各レコードの降順を判断するとともに、各レコードの管理情報に基づいて各レコードの管理情報の記憶領域とレコードデータの記憶領域とを判断する（ステップＳ４６）。各レコードの管理情報の記憶領域およびレコードデータの記憶領域は、各レコードに記憶されているデータ長を示す情報（ｌｅｎｇｔｈ）などに基づいて判断される。
【００８０】
上記判断により各レコードの降順と各レコードの管理情報及びレコードデータの記憶領域とを判断すると、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードの管理情報およびレコードデータを降順に並べたデータに対して当該コマンドで要求された処理（たとえば、読出処理）を実行する（ステップＳ４７）。また、バイナリ系のコマンド（たとえば、リードバイナリコマンド）では、アクセスの開始位置を示すオフセット値が指定されている。このため、上記ステップＳ４７において、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードの管理情報及びレコードデータを降順に並べたデータ（降順に連結したデータ）のうち当該コマンドで指定されたオフセット値からのデータに対して処理を行う。
【００８１】
当該バイナリ系のコマンドで要求された処理が終了すると、上記ＣＰＵ１１は、処理結果をレスポンスとして上記ＩＣカード処理装置２へ送信し、当該コマンドに対する処理を終了する（ステップＳ４８）。たとえば、受信したコマンドがオフセット値がｎのリードバイナリコマンドである場合、上記ＣＰＵ１１は、当該レコード構造ＥＦ内の各レコードの管理情報およびレコードデータを降順に並べたデータのうちｎバイト目からのデータを読出し、その読み出したデータを上記ＩＣカード処理装置２へ送信する処理を行う。
【００８２】
上記第４の処理の具体例として、図３に示すようなレコード構造ＥＦを指定するリードバイナリコマンドを受信した場合について説明する。  
この場合、第４の処理例のＩＣカード１では、第４レコードＲ４から第１レコードＲ１の順(降順)に、各レコードの管理情報およびレコードデータを連結したデータのうちオフセット値で指定されるデータからをバイナリデータとして読出し、当該リードバイナリコマンドに対するレスポンスとして出力する。
【００８３】
たとえば、図３に示すレコード構造ＥＦを指定するリードバイナリコマンドのオフセット値が「０」である場合、上記ＩＣカード１は、第４レコードＲ４から第１レコードＲ１の順(降順)に、各レコードのレコードデータのみを連結した全データをバイナリデータとして読出す。すなわち、図３に示すレコード構造ＥＦを指定するオフセット値が「０」のリードバイナリコマンドに対して、第４の処理例のＩＣカード１では、「５３」〜「５７」（第４レコードＲ４の管理情報Ｒ４ａ）、「５８」〜「６７」（第４レコードＲ４のレコードデータＲ４ｂ）、「３８」〜「４２」（第３レコードＲ３の管理情報Ｒ３ａ）、「４３」〜「５２」（第３レコードＲ３のレコードデータＲ３ｂ）、「２３」〜「２７」（第２レコードＲ２の管理情報Ｒ２ａ）、「２８」〜「３７」（第２レコードＲ２のレコードデータＲ２ｂ）、「０８」〜「１２」（第１レコードＲ１の管理情報Ｒ１ａ）、「１３」〜「２２」（第１レコードＲ１のレコードデータＲ１ｂ）の順で並べた６０バイト分のデータが読み出して出力する
また、図３に示すレコード構造ＥＦを指定するリードバイナリコマンドのオフセット値が「７」である場合、上記ＩＣカード１は、第４レコードＲ４から第１レコードＲ１の順(降順)に、各レコードの管理情報およびレコードデータを連結したデータのうち７バイト目からのデータをバイナリデータとして読出す。すなわち、図３に示すレコード構造ＥＦを指定するオフセット値が「７」のリードバイナリコマンドに対して、第２の処理例のＩＣカード１では、「５３」から７バイト（「５３」〜「５７」、「５８」〜「５９」）目のデータである「６０」〜「６７」（第４レコードＲ４の管理情報Ｒ４ａの５バイト分とレコードデータＲ４ｂの先頭から２バイト分のデータを除くデータ）、「３８」〜「５２」（第３レコードＲ３の管理情報Ｒ３ａ及びレコードデータＲ３ｂ）、「２３」〜「３７」（第２レコードＲ２の管理情報Ｒ２ａ及びレコードデータＲ２ｂ）、「０８」〜「２２」（第１レコードＲ１の管理情報Ｒ１ａ及びレコードデータＲ１ｂ）の順で並べた５３バイト分のデータが読み出して出力する。
【００８４】
上記のように、第４の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には当該コマンドで指定される当該ＥＦ内の特定のレコードに対してアクセスし、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には当該ＥＦ内の各レコードの管理情報およびレコードデータを降順に連結したデータに対してアクセスするようになっている。
【００８５】
すなわち、第４の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には、指定されたレコードごとに当該ＥＦ内のデータを処理するレコード構造ＥＦとして取り扱い、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には、当該レコード構造ＥＦ内の各レコードの管理情報及びレコードデータを降順に連結したデータをバイナリデータとして処理することにより、当該レコード構造ＥＦを擬似的に透過構造ＥＦとして取り扱うようにしたものである。  
これにより、上記第４の処理例によれば、レコード構造ＥＦに記憶されているデータに対して効率的にアクセスすることができる。
【００８６】
さらに、第４の処理例では、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合、各レコードの管理情報およびレコードデータを降順に連結したデータをバイナリデータとして取り扱うようにしている。これにより、各レコードの管理情報およびレコードデータが降順に連結されたデータを一括して処理することができる。たとえば、レコード構造ＥＦに処理履歴情報（ログデータ）を１件ごとに順にレコード番号を付与してレコードとして記憶している場合、リードバイナリコマンドなどのバイナリ系のコマンドにより、複数の処理を履歴の新しい順に並べた管理情報とログデータとを一括して読み出すなどの処理を行うことができる。
【００８７】
次に、レコード構造ＥＦを指定するバイナリ系のコマンドに対する第５の処理例について説明する。  
この第５の処理例では、レコード構造ＥＦを指定するバイナリ系のコマンドにおけるパラメータ等によりバイナリデータとして取り扱うデータの構成を選択するようにしたものである。すなわち、第５の処理例では、上位装置がレコード構造ＥＦ内のデータから生成するバイナリデータ（レコード構造ＥＦを擬似的に透過構造ＥＦとして取り扱うためのデータ）の構成をバイナリ系のコマンドにおけるパラメータで指定し、ＩＣカードでは、レコード構造ＥＦを指定するバイナリ系のコマンドに対して、当該コマンドのパラメータで指定されたデータ構成のバイナリデータに対して処理を行うようにするものである。
【００８８】
たとえば、上記第１の処理例では、レコード構造ＥＦ内の各レコードのレコードデータを昇順に連結したデータをバイナリデータとして取り扱う。上記第２の処理例では、レコード構造ＥＦ内の各レコードの管理情報及びレコードデータを昇順に連結したデータをバイナリデータとして取り扱う。上記第３の処理例では、レコード構造ＥＦ内の各レコードのレコードデータを降順に連結したデータをバイナリデータとして取り扱う。上記第４の処理例では、レコード構造ＥＦ内の各レコードの管理情報及びレコードデータを降順に連結したデータをバイナリデータとして取り扱う。本実施の形態では、第５の処理例として、バイナリ系のコマンドにおけるパラメータに基づいて、第１〜第４の処理例の何れかを選択的に実行する処理について説明する。
【００８９】
図８は、第５の処理例を説明するためのフローチャートである。  
図８に示すように、まず、ＩＣカード１がＩＣカード処理装置２からレコード構造ＥＦを指定したコマンド（例えば、リードコマンド）を受信したものとする（ステップＳ５１）。すると、当該ＩＣカード１のＣＰＵ１１は、受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）かバイナリ系のコマンド（たとえば、リードバイナリコマンド）かを判断する（ステップＳ５２）。
【００９０】
この判断により受信したコマンドがレコード系のコマンド（たとえば、リードレコードコマンド）であると判断した場合（ステップＳ５２、ＮＯ）、上記ＩＣカード１のＣＰＵ１１は、当該レコード構造ＥＦに存在する各レコードのうち当該コマンドで指定されたレコードに対して処理（たとえば、読み出し処理）を実行する（ステップＳ５３）。
【００９１】
また、上記判断により受信したコマンドがバイナリ系のコマンド（たとえば、リードバイナリコマンド）であると判断した場合（ステップＳ５２、ＹＥＳ）、上記ＩＣカード１のＣＰＵ１１は、さらに、当該コマンドにおけるパラメータにより当該レコード構造ＥＦのデータをバイナリデータの構成を判断する（ステップＳ５４〜Ｓ５６）。すなわち、ＩＣカード１のＣＰＵ１１は、当該コマンドにおけるパラメータに基づいて、各レコードのどの部分をバイナリデータとして取り扱うかを判断するとともに（ステップＳ５４）、各レコードの連結順序を判断する（ステップＳ５５、Ｓ５６）。
【００９２】
たとえば、本実施の形態では、上記ＣＰＵ１１は、上記第１の処理例と同様に各レコードのレコードデータを昇順に連結したデータをバイナリデータとして取り扱うか、上記第２の処理例と同様に各レコードの管理情報およびレコードデータを昇順に連結したデータをバイナリデータとして取り扱うか、上記第３の処理例と同様に各レコードのレコードデータを降順に連結したデータをバイナリデータとして取り扱うか、上記第４の処理例と同様に各レコードの管理情報およびレコードデータを降順に連結したデータをバイナリデータとして取り扱うか、を判断する。
【００９３】
ここで、当該レコード構造ＥＦに存在する各レコードのレコードデータを昇順に連結したデータをバイナリデータとして取り扱うと判断した場合（ステップＳ５４でＹＥＳ、かつ、ステップＳ５５でＹＥＳ）、上記ＣＰＵ１１は、上記第１の処理例で説明した図４のステップＳ１４〜Ｓ１８と同様に、当該ＥＦ内の全レコードの管理情報を読み込み（ステップＳ６４）、各レコードの昇順を判断し（ステップＳ６５）、各レコードのレコードデータの記憶領域を判断し（ステップＳ６６）、昇順に連結した各レコードのレコードデータのうち当該コマンドで指定されたオフセット値からのデータに対して処理を実行し（ステップＳ６７）、その処理結果をＩＣカード処理装置２へ送信する（ステップＳ６８）。
【００９４】
また、各レコードの管理情報及びレコードデータを昇順に連結したデータをバイナリデータとして取り扱うと判断した場合（ステップＳ５４でＮＯ、かつ、ステップＳ５６でＹＥＳ）、上記ＣＰＵ１１は、上記第２の処理例で説明した図５のステップＳ２４〜Ｓ２８と同様に、当該ＥＦ内の全レコードの管理情報を読み込み（ステップＳ７４）、各レコードの昇順を判断し（ステップＳ７５）、各レコードの管理情報及びレコードデータの記憶領域を判断し（ステップＳ７６）、昇順に連結した各レコードの管理情報及びレコードデータのうち当該コマンドで指定されたオフセット値からのデータに対して処理を実行し（ステップＳ７７）、その処理結果をＩＣカード処理装置２へ送信する（ステップＳ７８）。
【００９５】
また、各レコードのレコードデータを降順に連結したデータをバイナリデータとして取り扱うと判断した場合（ステップＳ５４でＹＥＳ、かつ、ステップＳ５５でＮＯ）、上記ＣＰＵ１１は、上記第３の処理例で説明した図６のステップＳ３４〜Ｓ３８と同様に、当該ＥＦ内の全レコードの管理情報を読み込み（ステップＳ８４）、各レコードの降順を判断し（ステップＳ８５）、各レコードのレコードデータの記憶領域を判断し（ステップＳ８６）、降順に連結した各レコードのレコードデータのうち当該コマンドで指定されたオフセット値からのデータに対して処理を実行し（ステップＳ８７）、その処理結果をＩＣカード処理装置２へ送信する（ステップＳ８８）。
【００９６】
また、各レコードの管理情報及びレコードデータを降順に連結したデータをバイナリデータとして取り扱うと判断した場合（ステップＳ５４でＮＯ、かつ、ステップＳ５５でＮＯ）、上記ＣＰＵ１１は、上記第４の処理例で説明した図７のステップＳ４４〜Ｓ４８と同様に、当該ＥＦ内の全レコードの管理情報を読み込み（ステップＳ９４）、各レコードの降順を判断し（ステップＳ９５）、各レコードの管理情報及びレコードデータの記憶領域を判断し（ステップＳ９６）、降順に連結した各レコードの管理情報及びレコードデータのうち当該コマンドで指定されたオフセット値からのデータに対して処理を実行し（ステップＳ９７）、その処理結果をＩＣカード処理装置２へ送信する（ステップＳ９８）。
【００９７】
上記のように、第５の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には当該コマンドで指定される当該ＥＦ内の特定のレコードに対してアクセスし、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には当該ＥＦ内の各レコードのデータに対して当該コマンドで指定された構成のデータとしてアクセスするようになっている。
【００９８】
すなわち、第５の処理例では、レコード構造ＥＦを指定するレコード系のコマンドを受信した場合には、指定されたレコードごとに当該ＥＦ内のデータを処理するレコード構造ＥＦとして取り扱い、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合には、当該レコード構造ＥＦ内の各レコードのデータを当該コマンドで指定された構成のバイナリデータとして処理することにより、当該レコード構造ＥＦを擬似的に透過構造ＥＦとして取り扱うようにしたものである。  
これにより、上記第５の処理例によれば、レコード構造ＥＦに記憶されているデータに対して効率的にアクセスすることができる。
【００９９】
さらに、第５の処理例では、レコード構造ＥＦを指定するバイナリ系のコマンドを受信した場合、各レコードのデータを当該コマンドのパラメータなどで指定された構成のバイナリデータとして取り扱うようにしている。これにより、レコード構造ＥＦに複数のレコードとして記憶されているデータに所望のデータ構成のバイナリデータとしてアクセスすることが可能となる。
【図面の簡単な説明】
【０１００】
【図１】この発明の実施の形態に係る携帯可能電子装置としてのＩＣカード１のハードウエア構成を概略的に示すブロック図。
【図２】不揮発性メモリに記憶されるデータのファイル構成例を示す図。
【図３】レコード構造ＥＦに記憶されるデータの構成例を示す図。
【図４】第１の処理例を説明するためのフローチャート。
【図５】第２の処理例を説明するためのフローチャート。
【図６】第３の処理例を説明するためのフローチャート。
【図７】第４の処理例を説明するためのフローチャート。
【図８】第５の処理例を説明するためのフローチャート。
【符号の説明】
【０１０１】
１…ＩＣカード、２…ＩＣカード処理装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…通信ユニット、１５…コプロセッサ、１６…不揮発性メモリ、Ｃａ…モジュール、Ｃ…筐体、Ｒ１…レコード、Ｒ１ａ…管理情報、Ｒ１ｂ…レコードデータ、Ｒ２…レコード、Ｒ２ａ…管理情報、Ｒ２ｂ…レコードデータ、Ｒ３…レコード、Ｒ３ａ…管理情報、Ｒ３ｂ…レコードデータ、Ｒ４…レコード、Ｒ４ａ…管理情報、Ｒ４ｂ…レコードデータ
【図１】
2007102559.tif 000003
【図２】
2007102559.tif 000004
【図３】
2007102559.tif 000005
【図４】
2007102559.tif 000006
【図５】
2007102559.tif 000007
【図６】
2007102559.tif 000008
【図７】
2007102559.tif 000009
【図８】
2007102559.tif 000010