KR100610529B1 - 카드블랙리스트 데이터의 압축저장방법 및 그 검색방법 - Google Patents

카드블랙리스트 데이터의 압축저장방법 및 그 검색방법 Download PDF

Info

Publication number
KR100610529B1
KR100610529B1 KR1020030069852A KR20030069852A KR100610529B1 KR 100610529 B1 KR100610529 B1 KR 100610529B1 KR 1020030069852 A KR1020030069852 A KR 1020030069852A KR 20030069852 A KR20030069852 A KR 20030069852A KR 100610529 B1 KR100610529 B1 KR 100610529B1
Authority
KR
South Korea
Prior art keywords
card
bin
data
value
index table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR1020030069852A
Other languages
English (en)
Other versions
KR20050034058A (ko
Inventor
장정인
Original Assignee
케이비 테크놀러지 (주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 케이비 테크놀러지 (주) filed Critical 케이비 테크놀러지 (주)
Priority to KR1020030069852A priority Critical patent/KR100610529B1/ko
Publication of KR20050034058A publication Critical patent/KR20050034058A/ko
Application granted granted Critical
Publication of KR100610529B1 publication Critical patent/KR100610529B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/42Confirmation, e.g. check or permission by the legal debtor of payment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/12Cash registers electronically operated
    • G07G1/14Systems including one or more distant stations co-operating with a central processing unit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Accounting & Taxation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

구매대금 또는 교통요금을 징수하는 BL데이터 기반 카드결제 시스템 또는 WL(White List)데이터 기반 카드결제 시스템에서, 각 카드사에서 받은 카드번호리스트 데이터를 저장 또는 전송하는데 사용되는 카드번호리스트 데이터의 압축방법에 있어서;
카드번호 16자리중 1번째 ~ 6번째자리까지의 값(십진수값 또는 바이너리값)을 BIN으로, 7번째 ~ 15번째까지의 번호를 4바이트의 바이너리 코드로 변환시킨 값중에서 상위 2바이트를 섹터넘버로, 하위 2바이트를 BL값으로 지정하였을 때,
동일한 BIN 및 섹터넘버를 가진 BL값들이 수집된 BL블럭들로 구성된 BL저장영역과,
특정한 BIN 및 섹터넘버에 해당하는 BL블럭들의 저장위치를 표시하는 인덱스 테이블 영역으로 이루어진 데이터페이지의 구조를 구성하는 것을 특징으로 한다.
BL, 후불식카드, 교통카드, 블랙리스트, 신용카드

Description

카드블랙리스트 데이터의 압축저장방법 및 그 검색방법{COMPRESSION SAVING METHOD AND SEARCH METHOD OF CARD BLACK-LIST DATA}
도 1은 본 발명의 제1 실시예에서의 BL데이타 구조의 하나를 도시한 것이다.
도 2는 본 발명의 제1 실시예에서의 BL데이타 구조의 다른 하나를 도시한 것이다.
도 3은 본 발명의 제2 실시예에서의 BL데이타 구조의 하나를 도시한 것이다.
도 4는 본 발명의 제4 실시예에서의 BL데이타 구조의 하나를 도시한 것이다.
도 5는 본 발명이 사용되는 후불식 카드시스템을 도시한 것이다.
본 발명은 교통요금 또는 상품이나 서비스의 구매대금 등을 신속 정확하게 징수하기 위한 블랙리스트(BL:신용불량카드 및 분실카드 리스트) 데이터 기반 카드결제 시스템에 관한 것으로, 특히 카드단말기의 BL데이타 저장 공간을 획기적으로 절감하면서도 검색속도에 지장이 없고 BL의 업데이트가 용이한 저장방법에 관한 것이다.
최근에 교통카드를 중심으로 스마트 카드형 전자화폐가 널리 사용되고 있으 며, 이 중 후불식 전자화폐는 선불방식과는 달리 사전에 금액을 리필시켜야 하는 불편을 덜 수 있고, 신용카드의 결제방식과 유사하여, 특히, 신용카드의 부가기능으로써 널리 사용되고 있다.
후불식 방식은 정산서버에서 교통카드의 사용내역을 모아 신용카드결제와 유사한 방식으로 후불 결제하는 것이다.
그러나, 최근에 발급되는 거의 모든 신용카드에는 후불식 교통카드의 기능이 포함되며, 이러한 신용카드도 일인당 수매씩 발급되어 있는 이유로, 거래가 불가능한 신용불량자의 카드나 분실된 후불식 교통카드의 리스트인 BL데이타도 그 크기가 커질 수 밖에 없다.
상기의 문제점을 해결하기 위하여 출원번호 제 10-2001-0040873호 출원이 제안된 바 있다. 상기 출원에서는 BL DB에 수록된 일련의 BL데이터를 순차적으로 소트시키는 단계와, 소트된 최 가장자리의 BL카드번호 중에서 처음 6번째 자리까지의 은행식별번호(BIN)를 1바이트로 코드화하고 카드번호의 7번 ~ 15번째자리까지의 9자리의 카드식별번호를 4바이트로 바이너리 코드화하여 하나의 카드번호를 5바이트 크기로 압축 생성하는 단계와, 하나의 BL카드번호에 대한 압축 데이터가 생성되면 다음 차례의 BL카드번호에 대해서는 바로앞의 BL카드번호와의 차이값(오프셋값)만 표기하여 압축하는 단계로 구성되는 것을 그 기술적 요지로 한다.
상기 출원은 BL데이타의 크기를 줄일수 있는 방법이지만, 그에 따른 부작용이 존재 등의 이유로 실제로 응용하기에는 문제가 있다. 압축에 따른 부작용은 다음과 같다. 첫째, 카드단말기가 읽어들인 카드번호에 대하여 저장된 BL데이타에서 해당카드의 존재여부를 검사하여야 하는데 옵셋으로 저장되어 있기 때문에 그 검색과정이 복잡하고 시간이 소요된다.
둘째, 시시각각 변동하는 BL데이타의 갱신시마다 상기 출원의 과정 단계들을 반복하여 전체 BL데이타를 다시 생성해주어야 하는데, BL데이타의 갱신주기가 짧은 경우에는 불필요하며 낭비적인 과정의 반복이지 않을 수 없으며, 낭비를 방지하기 위해 BL데이타 갱신주기를 길게 하면 불량카드가 사용되는 위험성이 커지는 딜레마에 빠지는 문제점이 있었다.
셋째, 상기 6자리의 BIN이 현재는 모두 256개이내라는 이유로 1바이트로 표시하는데, 이에는 각 BIN별로 대응하는 별도의 1바이트값을 부여해야 하는바, BIN의 신규가입이나 해제시 그 조정절차가 복잡해지며, 글로벌시대에 해외의 발급사의 카드를 적용하는 경우에는 총 BIN의 개수가 256개 이내라고 보장할 수 없는 한계를 안고 있는 방법이다.
본 발명은 상기의 문제점들을 해결하기 위하여 안출된 것으로서, 카드단말기내 저장공간 및 전송효율을 위해 보다 BL데이타의 크기를 줄이면서도 상기 카드단말기에서 보다 용이하게 카드번호의 검색이 가능한 BL데이터의 압축방법을 제공함에 그 목적이 있다.
본 발명은 또한, 주기적으로 변동된 BL데이타 만을 전송하여 검색하는 기능을 용이하게 적용할 수 있는 BL데이터의 압축방법을 제공함에 그 또 다른 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 BL압축저장방법은
상기 출원에서는 일련의 BL데이터를 순차적으로 소트시키는 단계와,
소트된 각 BL카드번호들을 처음 6번째 자리까지를 은행식별번호(BIN)로 구분하고, 카드번호의 7번 ~ 15번째자리까지의 9자리의 카드식별번호를 4바이트로 바이너리 코드화하고 다시 2바이트씩 나누어 섹터넘버와 BL값으로 구분하는 단계와,
동일한 BIN 및 섹터넘버를 가지는 BL값들을 모아진 BL블럭들로 형성된 BL데이타를 형성하는 단계와;
각 BIN 및 섹터넘버에 대한 BL블럭의 저장위치를 표시하는 BL블럭 인덱스 테이블을 형성하는 단계로 이루어진 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 각 실시예들을 상술하기로 한다.
(실시예 1)
본 실시예의 BL데이타페이지의 저장구조는 동일한 BIN 및 섹터넘버를 가지는 BL값들을 모아진 BL블럭들로 형성된 BL(데이타)저장영역과, 특정 BIN 및 섹터넘버를 가진 BL블럭의 저장위치를 검색할 수 있는 인덱스 테이블로 구성된다. 즉, 본 발명의 BL인덱스 테이블은 BIN 및 섹터넘버값으로서 해당 BL데이타의 위치를 찾을 수 있는 구조를 가진다. 관리의 편의를 위해 BL데이타의 버젼 및 크기등의 서지정보를 포함하는 헤더를 구비하는 것이 바람직하다.
관리서버에서의 BL데이터의 그 상세한 생성과정은 다음과 같다.
우선 수집된 BL데이터를 그 카드번호순으로 소트시킨다. 이때 작업의 편의를 위해 각 자리수마다 1바이트를 할당하면 1개의 BL데이타에 16바이트가 할당된다. 각 BL카드번호의 7번째 ~ 15번째까지의 번호를 하나의 십진수로 보아 이를 4바이트의 바이너리 코드로 변환시키고 16번째 자리값은 버려, 각 BL카드번호를 10바이트값으로 변환한다. 1번째 ~ 6번째 번호들을 BIN으로 지정하고, 상기 4바이트의 바이너리 코드중 상위 2바이트를 섹터넘버로 지정하고, 하위 2바이트를 BL값으로 지정한다. 상기에서 1번째 ~ 6번째 번호를 하나의 십진수로 보아 이를 3바이트의 바이너리 코드로 변환해서 구현해도 무방하다.
소트된 BL데이터를 동일한 BIN을 가진 데이타들을 구분하여 작업을 진행한다. 소트된 순서대로 동일한 BIN 및 섹터넘버를 가진 카드들의 BL값들을 병렬적으로 수집하여 하나의 BL블럭을 구성하여 작성하려는 압축 BL데이타가 저장되는 공간에 차례대로 저장한다. 각 BL블럭의 상기 압축 BL데이타상의 위치값(포인터)으로 구성된 BL블럭 인덱스 테이블을 구성하는데, 동일한 BIN을 가진 BL블럭들마다 별도로 인덱스 테이블을 구성한다. 상기 각 BL블럭 인덱스 테이블을 압축 BL데이타가 저장되는 공간에 저장하고 그 저장된 공간상의 위치값(포인터)으로 구성된 섹터넘버 인덱스 테이블을 구성한다. 상기 각 섹터넘버 인덱스 테이블을 압축 BL데이타가 저장되는 공간에 저장하고 그 저장된 공간상의 위치값(포인터)으로 구성된 BIN 인덱스 테이블을 구성한다. 전체 BL데이타의 버전, 작성일, 크기 등의 서지정보가 기록된 헤더를 구성하여 상기 완성된 BL데이타 바디에 이어서 저장한다.
상기와 같이 관리서버에서 작성된 BL데이타는 소정의 유/무선 통신 경로를 통해 각 카드단말기로 전송되고 동일한 구조로 상기 카드단말기의 내부메모리에 저 장된다.
카드단말기가 읽어들인 카드에 대한 카드번호를 상기와 같이 구성된 BL데이타에서 검색하는 과정은 다음과 같다. 먼저, 읽어들인 카드번호 16자리중 1번째 ~ 6번째자리까지의 값(십진수값 또는 바이너리값)을 BIN으로, 7번째 ~ 15번째까지의 번호를 4바이트의 바이너리 코드로 변환시킨 값 중 상위 2바이트를 섹터넘버로, 하위 2바이트를 BL값으로 지정한다(S110). 상기 BIN 및 섹터넘버를 내부 메모리에 저장된 인덱스 테이블에서 검색(S120)하여, 검색된 레코드에 기록된 해당 BL블럭의 저장위치를 리드하여 찾아간다(S140).
상기 BL블럭 저장위치 검색의 그 상세한 방법은, 우선 읽어들인 카드의 BIN값을 BIN인덱스테이블에서 검색한다(S122). 검색된 레코드에는 해당 BIN을 가지는 카드번호데이타들에 대한 섹터넘버 인덱스 테이블 저장위치가 기록되어 있으며, 이를 리드한다(S124). 다시 상기 섹터넘버 인덱스 테이블에서 리드한 카드의 섹터넘버를 검색한다(S126). 검색된 레코드에는 해당 BIN 및 섹터넘버에 대한 BL블럭의 저장위치가 기록되어 있다. 이 값으로 해당 BL블럭의 위치를 알 수 있는 것이다.
읽어들인 카드번호 중 상기 BL값을 상기 BL블럭에서 검색한다(S150). 검색결과 BL블럭내에 존재하면 거래불가 카드로 판정하고 존재하지 않으면 전자화폐 거래절차를 수행한다(S160).
카드단말기 또는 관리서버내 메모리상에 저장되는 전체 BL데이타의 각 부분에 대한 저장구조는 다음 2가지 경우가 가능하다. 첫번째 방법은 모든 BL블럭들을 하나의 집합으로 모아서 저장하고, 다음에 섹터넘버 인덱스 테이블들을 하나의 집 합으로 모아서 저장하고, 다음에 이어서 BIN 인덱스 테이블을 저장한다. 이와 같이 구성된 BL 데이타 바디에 필요한 서지정보가 포함된 BL 데이타 헤더를 이어서 저장하여 전체 BL 데이타를 구성한다.
두번째 방법은 동일한 BIN을 가진 BL블럭들끼리 모아서 하나의 집합으로 모으고, 각 BIN의 BL블럭 집합에 이어서 해당 BIN의 섹터넘버 인덱스 테이블을 저장하여 각 BIN별 데이타를 구성한다. 각 BIN별 데이타를 모아서 BL 데이타 바디를 형성하고 이어서 BIN 인덱스 테이블 및 BL데이타 헤더를 저장하여 전체 BL 데이타를 구성한다.
(실시예 2)
본 실시예는 상기 제1 실시예의 구조에 예외 BL 페이지를 추가한 것을 특징으로 한다. 본 실시예의 BL데이타는 BIN인덱스 테이블과, 각 BIN별로 섹터넘버 인덱스 테이블과 BL블럭들과 예외 BL페이지로 이루어진 BIN별 데이타로 이루어진 구조를 가진다.
어떤 특정한 BIN 및 섹터넘버를 가진 BL번호들이 극히 적은 개수가 있다면, 이를 상기 제1 실시예처럼 별도로 BL블럭을 구성하고 인덱스 테이블에 추가하기에는 저장공간이 오히려 낭비되는 결과를 가져오지 않을 수 없다. 따라서, 본 실시예에서는 어떤 특정한 BIN 및 섹터넘버를 공유하는 BL번호들이 소정개수(5개 내지 10중에서 지정)이하라면 별도의 BL블럭으로 모으지 않고 예외 BL페이지에 그 이진카드번호값(섹터넘버+BL값)을 기록한다. 상기 예외 BL페이지는 각 BIN별 BL데이타에 추가되는 구조로서 포함된다.
본 실시예의 BL데이터의 생성방법은 다음과 같다.
우선 수집된 BL데이터를 그 카드번호순으로 소트시킨다. 이때 작업의 편의를 위해 각 자리수마다 1바이트를 할당한다. 각 BL카드번호의 7번째 ~ 15번째까지의 번호를 하나의 십진수로 보아 이를 4바이트의 바이너리 코드로 변환시키고 16번째 자리값은 버려, 각 BL카드번호를 10바이트값으로 변환한다. 1번째 ~ 6번째 번호들을 BIN으로 지정하고, 상기 4바이트의 바이너리 코드중 상위 2바이트를 섹터넘버로 지정하고, 하위 2바이트를 BL값으로 지정한다. 상기에서 1번째 ~ 6번째 번호를 하나의 십진수로 보아 이를 3바이트의 바이너리 코드로 변환해서 구현해도 무방하다.
소트된 BL데이터를 동일한 BIN을 가진 데이타들을 구분하여 작업을 진행한다. 소트된 순서대로 동일한 BIN 및 섹터넘버를 가진 카드들의 BL값들을 병렬적으로 수집한다. 이때 어떤 동일한 BIN 및 섹터넘버를 가진 카드들의 BL값들의 개수가 소정개수(10개로 지정하기로 한다) 미만이라면 그 BL값들은 별도로 할당한 예외 BL 저장영역에 이진카드번호값(BIN을 제외한 섹터넘버와 BL값)만을 저장한다. 반대로 어떤 동일한 BIN 및 섹터넘버를 가진 카드들의 BL값들의 개수가 10개 이상이라면 하나의 BL블럭을 구성하여 작성하려는 압축 BL데이타가 저장되는 공간에 차례대로 저장한다.
각 BL블럭의 상기 압축 BL데이타상의 위치값(포인터)으로 구성된 BL블럭 인덱스 테이블을 구성하는데, 동일한 BIN을 가진 BL블럭들마다 별도로 인덱스 테이블을 구성한다. 상기 각 BL블럭 인덱스 테이블을 압축 BL데이타가 저장되는 공간에 저장하고 그 저장된 공간상의 위치값(포인터)으로 구성된 섹터넘버 인덱스 테이블을 구성하여 저장하고, 해당 BIN에 대한 예외 BL페이지를 구성하여 저장한다. 상기 각 섹터넘버 인덱스 테이블을 압축 BL데이타가 저장되는 공간에 저장하고 그 저장된 공간상의 위치값(포인터)으로 구성된 BIN 인덱스 테이블을 구성한다. 전체 BL데이타의 버전, 작성일, 크기 등의 서지정보가 기록된 헤더를 구성하여 상기 완성된 BL데이타 바디에 이어서 저장한다.
본 실시예의 카드단말기의 BL데이터 검색방법은 다음과 같다.
먼저, 읽어들인 카드번호 16자리중 1번째 ~ 6번째자리까지의 값(십진수값 또는 바이너리값)을 BIN으로, 7번째 ~ 15번째까지의 번호를 4바이트의 바이너리 코드로 변환시키고 상위 2바이트를 섹터넘버로, 하위 2바이트를 BL값으로 지정한다(S110). 상기 BIN을 상기 BIN인덱스 테이블에서 검색한다(S122). 검색된 필드에는 해당 BIN에 대한 섹터넘버 인덱스 테이블의 저장위치가 기록되어 있으므로, 이를 참조하여 해당 BIN에 대한 섹터넘버 인덱스 테이블로 찾아간다(S124). 읽어들인 카드번호 중 상기 섹터넘버를 섹터넘버 인덱스 테이블에서 검색한다(S126). 검색된 필드에는 해당 섹터넘버에 대한 BL블럭의 저장위치가 기록되어 있으므로, 이를 참조하여 해당 섹터넘버에 대한 BL블럭으로 찾아간다(S140). 읽어들인 카드번호 중 상기 BL값을 상기 BL블럭에서 검색한다(S150). 검색결과 BL블럭내 존재하면 거래불가 카드로 판정하고 존재하지 않으면 전자화폐 거래절차를 수행한다(S160). 그런데, 상기 S126단계에서 읽어들인 카드의 섹터넘버가 섹터넘버 인덱스 테이블에서 검색되지 않는다면, 해당 BIN별 BL데이터 저장영역에 포함된 예외 BL페이지에서 이진카드번호값을 검색한다(S202). 상기에서 읽어들인 카드번호가 검색되면 사용불가 카드로 판단하고, 검색되지 않으면 전자화폐 거래절차를 수행한다(S204).
(실시예 3)
본 실시예는 제2 실시예와 마찬가지로 상기 제1 실시예의 구조에 예외 BL 페이지를 추가한 것을 특징으로 한다. 즉, 본 실시예의 BL 데이타는 상기 제 1실시예의 전체 BL데이타와 동일한 구조의 전체 BL 페이지와 예외 BL 페이지로 구성된다. 본 실시예에서는 상기 제2 실시예의 경우와는 다르게 일반 BL 페이지와 예외 BL 페이지가 각 BIN별로 구분되어 결합되지 않고, 전체 BL데이타가 일반 BL페이지와 예외 BL페이지로 구성된다.
본 실시예에서도 상기 제2 실시예와 마찬가지로 어떤 특정한 BIN 및 섹터넘버를 공유하는 BL번호들이 소정개수(5개 내지 10중에서 지정)이하라면 별도의 BL블럭으로 모으지 않고 예외 BL페이지에 그 카드번호값(섹터넘버+BL값)을 기록한다. 상기 예외 BL페이지는 각 예외적인 BL번호 전체값들이 병렬적으로 수집 저장된 예외 BL페이지 바디와, 작성일자, 버젼 등의 서지정보가 포함된 예외 BL페이지 헤더로 구성된다.
본 실시예의 BL데이터의 생성방법은 다음과 같다.
우선 수집된 BL데이터를 그 카드번호순으로 소트시킨다. 이때 작업의 편의를 위해 각 자리수마다 1바이트를 할당한다. 각 BL카드번호의 7번째 ~ 15번째까지의 번호를 하나의 십진수로 보아 이를 4바이트의 바이너리 코드로 변환시키고 16번째 자리값은 버려, 각 BL카드번호를 10바이트값으로 변환한다. 1번째 ~ 6번째 번호들을 BIN으로 지정하고, 상기 4바이트의 바이너리 코드중 상위 2바이트를 섹터넘버로 지정하고, 하위 2바이트를 BL값으로 지정한다. 상기에서 1번째 ~ 6번째 번호를 하나의 십진수로 보아 이를 3바이트의 바이너리 코드로 변환해서 구현해도 무방하다.
소트된 BL데이터를 동일한 BIN을 가진 데이타들을 구분하여 작업을 진행한다. 소트된 순서대로 동일한 BIN 및 섹터넘버를 가진 카드들의 BL값들을 병렬적으로 수집한다. 이때 어떤 동일한 BIN 및 섹터넘버를 가진 카드들의 BL값들의 개수가 소정개수(10개로 지정하기로 한다)미만이라면 그 BL값들은 이진카드번호값(섹터넘버+BL값)을 별도로 할당한 예외 BL 저장영역(예외 BL페이지 저장영역)에 저장한다. 반대로 어떤 동일한 BIN 및 섹터넘버를 가진 카드들의 BL값들의 개수가 10개 이상이라면 하나의 BL블럭을 구성하여 작성하려는 압축 BL데이타가 저장되는 공간(일반 BL 페이지 저장영역)에 차례대로 저장한다.
상기 일반 BL 페이지의 경우, 각 BL블럭의 상기 압축 BL데이타상의 위치값(포인터)으로 구성된 BL블럭 인덱스 테이블을 구성하는데, 동일한 BIN을 가진 BL블럭들마다 별도로 인덱스 테이블을 구성한다. 상기 각 BL블럭 인덱스 테이블을 압축 BL데이타가 저장되는 공간에 저장하고 그 저장된 공간상의 위치값(포인터)으로 구성된 섹터넘버 인덱스 테이블을 구성한다. 상기 각 섹터넘버 인덱스 테이블을 압축 BL데이타가 저장되는 공간에 저장하고 그 저장된 공간상의 위치값(포인터)으로 구성된 BIN 인덱스 테이블을 구성한다. 전체 BL데이타의 버전, 작성일, 크기 등의 서지정보가 기록된 헤더를 구성하여 상기 완성된 BL데이타 바디에 이어서 저장한다.
기록이 완료된 예외 BL바디에 대해서도 필요한 서지정보가 기록된 헤더를 구성하여 결합하여 전체 예외 BL 페이지를 구성한다. 상기 예외 BL 페이지도 각 BIN별로 구분하여 데이타 저장위치를 할당하고 해당 저장위치에는 이진카드번호값(섹터넘버와 BL값)만을 저장하는 구조를 가지며, 이를 위해 예외 BL에 대한 BIN 인덱스 테이블을 구비하는 것이 바람직하다. 상기 예외 BL에 대한 BIN 인덱스 테이블의 구조는 상기 BIN 인덱스 테이블의 구조와 유사하므로 설명을 생략한다.
본 실시예의 카드단말기의 BL데이터 검색방법은 다음과 같다.
먼저, 읽어들인 카드번호 16자리중 1번째 ~ 6번째자리까지의 값(십진수값 또는 바이너리값)을 BIN으로, 7번째 ~ 15번째까지의 번호를 4바이트의 바이너리 코드로 변환시키고 상위 2바이트를 섹터넘버로, 하위 2바이트를 BL값으로 지정한다(S110). 상기 BIN을 상기 BIN인덱스 테이블에서 검색한다(S122). 검색된 필드에는 해당 BIN에 대한 섹터넘버 인덱스 테이블의 저장위치가 기록되어 있으므로, 이를 참조하여 해당 BIN에 대한 섹터넘버 인덱스 테이블로 찾아간다(S124). 읽어들인 카드번호 중 상기 섹터넘버를 섹터넘버 인덱스 테이블에서 검색한다(S126). 검색된 필드에는 해당 섹터넘버에 대한 BL블럭의 저장위치가 기록되어 있으므로, 이를 참조하여 해당 섹터넘버에 대한 BL블럭으로 찾아간다(S140). 읽어들인 카드번호 중 상기 BL값을 상기 BL블럭에서 검색한다(S150). 검색결과 BL블럭내 존재하면 거래불가 카드로 판정하고 존재하지 않으면 전자화폐 거래절차를 수행한다(S160). 그런데, 상기 S126단계에서 읽어들인 카드의 섹터넘버가 섹터넘버 인덱스 테이블에서 검색되지 않는다면, 예외 BL에 대한 BIN인덱스 테이블에서 읽어들인 카드의 BIN 을 검색하여 해당 BIN을 포함하는 예외 BL의 저장위치를 알아내고, 상기 예외 BL의 저장위치에서 읽어들인 카드의 이진카드번호값(섹터넘버 및 BL값)을 검색한다(S202). 상기에서 읽어들인 카드번호가 검색되면 사용불가 카드로 판단하고, 검색되지 않으면 전자화폐 거래절차를 수행한다(S204).
(실시예 4)
본 실시예는 상기 제1 실시예 또는 제2 실시예 또는 제3실시예의 구조를 가진 메인 BL파일에 템프 BL데이타를 추가한 것을 특징으로 한다. 템프 파일과 예외 BL페이지의 유사성이 강한 상기 제3 실시예의 개선으로 적용하기가 용이하다. 상기 템프 BL파일은 메일 BL파일의 작성이후 특정기간 동안 변동된 사항만을 기록한 BL데이타이다.
템프 BL데이타는 짧은 기간의 변동한 BL만을 기록하므로 메인 BL데이타처럼 압축하기에는 데이타간의 간격이 크다. 따라서, 단순히 BIN넘버를 공유하는 카드번호들의 집합으로 구분하여 구현하는 것이 바람직하다. BL변동은 새로이 BL로 카드번호가 추가되는 것 뿐만 아니라, 기존에 BL에 있던 카드번호가 리스트에서 삭제되는 경우도 있으므로 템프 BL에 기록된 각 카드번호마다 삭제/추가 여부를 표시해야 한다. 표시방법은 별도의 각 카드번호기록마다 플래그비트를 마련하여(9자리 십진수를 4바이트 이진수로 변환할때 남는 자리를 플래그로 이용하는 것이 바람직하다) 표시하거나, 삭제되는 리스트와 추가되는 리스트들을 그 저장영역을 구분하여 표시한다.
본 실시예의 전체 BL데이터중 메인 BL데이터의 생성방법은 상기 제1실시예 내지 제3 실시예 중 하나와 동일하다.
도 4는 본 발명의 제 4실시예의 메인BL 데이타와 템프BL 데이타를 설명하기 위한 것이다. 이 경우에는 BL전송이 하루에 한번 이루어지는 것으로 한다.
일단, 과거의 BL데이터인 메인BL 데이타가 있고, 이 메인BL 데이타는 지불단말기의 메모리에 저장되어 있다. 중앙단말기는 메인BL 데이타 최종갱신일 이후 첫째날동안 추가된 BL과 해제된 BL을 모아서 템프BL0를 만들어(S20) 지불단말기로 전송하고, 지불단말기의 메모리에는 메인BL과 템프BL0을 저장한다. 중앙단말기는 둘째날 동안 추가된 BL과 해제된 BL을 모아서 템프BL0을 갱신(새로 추가된 BL을 추가기록하고, 추가된 BL번호와 같은 번호가 존재하는 경우 기존 값을 새로운 설정으로 기록한다)하여(S30) 지불단말기로 전송하고 지불단말기는 메모리에 저장된 템프BL0를 새로 갱신된 템프BL0로 교체한다. 같은 방법으로 일곱째날 까지 추가/해제된 BL을 모아서 갱신하여 1주일간의 최종 템프BL0을 완성한다(S40). 상기의 과정으로 다음 1주일 동안 템프BL1을 완성한다. 이제 지불단말기의 메모리에는 메인BL과 템프BL0, 템프BL1이 저장되어 있다. 템프BL0부터 템프BL9까지 10개의 템프BL이 모아지면, 중앙단말기는 기존의 메인BL에 템프BL 10개를 병합하여 새로운 버전의 메인BL을 구성한다(S50). 이 과정은 기존의 메인BL에 우선 템프BL0를 병합하여 갱신하고, 다시 템프BL1을 병합하여 갱신하는 순서로 템프BL9까지 병합하여 갱신한다. 메인BL에 템프BL을 병합할 때에는 템프BL에 '등록'으로 설정된 BL번호들은 메인BL에 추가하고(물론 이미 존재하는 경우에는 변화없다), 템프BL에 '해제'로 설정된 BL번호들은 메인BL에서 제거한다(물론 해당 번호가 메인BL에 존재하지 않는 경우 변화없다).
템프 BL 데이터 영역내 BL 데이터 저장영역의 각 이진카드번호값은 9자리의 십진수를 31비트의 이진수로 변환하여 표시하고, BL등록시 '0', BL해제시 '1'을 기록하는 BL등록/해제 비트(1비트)를 앞에 붙여 모두 4바이트로 저장한다.
본 실시예의 카드단말기의 BL데이터 검색방법은 다음과 같다.
단말기의 메모리에는 1개의 메인 BL데이타와 2개의 템프 BL데이타가 저장되어 있다고 가정한다. 메인 BL을 먼저 검색하였을 경우에는 템프 BL을 다시 검색하는 번거로움이 있으므로, 템프 BL부터 특히, 가장 최신의 템프 BL부터 검색한다.
단말기는 읽어들인 전체카드번호중 1번째 ~ 6번째 자리까지의 BIN값을 BIN 인덱스 테이블에서 검색하고, 그 결과값으로 해당 BIN의 BL데이터 저장영역을 찾아간다. 읽어들인 카드의 전체 카드번호중 7번째 ~ 15번째까지의 번호를 4바이트의 바이너리 코드로 변환한 이진카드번호값을, 해당 BIN에 대한 가장 최근의 템프 BL데이타에서 검색한다(S102). 해당 이진카드번호값이 검색되면 그것에 대한 삭제/추가 여부 기록을 리드하여 삭제라면 당해 카드는 사용가능카드로 판정을 완료하고, 추가라면 사용불가카드로 판정을 완료한다(S104). 상기 단계에서 해당 이진카드번호값이 검색되지 않으면 다음 최근의 템프 BL데이타에서 검색하는 상기 단계와 동일한 과정을 수행한다. 모든 템프 BL데이타에서 해당 이진카드번호값이 검색되지 않으면 메인 BL데이타에서 해당 이진카드번호값을 검색하게 되는데, 이 검색 절차는 상기 제1 실시예 내지 제3 실시예의 어느 하나와 동일하므로 설명을 생략한다.
본 발명의 모든 실시예에서, 계약관계상 서비스 되지 않는 카드 종류(즉, BIN)를 구분하기 위해서는, 상기 BIN인덱스 테이블에 후불 거래가 가능한 카드들의 BIN을 모두 기록하는 것이 바람직하다. 이 때 BL이 전혀 없는 경우에는 해당 BL데이타 저장영역이 없으므로 인덱스 영역에는 NULL을 표시하는 값을 기록하며, 템프 BL데이타로 서비스 추가된 BIN을 추가하기 위해 상기 BIN인덱스 테이블에는 소정크기의 예약영역을 가져야 한다. 이와 같은 구현의 경우에는 단말기는 BL체크시 먼저 읽어들인 카드의 BIN이 상기 BIN인덱스 테이블에 존재하는지를 먼저 확인하여 존재하는 경우에만 후불처리 절차를 수행하고 존재하지 않으면 거래불가로 종료한다.
본 발명의 각 인덱스 테이블에 저장되는 값은 찾으려는 데이타의 저장위치에 대한 어드레스값 또는 인덱스값이 될 수 있다. 이중 어드레스로 구현하는 경우에는 그 값의 크기가 커서 저장공간의 낭비가 있는 반면, 바로 해당 위치로 찾아갈수 있으므로 검색속도가 보다 빠르고 검색구현이 간단한 장점이 있다. 반대로 인덱스로 구현하는 경우에는 인덱스 숫자만큼 이전의 각 데이타구조를 하나씩 찾아가야 하므로 검색속도가 느리고 검색구현이 복잡한 단점이 있는 반면에, 짧은 인덱스 숫자를 사용하므로 저장공간을 절감하는 장점이 있다.
본 발명에 의한 BL데이터의 압축방법을 실시하면, 종래의 방법보다 BL데이터의 카드 단말기내 저장공간을 절감하면서도, 단말기가 읽어들인 카드번호의 BL존재여부의 검색이 빠른 효과를 가져온다.
본 발명에 의한 BL데이터의 압축방법 및 템프 파일을 사용하는 구현을 실시하면, 일일 전송되는 데이터량은 크기가 작은 템프 파일이므로 전송시간 및 전송비용을 절감할 수 있는 효과가 있을 뿐만 아니라, 단말기내 별도의 BL데이타의 병합(merge)과정이 없으므로 BL데이타의 갱신을 수행함으로 인한 카드단말기의 운영시간의 단축 및 시간낭비를 방지하는 효과도 있다.

Claims (8)

  1. 삭제
  2. 구매대금 또는 교통요금을 징수하는 BL데이터 기반 카드결제 시스템 또는 WL(White List)데이터 기반 카드결제 시스템에서, 각 카드사에서 받은 카드번호리스트 데이터를 저장 또는 전송하는데 사용되는 카드번호리스트 데이터의 압축방법에 있어서;
    카드번호 16자리중 1번째 ~ 6번째자리까지의 값(십진수값 또는 바이너리값)을 BIN으로, 7번째 ~ 15번째까지의 번호를 4바이트의 바이너리 코드로 변환시킨 카드번호값 중에서 상위 2바이트를 섹터넘버로, 하위 2바이트를 BL값으로 지정하였을때,
    동일한 BIN 및 섹터넘버를 가진 BL값들의 개수가 소정개수 이상인 BL값들에 대해서는, 동일 BIN 및 섹터넘버의 BL값들이 수집된 BL블럭들로 구성된 BL저장영역과, 특정한 BIN 및 섹터넘버에 해당하는 BL블럭들의 저장위치를 표시하는 인덱스 테이블 영역으로 이루어진 일반 데이터 페이지의 구조를 구성하는 단계와;
    동일한 BIN 및 섹터넘버를 가진 BL값들의 개수가 소정개수 미만인 BL값들에 대해서는, 동일 BIN의 카드번호값들이 수집된 각 BIN별 예외 BL블럭영역들로 이루어진 예외 페이지의 구조를 구성하는 단계;
    를 포함하는 것을 특징으로 하는 카드번호리스트 데이터의 압축방법.
  3. 제 2 항에 있어서, 상기 데이터 페이지의 구조는 동일한 BIN을 가진 BL블럭들끼리 모아서 하나의 집합으로 모으고, 각 BIN의 BL블럭 집합에 이어서 해당 BIN의 섹터넘버 인덱스 테이블을 저장하여 구성된 각 BIN별 데이타를 모아서 형성된 BL 저장영역과, 각 BIN값에 대한 해당 BIN별 데이타 저장위치를 표시하는 BIN 인덱스 테이블로 이루어진 것을 특징으로 하는 카드번호리스트 데이터의 압축방법.
  4. 제 2 항에 있어서,
    메인BL파일을 생성하는 단계(S10);
    1일의 BL 데이타의 변동량을 모아서 새로운 템프파일을 생성하는 단계(S20);
    이미 존재하는 템프파일 데이타에 각 카드사별로 1일의 카드번호리스트 데이타의 변동량을 모아서 템프파일을 갱신하는 단계(S30);
    6일 동안의 갱신된 템프파일을 확정하는 단계(S40); 및
    상기 (S20)~(S40) 단계를 9번 반복하여, 확정된 템프파일 10개를 모아서 기존의 메인 파일에 병합하여 메인파일을 갱신하는 단계(S50);
    를 더 포함하는 것을 특징으로 하는 카드번호리스트 데이터의 압축방법.
  5. 삭제
  6. 삭제
  7. 읽어들인 카드번호 16자리중 1번째 ~ 6번째자리까지의 값을 BIN으로, 7번째 ~ 15번째까지의 번호를 4바이트의 바이너리 코드로 변환시킨 상위 2바이트를 섹터넘버로, 하위 2바이트를 BL값으로 지정하는 단계;
    상기 BIN값을 내부 메모리에 저장된 BIN 인덱스 테이블에서 검색하는 단계;
    검색된 레코드에 기록된 해당 BIN의 섹터넘버 인덱스 테이블의 저장위치를 리드하는 단계;
    상기 섹터넘버 인덱스 테이블에서 상기 섹터넘버를 검색하는 단계;
    검색된 레코드에 기록된 해당 BL블럭의 저장위치를 리드하는 단계;
    해당 BL블럭에서 상기 BL값을 검색하는 단계;
    검색결과 BL블럭내 존재하면 거래불가 카드로 판정하고, 존재하지 않으면 전자화폐 거래절차를 수행하는 단계; 및
    일반 BL페이지에서 읽어들인 카드번호가 검색되지 않으면 예외 BL페이지에서 읽어들인 카드번호를 검색하여 예외 BL페이지 내 존재하면 거래불가 카드로 판정하고 존재하지 않으면 전자화폐 거래절차를 수행하는 단계;
    를 포함하는 것을 특징으로 하는 카드단말기의 BL조회방법.
  8. 제 7항에 있어서,
    읽어들인 카드번호를 메인 파일에서 검색하는 단계 이전에, 내부 메모리에 저장된 가장 최신의 템프 파일에서 읽어들인 카드번호를 검색하는 단계; 및
    그 결과 카드번호가 검색되면 해당 레코드의 삭제/추가 플래그를 리드하여 삭제면 카드 사용가능으로 판정하고, 추가면 사용불가로 판정하는 단계;
    를 더 포함하는 것을 특징으로 하는 카드단말기의 BL조회방법.
KR1020030069852A 2003-10-08 2003-10-08 카드블랙리스트 데이터의 압축저장방법 및 그 검색방법 Expired - Fee Related KR100610529B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030069852A KR100610529B1 (ko) 2003-10-08 2003-10-08 카드블랙리스트 데이터의 압축저장방법 및 그 검색방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030069852A KR100610529B1 (ko) 2003-10-08 2003-10-08 카드블랙리스트 데이터의 압축저장방법 및 그 검색방법

Publications (2)

Publication Number Publication Date
KR20050034058A KR20050034058A (ko) 2005-04-14
KR100610529B1 true KR100610529B1 (ko) 2006-08-09

Family

ID=37237985

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030069852A Expired - Fee Related KR100610529B1 (ko) 2003-10-08 2003-10-08 카드블랙리스트 데이터의 압축저장방법 및 그 검색방법

Country Status (1)

Country Link
KR (1) KR100610529B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100834584B1 (ko) * 2006-11-16 2008-06-02 한국정보통신서비스 주식회사 결제처리 단말장치
KR101214627B1 (ko) * 2011-03-22 2012-12-21 비씨카드(주) 교통카드 결제 처리 방법 및 그를 위한 교통카드 단말기
KR101354388B1 (ko) * 2012-12-12 2014-01-23 신한카드 주식회사 일회성 카드번호 생성방법
US20150356791A1 (en) * 2014-06-10 2015-12-10 Lg Cns Co., Ltd. Apparatus and method for processing card information

Also Published As

Publication number Publication date
KR20050034058A (ko) 2005-04-14

Similar Documents

Publication Publication Date Title
CN101553813B (zh) 管理可单独访问的数据单元的存储器
CN102521145B (zh) Java卡系统及其空间分配处理方法
US5664179A (en) Modified skip list database structure and method for access
CN102893265B (zh) 管理可独立访问的数据单元的存储
CN103870492A (zh) 一种基于键排序的数据存储方法和装置
CN101571869B (zh) 一种智能卡的文件存储、读取方法及装置
US6766432B2 (en) Memory management system supporting object deletion in non-volatile memory
CN105009068B (zh) 管理对存储数据单元的操作
CN107894875B (zh) 一种rtu数据存储方法
KR100610529B1 (ko) 카드블랙리스트 데이터의 압축저장방법 및 그 검색방법
EP0869444A2 (en) Integrated database system and computer-readable recording medium recorded with program for managing database structure thereof
CN103034649B (zh) 一种实现数据存储和搜索的方法和系统
CN104700459B (zh) 一种提高afc系统终端设备黑名单匹配效率的方法
CN108572788A (zh) 数据存取方法、装置及系统
KR100389194B1 (ko) 카드 블랙리스트 데이터의 압축방법 및 그의 전송시스템
CN113570444A (zh) 一种基于非税缴款书的非税收缴报表处理方法及查询系统
KR100980467B1 (ko) 카드 정보 제공 방법 및 카드 거래 승인 방법
CN101217385B (zh) 暂存处理计费话单的方法和系统
CN113486097B (zh) 大数据导出方法、装置、设备及存储介质
CN115510059A (zh) 一种基于b+树的etc收费系统用户卡状态名单存取方法
CN110633275B (zh) 一种etc交易数据滞留分析方法及装置
KR20030083431A (ko) 카드번호리스트의 압축방법 및 그 장치
CN102567209A (zh) 闪存芯片数据解析方法和装置
CN120216501A (zh) 一种结构化数据存储方法、电子设备和计算机程序产品
CN116700628B (zh) 区块链数据处理方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20031008

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20051117

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20060504

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20060802

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20060802

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20090731

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20100802

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20110722

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20120731

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20130731

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20130731

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20140616

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20140616

Start annual number: 9

End annual number: 9

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20160709