一種提升終端黑名單容量和檢索速度的方法
【專利摘要】本發(fā)明公開了一種提升終端黑名單容量和檢索速度的方法,具體為:(1)設(shè)計黑名單的存儲方案,對一卡通公司中黑名單的唯一識別碼UID進行分段分格式存儲,對于比較集中的黑名單按照位圖格式存儲,對于比較離散的黑名單按照離散表格式存儲;(2).根據(jù)存儲方案生成黑名單數(shù)據(jù),并下載到脫機終端;(3).當脫機終端受理一張卡片的交易時,首先檢索該卡的UID所屬段是否有黑名單,如沒有則不是黑名單,檢索結(jié)束,如該段有黑名單,則在該段的黑名單中繼續(xù)檢索;如該段黑名單是按位圖格式存儲的,則根據(jù)該UID在該段的相對位置,查找相對應(yīng)的比特位,根據(jù)比特位的1或0值判斷是否黑名單,如按離散表格式存儲,則查找相對應(yīng)的偏移量。
【專利說明】一種提升終端黑名單容量和檢索速度的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種提升終端黑名單容量和檢索速度的方法,包括終端黑名單容量的提升、加快檢索黑名單的速度以及降低存儲黑名單的空間。
【背景技術(shù)】
[0002]一卡通系統(tǒng)通常包括發(fā)卡、充值、清算、客服和受理終端等功能,受理的卡片通常有IC卡、ID卡等;每個卡片都有唯一的識別碼nD,UID是卡片的物理號或一卡通系統(tǒng)分配的邏輯號。受理終端包括POS終端、車載設(shè)備、自助售賣機等;受理業(yè)務(wù)包括交易和認證等;受理終端有聯(lián)機和脫機兩種工作方式,其中聯(lián)機工作方式是指終端在受理業(yè)務(wù)時,需要連接一卡通后臺系統(tǒng)來進行驗證、授權(quán)等交互操作,而脫機工作方式不需要連接一卡通后臺系統(tǒng),只由卡片和受理終端即可完成交易,之后由專有設(shè)備對交易數(shù)據(jù)進行提取,送至清算系統(tǒng)進行清算和結(jié)算。
[0003]在一卡通系統(tǒng)中,當系統(tǒng)要求限制某些卡片在脫機終端受理業(yè)務(wù)時,通常是將這些卡片的識別碼以黑名單方式下載到終端,當卡片在終端受理業(yè)務(wù)時,終端判斷該卡片是否屬于黑名單列表,如在黑名單列表,則禁止該卡受理業(yè)務(wù)。但在大中型一卡通系統(tǒng)中,隨著運營需要,可能會產(chǎn)生很多黑名單,大量的黑名單可能大大超過終端的受理極限,主要體現(xiàn)在存儲容量不足、下載時間長、檢索黑名單時間加長、管理黑名單成本大等。如果對終端進行硬件升級,因涉及大量終端的改造或更換,成本非常巨大。
[0004]另外,在檢索算法上,最常用也是效率最高的算法是二分法,但二分法要求存儲數(shù)據(jù)按照順序(升序或降序)來排序,如果中間插入一個數(shù)據(jù),則需要重新排序,所以要求所有數(shù)據(jù)必須重新下載到終端,導(dǎo)致下載時間增長、效率降低。
[0005]為解決以上問題,提供一種解決方法,在終端硬件不變的情況下,通過軟件升級,可以大大提升終端黑名單容`量、加快黑名單檢索速度、減少黑名單下載時間。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的問題是,提供一種提升終端黑名單容量和檢索速度以及減少黑名單管理成本的解決方法,是一種成本比較低的解決終端黑名單不足的方法。
[0007]為實現(xiàn)本發(fā)明的目的,本發(fā)明的技術(shù)方案是:
一種提升終端黑名單容量和檢索速度方法,用于提高終端存儲黑名單的容量、加快黑名單檢索速度、減少黑名單下載時間,該方法包括如下步驟:
(I).設(shè)計黑名單的存儲方案
(1.1).取一卡通系統(tǒng)中,卡片UID的長度為UL,可能由3至8個字節(jié)組成,設(shè)WD的最小值Umin和最大值Umax,所有卡片的UID均在Umin和Umax之間;在Umin和Umax之間劃分為若干個段S ;某個段Si包含UID數(shù)量為Mi個,該段的黑名單個數(shù)可能為O至Mi個(即該段可能沒有黑名單或最多有Mi個黑名單),其中Mi是個正整數(shù);
(1.2).在大型一卡通系統(tǒng)中,UID數(shù)量非常多,假設(shè)所有段S中,有X個段是有黑名單的,記為SXdf SX的段信息按順序保存在存儲器件上,段的信息包括:該段WD的起始值、該段黑名單的存儲位置等,這些段信息稱為黑名單的第一級數(shù)據(jù)域;
(1.3).SX中的某個段Si,如果該段存在的黑名單數(shù)量大于N個,其中N為正整數(shù),則該段中的黑名單在存儲器件中的存儲格式為按位圖格式存儲,即在存儲器件中,將每個字節(jié)的8個比特位分別代表8個UID是否是黑名單,這種存儲格式適用于,在一卡通系統(tǒng)中黑名單分布比較集中的情況;
(1.4).SX中的某個段Si,如果該段存在的黑名單數(shù)量大于O且不大于N個,則按照離散表格式存儲,即按照UID號順序存儲,這種存儲格式適用于,在一卡通系統(tǒng)中黑名單分布比較離散的情況;
(1.5).段Si的黑名單數(shù)據(jù)稱為第二級數(shù)據(jù)域,第一級數(shù)據(jù)域的段信息和第二級數(shù)據(jù)域的信息,可唯一確定一個WD號;
(2).黑名單的生成和下載
(2.1).根據(jù)黑名單的存儲方案,生成全量和增量黑名單數(shù)據(jù),全量黑名單是指將所有黑名單的UID都生成黑名單數(shù)據(jù),包括第一級數(shù)據(jù)域和第二級數(shù)據(jù)域的所有數(shù)據(jù),增量黑名單是指根據(jù)上次版本黑名單的數(shù)據(jù),只生成較上次有變化的部分,如果第一級數(shù)據(jù)域有變化,則生成第一級數(shù)據(jù)域;如果第二級某些段的數(shù)據(jù)域有新增或刪除,則生成這些段的黑名單數(shù)據(jù);
(2.2)終端根據(jù)已 保存的黑名單情況,選擇下載全量或增量黑名單,如果終端從未下載黑名單,則下載全量黑名單;如果終端已有黑名單,則只下載增量的黑名單;
(3).黑名單的檢索算法
(3.1).當脫機終端受理一張卡片的交易時,首先讀取該卡的WD ;
(3.2).在第一級數(shù)據(jù)域中查找,如果第一級數(shù)據(jù)域中找不到所屬的段,則該WD不是黑名單,檢索結(jié)束;如果找到,說明該WD所屬的段有黑名單,如果該段的WD都是黑名單,檢索結(jié)束,返回結(jié)果,否則根據(jù)該段黑名單的存儲位置繼續(xù)在第二級數(shù)據(jù)域中查找;
(3.3).如果第二級數(shù)據(jù)域是位圖格式存儲,則在位圖中查找對應(yīng)的比特位,根據(jù)比特位的值判斷是否黑名單;
(3.4).如果第二級數(shù)據(jù)域是離散表格式存儲,則在離散表中查找,根據(jù)該UID在該段中的偏移量來查找,如果找不到,則不是黑名單;如果找到,則是黑名單。
[0008]作為本發(fā)明的進一步改進,所述步驟(1.1)中,所述的Mi為65536,即該段的長度為 65536。
[0009]作為本發(fā)明的進一步改進,所述步驟(1.2)中,所述的存儲器件是FLASH、E2PR0M、鐵電等。
[0010]作為本發(fā)明的進一步改進,所述步驟(1.2)中,所述的順序為升序或降序。
[0011]作為本發(fā)明的進一步改進,所述步驟(1.2)中,所述的該段WD的起始值用UID的前若干個字節(jié)表示,比如假設(shè)UID為4個字節(jié),如該段WD的起始值為OxAABB,則表示該段的 UID 范圍為 OxAABBOOOO 到 OxAABBFFFF。
[0012]作為本發(fā)明的進一步改進,所述步驟(1.2)中,所述的段的信息,還可以包括段的存儲格式(離散表格式或位圖格式)、段的黑名單長度(比如段的黑名單長度為3,表示該段第二級數(shù)據(jù)域的黑名單只保存每個WD的后3個字節(jié))、段的長度、段的結(jié)束值、段的黑名單個數(shù)等,可根據(jù)具體需要裁剪。
[0013]作為本發(fā)明的進一步改進,所述步驟(1.2)中,所述的存儲位置為存儲器件的地址(包括物理地址或邏輯地址)或文件名等。
[0014]作為本發(fā)明的進一步改進,所述步驟(1.2),如果該段的UID全部是黑名單,為節(jié)約存儲空間,該段可以不存儲第二級數(shù)據(jù)域,只在第一級數(shù)據(jù)域中標識出來即可。
[0015]作為本發(fā)明的進一步改進,所述步驟(1.3)中,所述的N為8的倍數(shù),并且N的取值通常小于或等于Mi/16,具體取值數(shù)值,需要根據(jù)該段中現(xiàn)有黑名單數(shù)量、預(yù)估未來的數(shù)量以及存儲器件的特性來決定。在整個一卡通系統(tǒng)中,N值可根據(jù)實際情況調(diào)整。
[0016]作為本發(fā)明的進一步改進,所述步驟(1.3)中,所述的位圖格式存儲中,定義比特位為I或O分別表示是否黑名單,反之亦然。
[0017]可選的,比如Mi為65536時,只要8KB字節(jié)的存儲空間即可存儲65536個黑名單。
[0018]作為本發(fā)明的進一步改進,所述步驟(1.3)中,所述的離散表格式存儲是指,為節(jié)約存儲空間,在第二級數(shù)據(jù)域中不保存第一級數(shù)據(jù)域中該段WD的起始值,只保存從該起始值開始的偏移量值。比如UID為0xl9D59878的卡片是黑名單,則在第一級數(shù)據(jù)域中段的起始值為0xl9D5,在第二級數(shù)據(jù)域中,只保存0x9878即可,0x9878就是從該起始值開始的偏移量的值。
[0019]作為本發(fā)明的進一步改進,在中小型一卡通系統(tǒng)中,如UID數(shù)量不大,可不對數(shù)據(jù)域進行分級存儲。
[0020]作為本發(fā)明的進一步改進,所述步驟(2.1)中,所述的增量黑名單包括新增的黑名單和在一卡通系統(tǒng)中剔除的黑名單。
`[0021]作為本發(fā)明的進一步改進,所述步驟(3.1)中,所述的在第一級數(shù)據(jù)域中查找,可將第一級數(shù)據(jù)域的數(shù)據(jù)裝載在內(nèi)存(RAM)中,以加快檢索速度。
[0022]本發(fā)明的優(yōu)點有:
(I)減少黑名單的存儲空間,比如,如果一個黑名單長度是8字節(jié),則50000個黑名單需要的存儲空間是4000000個字節(jié),但如果這些黑名單的分布都集中在某個段Si中(該段Mi為65536),用位圖格式存儲至需要8192個字節(jié),大大減少存儲空間;
(2)減少檢索時間,將黑名單數(shù)據(jù)分級來管理,可大大降低檢索時間,因為很多情況下,在第一次檢索第一級數(shù)據(jù)域時就已經(jīng)知道不是黑名單,而如果用傳統(tǒng)的二分法檢索全部黑名單,則需要多次比較。另外,即使需要在第二級數(shù)據(jù)域中檢索,對于離散表格式存儲的數(shù)據(jù),因數(shù)據(jù)比較少,二分法查找仍然非常快;如果是位圖格式存儲,只要計算出偏移量即可快速定位,查找速度更快;
(3)減少下載黑名單的數(shù)據(jù)量,加快下載速度,首先,因為黑名單占用的空間少了,所以需要下載的黑名單數(shù)據(jù)量也隨著減少;其次,采用兩級數(shù)據(jù)存儲格式后,增量下載方式可以大大減少下載數(shù)據(jù)量和時間,并且對檢索速度沒有任何影響。
【專利附圖】
【附圖說明】
[0023]圖1是實施本發(fā)明的主要流程。
[0024]圖2是黑名單的存儲設(shè)計方案。
[0025]圖3是黑名單的檢索方法?!揪唧w實施方式】
[0026]下面結(jié)合附圖和具體實施例子對本發(fā)明作進一步的詳細說明。
[0027]本實施例子以大中型一卡通系統(tǒng)為例,UID長度為4字節(jié),段的大小為65536 (即Mi為65536),數(shù)據(jù)存儲在FLASH中,比特位為I表示是黑名單,為O表示不是黑名單,講述黑名單的設(shè)計和實施方案,包括制定黑名單的存儲方案、生成和下載黑名單數(shù)據(jù)以及檢索黑名單三個步驟,詳見附圖1,具體如下:
1.制定黑名單的存儲方案根據(jù)一卡通系統(tǒng)中現(xiàn)有或預(yù)估未來黑名單數(shù)量和分布情況以及終端存儲器件的特性來決定N值。對于分布比較離散的黑名單,可采用離散表格式存儲,對于比較集中的情況,可采用位圖格式存儲。另外還可以結(jié)合終端存儲容量和下載通信速度來決定N值,如果終端存儲容量較大,N值可以設(shè)小一點,即盡量用位圖存儲黑名單。本實例列出了一種黑名單存儲方案,以及第一級數(shù)據(jù)域和第二級數(shù)據(jù)域的部分數(shù)據(jù)(所有數(shù)據(jù)均為十六進制),詳見附圖2。
[0028](I)第一級數(shù)據(jù)域中每個段的長度為6個字節(jié),段的信息包括段WD的起始值(2個字節(jié))、該段黑名單的存儲位置(2個字節(jié))、段的黑名單長度(I個字節(jié))、段的存儲格式(I個字節(jié),0x00表示以離散表格式存儲,0x01表示以位圖格式存儲)。其中,存儲位置為邏輯地址:
(1.1) 017B088C0300表示017B0000-017BFFFF段中的黑名單以離散表方式存儲在088C地址,段的黑名單長度為2字節(jié);
(1.2) 020E088 F0200表示020E0000-020EFFFF段中的黑名單以離散表方式存儲在088F地址,段的黑名單長度為2字節(jié);
(1.3) 027A1001FF01表示027A0000-027AFFFF段中的黑名單以位圖方式存儲在1001地址;
(1.4) 918A0000FFFF 表示 918A0000-918AFFFF 段中的 UID 全是黑名單。
[0029](2)第二級數(shù)據(jù)域數(shù)據(jù)如下:
(2.1)在段017B中,段的黑名單長度為2個字節(jié),UID為017B0021、017B05AF、017B060F、017B14F8、017B1A59 和 017B1C6E 等是黑名單;
(2.2)在段020E中,段的黑名單長度為2個字節(jié),UID為020E0017、020E276C和020E2CAB等是黑名單;
(2.3)在段027A中,根據(jù)首字節(jié)8F(二進制為10001111)可知,UID為027A0000以及027A0004-027A0007是黑名單;
(2.4)在段918A中,段的黑名單長度和段的存儲格式均為FF,表示該段全是黑名單。
[0030]2.生成和下載黑名單數(shù)據(jù)
(I)根據(jù)上述黑名單的存儲方案和終端黑名單版本,可在工作站上生成全量和增量黑名單數(shù)據(jù);
(2)對于沒有黑名單的終端,下載全量黑名單;對于已有黑名單的終端下載增量黑名單。下載完成后,記錄終端的下載版本,以便下次生成新的增量版本。[0031]3.檢索黑名單
如果終端的內(nèi)存(RAM)容量足夠,可將第一級數(shù)據(jù)域的數(shù)據(jù)全部裝入內(nèi)存,以加快查找速度,如果內(nèi)存不足,可直接訪問存儲器件的地址。終端讀取受理卡片的唯一識別碼UID后,即可開始檢索黑名單;
(1)根據(jù)UID所屬的段,在第一級數(shù)據(jù)域中查找,如果沒找到該段,則該WD不是黑名單;如果找到該段的信息,而且所屬的段全部是黑名單,檢索結(jié)束;否則繼續(xù)在該段所指的第二級數(shù)據(jù)域地址中查找;
(2)如果第二級數(shù)據(jù)域是位圖格式存儲,則根據(jù)WD在該段中的相對位置,找到對應(yīng)的比特位,如果對應(yīng)的比特位為1,則是黑名單,為O則不是黑名單;
(3)如果第二級數(shù)據(jù)域是離散表格式存儲,則根據(jù)UID在該段中的偏移量查找該偏移量值,如果找到對應(yīng)的偏移`量值,則該WD是黑名單,否則不是黑名單。
【權(quán)利要求】
1.一種提升終端黑名單容量和檢索速度的方法,用于提升終端中黑名單的容量、加快檢索黑名單的速度以及降低存儲黑名單的占用空間,該方法主要包括以下幾個步驟:(I).設(shè)計黑名單的存儲方案
(1.1).取一卡通系統(tǒng)中,卡片WD的長度為UL,可能由3至8個字節(jié)組成,設(shè)WD的最小值Umin和最大值Umax,所有卡片的UID均在Umin和Umax之間;在Umin和Umax之間劃分為若干個段S ;某個段Si包含UID數(shù)量為Mi個,該段的黑名單個數(shù)可能為O至Mi個(即該段可能沒有黑名單或最多有Mi個黑名單),其中Mi是個正整數(shù);
(1.2).在大型一卡通系統(tǒng)中,UID數(shù)量非常多,假設(shè)所有段S中,有X個段是有黑名單的,記為Sx,將Sx的段信息按順序保存在存儲器件上,段的信息包括:該段WD的起始值、該段黑名單的存儲位置等,這些段信息稱為黑名單的第一級數(shù)據(jù)域; Sx中的某個段Si,如果該段存在的黑名單數(shù)量大于N個,其中N為正整數(shù),則該段中的黑名單在存儲器件中的存儲格式為按位圖格式存儲,即在存儲器件中,將每個字節(jié)的8個比特位分別代表8個UID是否是黑名單,這種存儲格式適用于,在一卡通系統(tǒng)中黑名單分布比較集中的情況;
(1.4).Sx中的某個段Si,如果該段存在的黑名單數(shù)量大于O且不大于N個,則按照離散表格式存儲,即按照UID號順序存儲,這種存儲格式適用于,在一卡通系統(tǒng)中黑名單分布比較離散的情況; 段31的黑名單數(shù)據(jù)稱為第二級數(shù)據(jù)域,第一級數(shù)據(jù)域的段信息和第二級數(shù)據(jù)域的信息,可唯一確定一個UID號; 黑名單的生成和下載 根據(jù)黑名單的存儲方案,生成全量和增量黑名單數(shù)據(jù),全量黑名單是指將所有黑名單的UID都生成黑名單數(shù)據(jù),包`括第一級數(shù)據(jù)域和第二級數(shù)據(jù)域的所有數(shù)據(jù),增量黑名單是指根據(jù)上次版本黑名單的數(shù)據(jù),只生成較上次有變化的部分,如果第一級數(shù)據(jù)域有變化,則生成第一級數(shù)據(jù)域;如果第二級某些段的數(shù)據(jù)域有新增或刪除,則生成這些段的黑名單數(shù)據(jù);
(2.2)終端根據(jù)已保存的黑名單情況,選擇下載全量或增量黑名單,如果終端從未下載黑名單,則下載全量黑名單;如果終端已有黑名單,則只下載增量的黑名單;
(3).黑名單的檢索算法
(3.1).當脫機終端受理一張卡片的交易時,首先讀取該卡的WD ; 在第一級數(shù)據(jù)域中查找,如果第一級數(shù)據(jù)域中找不到所屬的段,則該WD不是黑名單,檢索結(jié)束;如果找到,說明該UID所屬的段有黑名單,如果該段的UID都是黑名單,檢索結(jié)束,返回結(jié)果,否則根據(jù)該段黑名單的存儲位置繼續(xù)在第二級數(shù)據(jù)域中查找;
(3.3).如果第二級數(shù)據(jù)域是位圖格式存儲,則在位圖中查找對應(yīng)的比特位,根據(jù)比特位的值判斷是否黑名單;
(3.4).如果第二級數(shù)據(jù)域是離散表格式存儲,則在離散表中查找,根據(jù)該UID在該段中的偏移量來查找,如果找不到,則不是黑名單;如果找到,則是黑名單。
2.根據(jù)權(quán)利要求1中所述的一種提升終端黑名單容量和檢索速度的方法,其特征在于:所述步驟(1.D中,所述的Mi為65536,即該段的長度為65536。
3.根據(jù)權(quán)利要求1或2中所述的一種提升終端黑名單容量和檢索速度的方法,其特征在于:所述步驟(1.2)中,所述的存儲器件是FLASH、E2PROM、鐵電等。
4.根據(jù)權(quán)利要求1-3所述的一種提升終端黑名單容量和檢索速度的方法,其特征在于:所述步驟(1.2)中,所述的該段WD的起始值用UID的前若干個字節(jié)表示,比如假設(shè)UID為4個字節(jié),如該段WD的起始值為OxAABB,則表示該段的UID范圍為OxAABBOOOO到OxAABBFFFF。
5.根據(jù)權(quán)利要求1-4中所述的一種提升終端黑名單容量和檢索速度的方法,其特征在于:所述步驟(1.2)中,所述的段的信息,還可以包括段的存儲格式(離散表格式或位圖格式)、段的黑名單長度(比如段的黑名單長度為3,表示該段第二級數(shù)據(jù)域的黑名單只保存每個WD的后3個字節(jié))、段的長度、段的結(jié)束值、段的黑名單個數(shù)等,可根據(jù)具體需要裁剪。
6.根據(jù)權(quán)利要求1-5中所述的一種提升終端黑名單容量和檢索速度的方法,其特征在于:所述步驟(1.3)中,所述的N為8的倍數(shù),并且N的取值通常小于或等于乂/16,具體取值數(shù)值,需要根據(jù)該段中現(xiàn)有黑名單數(shù)量、預(yù)估未來的數(shù)量以及存儲器件的特性來決定,在整個一卡通系統(tǒng)中,N值可根據(jù)實際情況調(diào)整。
7.根據(jù)權(quán)利要求1-6中所述的一種提升終端黑名單容量和檢索速度的方法,其特征在于:所述步驟(1.3)中,所述的位圖格式存儲中,定義比特位為I或O分別表示是否黑名單,反之亦然。
8.根據(jù)權(quán)利要求1-7中所述的一種提升終端黑名單容量和檢索速度的方法,其特征在于:所述步驟(1.3)中,所述的離散表格式存儲是指,為節(jié)約存儲空間,在第二級數(shù)據(jù)域中不保存第一級數(shù)據(jù)域中該段UID的起始值,只保存從該起始值開始的偏移量值,比如UID為0xl9D59878的卡片是黑名單,則在第一級數(shù)據(jù)域中段的起始值為0xl9D5,在第二級數(shù)據(jù)域中,只保存0x9878即可,0x9878就是從該起始值開始的偏移量的值。
9.根據(jù)權(quán)利要求1-8中所述的一種提升終端黑名單容量和檢索速度的方法,其特征在于:在中小型一卡通系統(tǒng)中,如UID數(shù)量不大,可不對數(shù)據(jù)域進行分級存儲。
10.根據(jù)權(quán)利要求1-9中所述的一種提升終端黑名單容量和檢索速度的方法,其特征在于:所述步驟(3.1)中,所述的在第一級數(shù)據(jù)域中查找,可將第一級數(shù)據(jù)域的數(shù)據(jù)裝載在內(nèi)存(RAM)中,以加快檢索速度。
【文檔編號】G06F17/30GK103823761SQ201410082617
【公開日】2014年5月28日 申請日期:2014年3月9日 優(yōu)先權(quán)日:2014年3月9日
【發(fā)明者】林虎 申請人:林虎