KR20070038400A - 휴대 가능 전자 장치 및 휴대 가능 전자 장치의 제어 방법 - Google Patents
휴대 가능 전자 장치 및 휴대 가능 전자 장치의 제어 방법 Download PDFInfo
- Publication number
- KR20070038400A KR20070038400A KR1020060086814A KR20060086814A KR20070038400A KR 20070038400 A KR20070038400 A KR 20070038400A KR 1020060086814 A KR1020060086814 A KR 1020060086814A KR 20060086814 A KR20060086814 A KR 20060086814A KR 20070038400 A KR20070038400 A KR 20070038400A
- Authority
- KR
- South Korea
- Prior art keywords
- record
- data
- command
- binary
- processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/357—Cards having a plurality of specified features
- G06Q20/3576—Multiple memory zones on card
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/357—Cards having a plurality of specified features
- G06Q20/3576—Multiple memory zones on card
- G06Q20/35765—Access rights to memory zones
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Credit Cards Or The Like (AREA)
Abstract
IC 카드(1)는, 관리 정보와 레코드 데이터를 갖는 레코드 구조의 파일을 기억하는 메모리(16)를 갖고, 상기 메모리(16)에 기억되어 있는 레코드 구조의 파일을 지정하는 레코드계의 커맨드를 수신한 경우에는, 지정된 레코드마다 해당 파일에 기억되어 있는 데이터를 처리하고, 레코드 구조의 파일을 지정하는 바이너리계의 커맨드를 수신한 경우에는, 해당 파일에 기억되어 있는 각 레코드의 레코드 데이터, 혹은, 각 레코드의 관리 정보 및 레코드 데이터를 오름차순 혹은 내림차순으로 연결한 데이터를 바이너리 데이터로서 처리한다.
바이너리 데이터, 불휘발성 메모리, IC 카드, 레코드
Description
도 1은, 본 발명의 실시예에 따른 휴대 가능 전자 장치로서의 IC 카드(1)의 하드웨어 구성을 개략적으로 도시하는 블록도.
도 2는, 불휘발성 메모리에 기억되는 데이터의 파일 구성예를 도시하는 도면.
도 3은, 레코드 구조 EF에 기억되는 데이터의 구성예를 도시하는 도면.
도 4는, 제1 처리예를 설명하기 위한 플로우차트.
도 5는, 제2 처리예를 설명하기 위한 플로우차트.
도 6은, 제3 처리예를 설명하기 위한 플로우차트.
도 7은, 제4 처리예를 설명하기 위한 플로우차트.
도 8은, 제5 처리예를 설명하기 위한 플로우차트.
<도면의 주요 부분에 대한 부호의 설명>
1 : IC 카드
2 : IC 카드 처리 장치
11 : CPU
12 : ROM
13 : RAM
14 : 통신 유닛(UART)
15 : 코프로세서
16 : 불휘발성 메모리
본 발명은, 예를 들면, 데이터의 기입이나 재기입 가능한 불휘발성 메모리 및 CPU 등의 제어 소자를 갖고, 외부로부터 입력되는 커맨드에 대응한 처리를 실행하는 IC 카드 등의 휴대 가능 전자 장치에 관한 것이다.
종래, 휴대 가능 전자 장치로서는, 예를 들면, 메모리나 CPU 등의 기능을 갖은 IC 모듈이 플라스틱판 등으로 구성되는 케이스 내에 매설되어 있는 IC 카드가 있다. 이와 같은 IC 카드에서는, 외부 장치로부터의 커맨드에 따라 재기입 가능한 불휘발성 메모리에 데이터를 기입하거나, 불휘발성 메모리로부터 데이터를 판독하거나 하도록 되어 있다. 예를 들면, IC 카드의 표준 사양인 ISO7816에서는,IC 카드의 불휘발성 메모리에 기억하는 데이터의 파일 데이터 구조로서, 투과 구조(transparent) EF(엘리멘터리 파일:Elementary File) 및 레코드 구조 EF 등이 정의되어 있다.
상기 투과 구조 EF에는, 구조화되어 있지 않은 데이터(바이너리 데이터)가 기억된다. 이와 같은 투과 구조 EF에 기억되어 있는 데이터에는, 종래의 IC 카드 에서는, 바이너리계의 커맨드로만 액세스하도록 되어 있다. 이 때문에, 상기 투과 구조 EF에서는, 데이터의 구조에 자유도가 높다.
또한, 상기 레코드 구조 EF에는, 관리 정보와 실제 데이터(레코드 데이터)를 갖는 소정의 형식의 레코드가 데이터로서 기억된다. 이 때문에 레코드 구조 EF에서는, 데이터의 관리가 용이하다. 이와 같은 레코드 구조 EF에 기억되어 있는 데이터(레코드)에는, 종래의 IC 카드에서는, 레코드계의 커맨드로만 액세스하도록 되어 있다.
상기 바이너리계의 커맨드에서는, 상위 장치가 EF 내의 데이터에의 액세스를 오프셋으로 지정한다. 이 때문에, 상기 바이너리계의 커맨드에서는,EF 내의 데이터를 일괄하여 처리 대상으로서 지정하는 것이 가능하며, 바이너리계의 커맨드에 대한 IC 카드 내의 처리도 단순하다. 그러나, 바이너리계의 커맨드에서는, 처리 대상으로 되는 EF 내의 데이터를 직접적으로 지정할 필요가 있기 때문에, EF 내의 데이터 구조 등이 불분명하면 원하는 데이터를 처리 대상으로서 지정할 수 없다.
이에 대하여, 상기 레코드계의 커맨드에서는, 상위 장치는, IC 카드에 대하여 EF 내의 데이터에의 액세스를 레코드로 지정한다. 이 때문에, 상위 장치에서는,IC 카드 내의 데이터(레코드)를 지정하는 것이 용이하다. 그러나, 레코드계의 커맨드에서는, 각 레코드마다 처리 대상으로 하는 데이터를 지정할 필요가 있기 때문에, EF 내의 복수의 레코드를 처리 대상으로서 지정하는 경우이어도, 복수의 레코드계의 커맨드에서, 각 레코드를 처리 대상으로서 지정해야 한다.
특히, IC 카드 등의 휴대 가능 전자 장치에서는, 운용 형태에서 처리 시간이 한정되어 있는 경우가 많다. 이 때문에, IC 카드 등의 휴대 가능 전자 장치에는, 메모리에 기억하고 있는 데이터에의 효율적인 액세스에 의한 처리의 고속화 혹은 처리의 단순화 등이 요구되고 있다.
본 발명의 일 형태에서는, 데이터에의 효율적인 액세스가 가능한 휴대 가능 전자 장치 및 휴대 가능 전자 장치의 제어 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 형태로서의 휴대 가능 전자 장치는, 관리 정보와 레코드 데이터를 갖는 레코드를 저장한 파일을 기억하는 메모리와, 외부 장치와의 데이터 통신을 행하는 통신부와, 이 통신부에 의해 상기 메모리에 기억되어 있는 상기 레코드를 저장한 파일을 지정한 바이너리 데이터 처리용의 바이너리 커맨드를 수신한 경우, 해당 파일에 저장되어 있는 각 레코드의 데이터를 바이너리 데이터로서 처리하는 처리부를 갖는다.
본 발명의 일 형태로서 휴대 가능 전자 장치의 제어 방법은, 장치로부터 데이터 처리를 요구하는 커맨드를 수신하고, 상기 외부 장치로부터 수신한 커맨드가 메모리에 기억되어 있는 관리 정보와 레코드 데이터를 갖는 레코드를 저장한 파일을 지정한 바이너리 데이터 처리용의 바이너리 커맨드인지의 여부를 판단하고, 상기 외부 장치로부터 수신한 커맨드가 상기 레코드를 저장한 파일을 지정하는 바이너리 커맨드라고 판단한 경우, 해당 파일에 저장되어 있는 각 레코드의 데이터를 바이너리 데이터로서 처리한다.
이 밖에 본 발명의 목적 및 장점들은 상세한 설명에서 자세히 설명될 것이다. 본 발명의 목적 및 장점은 다음에서 언급되는 수단 및 그 조합에 의해 실현될 것이다.
본 명세서에 포함되고 본원의 일부를 구성하는 도면을 참조하여, 상술한 일반적인 설명과 후술하는 실시예의 상세한 설명과 함께, 본 발명의 실시예를 들어 본 발명의 원리를 상세하게 설명한다.
<실시예>
이하, 본 발명을 실시하기 위한 최량의 형태에 대해 도면을 참조하여 설명한다.
또한,이하에 설명하는 실시예에서는, 휴대 가능 전자 장치로서, IC 카드를 상정하는 것으로 한다. 또한 본 실시예는, 휴대 전화기에 장착되는 IC 카드(SIM(subscriber identity module) 카드, UIM(user identify module) 카드 등의 전자 장치에도 마찬가지로 적용할 수 있다.
도 1은, 본 실시예에 따른 휴대 가능 전자 장치로서의 IC 카드(1)의 하드웨어 구성을 개략적으로 도시하는 것이다.
도 1에 도시하는 바와 같이, IC 카드(1)는, CPU(센트럴 프로세싱 유닛)(11), ROM(리드 온리 메모리)(12), RAM(랜덤 액세스 메모리)(13), 통신 유닛(UART)(14), 코프로세서(Co-Processor)(15) 및 불휘발성 메모리(NV(EEPROM))(16) 등을 갖고 있다.
상기 CPU(11), ROM(12), RAM(13), 통신 유닛(14), 코프로세서(15) 및 불휘발 성 메모리(16)는, IC칩 등에 의해 일체적으로 형성된 모듈(Ca)에 의해 구성된다. 이 모듈(Ca)은, 해당 IC 카드(1)를 형성하는 케이스(C)의 내부에 매설된다. 즉, 상기 IC 카드(1)는, 모듈(Ca)이 매설된 케이스(C)에 의해 구성되어 있다.
또한 상기 IC 카드(1)는, 상위 장치로서의 상기 IC 카드 처리 장치(2)로부터 전력 등의 공급을 받았을 때, 활성화되고(동작 가능한 상태로 되고), 상기 IC 카드 처리 장치(2)로부터의 커맨드에 따라 동작하도록 되어 있다.
상기 CPU(11)는, 전체적인 관리나 제어를 담당하는 것이다. 상기 CPU(11)는, 처리부 및 판단부 등으로서 기능한다. 상기 CPU(11)는, 제어 프로그램 등에 기초하여 동작함으로써 여러 가지의 처리를 행한다. 상기 ROM(12)은, 제어용 프로그램이나 제어 데이터 등이 미리 저장되어 있는 불휘발성 메모리이다. 상기 RAM(13)은, 워킹 메모리로서 기능하는 휘발성의 메모리이다.
상기 통신 유닛(14)은, 통신부로서 기능하고, 상위 장치로서의 IC 카드 처리 장치(2)와의 데이터 통신을 제어하는 것이다. 또한, 상기 통신 유닛(14)은, 상기 IC 카드(1)가 동작하기 위한 전원을 수급하는 수단으로서도 기능한다. 상기 코프로세서(15)는, 암호화 혹은 복호화 등의 연산의 보조를 행하는 것이다. 상기 불휘발성 메모리(16)는, 각종 데이터나 어플리케이션(애플리케이션 프로그램(application program)) 등을 기억하는 재기입 가능한 불휘발성 메모리이다. 또한, 상기 불휘발성 메모리(16)에 기억되는 데이터의 구조에 대해서는, 나중에 상세하게 설명한다.
또한, 상기 통신 유닛(14)은, IC 카드(1)의 통신 방식에 따른 구성을 갖고 있다. 예를 들면, 상기 IC 카드(1)의 통신 방식이 접속식의 통신 방식인 경우, 상기통신 유닛(l4)은, 상위 장치로서의 IC 카드 처리 장치(2)의 컨택트부와 물리적으로 접촉하기 위한 컨택트부 등에 의해 구성된다. 이 경우, IC 카드(1)는, IC 카드 처리 장치(2)와 물리적으로 접촉하고 있는 상기 통신 유닛(14)에 의해 IC 카드 처리 장치(2)로부터의 전원을 수급한다. 즉, 상기 IC 카드(1)가 접촉식 IC 카드인 경우, 상기 IC 카드(1)는, 통신 유닛(14)으로서의 컨택트부를 거쳐 IC 카드 처리 장치(2)로부터의 동작 전원 및 동작 클럭의 공급을 받아 활성화된다.
또한, 상기 IC 카드(l)의 통신 방식이 비접촉식(무선식)의 통신 방식인 경우, 상기 통신 유닛(14)은, 전파의 송수신을 행하는 안테나 및 통신을 제어하는 통신 제어부 등에 의해 구성된다. 이 경우, 상기 IC 카드(1)는, 통신 유닛(14)에 의해 수신한 전파로부터 도시하지 않은 전원부에 의해 동작 전원 및 동작 클럭을 생성하도록 되어 있다. 즉, 상기 IC 카드(1)가 비접촉식 IC 카드인 경우, 상기 IC 카드(1)는, 통신 유닛(14)으로서의 컨택부를 통하여 IC 카드 처리 장치(2)로부터의 동작 전원 및 동작 클럭을 생성하여 활성화하도록 되어 있다.
다음으로, 상기 불휘발성 메모리(16)에 기억되는 데이터의 구성에 대해 설명한다.
상기 불휘발성 메모리(16)에는, 예를 들면, ISO/IEC7816에서 정의된 파일 구조로 각종의 데이터가 기억된다. 예를 들면, 상기 불휘발성 메모리(16)에는, 복수 계층 구조(트리 구조)에 의해 관리되는 데이터 파일로서의 파일(EF:Elementary File) 및 데이터 폴더로서의 파일(DF:Dedicated File)이 기억되어 있다.
도 2는, 상기 불휘발성 메모리(16)에 기억되어 있는 파일 구조의 예를 도시하는 도면이다.
도 2에 도시하는 예에서는, 최상위가 마스터 파일로서의 파일(MF:Master File)(21)이다. 상기 MF(21)의 관리하에는, 데이터를 저장하는 EF(EF-A)(22), 폴더로서의 DF(DF-A)(23) 및 폴더로서의 DF(DF-B)(24)가 설치되어 있다. 또한, 상기DF(DF-B)(24)의 관리하에는, 데이터의 저장 등에 사용되는 EF(EF-B1)(25)가 설치되어 있는 구성으로 되어 있다. 이와 같은 파일 구조에서는, 각종의 데이터는, 데이터 파일로서의 EF에 기억된다.
다음으로, 상기 불휘발성 메모리(16)에 기억되는 데이터 파일로서의 EF의 구성에 관해 설명한다.
상기한 바와 같이, 상기 IC 카드(1)의 불휘발성 메모리(16)에서, 각종의 데이터는, 각각 EF에 기억된다. 예를 들면, EF 내의 데이터 구조로서, 예를 들면, IC 카드의 표준 사양인 ISO7816에서는, 투과 구조(transparent) EF 및 레코드 구조(record) EF 등이 정의되어 있다.
상기 투과 구조 EF는, 구조화되어 있지 않은 일련의 데이터를 기억하는 파일이다. 상기 투과 구조 EF에 기억되어 있는 데이터는 오프셋 지정으로 취급된다. 이 때문에, 상기 투과 구조 EF에 대한 처리가 단순하다. 또한, 상기 투과 구조 EF에 기억되는 데이터의 구조에는, 자유도가 있다. 따라서, 상기 투과 구조 EF는, 데이터의 관리를 IC 카드(1)의 상위 장치로서의 IC 카드 처리 장치(2)로 행하는 경우에는 적합하다.
이에 대하여, 레코드 구조 EF는, 소정의 형식으로 구조화된 1 또는 복수의 데이터(레코드)를 기억하는 파일이다. 또한, 상기 레코드 구조 EF에 저장되는 각 레코드는, 각각 관리 정보와 레코드 데이터를 갖는 소정의 형식의 데이터이다. 상기 레코드 구조 EF에 저장되는 각 레코드의 관리 정보는, 예를 들면, 레코드의 순서 정보(레코드 번호), 체크 섬 데이터(정당성 확인 데이터, 패리티) 등의 정보이다. 또한 상기 레코드 구조 EF에 저장되는 각 레코드의 레코드 데이터(실제 데이터)는, 식별 정보로서의 태그(Tag), 데이터 값의 데이터 길이를 나타내는 정보로서의 랭스(Length), 데이터 값으로서의 밸류(Value)로 구성된다.
상기한 바와 같이, 상기 레코드 구조 EF에는, 소정의 형식의 각 레코드 단위로 데이터가 기억되어 있다. 이 때문에, 상기 레코드 구조 EF에 기억되어 있는 데이터에 액세스하기 위해서는, 데이터가 기억되어 있는 레코드를 지정할 필요가 있다. 바꿔 말하면, 상기 레코드 구조 EF 내의 데이터는, 레코드 지정으로 취급할 수 있다. 이 때문에, 상기 레코드 구조 EF에 기억되어 있는 데이터에는, 레코드 구조의 정당성의 확인, 태그(Tag)에 의한 레코드 검색 등의 데이터(레코드) 관리가 가능하게 되어 있다. 이것은, 상기 IC 카드(1)에 처리를 요구(커맨드를 공급)하는 상위 장치로서의 IC 카드 처리 장치(2)가 구조화된 레코드 단위로 데이터를 취급할 수 있는 것을 의미한다.
상기 투과 구조 EF에는, 바이너리계의 커맨드가 사용된다. 예를 들면, 투과 구조 EF에 데이터를 기입하기 위해서는, 라이트 바이너리(Write Binary)라고 하는 커맨드가 사용된다. 또한, 상기 투과 구조 EF로부터 데이터를 판독하기 위해서는, 리드 바이너리(Read Binary)라고 하는 커맨드가 사용된다.
이에 대하여, 상기 레코드 구조 EF에 액세스하기 위해, 상기 IC 카드(1)에서는, 레코드계의 커맨드와 바이너리계의 커맨드를 사용할 수 있도록 되어 있다. 즉, 상기 레코드 구조 EF에 데이터를 기입하기 위한 커맨드에는, 예를 들면, 레코드계의 커맨드로서, 라이트 레코드(Write Record), 업데이트 레코드(Update Record), 어펜드 레코드(Append Record) 등의 커맨드가 있고, 바이너리계의 커맨드로서, 라이트 바이너리(Write Binary) 등의 커맨드가 있다. 또한, 상기 레코드 구조 EF로부터 데이터를 판독하기 위한 커맨드에는, 예를 들면, 레코드계의 커맨드로서, 리드 레코드(Read Record) 등의 커맨드가 있고, 바이너리계의 커맨드로서, 리드 바이너리(Read Binary) 등의 커맨드가 있다.
상기한 바와 같이, 상기 IC 카드(1)에서는, 레코드 구조 EF에 대하여, 레코드계의 커맨드, 혹은, 바이너리계의 커맨드로 액세스할 수 있다. 바꿔 말하면, 해당 IC 카드(1)에서는, 레코드계의 커맨드를 수신한 경우에는 레코드 구조 EF에 기억되어 있는 데이터를 레코드마다 액세스(레코드 구조 EF로서 액세스)하는 것이 가능하고, 바이너리계의 커맨드를 수신한 경우에는 레코드 구조 EF에 기억되어 있는 데이터를 바이너리 데이터로서 액세스(의사적으로 투과 구조 EF로서 액세스)하는 것이 가능하다.
예를 들면, 1개의 레코드 구조 EF에 10개의 레코드가 기억되어 있는 경우를 상정한다. 이 경우, 1개의 레코드 구조 EF에 기억되어 있는 10개의 레코드를 레코드계의 커맨드(리드 레코드(Read Record) 커맨드)를 사용하여 모두 판독하기 위해 서는, IC 카드(1)는, 리드 레코드 커맨드를 10회 실시할 필요가 있다. 이에 대하여, 1개의 레코드 구조 EF에 기억되어 있는 10개의 레코드를 바이너리계의 커맨드(리드 바이너리(Read Binary) 커맨드)를 사용하여 모두 판독하기 위해서는, IC 카드(1)는 리드 레코드 커맨드를 1회 실시하면 된다. 이것은, 해당 레코드 구조 EF를 지정하는 리드 바이너리 커맨드에 대하여, IC 카드(1)가, 10개의 레코드로서 기억되어 있는 각 데이터를 연결하고, 1개의 바이너리 데이터로서 취급하는 것을 전제로 하고 있다.
다음으로, 레코드 구조 EF에 기억되어 있는 데이터의 구성에 대해 설명한다.
도 3은, 레코드 구조 EF에 기억되어 있는 데이터의 구성예를 도시하고 있다.
도 3에 도시하는 예에서는, 1 바이트를 1 셀로 나타내고 있다. 도 3에 도시하는 예에서는, EF 전체가 70 바이트로 구성되어 있다. 또한, 도 3에 도시하는 EF에서, 흰 셀(「13」~「22」, 「28」~「37」, 「43」~「52」, 「58」~「67」)은, 각 레코드의 실제 데이터로서의 식별 정보(tag), 길이 정보(length), 데이터 값(value) 등을 나타내고, 우하향 사선의 셀(「08」~「12」, 「23」~「27」, 「38」~「42」, 「53」~「57」)은, 각 레코드의 관리 정보의 데이터를 나타내고, 좌하향 사선의 셀(「O1」~「07」, 「68」~「70」)은, 해당 EF 전체의 관리 정보 등의 데이터를 나타내고 있다.
즉, 도 3에 도시하는 EF에서는,EF의 관리 정보(RH, RF)와, 4개의 레코드(R1, R2, R3, R4)가 기억되어 있다. 상기 EF의 관리 정보(RH, RF)는, 「01」~「07」의 바이트와 「68」~「70」의 바이트에 의해 구성된다.
또한, 제1 레코드(R1)는, 「08」~「22」의 바이트로 구성된다. 또한, 제1 레코드(R1)는, 관리 정보(R1a)가 「08」~「12」의 바이트에 기억되고, 레코드 데이터(R1b)가 「13」~「22」의 바이트에 기억되어 있다.
또한, 제2 레코드(R2)는, 「23」~「37」의 바이트로 구성된다. 또한, 제2 레코드(R2)는, 관리 정보(R2a)가 「23」~「27」의 바이트에 기억되고, 레코드 데이터(R2b)가 「28」~「37」의 바이트에 기억되어 있다.
또한, 제3 레코드(R3)는, 「38」~「52」의 바이트로 구성된다. 또한, 제3 레코드(R3)는, 관리 정보(R3a)가 「38」~「42」의 바이트에 기억되고, 레코드 데이터(R3b)가 「43」~「52」의 바이트에 기억되어 있다.
또한, 제4 레코드(R4)는, 「53」~「57」의 바이트로 구성된다. 또한, 제4 레코드(R4)는, 관리 정보(R4a)가 「53」~「57」의 바이트에 기억되고, 레코드 데이터(R4b)가 「58」~「67」의 바이트에 기억되어 있다.
다음으로, 레코드 구조 EF의 데이터에 대한 액세스에 대해 설명한다.
먼저, 레코드 구조 EF의 데이터에 대한 레코드계의 커맨드에 의한 처리에 대해 설명한다.
여기에서는, 레코드 구조 EF의 데이터에 대한 레코드계의 커맨드에 의한 처리예로서, 리드 레코드 커맨드를 사용하여 복수의 레코드가 저장되어 있는 레코드 구조 EF로부터 모든 데이터(모든 레코드)를 판독하는 경우의 처리예에 대해 설명한다.
예를 들면, 상기한 바와 같은 레코드 구조 EF에 기억되어 있는 데이터의 판 독에는, 레코드계의 커맨드로서, 리드 레코드 커맨드를 사용할 수 있다. 이 리드 레코드 커맨드를 받은 IC 카드에서는, 해당 커맨드로 지정되는 레코드 구조 EF 내의 각 레코드마다 데이터 판독을 행한다.
여기에서, 상기 리드 레코드 커맨드를 이용하여 도 3에 도시하는 바와 같은 레코드 구조 EF에 기억되어 있는 각 레코드의 데이터(모든 레코드의 레코드 데이터)를 판독하는 경우에 대해 설명한다.
먼저,IC 카드 처리 장치(2)가 레코드 구조 EF 내의 제1 레코드(R1)를 지정하는 제1 리드 레코드 커맨드를 송신한다. 이 제1 리드 레코드 커맨드를 수신하면, IC 카드(1)는, 불휘발성 메모리(16)로부터 해당 레코드 구조 EF에서의 제1 레코드(R1)의 레코드 데이터(「13」~「22」)(R1a)를 판독한다. 이에 따라, IC 카드(1)는, 제1 레코드(R1)에서의 10 바이트 분의 레코드 데이터(R1b)를 제1 리드 레코드 커맨드에 대한 레스펀스로서 IC 카드 처리 장치(2)에 출력한다.
상기 제1 리드 레코드 커맨드에 대한 레스펀스로서의 제1 레코드(R1)의 레코드 데이터(R1b)를 수신하면, 상기 IC 카드 처리 장치(2)는, 제2 레코드(R2)를 지정하는 제2 리드 레코드 커맨드를 출력한다. 이 제2 리드 레코드 커맨드를 수신하면,IC 카드(1)는, 불휘발성 메모리(16)로부터 해당 레코드 구조 EF에서의 제2 레코드(R2)의 레코드 데이터(「28」~「37」)(R2a)를 판독한다. 이에 따라, IC 카드(1)는, 제2 레코드(R2)에서의 10 바이트 분의 레코드 데이터(R2b)를 제2 리드 레코드 커맨드에 대한 레스펀스로서 IC 카드 처리 장치(2)에 출력한다.
상기 제2 리드 레코드 커맨드에 대한 레스펀스로서의 제2 레코드(R2)의 레코 드 데이터(R2b)를 수신하면, 상기 IC 카드 처리 장치(2)는, 제3 레코드(R3)를 지정하는 제3 리드 레코드 커맨드를 출력한다. 이 제3 리드 레코드 커맨드를 수신하면,IC 카드(1)는, 불휘발성 메모리(I6)로부터 해당 레코드 구조 EF에서의 제3 레코드(R3)의 레코드 데이터(「43」~「52」)(R3a)를 판독한다. 이에 따라, IC 카드(1)는, 제3 레코드(R3)에서의 10 바이트 분의 레코드 데이터(R3b)를 제3 리드 레코드 커맨드에 대한 레스펀스로서 IC 카드 처리 장치(2)에 출력한다.
상기 제3 리드 레코드 커맨드에 대한 레스펀스로서의 제3 레코드(R3)의 레코드 데이터(R3b)를 수신하면, 상기 IC 카드 처리 장치(2)는, 제4 레코드(R4)를 지정하는 제4 리드 레코드 커맨드를 출력한다. 이 제4 리드 레코드 커맨드를 수신하면,IC 카드(1)는, 불휘발성 메모리(16)로부터 해당 레코드 구조 EF에서의 제4 레코드(R4)의 레코드 데이터(「58」~「67」)(R4a)를 판독한다. 이에 따라, IC 카드(1)는, 상기 제4 레코드(R)에서의 10 바이트 분의 레코드 데이터(R4b)를 제4 리드 레코드 커맨드에 대한 레스펀스로서의 IC 카드 처리 장치(2)에 출력한다.
상기 제4 리드 레코드 커맨드에 대한 레스펀스로서의 제4 레코드(R4)의 레코드 데이터(R4b)를 수신하면, 상기 IC 카드 처리 장치(2)는, 해당 레코드 구조 EF에서의 모든 레코드의 데이터를 취득하게 된다.
즉, 1개의 레코드 구조 EF에 저장되어 있는 복수의 레코드에 액세스하는 경우, 레코드계의 커맨드에서는, 액세스 대상으로 하는 레코드를 각각 지정하도록 되어 있다. 예를 들면, 복수의 레코드가 존재하는 레코드 구조 EF 내의 모든 데이터(레코드 구조 EF 내의 모든 레코드)를 판독하기 위해서는, 레코드계의 커맨드로 서의 리드 레코드 커맨드를, 해당 레코드 구조 EF에 존재하는 레코드의 수와 동일한 횟수만큼 실행해야 한다.
다음으로, 레코드 구조 EF의 데이터에 대한 바이너리계의 커맨드에 의한 액세스에 대해 설명한다.
본 실시예에서는, 레코드 구조 EF의 데이터에 대한 바이너리계의 커맨드에 의한 처리예로서의 제1∼제5 처리예에 대해 설명한다.
먼저, 레코드 구조 EF를 지정하는 바이너리계의 커맨드에 대한 제1 처리예에 대해 설명한다.
예를 들면, 상기한 바와 같은 레코드 구조 EF에 기억되어 있는 데이터의 판독에는, 바이너리계의 커맨드로서, 리드 바이너리 커맨드를 사용할 수 있다. 이와 같은 레코드 구조 EF를 지정하는 리드 바이너리 커맨드(바이너리계의 커맨드)를 받은 경우, 제1 처리예에서는, 해당 커맨드로 지정되는 레코드 구조 EF에 기억되어 있는 각 레코드의 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 판독을 행한다.
도 4는, 제1 처리예를 설명하기 위한 플로우차트이다.
도 4에 도시하는 바와 같이, 먼저,IC 카드(1)가 IC 카드 처리 장치(2)로부터 레코드 구조 EF를 지정한 커맨드(예를 들면 리드 커맨드)를 수신한 것으로 한다(스텝 S11). 그러면, 해당 IC 카드(1)의 CPU(11)는, 수신한 커맨드가 레코드계의 커맨드(예를 들면, 리드 레코드 커맨드)인지 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)인지를 판단한다(스텝 S12).
이 판단에 의해 수신한 커맨드가 레코드계의 커맨드(예를 들면,리드 레코드 커맨드)라고 판단한 경우(스텝 S12, "아니오"), 상기 IC 카드(1)의 CPU(11)는, 해당 레코드 구조 EF에 존재하는 각 레코드 중 해당 커맨드로 지정된 레코드에 대하여 액세스 처리(예를 들면, 판독 처리)를 실행한다(스텝 S13).
또한, 상기 판단에 의해 수신한 커맨드가 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)라고 판단한 경우(스텝 S12, "예"), 상기 IC 카드(1)의 CPU(11)는, 해당 커맨드로 지정된 레코드 구조 EF에 존재하는 모든 레코드의 관리 정보를 판독한다(스텝 S14).
해당 레코드 구조 EF 내의 모든 레코드의 관리 정보를 판독하면, 상기 CPU(11)는, 각 레코드의 관리 정보에 기초하여 각 레코드의 오름차순을 판단한다(스텝 S15). 여기에서, 레코드의 오름차순이란, 각 레코드가 해당 EF에 저장된 일시(혹은 레코드 데이터가 갱신된 일시)가 오래된 순이어도 되고, 관리 정보로서 각 레코드에 부여되어 있는 각 레코드의 식별 정보(예를 들면, 레코드 번호)가 작은 순이어도 된다. 예를 들면, 처리의 이력을 레코드로서 기억하는 레코드 구조 EF에서 각 레코드에 순서대로 레코드 번호가 부여되는 경우, 레코드 번호가 작은 순으로 각 레코드의 레코드 데이터를 배열하면, 이력이 오래된 순으로 처리 이력 정보로서의 레코드 데이터가 배열된다.
또한, 상기 CPU(11)는, 각 레코드의 오름차순을 판단함과 함께, 각 레코드의 관리 정보에 기초하여 각 레코드의 레코드 데이터의 기억 영역을 판단한다(스텝 S16). 각 레코드의 레코드 데이터의 기억 영역은, 각 레코드에 기억되어 있는 데 이터 길이를 나타내는 정보(length) 등에 기초하여 판단된다.
상기 판단에 의해 각 레코드의 오름차순과 각 레코드의 레코드 데이터의 기억 영역을 판단하면, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 오름차순으로 배열한 데이터에 대하여 해당 커맨드로 요구된 처리(예를 들면, 판독 처리)를 실행한다(스텝 S17). 또한, 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)에서는, 액세스의 개시 위치를 나타내는 오프셋 값이 지정되어 있다. 이 때문에, 상기 스텝 S17에서, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 오름차순으로 배열한 데이터(오름차순으로 연결한 데이터) 중 해당 커맨드로 지정된 오프셋 값으로부터의 데이터에 대하여 처리를 행한다.
해당 바이너리계의 커맨드로 요구된 처리가 종료하면, 상기 CPU(11)는, 처리 결과를 레스펀스로서 상기 IC 카드 처리 장치(2)에 송신하고, 해당 커맨드에 대한 처리를 종료한다(스텝 S18). 예를 들면, 수신한 커맨드가 오프셋 값이 n인 리드 바이너리 커맨드인 경우, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 오름차순으로 배열한 데이터 중 n 바이트째로부터의 데이터를 판독하고, 그 판독한 데이터를 상기 IC 카드 처리 장치(2)에 송신하는 처리를 행한다.
상기 제1 처리의 구체예로서, 도 3에 도시하는 바와 같은 레코드 구조 EF를 지정하는 리드 바이너리 커맨드를 수신한 경우에 대해 설명한다.
이 경우, 제1 처리예의 IC 카드(1)에서는, 제1 레코드(R1)로부터 제4 레코 드(R4)의 순(오름차순)으로, 각 레코드의 레코드 데이터만을 연결한 데이터 중 오프셋 값으로 지정되는 데이터로부터를 바이너리 데이터로서 판독하고, 해당 리드 바이너리 커맨드에 대한 레스펀스로서 출력한다.
예를 들면, 도 3에 도시하는 레코드 구조 EF를 지정하는 리드 바이너리 커맨드의 오프셋 값이 「0」인 경우, 상기 IC 카드(1)는, 제1 레코드(R1)로부터 제4 레코드(R4)의 순(오름차순)으로, 각 레코드의 레코드 데이터만을 연결한 모든 데이터를 바이너리 데이터로서 판독한다. 즉, 도 3에 도시하는 레코드 구조 EF를 지정하는 오프셋 값이 「0」인 리드 바이너리 커맨드에 대하여, 제1 처리예의 IC 카드(1)에서는, 「13」~「22」(제1 레코드(R1)의 레코드 데이터(R1b)), 「28」~「37」(제2 레코드(R2)의 레코드 데이터(R2b)), 「43」~「52」(제3 레코드(R3)의 레코드 데이터(R3b)), 「58」~「67」(제4 레코드(R4)의 레코드 데이터(R4b))의 순으로 배열한 40 바이트 분의 데이터가 판독하여 출력한다.
또한, 도 3에 도시하는 레코드 구조 EF를 지정하는 리드 바이너리 커맨드의 오프셋 값이 「7」인 경우, 상기 IC 카드(1)는, 제1 레코드(R1)로부터 제4 레코드(R4)의 순(오름차순)으로, 각 레코드의 레코드 데이터만을 연결한 데이터 중 7 바이트째로부터의 데이터를 바이너리 데이터로서 판독한다. 즉, 도 3에 도시하는 레코드 구조 EF를 지정하는 오프셋 값이 「7」인 리드 바이너리 커맨드에 대하여, 제1 처리예의 IC 카드(1)에서는, 「13」으로부터 7바이트째의 데이터인 「20」~「22」(선두로부터 7바이트 분의 데이터를 제외한 제1 레코드(R1)의 레코드 데이터(R1b), 「28」~「37」(제2 레코드(R2)의 레코드 데이터(R2b)), 「43」~「52」(제 3 레코드(R3)의 레코드 데이터(R3b)), 「58」~「67」(제4 레코드(R4)의 레코드 데이터(R4b))의 순으로 배열한 33 바이트 분의 데이터가 판독하여 출력한다.
상기한 바와 같이, 제1 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는 해당 커맨드로 지정되는 해당 EF 내의 특정한 레코드에 대하여 액세스하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는 해당 EF 내의 각 레코드의 레코드 데이터를 오름차순으로 연결한 데이터에 대하여 액세스하도록 되어 있다.
즉, 제1 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는, 해당 레코드 구조 EF를 지정된 레코드마다 처리하는 레코드 구조 EF로서 취급하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는, 해당 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 처리한다.
이에 따라, 제1 처리예에서는, 해당 레코드 구조 EF를 의사적으로 투과 구조 EF로서 취급할 수 있다. 이 결과, 상기 제1 처리예에서는, 레코드 구조 EF에 기억되어 있는 데이터에 대하여 효율적으로 액세스할 수 있다.
또한, 제1 처리예에서는, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우, 각 레코드의 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 취급하도록 하고 있다.
이에 따라, 각 레코드의 레코드 데이터가 오름차순으로 연결된 데이터를 일괄하여 처리할 수 있다. 예를 들면, 레코드 구조 EF에 처리 이력 정보(로그 데이 터)를 1건씩 순서대로 레코드 번호를 부여한 레코드로서 기억하고 있는 경우, 리드 바이너리 커맨드 등의 바이너리계의 커맨드에 의해, 복수의 처리에 관한 정보를 이력이 오래된 순으로 배열한 로그 데이터를 일괄하여 판독하는 등의 처리를 행할 수 있다.
다음으로, 레코드 구조 EF를 지정하는 바이너리계의 커맨드에 대한 제2 처리예에 대해 설명한다.
예를 들면, 상기한 바와 같은 레코드 구조 EF에 기억되어 있는 데이터의 ㅍ판독에는, 바이너리계의 커맨드로서, 리드 바이너리 커맨드를 사용할 수 있다. 이와 같은 레코드 구조 EF를 지정하는 리드 바이너리 커맨드(바이너리계의 커맨드)를 받은 경우, 제2 처리예에서는, 해당 커맨드로 지정되는 레코드 구조 EF에 기억되어 있는 각 레코드의 관리 정보와 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 판독을 행한다.
도 5는, 제2 처리예를 설명하기 위한 플로우차트이다.
도 5에 도시하는 바와 같이, 먼저,IC 카드(1)가 IC 카드 처리 장치(2)로부터 레코드 구조 EF를 지정한 커맨드(예를 들면 리드 커맨드)를 수신한 것으로 한다(스텝 S21). 그러면, 해당 IC 카드(1)의 CPU(11)는, 수신한 커맨드가 레코드계의 커맨드(예를 들면, 리드 레코드 커맨드)인지 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)인지를 판단한다(스텝 S22).
이 판단에 의해 수신한 커맨드가 레코드계의 커맨드(예를 들면,리드 레코드 커맨드)가 아니라고 판단한 경우(스텝 S22, "아니오"), 상기 IC 카드(1)의 CPU(11) 는, 해당 레코드 구조 EF에 존재하는 각 레코드 중 해당 커맨드로 지정된 레코드에 대하여 처리(예를 들면, 판독 처리)를 실행한다(스텝 S23).
또한, 상기 판단에 의해 수신한 커맨드가 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)라고 판단한 경우(스텝 S22, "예"), 상기 IC 카드(1)의 CPU(11)는, 해당 커맨드로 지정된 레코드 구조 EF에 존재하는 모든 레코드의 관리 정보를 판독한다(스텝 S24).
해당 레코드 구조 EF 내의 모든 레코드의 관리 정보를 읽어들이면, 상기 CPU(11)는, 각 레코드의 관리 정보에 기초하여 각 레코드의 오름차순을 판단한다(스텝 S25). 여기에서, 레코드의 오름차순이란, 각 레코드가 해당 EF에 저장된 일시(혹은 레코드 데이터가 갱신된 일시)가 오래된 순이어도 되고, 관리 정보로서 각 레코드에 부여되어 있는 각 레코드의 식별 정보(예를 들면, 레코드 번호)가 작은 순이어도 된다. 예를 들면, 처리의 이력을 레코드로서 기억하는 레코드 구조 EF에서 각 레코드에 순서대로 레코드 번호가 부여되는 경우, 레코드 번호가 작은 순으로 각 레코드의 관리 정보와 레코드 데이터를 배열하면, 이력이 오래된 순으로 관리 정보와 처리 이력 정보가 배열된다.
또한, 상기 CPU(11)는, 각 레코드의 오름차순을 판단함과 함께, 각 레코드의 관리 정보에 기초하여 각 레코드의 관리 정보의 기억 영역과 레코드 데이터의 기억 영역을 판단한다(스텝 S26). 각 레코드의 관리 정보의 기억 영역 및 레코드 데이터의 기억 영역은, 각 레코드에 기억되어 있는 데이터 길이를 나타내는 정보(length) 등에 기초하여 판단된다.
상기 판단에 의해 각 레코드의 오름차순과 각 레코드의 관리 정보 및 레코드 데이터의 기억 영역을 판단하면, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 오름차순으로 배열한 데이터에 대하여 해당 커맨드로 요구된 처리(예를 들면, 판독 처리)를 실행한다(스텝 S27). 또한, 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)에서는, 액세스의 개시 위치를 나타내는 오프셋 값이 지정되어 있다. 이 때문에, 상기 스텝 S27에서, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 오름차순으로 배열한 데이터(오름차순으로 연결한 데이터) 중 해당 커맨드로 지정된 오프셋 값으로부터의 데이터에 대하여 처리를 행한다.
해당 바이너리계의 커맨드로 요구된 처리가 종료하면, 상기 CPU(11)는, 처리 결과를 레스펀스로서 상기 IC 카드 처리 장치(2)에 송신하고, 해당 커맨드에 대한 처리를 종료한다(스텝 S28). 예를 들면, 수신한 커맨드가 오프셋 값이 n의 리드 바이너리 커맨드인 경우, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 오름차순으로 배열한 데이터 중 n바이트째로부터의 데이터를 판독하고, 그 판독한 데이터를 상기 IC 카드 처리 장치(2)에 송신하는 처리를 행한다.
상기 제2 처리의 구체예로서, 도 3에 도시하는 바와 같은 레코드 구조 EF를 지정하는 리드 바이너리 커맨드를 수신한 경우에 대해 설명한다.
이 경우, 제2 처리예의 IC 카드(1)에서는, 제1 레코드(R1)로부터 제4 레코드(R4)의 순(오름차순)으로, 각 레코드의 관리 정보 및 레코드 데이터를 연결한 데 이터 중 오프셋 값으로 지정되는 데이터로부터를 바이너리 데이터로서 판독하고, 해당 리드 바이너리 커맨드에 대한 레스펀스로서 출력한다.
예를 들면, 도 3에 도시하는 레코드 구조 EF를 지정하는 리드 바이너리 커맨드의 오프셋 값이 「0」인 경우, 상기 IC 카드(1)는, 제1 레코드(R1)로부터 제4 레코드(R4)의 순(오름차순)으로, 각 레코드의 레코드 데이터만을 연결한 모든 데이터를 바이너리 데이터로서 판독한다. 즉, 도 3에 도시하는 레코드 구조 EF를 지정하는 오프셋 값이 「0」인 리드 바이너리 커맨드에 대하여, 제2 처리예의 IC 카드(1)에서는,「08」~「12」(제1 레코드(R1)의 관리 정보(R1a)), 「13」~「22」(제1 레코드(R1)의 레코드 데이터(R1b)), 「23」~「27」(제2 레코드(R2)의 관리 정보(R2a)), 「28」~「37」(제2 레코드(R2)의 레코드 데이터(R2b)), 「38」~「42」(제3 레코드(R3)의 관리 정보(R3a)), 「43」~「52」(제3 레코드(R3)의 레코드 데이터(R3b)), 「53」~「57」(제4 레코드(R4)의 관리 정보(R4a)), 「58」~「67」(제4 레코드(R4)의 레코드 데이터(R4b))의 순으로 배열한 60 바이트 분의 데이터를 판독하여 출력한다.
또한, 도 3에 도시하는 레코드 구조 EF를 지정하는 리드 바이너리 커맨드의 오프셋 값이 「7」인 경우, 상기 IC 카드(1)는, 제1 레코드(R)으로부터 제4 레코드(R4)의 순(오름차순)으로, 각 레코드의 관리 정보 및 레코드 데이터를 연결한 데이터 중 7 바이트째로부터의 데이터를 바이너리 데이터로서 판독한다. 즉, 도 3에 도시하는 레코드 구조 EF를 지정하는 오프셋 값이 「7」인 리드 바이너리 커맨드에 대하여, 제2 처리예의 IC 카드(1)에서는 「08」로부터 7 바이트(「08」~「12」, 「 13」~「14」)째의 데이터인 「15」~「22」(제1 레코드(R1)의 관리 정보(R1a)의 5 바이트 분과 레코드 데이터(R1b)의 선두로부터 2 바이트 분의 데이터를 제외한 데이터), 「23」~「37」(제2 레코드(R2)의 관리 정보(R2a) 및 레코드 데이터(R2b)), 「38」~「52」(제3 레코드(R3)의 관리 정보(R3a) 및 레코드 데이터(R3b)), 「53」~「67」(제4 레코드(R4)의 관리 정보(R4a) 및 레코드 데이터(R4b))의 순으로 배열한 53 바이트 분의 데이터를 판독하여 출력한다.
상기한 바와 같이, 제2 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는 해당 커맨드로 지정되는 해당 EF 내의 특정한 레코드에 대하여 액세스하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는 해당 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 오름차순으로 연결한 데이터에 대하여 액세스하도록 되어 있다.
즉, 제2 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는, 지정된 레코드마다 해당 EF 내의 데이터를 처리하는 레코드 구조 EF로서 취급하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는, 해당 레코드 구조 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 처리함으로써, 해당 레코드 구조 EF를 의사적으로 투과 구조 EF로서 취급하도록 한 것이다.
이에 따라, 상기 제2 처리예에 따르면, 레코드 구조 EF에 기억되어 있는 데이터에 대하여 효율적으로 액세스할 수 있다.
또한, 제2 처리예에서는, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우, 각 레코드의 관리 정보 및 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 취급하도록 하고 있다. 이에 따라, 각 레코드의 관리 정보 및 레코드 데이터가 오름차순으로 연결된 데이터를 일괄하여 처리할 수 있다. 예를 들면, 레코드 구조 EF에 처리 이력 정보(로그 데이터)를 1건마다 순서대로 레코드 번호를 부여한 레코드로서 기억하고 있는 경우, 리드 바이너리 커맨드 등의 바이너리계의 커맨드에 의해, 복수의 처리를 이력이 오래된 순으로 배열한 관리 정보와 로그 데이터를 일괄하여 판독하는 등의 처리를 행할 수 있다.
다음으로, 레코드 구조 EF를 지정하는 바이너리계의 커맨드에 대한 제3 처리예에 대해 설명한다.
예를 들면, 상기한 바와 같은 레코드 구조 EF에 기억되어 있는 데이터의 판독에는, 바이너리계의 커맨드로서, 리드 바이너리 커맨드를 사용할 수 있다. 이와 같은 레코드 구조 EF를 지정하는 리드 바이너리 커맨드(바이너리계의 커맨드)를 받은 경우, 제3 처리예에서는, 해당 커맨드로 지정되는 레코드 구조 EF에 기억되어 있는 각 레코드의 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 판독을 행한다.
도 6은, 제3 처리예를 설명하기 위한 플로우차트이다.
도 6에 도시하는 바와 같이, 먼저,IC 카드(1)가 IC 카드 처리 장치(2)로부터 레코드 구조 EF를 지정한 커맨드(예를 들면 리드 커맨드)를 수신한 것으로 한다(스텝 S31). 그러면, 해당 IC 카드(1)의 CPU(11)는, 수신한 커맨드가 레코드계의 커맨드(예를 들면, 리드 레코드 커맨드)인지 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)인지를 판단한다(스텝 S32).
이 판단에 의해 수신한 커맨드가 레코드계의 커맨드(예를 들면, 리드 레코드 커맨드)라고 판단한 경우(스텝 S32, "아니오"), 상기 IC 카드(1)의 CPU(11)는, 해당 레코드 구조 EF에 존재하는 각 레코드 중 해당 커맨드로 지정된 레코드에 대하여 액세스 처리(예를 들면, 판독 처리)를 실행한다(스텝 S33).
또한, 상기 판단에 의해 수신한 커맨드가 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)라고 판단한 경우(스텝 S32, "예"), 상기 IC 카드(1)의 CPU(11)는, 해당 커맨드로 지정된 레코드 구조 EF에 존재하는 모든 레코드의 관리 정보를 판독한다(스텝 S34).
해당 레코드 구조 EF 내의 모든 레코드의 관리 정보를 읽어들이면, 상기 CPU(11)는, 각 레코드의 관리 정보에 기초하여 각 레코드의 내림차순을 판단한다 (스텝 S35). 여기에서, 레코드의 내림차순이란, 각 레코드가 해당 EF에 저장된 일시(혹은 레코드 데이터가 갱신된 일시)가 새로운 순이어도 되고, 관리 정보로서 각 레코드에 부여되어 있는 각 레코드의 식별 정보가 큰 순이어도 된다. 예를 들면, 처리의 이력을 레코드로서 기억하는 레코드 구조 EF에서 각 레코드에 순서대로 레코드 번호가 부여되는 경우, 레코드 번호가 큰 순으로 각 레코드의 레코드 데이터를 배열하면, 이력이 새로운 순으로 처리 이력 정보로서의 레코드 데이터가 배열된다.
또한, 상기 CPU(11)는, 각 레코드의 내림차순을 판단함과 함께, 각 레코드의 관리 정보에 기초하여 각 레코드의 레코드 데이터의 기억 영역을 판단한다(스텝 S36). 각 레코드의 레코드 데이터의 기억 영역은, 각 레코드에 기억되어 있는 데이터 길이를 나타내는 정보(length) 등에 기초하여 판단된다.
상기 판단에 의해 각 레코드의 내림차순과 각 레코드의 레코드 데이터의 기억 영역을 판단하면, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 내림차순으로 배열한 데이터에 대하여 해당 커맨드로 요구된 처리(예를 들면, 판독 처리)를 실행한다(스텝 S37). 또한, 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)에서는, 액세스의 개시 위치를 나타내는 오프셋 값이 지정되어 있다. 이 때문에, 상기 스텝 S37에서, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 내림차순으로 배열한 데이터(내림차순으로 연결한 데이터) 중 해당 커맨드로 지정된 오프셋 값으로부터의 데이터에 대하여 처리를 행한다.
해당 바이너리계의 커맨드로 요구된 처리가 종료하면, 상기 CPU(11)는, 처리 결과를 레스펀스로서 상기 IC 카드 처리 장치(2)에 송신하고, 해당 커맨드에 대한 처리를 종료한다(스텝 S38). 예를 들면, 수신한 커맨드가 오프셋 값이 n의 리드 바이너리 커맨드인 경우, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 내림차순으로 배열한 데이터 중 n바이트째로부터의 데이터를 판독하고, 그 판독한 데이터를 상기 IC 카드 처리 장치(2)에 송신하는 처리를 행한다.
상기 제3 처리의 구체예로서, 도 3에 도시하는 바와 같은 레코드 구조 EF를 지정하는 리드 바이너리 커맨드를 수신한 경우에 대해 설명한다.
이 경우, 제3 처리예의 IC 카드(1)에서는, 제4 레코드(R4)로부터 제1 레코 드(R1)의 순(내림차순)으로, 각 레코드의 레코드 데이터만을 연결한 데이터 중 오프셋 값으로 지정되는 데이터로부터를 바이너리 데이터로서 판독하고, 해당 리드 바이너리 커맨드에 대한 레스펀스로서 출력한다.
예를 들면, 도 3에 도시하는 레코드 구조 EF를 지정하는 리드 바이너리 커맨드의 오프셋 값이 「0」인 경우, 상기 IC 카드(1)는, 제4 레코드(R4)로부터 제1 레코드(R1)의 순(오름차순)으로, 각 레코드의 레코드 데이터만을 연결한 모든 데이터를 바이너리 데이터로서 판독한다. 즉, 도 3에 도시하는 레코드 구조 EF를 지정하는 오프셋 값이 「0」인 리드 바이너리 커맨드에 대하여, 제3 처리예의 IC 카드(1)에서는, 「58」~「67」(제4 레코드(R4)의 레코드 데이터R4b), 「43」~「52」(제3 레코드(R3)의 레코드 데이터(R3b)), 「28」~「37」(제2 레코드(R2)의 레코드 데이터(R2b)), 「13」~「22」(제1 레코드(R1)의 레코드 데이터(R1b))의 순으로 배열한 40 바이트 분의 데이터를 판독하여 출력한다.
또한, 도 3에 도시하는 레코드 구조 EF를 지정하는 리드 바이너리 커맨드의 오프셋 값이 「7」인 경우, 상기 IC 카드(1)는, 제4 레코드(R4)로부터 제l 레코드(R1)의 순(내림차순)으로, 각 레코드의 레코드 데이터만을 연결한 데이터 중 7 바이트째로부터의 데이터를 바이너리 데이터로서 판독한다. 즉, 도 3에 도시하는 레코드 구조 EF를 지정하는 오프셋 값이 「7」인 리드 바이너리 커맨드에 대하여, 제3 처리예의 IC 카드(1)에서는, 「58」로부터 7바이트째의 데이터인 「65」~「67」(선두로부터 7 바이트 분의 데이터를 제외한 제4 레코드(R4)의 레코드 데이터(R4b)), 「43」~「52」(제3 레코드(R3)의 레코드 데이터(R3b)), 「28」~「37」 (제2 레코드(R20의 레코드 데이터(R2b)), 「13」~「22」(제1 레코드(R1)의 레코드 데이터(R1b))의 순으로 배열한 33 바이트 분의 데이터를 판독하여 출력한다.
상기한 바와 같이, 제3 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는 해당 커맨드로 지정되는 해당 EF 내의 특정한 레코드에 대하여 액세스하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는 해당 EF 내의 각 레코드의 레코드 데이터를 내림차순으로 연결한 데이터에 대하여 액세스하도록 되어 있다.
즉, 제3 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는, 해당 레코드 구조 EF를 지정된 레코드마다 처리하는 레코드 구조 EF로서 취급하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는, 해당 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 처리함으로써, 해당 레코드 구조 EF를 의사적으로 투과 구조 EF로서 취급하도록 한 것이다.
이에 따라, 상기 제3 처리예에 따르면, 레코드 구조 EF에 기억되어 있는 데이터에 대하여 효율적으로 액세스할 수 있다.
또한, 제3 처리예에서는, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우, 각 레코드의 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 취급하도록 하고 있다. 이에 따라, 각 레코드의 레코드 데이터가 내림차순으로 연결된 데이터를 일괄하여 처리할 수 있다. 예를 들면, 레코드 구조 EF에 처리 이력 정보(로그 데이터)를 1건마다 순서대로 레코드 번호를 부여한 레코 드로서 기억하고 있는 경우, 리드 바이너리 커맨드 등의 바이너리계의 커맨드에 의해, 복수의 처리에 관한 정보를 이력이 새로운 순으로 배열한 로그 데이터를 일괄하여 판독하는 등의 처리를 행할 수 있다.
다음으로, 레코드 구조 EF를 지정하는 바이너리계의 커맨드에 대한 제4 처리예에 대해 설명한다.
예를 들면, 상기한 바와 같은 레코드 구조 EF에 기억되어 있는 데이터의 판독에는, 바이너리계의 커맨드로서, 리드 바이너리 커맨드를 사용할 수 있다. 이와 같은 레코드 구조 EF를 지정하는 리드 바이너리 커맨드(바이너리계의 커맨드)를 받은 경우, 제4 처리예에서는, 해당 커맨드로 지정되는 레코드 구조 EF에 기억되어 있는 각 레코드의 관리 정보와 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 판독을 행한다.
도 7은, 제4 처리예를 설명하기 위한 플로우차트이다.
도 7에 도시하는 바와 같이, 먼저,IC 카드(1)가 IC 카드 처리 장치(2)로부터 레코드 구조 EF를 지정한 커맨드(예를 들면 리드 커맨드)를 수신한 것으로 한다(스텝 S41). 그러면, 해당 IC 카드(1)의 CPU(11)는, 수신한 커맨드가 레코드계의 커맨드(예를 들면, 리드 레코드 커맨드)인지 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)인지를 판단한다(스텝 S42).
이 판단에 의해 수신한 커맨드가 레코드계의 커맨드(예를 들면, 리드 레코드 커맨드)라고 판단한 경우(스텝 S42, "아니오"), 상기 IC 카드(1)의 CPU(11)는, 해당 레코드 구조 EF에 존재하는 각 레코드 중 해당 커맨드로 지정된 레코드에 대하 여 처리(예를 들면, 판독 처리)를 실행한다(스텝 S43).
또한, 상기 판단에 의해 수신한 커맨드가 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)라고 판단한 경우(스텝 S42, "예"), 상기 IC 카드(1)의 CPU(11)는, 해당 커맨드로 지정된 레코드 구조 EF에 존재하는 모든 레코드의 관리 정보를 판독한다(스텝 S44).
해당 레코드 구조 EF 내의 모든 레코드의 관리 정보를 읽어들이면, 상기 CPU(11)는, 각 레코드의 관리 정보에 기초하여 각 레코드의 내림차순을 판단한다 (스텝 S45). 여기에서, 레코드의 내림차순이란, 각 레코드가 해당 EF에 저장된 일시(혹은 레코드 데이터가 갱신된 일시)가 새로운 순이어도 되고, 관리 정보로서 각 레코드에 부여되어 있는 각 레코드의 식별 정보가 큰 순이어도 된다. 예를 들면, 처리의 이력을 레코드로서 기억하는 레코드 구조 EF에서 각 레코드에 순서대로 레코드 번호가 부여되는 경우, 레코드 번호가 큰 순으로 각 레코드의 레코드 데이터를 배열하면, 이력이 새로운 순으로 관리 정보와 처리 이력 정보가 배열된다.
또한, 상기 CPU(11)는, 각 레코드의 내림차순을 판단함과 함께, 각 레코드의 관리 정보에 기초하여 각 레코드의 관리 정보의 기억 영역과 레코드 데이터의 기억 영역을 판단한다(스텝 S46). 각 레코드의 관리 정보의 기억 영역 및 레코드 데이터의 기억 영역은, 각 레코드에 기억되어 있는 데이터 길이를 나타내는 정보 (length) 등에 기초하여 판단된다.
상기 판단에 의해 각 레코드의 내림차순과 각 레코드의 관리 정보 및 레코드 데이터의 기억 영역을 판단하면, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레 코드의 관리 정보 및 레코드 데이터를 내림차순으로 배열한 데이터에 대하여 해당 커맨드로 요구된 처리(예를 들면, 판독 처리)를 실행한다(스텝 S47). 또한, 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)에서는, 액세스의 개시 위치를 나타내는 오프셋 값이 지정되어 있다. 이 때문에, 상기 스텝 S47에서, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 내림차순으로 배열한 데이터(내림차순으로 연결한 데이터) 중 해당 커맨드로 지정된 오프셋 값으로부터의 데이터에 대하여 처리를 행한다.
해당 바이너리계의 커맨드로 요구된 처리가 종료하면, 상기 CPU(11)는, 처리 결과를 레스펀스로서 상기 IC 카드 처리 장치(2)에 송신하고, 해당 커맨드에 대한 처리를 종료한다(스텝 S48). 예를 들면, 수신한 커맨드가 오프셋 값이 n의 리드 바이너리 커맨드인 경우, 상기 CPU(11)는, 해당 레코드 구조 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 내림차순으로 배열한 데이터 중 n바이트째로부터의 데이터를 판독하고, 그 판독한 데이터를 상기 IC 카드 처리 장치(2)에 송신하는 처리를 행한다.
상기 제4 처리의 구체예로서, 도 3에 도시하는 바와 같은 레코드 구조 EF를 지정하는 리드 바이너리 커맨드를 수신한 경우에 대해 설명한다.
이 경우, 제4 처리예의 IC 카드(1)에서는, 제4 레코드(R4)로부터 제1 레코드(R1)의 순(내림차순)으로, 각 레코드의 관리 정보 및 레코드 데이터를 연결한 데이터 중 오프셋 값으로 지정되는 데이터로부터를 바이너리 데이터로서 판독하고, 해당 리드 바이너리 커맨드에 대한 레스펀스로서 출력한다.
예를 들면, 도 3에 도시하는 레코드 구조 EF를 지정하는 리드 바이너리 커맨드의 오프셋 값이 「0」인 경우, 상기 IC 카드(1)는, 제4 레코드(R4)로부터 제1 레코드(R1)의 순(내림차순)으로, 각 레코드의 레코드 데이터만을 연결한 모든 데이터를 바이너리 데이터로서 판독한다. 즉, 도 3에 도시하는 레코드 구조 EF를 지정하는 오프셋 값이 「0」인 리드 바이너리 커맨드에 대하여, 제4 처리예의 IC 카드(1)에서는, 「53」~「57」(제4 레코드(R4)의 관리 정보(R4a)), 「58」~「67」(제4 레코드(R4)의 레코드 데이터(R4b)), 「38」~「42」(제3 레코드(R3)의 관리 정보(R3a)), 「43」~「52」(제3 레코드(R3)의 레코드 데이터(R3b)), 「23」~「27」(제2 레코드(R2)의 관리 정보(R2a)), 「28」~「37」(제2 레코드(R2)의 레코드 데이터(R2b)), 「08」~「12」(제1 레코드(R1)의 관리 정보(R1a)), 「13」~「22」(제1 레코드(R1)의 레코드 데이터(R1b))의 순으로 배열한 60 바이트 분의 데이터가 판독하여 출력한다.
또한, 도 3에 도시하는 레코드 구조 EF를 지정하는 리드 바이너리 커맨드의 오프셋 값이 「7」인 경우, 상기 IC 카드(1)는, 제4 레코드(R4)로부터 제1 레코드(R1)의 순(내림차순)으로, 각 레코드의 관리 정보 및 레코드 데이터를 연결한 데이터 중 7바이트째로부터의 데이터를 바이너리 데이터로서 판독한다. 즉, 도 3에 도시하는 레코드 구조 EF를 지정하는 오프셋 값이 「7」인 리드 바이너리 커맨드에 대하여, 제4 처리예의 IC 카드(1)에서는, 「53」으로부터 7 바이트(「53」~「57」, 「58」~「59」)째의 데이터인 「60」~「67」(제4 레코드(R4)의 관리 정보(R4a)의 5 바이트 분과 레코드 데이터(R4b)의 선두로부터 2 바이트 분의 데이터를 제외한 데 이터), 「38」~「52」(제3 레코드(R3)의 관리 정보(R3a) 및 레코드 데이터(R3b)), 「23」~「37」(제2 레코드(R2)의 관리 정보(R2a) 및 레코드 데이터(R2b)), 「08」~「22」(제1 레코드(R1)의 관리 정보(R1a) 및 레코드 데이터(R1b))의 순으로 배열한 53 바이트 분의 데이터가 판독하여 출력한다.
상기한 바와 같이, 제4 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는 해당 커맨드로 지정되는 해당 EF 내의 특정한 레코드에 대하여 액세스하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는 해당 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 내림차순으로 연결한 데이터에 대하여 액세스하도록 되어 있다.
즉, 제4 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는, 지정된 레코드마다 해당 EF 내의 데이터를 처리하는 레코드 구조 EF로서 취급하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는, 해당 레코드 구조 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 처리함으로써, 해당 레코드 구조 EF를 의사적으로 투과 구조 EF로서 취급하도록 한 것이다.
이에 따라, 상기 제4 처리예에 따르면, 레코드 구조 EF에 기억되어 있는 데이터에 대하여 효율적으로 액세스할 수 있다.
또한, 제4 처리예에서는, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우, 각 레코드의 관리 정보 및 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 취급하도록 하고 있다. 이에 따라, 각 레코드의 관리 정보 및 레코드 데이터가 내림차순으로 연결된 데이터를 일괄하여 처리할 수 있다. 예를 들면, 레코드 구조 EF에 처리 이력 정보(로그 데이터)를 1건마다 순서대로 레코드 번호를 부여하여 레코드로서 기억하고 있는 경우, 리드 바이너리 커맨드 등의 바이너리계의 커맨드에 의해, 복수의 처리를 이력이 새로운 순으로 배열한 관리 정보와 로그 데이터를 일괄하여 판독하는 등의 처리를 행할 수 있다.
다음으로, 레코드 구조 EF를 지정하는 바이너리계의 커맨드에 대한 제5 처리예에 대해 설명한다.
이 제5 처리예에서는, 레코드 구조 EF를 지정하는 바이너리계의 커맨드에서의 파라미터 등에 의해 바이너리 데이터로서 취급하는 데이터의 구성을 선택하도록 한 것이다. 즉, 제5 처리예에서는, 상위 장치가 레코드 구조 EF 내의 데이터로부터 생성하는 바이너리 데이터(레코드 구조 EF를 의사적으로 투과 구조 EF로서 취급하기 위한 데이터)의 구성을 바이너리계의 커맨드에서의 파라미터로 지정하고, IC 카드에서는, 레코드 구조 EF를 지정하는 바이너리계의 커맨드에 대하여, 해당 커맨드의 파라미터로 지정된 데이터 구성의 바이너리 데이터에 대하여 처리를 행하도록 하는 것이다.
예를 들면, 상기 제1 처리예에서는, 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 취급한다. 상기 제2 처리예에서는, 레코드 구조 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 취급한다. 상기 제3 처리예에서는, 레코드 구조 EF 내의 각 레코드의 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 취급한다. 상기 제4 처리예에서는, 레코드 구조 EF 내의 각 레코드의 관리 정보 및 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 취급한다. 본 실시예에서는, 제5 처리예로서, 바이너리계의 커맨드에서의 파라미터에 기초하여 제1∼제4 처리예 중 어느 하나를 선택적으로 실행하는 처리에 대해 설명한다.
도 8은, 제5 처리예를 설명하기 위한 플로우차트이다.
먼저, 도 8에 도시하는 바와 같이, IC 카드(1)가 IC 카드 처리 장치(2)로부터 레코드 구조 EF를 지정한 커맨드(예를 들면 리드 커맨드)를 수신한 것으로 한다(스텝 S51). 그러면, 해당 IC 카드(1)의 CPU(11)는, 수신한 커맨드가 레코드계의 커맨드(예를 들면, 리드 레코드 커맨드)인지 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)인지를 판단한다(스텝 S52).
이 판단에 의해 수신한 커맨드가 레코드계의 커맨드(예를 들면,리드 레코드 커맨드)라고 판단한 경우(스텝 S52, "아니오"), 상기 IC 카드(1)의 CPU(11)는, 해당 레코드 구조 EF에 존재하는 각 레코드 중 해당 커맨드로 지정된 레코드에 대하여 처리(예를 들면, 판독 처리)를 실행한다(스텝 S53).
또한, 상기 판단에 의해 수신한 커맨드가 바이너리계의 커맨드(예를 들면, 리드 바이너리 커맨드)라고 판단한 경우(스텝 S52, "예"), 상기 IC 카드(1)의 CPU(11)는, 또한, 해당 커맨드에서의 파라미터에 의해 해당 레코드 구조 EF의 데이터를 바이너리 데이터의 구성을 판단한다(스텝 S54∼S56). 즉, IC 카드(1)의 CPU(11)는, 해당 커맨드에서의 파라미터에 기초하여, 각 레코드의 어느 부분을 바 이너리 데이터로서 취급할지를 판단함과 동시에(스텝 S54), 각 레코드의 연결 순서를 판단한다(스텝 S55, S56).
예를 들면, 본 실시예에서는, 상기 CPU(11)는, 상기 제1 처리예와 마찬가지로 각 레코드의 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 취급할지, 상기 제2 처리예와 마찬가지로 각 레코드의 관리 정보 및 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 취급할지, 상기 제3 처리예와 마찬가지로 각 레코드의 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 취급할지, 상기 제4 처리예와 마찬가지로 각 레코드의 관리 정보 및 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 취급할지를 판단한다.
여기에서, 해당 레코드 구조 EF에 존재하는 각 레코드의 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 취급한다고 판단한 경우(스텝 S54에서 "예", 또한, 스텝 S55에서 "예"), 상기 CPU(11)는, 상기 제1 처리예에서 설명한 도 4의 스텝 S14∼S18과 마찬가지로, 해당 EF 내의 모든 레코드의 관리 정보를 판독하고(스텝 S64), 각 레코드의 오름차순을 판단하고(스텝 S65), 각 레코드의 레코드 데이터의 기억 영역을 판단하고(스텝 S66), 오름차순으로 연결한 각 레코드의 레코드 데이터 중 해당 커맨드로 지정된 오프셋 값으로부터의 데이터에 대하여 처리를 실행하고(스텝 S67), 그 처리 결과를 IC 카드 처리 장치(2)에 송신한다(스텝 S68).
또한 각 레코드의 관리 정보 및 레코드 데이터를 오름차순으로 연결한 데이 터를 바이너리 데이터로서 취급한다고 판단한 경우(스텝 S54에서 "아니오", 또한, 스텝 S56에서 "예"), 상기 CPU(11)는, 상기 제2 처리예에서 설명한 도 5의 스텝 S24∼S28과 마찬가지로, 해당 EF 내의 모든 레코드의 관리 정보를 읽어들이고(스텝 S74), 각 레코드의 오름차순을 판단하고(스텝 S75), 각 레코드의 관리 정보 및 레코드 데이터의 기억 영역을 판단하고(스텝 S76), 오름차순으로 연결한 각 레코드의 관리 정보 및 레코드 데이터 중 해당 커맨드로 지정된 오프셋 값으로부터의 데이터에 대하여 처리를 실행하고(스텝 S77), 그 처리 결과를 IC 카드 처리 장치(2)에 송신한다(스텝 S78).
또한, 각 레코드의 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 취급한다고 판단한 경우(스텝 S54에서 "예", 또한, 스텝 S55에서 "아니오"), 상기 CPU(11)는, 상기 제3 처리예에서 설명한 도 6의 스텝 S34∼S38과 마찬가지로, 해당 EF 내의 모든 레코드의 관리 정보를 읽어들이고(스텝 S84), 각 레코드의 내림차순을 판단하고(스텝 S85), 각 레코드의 레코드 데이터의 기억 영역을 판단하고(스텝 S86), 내림차순으로 연결한 각 레코드의 레코드 데이터 중 해당 커맨드로 지정된 오프셋 값으로부터의 데이터에 대하여 처리를 실행하고(스텝 S87), 그 처리 결과를 IC 카드 처리 장치(2)에 송신한다(스텝 S88).
또한, 각 레코드의 관리 정보 및 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 취급한다고 판단한 경우(스텝 S54에서 "아니오", 또한, 스텝 S55에서 "아니오"), 상기 CPU(11)는, 상기 제4 처리예에서 설명한 도 7의 스텝 S44∼S48과 마찬가지로, 해당 EF 내의 모든 레코드의 관리 정보를 읽어들이고 (스텝 S94), 각 레코드의 내림차순을 판단하고(스텝 S95), 각 레코드의 관리 정보 및 레코드 데이터의 기억 영역을 판단하고(스텝 S96), 내림차순으로 연결한 각 레코드의 관리 정보 및 레코드 데이터 중 해당 커맨드로 지정된 오프셋 값으로부터의 데이터에 대하여 처리를 실행하고(스텝 S97), 그 처리 결과를 IC 카드 처리 장치(2)에 송신한다(스텝 S98).
상기한 바와 같이, 제5 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는 해당 커맨드로 지정되는 해당 EF 내의 특정한 레코드에 대하여 액세스하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는 해당 EF 내의 각 레코드의 데이터에 대하여 해당 커맨드로 지정된 구성의 데이터로서 액세스하도록 되어 있다.
즉, 제5 처리예에서는, 레코드 구조 EF를 지정하는 레코드계의 커맨드를 수신한 경우에는, 지정된 레코드마다 해당 EF 내의 데이터를 처리하는 레코드 구조 EF로서 취급하고, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우에는, 해당 레코드 구조 EF 내의 각 레코드의 데이터를 해당 커맨드로 지정된 구성의 바이너리 데이터로서 처리함으로써, 해당 레코드 구조 EF를 의사적으로 투과 구조 EF로서 취급하도록 한 것이다.
이에 따라, 상기 제5 처리예에 따르면, 레코드 구조 EF에 기억되어 있는 데이터에 대하여 효율적으로 액세스할 수 있다.
또한, 제5 처리예에서는, 레코드 구조 EF를 지정하는 바이너리계의 커맨드를 수신한 경우, 각 레코드의 데이터를 해당 커맨드의 파라미터 등으로 지정된 구성의 바이너리 데이터로서 취급하도록 하고 있다. 이에 따라, 레코드 구조 EF에 복수의 레코드로서 기억되어 있는 데이터에 원하는 데이터 구성의 바이너리 데이터로서 액세스하는 것이 가능하게 된다.
추가적인 장점 및 변경은 당업계의 숙련된 자에게 용이하게 발생할 것이다. 따라서, 보다 넓은 관점에서의 본 발명은 본 명세서에 도시되고 서술된 특정한 설명 및 대표적인 실시예들에 제한되지 않는다. 따라서, 첨부된 청구항에 의해 정의된 바와 같은 일반적인 발명의 개념 및 그 균등한 것의 사상 및 범주를 벗어나지 않고 다양한 변경이 가능하다.
본 발명에 따르면, 데이터에의 효율적인 액세스가 가능한 휴대 가능 전자 장치 및 휴대 가능 전자 장치의 제어 방법을 제공할 수 있다.
Claims (10)
- 관리 정보와 레코드 데이터를 갖는 레코드를 저장한 파일을 기억하는 메모리와,외부 장치와의 데이터 통신을 행하는 통신부와,상기 통신부에 의해 상기 메모리에 기억되어 있는 상기 레코드를 저장한 파일을 지정한 바이너리 데이터 처리용의 바이너리 커맨드를 수신한 경우, 해당 파일에 저장되어 있는 각 레코드의 데이터를 바이너리 데이터로서 처리하는 처리부를 갖는 휴대 가능 전자 장치.
- 제1항에 있어서,상기 메모리, 상기 통신부 및 상기 처리부를 구비하는 모듈과,상기 모듈이 매설된 케이스을 더 갖는 휴대 가능 전자 장치.
- 제1항에 있어서,상기 처리부는, 상기 바이너리 커맨드에 의해 지정된 파일에 저장되어 있는 각 레코드의 레코드 데이터를 바이너리 데이터로서 처리하는 휴대 가능 전자 장치.
- 제1항에 있어서,상기 처리부는, 상기 바이너리 커맨드에 의해 지정된 파일에 저장되어 있는 각 레코드의 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 처리하는 휴대 가능 전자 장치.
- 제3항에 있어서,상기 처리부는, 상기 바이너리 커맨드에 의해 지정된 파일에 저장되어 있는 각 레코드의 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 처리하는 휴대 가능 전자 장치.
- 제1항에 있어서,상기 처리부는, 상기 바이너리 커맨드에 의해 지정된 파일에 저장되어 있는 각 레코드의 관리 정보와 레코드 데이터를 바이너리 데이터로서 처리하는 휴대 가능 전자 장치.
- 제6항에 있어서,상기 처리부는, 상기 바이너리 커맨드에 의해 지정된 파일에 저장되어 있는 각 레코드의 관리 정보와 레코드 데이터를 오름차순으로 연결한 데이터를 바이너리 데이터로서 처리하는 휴대 가능 전자 장치.
- 제6항에 있어서,상기 처리부는, 상기 바이너리 커맨드에 의해 지정된 파일에 저장되어 있는 각 레코드의 관리 정보와 레코드 데이터를 내림차순으로 연결한 데이터를 바이너리 데이터로서 처리하는 휴대 가능 전자 장치.
- 제1항에 있어서,상기 통신부에 의해 상기 메모리에 기억되어 있는 상기 레코드를 저장한 파일을 지정한 바이너리 데이터 처리용의 바이너리 커맨드를 수신한 경우, 해당 파일에 저장되어 있는 각 레코드의 데이터를 바이너리 데이터로서 처리하기 위한 데이터 구성을 판단하는 판단부를 더 갖고,상기 처리부는, 상기 바이너리 커맨드에 의해 지정된 파일에 저장되어 있는 각 레코드의 데이터를 상기 판단부에 의해 판단한 데이터 구성의 바이너리 데이터로서 처리하는 휴대 가능 전자 장치.
- 외부 장치로부터 데이터 처리를 요구하는 커맨드를 수신하는 공정과,상기 외부 장치로부터 수신한 커맨드가 메모리에 기억되어 있는 관리 정보와 레코드 데이터를 갖는 레코드를 저장한 파일을 지정한 바이너리 데이터 처리용의 바이너리 커맨드인지의 여부를 판단하는 공정과,상기 외부 장치로부터 수신한 커맨드가 상기 레코드를 저장한 파일을 지정하는 바이너리 커맨드라고 판단한 경우, 해당 파일에 저장되어 있는 각 레코드의 데이터를 바이너리 데이터로서 처리하는 공정을 포함하는 휴대 가능 전자 장치의 제어 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2005-00292680 | 2005-10-05 | ||
JP2005292680A JP2007102559A (ja) | 2005-10-05 | 2005-10-05 | 携帯可能電子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070038400A true KR20070038400A (ko) | 2007-04-10 |
Family
ID=38029430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060086814A KR20070038400A (ko) | 2005-10-05 | 2006-09-08 | 휴대 가능 전자 장치 및 휴대 가능 전자 장치의 제어 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070124530A1 (ko) |
JP (1) | JP2007102559A (ko) |
KR (1) | KR20070038400A (ko) |
CN (1) | CN1945606A (ko) |
SG (1) | SG131834A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4704292B2 (ja) * | 2006-08-08 | 2011-06-15 | 株式会社エヌ・ティ・ティ・ドコモ | 加入者認証モジュール |
EP2128803A4 (en) * | 2007-02-07 | 2012-01-25 | Toshiba Kk | INFORMATION STORAGE MEDIUM AND MEDIUM PROCESSING SYSTEM |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002373494A (ja) * | 2001-06-15 | 2002-12-26 | Sony Corp | 半導体記憶装置とその制御方法 |
JP4194258B2 (ja) * | 2001-07-25 | 2008-12-10 | 三洋電機株式会社 | データ表示装置 |
JP4393733B2 (ja) * | 2001-11-27 | 2010-01-06 | 大日本印刷株式会社 | 携帯可能情報記録媒体 |
AUPR966001A0 (en) * | 2001-12-20 | 2002-01-24 | Canon Information Systems Research Australia Pty Ltd | A microprocessor card defining a custom user interface |
JP4322021B2 (ja) * | 2003-02-06 | 2009-08-26 | 株式会社ルネサステクノロジ | メモリカード |
JP2005011147A (ja) * | 2003-06-20 | 2005-01-13 | Dainippon Printing Co Ltd | Icカード及びicカードプログラム |
JP4318494B2 (ja) * | 2003-06-20 | 2009-08-26 | 大日本印刷株式会社 | Icカード及びicカードプログラム |
JP4601968B2 (ja) * | 2004-01-19 | 2010-12-22 | 大日本印刷株式会社 | データ整合性検査を省けるicカードおよびicカード用プログラム |
-
2005
- 2005-10-05 JP JP2005292680A patent/JP2007102559A/ja active Pending
-
2006
- 2006-09-04 SG SG200605923-2A patent/SG131834A1/en unknown
- 2006-09-05 US US11/514,965 patent/US20070124530A1/en not_active Abandoned
- 2006-09-08 KR KR1020060086814A patent/KR20070038400A/ko active IP Right Grant
- 2006-09-11 CN CNA2006101291245A patent/CN1945606A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20070124530A1 (en) | 2007-05-31 |
SG131834A1 (en) | 2007-05-28 |
CN1945606A (zh) | 2007-04-11 |
JP2007102559A (ja) | 2007-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100887083B1 (ko) | Ic 모듈 및 휴대 전화 | |
JP6355699B2 (ja) | スマートカードの不揮発性メモリにおけるデータの書込み | |
US9418224B2 (en) | Portable electronic device and control method of portable electronic device | |
JP5259513B2 (ja) | 携帯可能電子装置、icカードおよび携帯可能電子装置の制御方法 | |
US9183400B2 (en) | IC card and IC card control method | |
JP4891587B2 (ja) | 携帯可能電子装置、icカードおよびicモジュール | |
US20120067947A1 (en) | Ic card, mobile electronic device and data processing method in ic card | |
KR101783526B1 (ko) | Ic 카드, 전자 장치 및 휴대 가능 전자 장치 | |
US6286757B1 (en) | Portable electronic apparatus | |
KR20070038400A (ko) | 휴대 가능 전자 장치 및 휴대 가능 전자 장치의 제어 방법 | |
US20090012975A1 (en) | Portable electronic device and file management method for use in portable electronic device | |
JP5301018B2 (ja) | 携帯可能電子装置 | |
US7014119B2 (en) | Method of manufacturing smart cards | |
JP2011060136A (ja) | 携帯可能電子装置、および、携帯可能電子装置におけるデータ管理方法 | |
JP2018194995A (ja) | 電子情報記憶媒体、icカード、データ送信方法、データ書き込み方法、データ送信プログラム及びデータ書き込みプログラム | |
US20090083273A1 (en) | Portable electronic apparatus and control method for portable electronic apparatus | |
JP2012133656A (ja) | 携帯可能電子装置及びicカード | |
JP5742976B2 (ja) | 通信装置、通信方法、及び、無線タグ | |
JP5085055B2 (ja) | Icカードおよびicモジュール | |
JP2005346338A (ja) | 携帯型情報記憶媒体、そのプログラム及び携帯型情報記憶媒体の処理解析方法 | |
JP2009176034A (ja) | 携帯可能電子装置、及び、データ管理方法 | |
JP2014006631A (ja) | Icカード、および、携帯可能電子装置 | |
JP5664807B2 (ja) | 通信装置、通信方法、及び、無線タグ | |
AU2002254795B2 (en) | Method of manufacturing smart cards | |
JP2014182639A (ja) | Icカードおよび携帯可能電子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
NORF | Unpaid initial registration fee |